@towns-protocol/sdk 0.0.251 → 0.0.253
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/client.d.ts.map +1 -1
- package/dist/client.js +4 -4
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +20 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -6
- package/dist/index.js.map +1 -1
- package/dist/observable/combine.d.ts +4 -2
- package/dist/observable/combine.d.ts.map +1 -1
- package/dist/observable/combine.js +5 -2
- package/dist/observable/combine.js.map +1 -1
- package/dist/observable/observableRecord.d.ts +18 -0
- package/dist/observable/observableRecord.d.ts.map +1 -0
- package/dist/observable/observableRecord.js +71 -0
- package/dist/observable/observableRecord.js.map +1 -0
- package/dist/streamStateView.d.ts.map +1 -1
- package/dist/streamStateView.js +8 -8
- package/dist/streamStateView.js.map +1 -1
- package/dist/streamStateView_Channel.d.ts +1 -6
- package/dist/streamStateView_Channel.d.ts.map +1 -1
- package/dist/streamStateView_Channel.js +4 -10
- package/dist/streamStateView_Channel.js.map +1 -1
- package/dist/streamStateView_DMChannel.d.ts +8 -7
- package/dist/streamStateView_DMChannel.d.ts.map +1 -1
- package/dist/streamStateView_DMChannel.js +22 -15
- package/dist/streamStateView_DMChannel.js.map +1 -1
- package/dist/streamStateView_GDMChannel.d.ts +5 -4
- package/dist/streamStateView_GDMChannel.d.ts.map +1 -1
- package/dist/streamStateView_GDMChannel.js +13 -12
- package/dist/streamStateView_GDMChannel.js.map +1 -1
- package/dist/streamStateView_Space.d.ts +5 -8
- package/dist/streamStateView_Space.d.ts.map +1 -1
- package/dist/streamStateView_Space.js +26 -23
- package/dist/streamStateView_Space.js.map +1 -1
- package/dist/streamStateView_User.d.ts +11 -18
- package/dist/streamStateView_User.d.ts.map +1 -1
- package/dist/streamStateView_User.js +35 -20
- package/dist/streamStateView_User.js.map +1 -1
- package/dist/streamStateView_UserInbox.d.ts +4 -1
- package/dist/streamStateView_UserInbox.d.ts.map +1 -1
- package/dist/streamStateView_UserInbox.js +6 -1
- package/dist/streamStateView_UserInbox.js.map +1 -1
- package/dist/streamStateView_UserMetadata.d.ts +4 -1
- package/dist/streamStateView_UserMetadata.d.ts.map +1 -1
- package/dist/streamStateView_UserMetadata.js +6 -1
- package/dist/streamStateView_UserMetadata.js.map +1 -1
- package/dist/streamStateView_UserSettings.d.ts +4 -3
- package/dist/streamStateView_UserSettings.d.ts.map +1 -1
- package/dist/streamStateView_UserSettings.js +11 -12
- package/dist/streamStateView_UserSettings.js.map +1 -1
- package/dist/sync-agent/spaces/models/space.js +1 -1
- package/dist/sync-agent/spaces/models/space.js.map +1 -1
- package/dist/sync-agent/user/models/userMemberships.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userMemberships.js +3 -1
- package/dist/sync-agent/user/models/userMemberships.js.map +1 -1
- package/dist/syncedStream.js +1 -1
- package/dist/syncedStream.js.map +1 -1
- package/dist/tests/multi/channelSpaceSettings.test.js +23 -23
- package/dist/tests/multi/channelSpaceSettings.test.js.map +1 -1
- package/dist/tests/multi_ne/space.test.js +5 -7
- package/dist/tests/multi_ne/space.test.js.map +1 -1
- package/dist/tests/multi_ne/streamStateView_User.test.js +3 -3
- package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
- package/dist/tests/unit/observable/combine.test.js +23 -23
- package/dist/tests/unit/observable/combine.test.js.map +1 -1
- package/dist/views/streams/channelStreams.d.ts +8 -0
- package/dist/views/streams/channelStreams.d.ts.map +1 -0
- package/dist/views/streams/channelStreams.js +9 -0
- package/dist/views/streams/channelStreams.js.map +1 -0
- package/dist/views/streams/dmStreams.d.ts +13 -0
- package/dist/views/streams/dmStreams.d.ts.map +1 -0
- package/dist/views/streams/dmStreams.js +33 -0
- package/dist/views/streams/dmStreams.js.map +1 -0
- package/dist/views/streams/gdmStreams.d.ts +10 -0
- package/dist/views/streams/gdmStreams.d.ts.map +1 -0
- package/dist/views/streams/gdmStreams.js +21 -0
- package/dist/views/streams/gdmStreams.js.map +1 -0
- package/dist/views/streams/spaceStreams.d.ts +17 -0
- package/dist/views/streams/spaceStreams.d.ts.map +1 -0
- package/dist/views/streams/spaceStreams.js +52 -0
- package/dist/views/streams/spaceStreams.js.map +1 -0
- package/dist/views/streams/streamStatus.d.ts +3 -2
- package/dist/views/streams/streamStatus.d.ts.map +1 -1
- package/dist/views/streams/streamStatus.js +11 -9
- package/dist/views/streams/streamStatus.js.map +1 -1
- package/dist/views/streams/unreadMarkersTransform.d.ts +1 -1
- package/dist/views/streams/unreadMarkersTransform.d.ts.map +1 -1
- package/dist/views/streams/unreadMarkersTransform.js +4 -0
- package/dist/views/streams/unreadMarkersTransform.js.map +1 -1
- package/dist/views/streams/userInboxStreams.d.ts +8 -0
- package/dist/views/streams/userInboxStreams.d.ts.map +1 -0
- package/dist/views/streams/userInboxStreams.js +11 -0
- package/dist/views/streams/userInboxStreams.js.map +1 -0
- package/dist/views/streams/userMetadataStreams.d.ts +8 -0
- package/dist/views/streams/userMetadataStreams.d.ts.map +1 -0
- package/dist/views/streams/userMetadataStreams.js +12 -0
- package/dist/views/streams/userMetadataStreams.js.map +1 -0
- package/dist/views/streams/userSettingsStreams.d.ts +6 -5
- package/dist/views/streams/userSettingsStreams.d.ts.map +1 -1
- package/dist/views/streams/userSettingsStreams.js +29 -17
- package/dist/views/streams/userSettingsStreams.js.map +1 -1
- package/dist/views/streams/userStreamsView.d.ts +26 -0
- package/dist/views/streams/userStreamsView.d.ts.map +1 -0
- package/dist/views/streams/userStreamsView.js +106 -0
- package/dist/views/streams/userStreamsView.js.map +1 -0
- package/dist/views/streamsView.d.ts +16 -2
- package/dist/views/streamsView.d.ts.map +1 -1
- package/dist/views/streamsView.js +28 -7
- package/dist/views/streamsView.js.map +1 -1
- package/package.json +9 -9
- package/dist/streamStateView_Common_ChannelMessages.d.ts +0 -15
- package/dist/streamStateView_Common_ChannelMessages.d.ts.map +0 -1
- package/dist/streamStateView_Common_ChannelMessages.js +0 -19
- package/dist/streamStateView_Common_ChannelMessages.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_GDMChannel.d.ts","sourceRoot":"","sources":["../src/streamStateView_GDMChannel.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAqB,0BAA0B,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EACH,sBAAsB,EAEtB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"streamStateView_GDMChannel.d.ts","sourceRoot":"","sources":["../src/streamStateView_GDMChannel.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAqB,0BAA0B,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EACH,sBAAsB,EAEtB,mBAAmB,EACnB,mBAAmB,EACtB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3E,qBAAa,0BAA2B,SAAQ,+BAA+B;IAcvE,OAAO,CAAC,cAAc;IAb1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,+BAA+B,CAAA;IAEzD,IAAI,yBAAyB,IAAI,MAAM,CAEtC;IAED,IAAI,cAAc,IAAI,cAAc,CAEnC;gBAGG,QAAQ,EAAE,MAAM,EACR,cAAc,EAAE,cAAc;IAO1C,aAAa,CACT,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,0BAA0B,EACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,SAAS,EAC3D,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACpE,IAAI;IAUP,YAAY,CACR,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IA2BP,WAAW,CACP,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC1D,IAAI;IA2BP,kBAAkB,CACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,GACpC,IAAI;IAMP,gBAAgB,CACZ,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,SAAS,EAC/C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACpE,IAAI;IAIP,kBAAkB,CACd,KAAK,EAAE,mBAAmB,EAC1B,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC1D,IAAI;IAKP,OAAO,CAAC,eAAe;CAU1B"}
|
|
@@ -2,17 +2,21 @@ import { StreamStateView_AbstractContent } from './streamStateView_AbstractConte
|
|
|
2
2
|
import { StreamStateView_ChannelMetadata } from './streamStateView_ChannelMetadata';
|
|
3
3
|
import { check } from '@towns-protocol/dlog';
|
|
4
4
|
import { logNever } from './check';
|
|
5
|
-
import { StreamStateView_ChannelMessages } from './streamStateView_Common_ChannelMessages';
|
|
6
5
|
export class StreamStateView_GDMChannel extends StreamStateView_AbstractContent {
|
|
6
|
+
gdmStreamsView;
|
|
7
7
|
streamId;
|
|
8
8
|
channelMetadata;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
get lastEventCreatedAtEpochMs() {
|
|
10
|
+
return this.gdmStreamModel.lastEventCreatedAtEpochMs;
|
|
11
|
+
}
|
|
12
|
+
get gdmStreamModel() {
|
|
13
|
+
return this.gdmStreamsView.get(this.streamId);
|
|
14
|
+
}
|
|
15
|
+
constructor(streamId, gdmStreamsView) {
|
|
12
16
|
super();
|
|
17
|
+
this.gdmStreamsView = gdmStreamsView;
|
|
13
18
|
this.channelMetadata = new StreamStateView_ChannelMetadata(streamId);
|
|
14
19
|
this.streamId = streamId;
|
|
15
|
-
this.messages = new StreamStateView_ChannelMessages(streamId, this);
|
|
16
20
|
}
|
|
17
21
|
applySnapshot(snapshot, content, cleartexts, encryptionEmitter) {
|
|
18
22
|
if (content.channelProperties) {
|
|
@@ -27,8 +31,8 @@ export class StreamStateView_GDMChannel extends StreamStateView_AbstractContent
|
|
|
27
31
|
this.updateLastEvent(event.remoteEvent, undefined);
|
|
28
32
|
break;
|
|
29
33
|
case 'message':
|
|
34
|
+
this.decryptEvent('channelMessage', event, payload.content.value, cleartext, encryptionEmitter);
|
|
30
35
|
this.updateLastEvent(event.remoteEvent, undefined);
|
|
31
|
-
this.messages.prependChannelMessage(event, cleartext, encryptionEmitter, undefined, payload.content.value);
|
|
32
36
|
break;
|
|
33
37
|
case 'channelProperties':
|
|
34
38
|
// nothing to do, conveyed in the snapshot
|
|
@@ -47,7 +51,7 @@ export class StreamStateView_GDMChannel extends StreamStateView_AbstractContent
|
|
|
47
51
|
this.updateLastEvent(event.remoteEvent, stateEmitter);
|
|
48
52
|
break;
|
|
49
53
|
case 'message':
|
|
50
|
-
this.
|
|
54
|
+
this.decryptEvent('channelMessage', event, payload.content.value, cleartext, encryptionEmitter);
|
|
51
55
|
this.updateLastEvent(event.remoteEvent, stateEmitter);
|
|
52
56
|
break;
|
|
53
57
|
case 'channelProperties':
|
|
@@ -63,21 +67,18 @@ export class StreamStateView_GDMChannel extends StreamStateView_AbstractContent
|
|
|
63
67
|
if (content.kind === 'channelProperties') {
|
|
64
68
|
this.channelMetadata.onDecryptedContent(eventId, content, emitter);
|
|
65
69
|
}
|
|
66
|
-
else if (content.kind === 'channelMessage') {
|
|
67
|
-
this.messages.onDecryptedContent(eventId, content, emitter);
|
|
68
|
-
}
|
|
69
70
|
}
|
|
70
71
|
onConfirmedEvent(event, emitter, encryptionEmitter) {
|
|
71
72
|
super.onConfirmedEvent(event, emitter, encryptionEmitter);
|
|
72
73
|
}
|
|
73
74
|
onAppendLocalEvent(event, stateEmitter) {
|
|
74
|
-
this.
|
|
75
|
+
this.gdmStreamsView.setLastEventCreatedAtEpochMs(this.streamId, event.createdAtEpochMs);
|
|
75
76
|
stateEmitter?.emit('streamLatestTimestampUpdated', this.streamId);
|
|
76
77
|
}
|
|
77
78
|
updateLastEvent(event, stateEmitter) {
|
|
78
79
|
const createdAtEpochMs = event.event.createdAtEpochMs;
|
|
79
80
|
if (createdAtEpochMs > this.lastEventCreatedAtEpochMs) {
|
|
80
|
-
this.
|
|
81
|
+
this.gdmStreamsView.setLastEventCreatedAtEpochMs(this.streamId, createdAtEpochMs);
|
|
81
82
|
stateEmitter?.emit('streamLatestTimestampUpdated', this.streamId);
|
|
82
83
|
}
|
|
83
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_GDMChannel.js","sourceRoot":"","sources":["../src/streamStateView_GDMChannel.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AASnF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_GDMChannel.js","sourceRoot":"","sources":["../src/streamStateView_GDMChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,22 +4,19 @@ import { ChunkedMedia, EncryptedData, Snapshot, SpacePayload_Snapshot } from '@t
|
|
|
4
4
|
import { StreamEncryptionEvents, StreamEvents, StreamStateEvents } from './streamEvents';
|
|
5
5
|
import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
|
|
6
6
|
import { DecryptedContent } from './encryptedContentTypes';
|
|
7
|
-
|
|
8
|
-
isDefault: boolean;
|
|
9
|
-
updatedAtEventNum: bigint;
|
|
10
|
-
isAutojoin: boolean;
|
|
11
|
-
hideUserJoinLeaveEvents: boolean;
|
|
12
|
-
};
|
|
7
|
+
import { ParsedChannelProperties, SpaceStreamModel, SpaceStreamsView } from './views/streams/spaceStreams';
|
|
13
8
|
export declare class StreamStateView_Space extends StreamStateView_AbstractContent {
|
|
9
|
+
private readonly spacesView;
|
|
14
10
|
readonly streamId: string;
|
|
15
|
-
|
|
11
|
+
get spaceChannelsMetadata(): Record<string, ParsedChannelProperties>;
|
|
16
12
|
private spaceImage;
|
|
17
13
|
encryptedSpaceImage: {
|
|
18
14
|
eventId: string;
|
|
19
15
|
data: EncryptedData;
|
|
20
16
|
} | undefined;
|
|
21
17
|
private decryptionInProgress;
|
|
22
|
-
|
|
18
|
+
get spaceStreamModel(): SpaceStreamModel;
|
|
19
|
+
constructor(streamId: string, spacesView: SpaceStreamsView);
|
|
23
20
|
applySnapshot(_snapshot: Snapshot, content: SpacePayload_Snapshot, _cleartexts: Record<string, Uint8Array | string> | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
|
|
24
21
|
onConfirmedEvent(_event: ConfirmedTimelineEvent, _emitter: TypedEmitter<StreamEvents> | undefined): void;
|
|
25
22
|
prependEvent(event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_Space.d.ts","sourceRoot":"","sources":["../src/streamStateView_Space.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,EAEH,YAAY,EACZ,aAAa,EAEb,QAAQ,EAIR,qBAAqB,EAIxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_Space.d.ts","sourceRoot":"","sources":["../src/streamStateView_Space.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AACrE,OAAO,EAEH,YAAY,EACZ,aAAa,EAEb,QAAQ,EAIR,qBAAqB,EAIxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAO1D,OAAO,EACH,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,8BAA8B,CAAA;AAErC,qBAAa,qBAAsB,SAAQ,+BAA+B;IAkBlE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAjB/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,IAAI,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAEnE;IAED,OAAO,CAAC,UAAU,CAA0B;IACrC,mBAAmB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,aAAa,CAAA;KAAE,GAAG,SAAS,CAAA;IAChF,OAAO,CAAC,oBAAoB,CAEb;IAEf,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;gBAGG,QAAQ,EAAE,MAAM,EACC,UAAU,EAAE,gBAAgB;IAMjD,aAAa,CACT,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,qBAAqB,EAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,SAAS,EAC5D,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACrE,IAAI;IAcP,gBAAgB,CACZ,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,SAAS,GACjD,IAAI;IAIP,YAAY,CACR,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACpE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAyBP,WAAW,CACP,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACpE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC1D,IAAI;IA6BM,aAAa,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YAsBjD,iBAAiB;IAiB/B,OAAO,CAAC,qCAAqC;IAU7C,OAAO,CAAC,oDAAoD;IAiB5D,OAAO,CAAC,uBAAuB;IA2D/B,kBAAkB,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;CAGV"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { ChannelOp, Err, ChunkedMediaSchema, } from '@towns-protocol/proto';
|
|
2
2
|
import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
|
|
3
3
|
import { check, throwWithCode } from '@towns-protocol/dlog';
|
|
4
|
-
import { logNever } from './check';
|
|
4
|
+
import { isDefined, logNever } from './check';
|
|
5
5
|
import { contractAddressFromSpaceId, isDefaultChannelId, streamIdAsString } from './id';
|
|
6
6
|
import { fromBinary } from '@bufbuild/protobuf';
|
|
7
7
|
import { decryptDerivedAESGCM } from '@towns-protocol/sdk-crypto';
|
|
8
8
|
import { bytesToHex } from 'ethereum-cryptography/utils';
|
|
9
9
|
export class StreamStateView_Space extends StreamStateView_AbstractContent {
|
|
10
|
+
spacesView;
|
|
10
11
|
streamId;
|
|
11
|
-
spaceChannelsMetadata
|
|
12
|
+
get spaceChannelsMetadata() {
|
|
13
|
+
return this.spaceStreamModel.channelsMetadata;
|
|
14
|
+
}
|
|
12
15
|
spaceImage;
|
|
13
16
|
encryptedSpaceImage;
|
|
14
17
|
decryptionInProgress;
|
|
15
|
-
|
|
18
|
+
get spaceStreamModel() {
|
|
19
|
+
return this.spacesView.get(this.streamId);
|
|
20
|
+
}
|
|
21
|
+
constructor(streamId, spacesView) {
|
|
16
22
|
super();
|
|
23
|
+
this.spacesView = spacesView;
|
|
17
24
|
this.streamId = streamId;
|
|
18
25
|
}
|
|
19
26
|
applySnapshot(_snapshot, content, _cleartexts, _encryptionEmitter) {
|
|
@@ -119,25 +126,13 @@ export class StreamStateView_Space extends StreamStateView_AbstractContent {
|
|
|
119
126
|
addSpacePayload_UpdateChannelAutojoin(payload, stateEmitter) {
|
|
120
127
|
const { channelId: channelIdBytes, autojoin } = payload;
|
|
121
128
|
const channelId = streamIdAsString(channelIdBytes);
|
|
122
|
-
|
|
123
|
-
if (!channel) {
|
|
124
|
-
throwWithCode(`Channel not found: ${channelId}`, Err.STREAM_BAD_EVENT);
|
|
125
|
-
}
|
|
126
|
-
this.spaceChannelsMetadata.set(channelId, {
|
|
127
|
-
...channel,
|
|
128
|
-
isAutojoin: autojoin,
|
|
129
|
-
});
|
|
129
|
+
this.spacesView.updateChannelMetadata(this.streamId, channelId, { isAutojoin: autojoin });
|
|
130
130
|
stateEmitter?.emit('spaceChannelAutojoinUpdated', this.streamId, channelId, autojoin);
|
|
131
131
|
}
|
|
132
132
|
addSpacePayload_UpdateChannelHideUserJoinLeaveEvents(payload, stateEmitter) {
|
|
133
133
|
const { channelId: channelIdBytes, hideUserJoinLeaveEvents } = payload;
|
|
134
134
|
const channelId = streamIdAsString(channelIdBytes);
|
|
135
|
-
|
|
136
|
-
if (!channel) {
|
|
137
|
-
throwWithCode(`Channel not found: ${channelId}`, Err.STREAM_BAD_EVENT);
|
|
138
|
-
}
|
|
139
|
-
this.spaceChannelsMetadata.set(channelId, {
|
|
140
|
-
...channel,
|
|
135
|
+
this.spacesView.updateChannelMetadata(this.streamId, channelId, {
|
|
141
136
|
hideUserJoinLeaveEvents,
|
|
142
137
|
});
|
|
143
138
|
stateEmitter?.emit('spaceChannelHideUserJoinLeaveEventsUpdated', this.streamId, channelId, hideUserJoinLeaveEvents);
|
|
@@ -150,7 +145,7 @@ export class StreamStateView_Space extends StreamStateView_AbstractContent {
|
|
|
150
145
|
const isDefault = isDefaultChannelId(channelId);
|
|
151
146
|
const isAutojoin = payload.settings?.autojoin ?? isDefault;
|
|
152
147
|
const hideUserJoinLeaveEvents = payload.settings?.hideUserJoinLeaveEvents ?? false;
|
|
153
|
-
this.
|
|
148
|
+
this.spacesView.updateChannelMetadata(this.streamId, channelId, {
|
|
154
149
|
isDefault,
|
|
155
150
|
updatedAtEventNum,
|
|
156
151
|
isAutojoin,
|
|
@@ -160,17 +155,25 @@ export class StreamStateView_Space extends StreamStateView_AbstractContent {
|
|
|
160
155
|
break;
|
|
161
156
|
}
|
|
162
157
|
case ChannelOp.CO_DELETED:
|
|
163
|
-
if (this.
|
|
158
|
+
if (this.spacesView.delete(this.streamId, channelId)) {
|
|
164
159
|
stateEmitter?.emit('spaceChannelDeleted', this.streamId, channelId);
|
|
165
160
|
}
|
|
166
161
|
break;
|
|
167
162
|
case ChannelOp.CO_UPDATED: {
|
|
168
163
|
// first take settings from payload, then from local channel, then defaults
|
|
169
|
-
const channel = this.spaceChannelsMetadata
|
|
164
|
+
const channel = this.spaceChannelsMetadata[channelId];
|
|
170
165
|
const isDefault = isDefaultChannelId(channelId);
|
|
171
|
-
const isAutojoin = payload.settings?.autojoin
|
|
172
|
-
|
|
173
|
-
|
|
166
|
+
const isAutojoin = isDefined(payload.settings?.autojoin)
|
|
167
|
+
? payload.settings.autojoin
|
|
168
|
+
: isDefined(channel?.isAutojoin)
|
|
169
|
+
? channel.isAutojoin
|
|
170
|
+
: isDefault;
|
|
171
|
+
const hideUserJoinLeaveEvents = isDefined(payload.settings?.hideUserJoinLeaveEvents)
|
|
172
|
+
? payload.settings.hideUserJoinLeaveEvents
|
|
173
|
+
: isDefined(channel?.hideUserJoinLeaveEvents)
|
|
174
|
+
? channel.hideUserJoinLeaveEvents
|
|
175
|
+
: false;
|
|
176
|
+
this.spacesView.updateChannelMetadata(this.streamId, channelId, {
|
|
174
177
|
isDefault,
|
|
175
178
|
updatedAtEventNum,
|
|
176
179
|
isAutojoin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_Space.js","sourceRoot":"","sources":["../src/streamStateView_Space.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,SAAS,EAGT,GAAG,EAQH,kBAAkB,GACrB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAEnF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_Space.js","sourceRoot":"","sources":["../src/streamStateView_Space.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,SAAS,EAGT,GAAG,EAQH,kBAAkB,GACrB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAEnF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAOxD,MAAM,OAAO,qBAAsB,SAAQ,+BAA+B;IAkBjD;IAjBZ,QAAQ,CAAQ;IACzB,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAA;IACjD,CAAC;IAEO,UAAU,CAA0B;IACrC,mBAAmB,CAAsD;IACxE,oBAAoB,CAEb;IAEf,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED,YACI,QAAgB,EACC,UAA4B;QAE7C,KAAK,EAAE,CAAA;QAFU,eAAU,GAAV,UAAU,CAAkB;QAG7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED,aAAa,CACT,SAAmB,EACnB,OAA8B,EAC9B,WAA4D,EAC5D,kBAAoE;QAEpE,6DAA6D;QAC7D,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;QAC/E,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG;gBACvB,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI;gBAC7B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;aACpD,CAAA;QACL,CAAC;IACL,CAAC;IAED,gBAAgB,CACZ,MAA8B,EAC9B,QAAgD;QAEhD,OAAO;IACX,CAAC;IAED,YAAY,CACR,KAA0B,EAC1B,UAA2C,EAC3C,kBAAoE,EACpE,aAA0D;QAE1D,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAiB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA;QACnE,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,WAAW;gBACZ,MAAK;YACT,KAAK,SAAS;gBACV,2DAA2D;gBAC3D,MAAK;YACT,KAAK,uBAAuB;gBACxB,mDAAmD;gBACnD,MAAK;YACT,KAAK,sCAAsC;gBACvC,mDAAmD;gBACnD,MAAK;YACT,KAAK,YAAY;gBACb,mDAAmD;gBACnD,MAAK;YACT,KAAK,SAAS;gBACV,MAAK;YACT;gBACI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;IACL,CAAC;IAED,WAAW,CACP,KAA0B,EAC1B,UAA2C,EAC3C,kBAAoE,EACpE,YAAyD;QAEzD,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAiB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA;QACnE,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,WAAW;gBACZ,MAAK;YACT,KAAK,SAAS;gBACV,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;gBACjF,MAAK;YACT,KAAK,uBAAuB;gBACxB,IAAI,CAAC,qCAAqC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;gBAC/E,MAAK;YACT,KAAK,sCAAsC;gBACvC,IAAI,CAAC,oDAAoD,CACrD,OAAO,CAAC,OAAO,CAAC,KAAK,EACrB,YAAY,CACf,CAAA;gBACD,MAAK;YACT,KAAK,YAAY;gBACb,IAAI,CAAC,mBAAmB,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;gBAClF,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACtD,MAAK;YACT,KAAK,SAAS;gBACV,MAAK;YACT;gBACI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,kDAAkD;QAClD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAA;YACpD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;YACpC,IAAI,CAAC,oBAAoB,GAAG;gBACxB,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;gBAC9C,aAAa;aAChB,CAAA;YACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAA;QAC5C,CAAC;QAED,uEAAuE;QACvE,kCAAkC;QAClC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAA;QAC5C,CAAC;QAED,0CAA0C;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,aAA4B;QACxD,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;YAC1C,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YACpE,MAAM,cAAc,GAAG,UAAU,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;YAChE,IAAI,aAAa,KAAK,IAAI,CAAC,oBAAoB,EAAE,aAAa,EAAE,CAAC;gBAC7D,IAAI,CAAC,UAAU,GAAG,cAAc,CAAA;YACpC,CAAC;YACD,OAAO,cAAc,CAAA;QACzB,CAAC;gBAAS,CAAC;YACP,IAAI,aAAa,KAAK,IAAI,CAAC,oBAAoB,EAAE,aAAa,EAAE,CAAC;gBAC7D,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;YACzC,CAAC;QACL,CAAC;IACL,CAAC;IAEO,qCAAqC,CACzC,OAA2C,EAC3C,YAAyD;QAEzD,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzF,YAAY,EAAE,IAAI,CAAC,6BAA6B,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IACzF,CAAC;IAEO,oDAAoD,CACxD,OAA0D,EAC1D,YAAyD;QAEzD,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAA;QACtE,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;YAC5D,uBAAuB;SAC1B,CAAC,CAAA;QACF,YAAY,EAAE,IAAI,CACd,4CAA4C,EAC5C,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,uBAAuB,CAC1B,CAAA;IACL,CAAC;IAEO,uBAAuB,CAC3B,OAAkE,EAClE,iBAAyB,EACzB,YAA8C;QAE9C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAA;QACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAClD,QAAQ,EAAE,EAAE,CAAC;YACT,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACxB,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;gBAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,IAAI,SAAS,CAAA;gBAC1D,MAAM,uBAAuB,GAAG,OAAO,CAAC,QAAQ,EAAE,uBAAuB,IAAI,KAAK,CAAA;gBAClF,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;oBAC5D,SAAS;oBACT,iBAAiB;oBACjB,UAAU;oBACV,uBAAuB;iBAC1B,CAAC,CAAA;gBACF,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;gBACnE,MAAK;YACT,CAAC;YACD,KAAK,SAAS,CAAC,UAAU;gBACrB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;oBACnD,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;gBACvE,CAAC;gBACD,MAAK;YACT,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;gBACxB,2EAA2E;gBAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;gBACrD,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;gBAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBACpD,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ;oBAC3B,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;wBAC9B,CAAC,CAAC,OAAO,CAAC,UAAU;wBACpB,CAAC,CAAC,SAAS,CAAA;gBACjB,MAAM,uBAAuB,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,uBAAuB,CAAC;oBAChF,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;oBAC1C,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;wBAC3C,CAAC,CAAC,OAAO,CAAC,uBAAuB;wBACjC,CAAC,CAAC,KAAK,CAAA;gBACb,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE;oBAC5D,SAAS;oBACT,iBAAiB;oBACjB,UAAU;oBACV,uBAAuB;iBAC1B,CAAC,CAAA;gBACF,YAAY,EAAE,IAAI,CACd,qBAAqB,EACrB,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,iBAAiB,CACpB,CAAA;gBACD,MAAK;YACT,CAAC;YACD;gBACI,aAAa,CAAC,mBAAmB,EAAE,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACpE,CAAC;IACL,CAAC;IAED,kBAAkB,CACd,QAAgB,EAChB,QAA0B,EAC1B,aAA0D;QAE1D,OAAO;IACX,CAAC;CACJ"}
|
|
@@ -1,27 +1,20 @@
|
|
|
1
1
|
import TypedEmitter from 'typed-emitter';
|
|
2
2
|
import { RemoteTimelineEvent } from './types';
|
|
3
|
-
import {
|
|
3
|
+
import { MembershipOp, Snapshot, UserPayload_Snapshot, UserPayload_UserMembership } from '@towns-protocol/proto';
|
|
4
4
|
import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents';
|
|
5
5
|
import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
|
|
6
|
+
import { UserStreamModel, UserStreamsView } from './views/streams/userStreamsView';
|
|
6
7
|
export declare class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
8
|
+
private readonly userStreamsView;
|
|
7
9
|
readonly streamId: string;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
tipsSentCount: {
|
|
18
|
-
[key: string]: bigint;
|
|
19
|
-
};
|
|
20
|
-
tipsReceivedCount: {
|
|
21
|
-
[key: string]: bigint;
|
|
22
|
-
};
|
|
23
|
-
tokenTransfers: BlockchainTransaction_TokenTransfer[];
|
|
24
|
-
constructor(streamId: string);
|
|
10
|
+
get streamMemberships(): Record<string, UserPayload_UserMembership | undefined>;
|
|
11
|
+
get tipsSent(): Record<string, bigint | undefined>;
|
|
12
|
+
get tipsReceived(): Record<string, bigint | undefined>;
|
|
13
|
+
get tipsSentCount(): Record<string, bigint | undefined>;
|
|
14
|
+
get tipsReceivedCount(): Record<string, bigint | undefined>;
|
|
15
|
+
get tokenTransfers(): import("@towns-protocol/proto").BlockchainTransaction_TokenTransfer[];
|
|
16
|
+
get userStreamModel(): UserStreamModel;
|
|
17
|
+
constructor(streamId: string, userStreamsView: UserStreamsView);
|
|
25
18
|
applySnapshot(snapshot: Snapshot, content: UserPayload_Snapshot, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
|
|
26
19
|
prependEvent(event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
27
20
|
appendEvent(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_User.d.ts","sourceRoot":"","sources":["../src/streamStateView_User.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"streamStateView_User.d.ts","sourceRoot":"","sources":["../src/streamStateView_User.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EACH,YAAY,EACZ,QAAQ,EAER,oBAAoB,EACpB,0BAA0B,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAKnF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAElF,qBAAa,oBAAqB,SAAQ,+BAA+B;IA2BjE,OAAO,CAAC,QAAQ,CAAC,eAAe;IA1BpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,IAAI,iBAAiB,2DAEpB;IACD,IAAI,QAAQ,uCAEX;IACD,IAAI,YAAY,uCAEf;IACD,IAAI,aAAa,uCAEhB;IACD,IAAI,iBAAiB,uCAEpB;IACD,IAAI,cAAc,0EAEjB;IAED,IAAI,eAAe,IAAI,eAAe,CAErC;gBAGG,QAAQ,EAAE,MAAM,EACC,eAAe,EAAE,eAAe;IAMrD,aAAa,CACT,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,oBAAoB,EAC7B,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACpE,IAAI;IAaP,YAAY,CACR,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACpE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAmCP,WAAW,CACP,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACpE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC1D,IAAI;IAgFP,OAAO,CAAC,6BAA6B;IA+BrC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAIvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,GAAG,OAAO;IAI7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGtC"}
|
|
@@ -5,15 +5,32 @@ import { logNever } from './check';
|
|
|
5
5
|
import { streamIdFromBytes } from './id';
|
|
6
6
|
import { utils } from 'ethers';
|
|
7
7
|
export class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
8
|
+
userStreamsView;
|
|
8
9
|
streamId;
|
|
9
|
-
streamMemberships
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
get streamMemberships() {
|
|
11
|
+
return this.userStreamModel.streamMemberships;
|
|
12
|
+
}
|
|
13
|
+
get tipsSent() {
|
|
14
|
+
return this.userStreamModel.tipsSent;
|
|
15
|
+
}
|
|
16
|
+
get tipsReceived() {
|
|
17
|
+
return this.userStreamModel.tipsReceived;
|
|
18
|
+
}
|
|
19
|
+
get tipsSentCount() {
|
|
20
|
+
return this.userStreamModel.tipsSentCount;
|
|
21
|
+
}
|
|
22
|
+
get tipsReceivedCount() {
|
|
23
|
+
return this.userStreamModel.tipsReceivedCount;
|
|
24
|
+
}
|
|
25
|
+
get tokenTransfers() {
|
|
26
|
+
return this.userStreamModel.tokenTransfers;
|
|
27
|
+
}
|
|
28
|
+
get userStreamModel() {
|
|
29
|
+
return this.userStreamsView.get(this.streamId);
|
|
30
|
+
}
|
|
31
|
+
constructor(streamId, userStreamsView) {
|
|
16
32
|
super();
|
|
33
|
+
this.userStreamsView = userStreamsView;
|
|
17
34
|
this.streamId = streamId;
|
|
18
35
|
}
|
|
19
36
|
applySnapshot(snapshot, content, encryptionEmitter) {
|
|
@@ -21,10 +38,12 @@ export class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
|
21
38
|
for (const payload of content.memberships) {
|
|
22
39
|
this.addUserPayload_userMembership(payload, encryptionEmitter);
|
|
23
40
|
}
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
41
|
+
this.userStreamsView.setTips(this.streamId, {
|
|
42
|
+
tipsSent: { ...content.tipsSent },
|
|
43
|
+
tipsReceived: { ...content.tipsReceived },
|
|
44
|
+
tipsSentCount: { ...content.tipsSentCount },
|
|
45
|
+
tipsReceivedCount: { ...content.tipsReceivedCount },
|
|
46
|
+
});
|
|
28
47
|
}
|
|
29
48
|
prependEvent(event, _cleartext, _encryptionEmitter, _stateEmitter) {
|
|
30
49
|
check(event.remoteEvent.event.payload.case === 'userPayload');
|
|
@@ -42,7 +61,7 @@ export class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
|
42
61
|
const transactionContent = payload.content.value.content;
|
|
43
62
|
switch (transactionContent?.case) {
|
|
44
63
|
case 'tokenTransfer':
|
|
45
|
-
this.
|
|
64
|
+
this.userStreamsView.prependTokenTransfer(this.streamId, transactionContent.value);
|
|
46
65
|
break;
|
|
47
66
|
default:
|
|
48
67
|
break;
|
|
@@ -79,13 +98,12 @@ export class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
|
79
98
|
return;
|
|
80
99
|
}
|
|
81
100
|
const currency = utils.getAddress(bin_toHexString(event.currency));
|
|
82
|
-
this.
|
|
83
|
-
this.tipsSentCount[currency] = (this.tipsSentCount[currency] ?? 0n) + 1n;
|
|
101
|
+
this.userStreamsView.appendTipSent(this.streamId, currency, event.amount);
|
|
84
102
|
stateEmitter?.emit('userTipSent', this.streamId, currency, event.amount);
|
|
85
103
|
break;
|
|
86
104
|
}
|
|
87
105
|
case 'tokenTransfer':
|
|
88
|
-
this.
|
|
106
|
+
this.userStreamsView.appendTokenTransfer(this.streamId, transactionContent.value);
|
|
89
107
|
break;
|
|
90
108
|
case 'spaceReview': {
|
|
91
109
|
// user left a review on a space
|
|
@@ -108,10 +126,7 @@ export class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
|
108
126
|
return;
|
|
109
127
|
}
|
|
110
128
|
const currency = utils.getAddress(bin_toHexString(event.currency));
|
|
111
|
-
this.
|
|
112
|
-
(this.tipsReceived[currency] ?? 0n) + event.amount;
|
|
113
|
-
this.tipsReceivedCount[currency] =
|
|
114
|
-
(this.tipsReceivedCount[currency] ?? 0n) + 1n;
|
|
129
|
+
this.userStreamsView.appendTipReceived(this.streamId, currency, event.amount);
|
|
115
130
|
stateEmitter?.emit('userTipReceived', this.streamId, currency, event.amount);
|
|
116
131
|
break;
|
|
117
132
|
}
|
|
@@ -138,7 +153,7 @@ export class StreamStateView_User extends StreamStateView_AbstractContent {
|
|
|
138
153
|
const streamId = streamIdFromBytes(inStreamId);
|
|
139
154
|
const wasInvited = this.streamMemberships[streamId]?.op === MembershipOp.SO_INVITE;
|
|
140
155
|
const wasJoined = this.streamMemberships[streamId]?.op === MembershipOp.SO_JOIN;
|
|
141
|
-
this.
|
|
156
|
+
this.userStreamsView.setMembership(this.streamId, streamId, payload);
|
|
142
157
|
switch (op) {
|
|
143
158
|
case MembershipOp.SO_INVITE:
|
|
144
159
|
emitter?.emit('userInvitedToStream', streamId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_User.js","sourceRoot":"","sources":["../src/streamStateView_User.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"streamStateView_User.js","sourceRoot":"","sources":["../src/streamStateView_User.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,13 @@ import { ConfirmedTimelineEvent, RemoteTimelineEvent } from './types';
|
|
|
3
3
|
import { Snapshot, UserInboxPayload_Snapshot, UserInboxPayload_Snapshot_DeviceSummary } from '@towns-protocol/proto';
|
|
4
4
|
import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
|
|
5
5
|
import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents';
|
|
6
|
+
import { UserInboxStreamModel, UserInboxStreamsView } from './views/streams/userInboxStreams';
|
|
6
7
|
export declare class StreamStateView_UserInbox extends StreamStateView_AbstractContent {
|
|
8
|
+
private userInboxStreamsView;
|
|
7
9
|
readonly streamId: string;
|
|
8
10
|
deviceSummary: Record<string, UserInboxPayload_Snapshot_DeviceSummary>;
|
|
9
|
-
|
|
11
|
+
get userInboxStreamModel(): UserInboxStreamModel;
|
|
12
|
+
constructor(streamId: string, userInboxStreamsView: UserInboxStreamsView);
|
|
10
13
|
applySnapshot(snapshot: Snapshot, content: UserInboxPayload_Snapshot, _emitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
|
|
11
14
|
onConfirmedEvent(event: ConfirmedTimelineEvent, emitter: TypedEmitter<StreamStateEvents> | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
|
|
12
15
|
prependEvent(event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_UserInbox.d.ts","sourceRoot":"","sources":["../src/streamStateView_UserInbox.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAe,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAClF,OAAO,EACH,QAAQ,EAER,yBAAyB,EACzB,uCAAuC,EAG1C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_UserInbox.d.ts","sourceRoot":"","sources":["../src/streamStateView_UserInbox.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAe,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAClF,OAAO,EACH,QAAQ,EAER,yBAAyB,EACzB,uCAAuC,EAG1C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AAE7F,qBAAa,yBAA0B,SAAQ,+BAA+B;IAUtE,OAAO,CAAC,oBAAoB;IAThC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAK;IAE3E,IAAI,oBAAoB,IAAI,oBAAoB,CAE/C;gBAGG,QAAQ,EAAE,MAAM,EACR,oBAAoB,EAAE,oBAAoB;IAMtD,aAAa,CACT,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,yBAAyB,EAClC,QAAQ,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAMP,gBAAgB,CACZ,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,EACpD,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACpE,IAAI;IAIP,YAAY,CACR,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAkBP,WAAW,CACP,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC1D,IAAI;IAmBP,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;CAoB9B"}
|
|
@@ -2,10 +2,15 @@ import { StreamStateView_AbstractContent } from './streamStateView_AbstractConte
|
|
|
2
2
|
import { check } from '@towns-protocol/dlog';
|
|
3
3
|
import { logNever } from './check';
|
|
4
4
|
export class StreamStateView_UserInbox extends StreamStateView_AbstractContent {
|
|
5
|
+
userInboxStreamsView;
|
|
5
6
|
streamId;
|
|
6
7
|
deviceSummary = {};
|
|
7
|
-
|
|
8
|
+
get userInboxStreamModel() {
|
|
9
|
+
return this.userInboxStreamsView.get(this.streamId);
|
|
10
|
+
}
|
|
11
|
+
constructor(streamId, userInboxStreamsView) {
|
|
8
12
|
super();
|
|
13
|
+
this.userInboxStreamsView = userInboxStreamsView;
|
|
9
14
|
this.streamId = streamId;
|
|
10
15
|
}
|
|
11
16
|
applySnapshot(snapshot, content, _emitter) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_UserInbox.js","sourceRoot":"","sources":["../src/streamStateView_UserInbox.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_UserInbox.js","sourceRoot":"","sources":["../src/streamStateView_UserInbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@ import { Snapshot, UserMetadataPayload_Snapshot, ChunkedMedia, type EncryptedDat
|
|
|
4
4
|
import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
|
|
5
5
|
import { UserDevice } from '@towns-protocol/encryption';
|
|
6
6
|
import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents';
|
|
7
|
+
import { UserMetadataStreamModel, UserMetadataStreamsView } from './views/streams/userMetadataStreams';
|
|
7
8
|
export declare class StreamStateView_UserMetadata extends StreamStateView_AbstractContent {
|
|
9
|
+
private userMetadataStreamsView;
|
|
8
10
|
readonly streamId: string;
|
|
9
11
|
readonly streamCreatorId: string;
|
|
10
12
|
private profileImage;
|
|
@@ -13,7 +15,8 @@ export declare class StreamStateView_UserMetadata extends StreamStateView_Abstra
|
|
|
13
15
|
encryptedBio: EncryptedData | undefined;
|
|
14
16
|
private decryptionInProgress;
|
|
15
17
|
readonly deviceKeys: UserDevice[];
|
|
16
|
-
|
|
18
|
+
get streamMetadataModel(): UserMetadataStreamModel;
|
|
19
|
+
constructor(streamId: string, userMetadataStreamsView: UserMetadataStreamsView);
|
|
17
20
|
applySnapshot(snapshot: Snapshot, content: UserMetadataPayload_Snapshot, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
|
|
18
21
|
prependEvent(_event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
19
22
|
appendEvent(event: RemoteTimelineEvent, _cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_UserMetadata.d.ts","sourceRoot":"","sources":["../src/streamStateView_UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EACH,QAAQ,EAGR,4BAA4B,EAC5B,YAAY,EACZ,KAAK,aAAa,EAClB,OAAO,EAGV,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_UserMetadata.d.ts","sourceRoot":"","sources":["../src/streamStateView_UserMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EACH,QAAQ,EAGR,4BAA4B,EAC5B,YAAY,EACZ,KAAK,aAAa,EAClB,OAAO,EAGV,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAI1E,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,qCAAqC,CAAA;AAE5C,qBAAa,4BAA6B,SAAQ,+BAA+B;IAqBzE,OAAO,CAAC,uBAAuB;IApBnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,OAAO,CAAC,YAAY,CAA0B;IAC9C,qBAAqB,EAAE,aAAa,GAAG,SAAS,CAAA;IAChD,OAAO,CAAC,GAAG,CAAqB;IAChC,YAAY,EAAE,aAAa,GAAG,SAAS,CAAA;IACvC,OAAO,CAAC,oBAAoB,CAGY;IAGxC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,CAAK;IAEtC,IAAI,mBAAmB,IAAI,uBAAuB,CAEjD;gBAGG,QAAQ,EAAE,MAAM,EACR,uBAAuB,EAAE,uBAAuB;IAO5D,aAAa,CACT,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,4BAA4B,EACrC,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACpE,IAAI;IAaP,YAAY,CACR,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACpE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAIP,WAAW,CACP,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC3C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC1D,IAAI;IAsBP,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,MAAM;IAKD,eAAe;IAkCf,MAAM;YAkCL,OAAO;CAcxB"}
|
|
@@ -6,6 +6,7 @@ import { getUserIdFromStreamId } from './id';
|
|
|
6
6
|
import { decryptDerivedAESGCM } from '@towns-protocol/sdk-crypto';
|
|
7
7
|
import { fromBinary } from '@bufbuild/protobuf';
|
|
8
8
|
export class StreamStateView_UserMetadata extends StreamStateView_AbstractContent {
|
|
9
|
+
userMetadataStreamsView;
|
|
9
10
|
streamId;
|
|
10
11
|
streamCreatorId;
|
|
11
12
|
profileImage;
|
|
@@ -15,8 +16,12 @@ export class StreamStateView_UserMetadata extends StreamStateView_AbstractConten
|
|
|
15
16
|
decryptionInProgress = { bio: undefined, image: undefined };
|
|
16
17
|
// user_id -> device_keys, fallback_keys
|
|
17
18
|
deviceKeys = [];
|
|
18
|
-
|
|
19
|
+
get streamMetadataModel() {
|
|
20
|
+
return this.userMetadataStreamsView.get(this.streamId);
|
|
21
|
+
}
|
|
22
|
+
constructor(streamId, userMetadataStreamsView) {
|
|
19
23
|
super();
|
|
24
|
+
this.userMetadataStreamsView = userMetadataStreamsView;
|
|
20
25
|
this.streamId = streamId;
|
|
21
26
|
this.streamCreatorId = getUserIdFromStreamId(streamId);
|
|
22
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_UserMetadata.js","sourceRoot":"","sources":["../src/streamStateView_UserMetadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAQH,kBAAkB,EAClB,aAAa,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGlC,OAAO,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"streamStateView_UserMetadata.js","sourceRoot":"","sources":["../src/streamStateView_UserMetadata.ts"],"names":[],"mappings":"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"}
|