@towns-protocol/sdk 0.0.252 → 0.0.255
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 +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -5
- package/dist/client.js.map +1 -1
- package/dist/clientDecryptionExtensions.d.ts +2 -1
- package/dist/clientDecryptionExtensions.d.ts.map +1 -1
- package/dist/clientDecryptionExtensions.js +1 -1
- package/dist/clientDecryptionExtensions.js.map +1 -1
- package/dist/decryptionExtensions.d.ts +199 -0
- package/dist/decryptionExtensions.d.ts.map +1 -0
- package/dist/decryptionExtensions.js +678 -0
- package/dist/decryptionExtensions.js.map +1 -0
- package/dist/index.d.ts +21 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -5
- 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/observable.d.ts +1 -1
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/observable/observable.js +1 -4
- package/dist/observable/observable.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/observable/utils.d.ts +2 -0
- package/dist/observable/utils.d.ts.map +1 -0
- package/dist/observable/utils.js +12 -0
- package/dist/observable/utils.js.map +1 -0
- package/dist/stream.d.ts +1 -1
- package/dist/stream.d.ts.map +1 -1
- package/dist/streamEvents.d.ts +2 -1
- package/dist/streamEvents.d.ts.map +1 -1
- package/dist/streamStateView.d.ts +1 -1
- package/dist/streamStateView.d.ts.map +1 -1
- package/dist/streamStateView.js +9 -9
- package/dist/streamStateView.js.map +1 -1
- package/dist/streamStateView_ChannelMetadata.d.ts +10 -10
- package/dist/streamStateView_ChannelMetadata.d.ts.map +1 -1
- package/dist/streamStateView_ChannelMetadata.js +43 -23
- package/dist/streamStateView_ChannelMetadata.js.map +1 -1
- package/dist/streamStateView_DMChannel.d.ts +7 -4
- package/dist/streamStateView_DMChannel.d.ts.map +1 -1
- package/dist/streamStateView_DMChannel.js +18 -8
- package/dist/streamStateView_DMChannel.js.map +1 -1
- package/dist/streamStateView_GDMChannel.d.ts +5 -2
- package/dist/streamStateView_GDMChannel.d.ts.map +1 -1
- package/dist/streamStateView_GDMChannel.js +12 -5
- package/dist/streamStateView_GDMChannel.js.map +1 -1
- package/dist/streamStateView_Members.d.ts +5 -2
- package/dist/streamStateView_Members.d.ts.map +1 -1
- package/dist/streamStateView_Members.js +11 -1
- package/dist/streamStateView_Members.js.map +1 -1
- package/dist/streamStateView_Members_Solicitations.d.ts +1 -1
- package/dist/streamStateView_Members_Solicitations.d.ts.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/entitlements/entitlements.d.ts +1 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts +2 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.js.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts +2 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.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/timeline/models/timeline-types.d.ts +1 -2
- package/dist/sync-agent/timeline/models/timeline-types.d.ts.map +1 -1
- package/dist/sync-agent/timeline/models/timeline-types.js +1 -2
- package/dist/sync-agent/timeline/models/timeline-types.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/client.test.js +2 -1
- package/dist/tests/multi_ne/client.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/testUtils.d.ts +1 -1
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/unit/decryptionExtensions.test.d.ts +2 -0
- package/dist/tests/unit/decryptionExtensions.test.d.ts.map +1 -0
- package/dist/tests/unit/decryptionExtensions.test.js +353 -0
- package/dist/tests/unit/decryptionExtensions.test.js.map +1 -0
- package/dist/tests/unit/observable/combine.test.js +23 -23
- package/dist/tests/unit/observable/combine.test.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.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 +16 -0
- package/dist/views/streams/gdmStreams.d.ts.map +1 -0
- package/dist/views/streams/gdmStreams.js +40 -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/streamMemberIds.d.ts +8 -0
- package/dist/views/streams/streamMemberIds.d.ts.map +1 -0
- package/dist/views/streams/streamMemberIds.js +34 -0
- package/dist/views/streams/streamMemberIds.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/timelineEvents.d.ts +1 -1
- package/dist/views/streams/timelines.d.ts +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.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 +28 -2
- package/dist/views/streamsView.d.ts.map +1 -1
- package/dist/views/streamsView.js +71 -10
- package/dist/views/streamsView.js.map +1 -1
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts +24 -0
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -0
- package/dist/views/transforms/dmsAndGdmsTransform.js +63 -0
- package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -0
- package/dist/views/transforms/membershipsTransform.d.ts +4 -0
- package/dist/views/transforms/membershipsTransform.d.ts.map +1 -0
- package/dist/views/transforms/membershipsTransform.js +16 -0
- package/dist/views/transforms/membershipsTransform.js.map +1 -0
- package/dist/views/transforms/spaceIdsTransform.d.ts +3 -0
- package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -0
- package/dist/views/transforms/spaceIdsTransform.js +14 -0
- package/dist/views/transforms/spaceIdsTransform.js.map +1 -0
- package/package.json +9 -9
|
@@ -1,43 +1,55 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { UserSettingsPayload_Snapshot_UserBlocksSchema, } from '@towns-protocol/proto';
|
|
2
|
+
import { create } from '@bufbuild/protobuf';
|
|
3
|
+
import { ObservableRecord } from '../../observable/observableRecord';
|
|
4
|
+
const EMPTY_USER_BLOCKS = create(UserSettingsPayload_Snapshot_UserBlocksSchema, {
|
|
5
|
+
blocks: [],
|
|
6
|
+
userId: new Uint8Array(),
|
|
7
|
+
});
|
|
8
|
+
export class UserSettingsStreamsView extends ObservableRecord {
|
|
3
9
|
constructor() {
|
|
4
|
-
super({
|
|
10
|
+
super({
|
|
11
|
+
makeDefault: (userSettingsStreamId) => ({
|
|
12
|
+
streamId: userSettingsStreamId,
|
|
13
|
+
fullyReadMarkers: {},
|
|
14
|
+
userBlocks: {},
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
5
17
|
}
|
|
6
|
-
setFullyReadMarkers(
|
|
18
|
+
setFullyReadMarkers(userSettingsStreamId, streamId, fullyReadMarkers) {
|
|
7
19
|
this.set((prev) => ({
|
|
8
20
|
...prev,
|
|
9
|
-
[
|
|
10
|
-
...prev[
|
|
21
|
+
[userSettingsStreamId]: {
|
|
22
|
+
...(prev[userSettingsStreamId] ?? this.makeDefault(userSettingsStreamId)),
|
|
11
23
|
fullyReadMarkers: {
|
|
12
|
-
...(prev[
|
|
24
|
+
...(prev[userSettingsStreamId]?.fullyReadMarkers ?? {}),
|
|
13
25
|
[streamId]: fullyReadMarkers,
|
|
14
26
|
},
|
|
15
27
|
},
|
|
16
28
|
}));
|
|
17
29
|
}
|
|
18
|
-
setUserBlocks(
|
|
30
|
+
setUserBlocks(userSettingsStreamId, userId, userBlocks) {
|
|
19
31
|
this.set((prev) => ({
|
|
20
32
|
...prev,
|
|
21
|
-
[
|
|
22
|
-
...prev[
|
|
33
|
+
[userSettingsStreamId]: {
|
|
34
|
+
...(prev[userSettingsStreamId] ?? this.makeDefault(userSettingsStreamId)),
|
|
23
35
|
userBlocks: {
|
|
24
|
-
...(prev[
|
|
36
|
+
...(prev[userSettingsStreamId]?.userBlocks ?? {}),
|
|
25
37
|
[userId]: userBlocks,
|
|
26
38
|
},
|
|
27
39
|
},
|
|
28
40
|
}));
|
|
29
41
|
}
|
|
30
|
-
updateUserBlock(
|
|
42
|
+
updateUserBlock(userSettingsStreamId, userId, userBlock) {
|
|
31
43
|
this.set((prev) => ({
|
|
32
44
|
...prev,
|
|
33
|
-
[
|
|
34
|
-
...prev[
|
|
45
|
+
[userSettingsStreamId]: {
|
|
46
|
+
...(prev[userSettingsStreamId] ?? this.makeDefault(userSettingsStreamId)),
|
|
35
47
|
userBlocks: {
|
|
36
|
-
...(prev[
|
|
48
|
+
...(prev[userSettingsStreamId]?.userBlocks ?? {}),
|
|
37
49
|
[userId]: {
|
|
38
|
-
...(prev[
|
|
50
|
+
...(prev[userSettingsStreamId]?.userBlocks[userId] ?? EMPTY_USER_BLOCKS),
|
|
39
51
|
blocks: [
|
|
40
|
-
...(prev[
|
|
52
|
+
...(prev[userSettingsStreamId]?.userBlocks[userId]?.blocks ?? []),
|
|
41
53
|
userBlock,
|
|
42
54
|
],
|
|
43
55
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userSettingsStreams.js","sourceRoot":"","sources":["../../../src/views/streams/userSettingsStreams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"userSettingsStreams.js","sourceRoot":"","sources":["../../../src/views/streams/userSettingsStreams.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,6CAA6C,GAChD,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAQpE,MAAM,iBAAiB,GAA4C,MAAM,CACrE,6CAA6C,EAC7C;IACI,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,IAAI,UAAU,EAAE;CAC3B,CACJ,CAAA;AAED,MAAM,OAAO,uBAAwB,SAAQ,gBAAiD;IAC1F;QACI,KAAK,CAAC;YACF,WAAW,EAAE,CAAC,oBAA4B,EAA2B,EAAE,CAAC,CAAC;gBACrE,QAAQ,EAAE,oBAAoB;gBAC9B,gBAAgB,EAAE,EAAE;gBACpB,UAAU,EAAE,EAAE;aACjB,CAAC;SACL,CAAC,CAAA;IACN,CAAC;IAED,mBAAmB,CACf,oBAA4B,EAC5B,QAAgB,EAChB,gBAAiD;QAEjD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,CAAC,oBAAoB,CAAC,EAAE;gBACpB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACzE,gBAAgB,EAAE;oBACd,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,IAAI,EAAE,CAAC;oBACvD,CAAC,QAAQ,CAAC,EAAE,gBAAgB;iBAC/B;aACJ;SACJ,CAAC,CAAC,CAAA;IACP,CAAC;IAED,aAAa,CACT,oBAA4B,EAC5B,MAAc,EACd,UAAmD;QAEnD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,CAAC,oBAAoB,CAAC,EAAE;gBACpB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACzE,UAAU,EAAE;oBACR,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;oBACjD,CAAC,MAAM,CAAC,EAAE,UAAU;iBACvB;aACJ;SACJ,CAAC,CAAC,CAAA;IACP,CAAC;IAED,eAAe,CACX,oBAA4B,EAC5B,MAAc,EACd,SAAwD;QAExD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,CAAC,oBAAoB,CAAC,EAAE;gBACpB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;gBACzE,UAAU,EAAE;oBACR,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;oBACjD,CAAC,MAAM,CAAC,EAAE;wBACN,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC;wBACxE,MAAM,EAAE;4BACJ,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;4BACjE,SAAS;yBACZ;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC,CAAA;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BlockchainTransaction_TokenTransfer, UserPayload_UserMembership } from '@towns-protocol/proto';
|
|
2
|
+
import { ObservableRecord } from '../../observable/observableRecord';
|
|
3
|
+
export interface UserStreamModel {
|
|
4
|
+
streamId: string;
|
|
5
|
+
streamMemberships: Record<string, UserPayload_UserMembership | undefined>;
|
|
6
|
+
tipsSent: Record<string, bigint | undefined>;
|
|
7
|
+
tipsReceived: Record<string, bigint | undefined>;
|
|
8
|
+
tipsSentCount: Record<string, bigint | undefined>;
|
|
9
|
+
tipsReceivedCount: Record<string, bigint | undefined>;
|
|
10
|
+
tokenTransfers: BlockchainTransaction_TokenTransfer[];
|
|
11
|
+
}
|
|
12
|
+
export declare class UserStreamsView extends ObservableRecord<string, UserStreamModel> {
|
|
13
|
+
constructor();
|
|
14
|
+
setMembership(userStreamId: string, streamId: string, membership: UserPayload_UserMembership): void;
|
|
15
|
+
setTips(userStreamId: string, tips: {
|
|
16
|
+
tipsSent: Record<string, bigint>;
|
|
17
|
+
tipsReceived: Record<string, bigint>;
|
|
18
|
+
tipsSentCount: Record<string, bigint>;
|
|
19
|
+
tipsReceivedCount: Record<string, bigint>;
|
|
20
|
+
}): void;
|
|
21
|
+
prependTokenTransfer(userStreamId: string, tokenTransfer: BlockchainTransaction_TokenTransfer): void;
|
|
22
|
+
appendTokenTransfer(userStreamId: string, tokenTransfer: BlockchainTransaction_TokenTransfer): void;
|
|
23
|
+
appendTipSent(userStreamId: string, currency: string, amount: bigint): void;
|
|
24
|
+
appendTipReceived(userStreamId: string, currency: string, amount: bigint): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=userStreamsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userStreamsView.d.ts","sourceRoot":"","sources":["../../../src/views/streams/userStreamsView.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mCAAmC,EACnC,0BAA0B,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAAA;IACzE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC5C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAChD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACjD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACrD,cAAc,EAAE,mCAAmC,EAAE,CAAA;CACxD;AAED,qBAAa,eAAgB,SAAQ,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC;;IAe1E,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,0BAA0B;IAgB5F,OAAO,CACH,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;QACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACrC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAC5C;IAcL,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,mCAAmC;IAa7F,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,mCAAmC;IAa5F,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoBpE,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAmB3E"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ObservableRecord } from '../../observable/observableRecord';
|
|
2
|
+
export class UserStreamsView extends ObservableRecord {
|
|
3
|
+
constructor() {
|
|
4
|
+
super({
|
|
5
|
+
makeDefault: (userStreamId) => ({
|
|
6
|
+
streamId: userStreamId,
|
|
7
|
+
streamMemberships: {},
|
|
8
|
+
tipsSent: {},
|
|
9
|
+
tipsReceived: {},
|
|
10
|
+
tipsSentCount: {},
|
|
11
|
+
tipsReceivedCount: {},
|
|
12
|
+
tokenTransfers: [],
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
setMembership(userStreamId, streamId, membership) {
|
|
17
|
+
this.set((prev) => {
|
|
18
|
+
const prevStream = prev[userStreamId] ?? this.makeDefault(userStreamId);
|
|
19
|
+
return {
|
|
20
|
+
...prev,
|
|
21
|
+
[userStreamId]: {
|
|
22
|
+
...prevStream,
|
|
23
|
+
streamMemberships: {
|
|
24
|
+
...prevStream.streamMemberships,
|
|
25
|
+
[streamId]: membership,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
setTips(userStreamId, tips) {
|
|
32
|
+
this.set((prev) => {
|
|
33
|
+
const prevStream = prev[userStreamId] ?? this.makeDefault(userStreamId);
|
|
34
|
+
return {
|
|
35
|
+
...prev,
|
|
36
|
+
[userStreamId]: {
|
|
37
|
+
...prevStream,
|
|
38
|
+
...tips,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
prependTokenTransfer(userStreamId, tokenTransfer) {
|
|
44
|
+
this.set((prev) => {
|
|
45
|
+
const prevStream = prev[userStreamId] ?? this.makeDefault(userStreamId);
|
|
46
|
+
return {
|
|
47
|
+
...prev,
|
|
48
|
+
[userStreamId]: {
|
|
49
|
+
...prevStream,
|
|
50
|
+
tokenTransfers: [tokenTransfer, ...prevStream.tokenTransfers],
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
appendTokenTransfer(userStreamId, tokenTransfer) {
|
|
56
|
+
this.set((prev) => {
|
|
57
|
+
const prevStream = prev[userStreamId] ?? this.makeDefault(userStreamId);
|
|
58
|
+
return {
|
|
59
|
+
...prev,
|
|
60
|
+
[userStreamId]: {
|
|
61
|
+
...prevStream,
|
|
62
|
+
tokenTransfers: [...prevStream.tokenTransfers, tokenTransfer],
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
appendTipSent(userStreamId, currency, amount) {
|
|
68
|
+
this.set((prev) => {
|
|
69
|
+
const prevStream = prev[userStreamId] ?? this.makeDefault(userStreamId);
|
|
70
|
+
return {
|
|
71
|
+
...prev,
|
|
72
|
+
[userStreamId]: {
|
|
73
|
+
...prevStream,
|
|
74
|
+
tipsSent: {
|
|
75
|
+
...prevStream.tipsSent,
|
|
76
|
+
[currency]: (prevStream.tipsSent[currency] ?? 0n) + amount,
|
|
77
|
+
},
|
|
78
|
+
tipsSentCount: {
|
|
79
|
+
...prevStream.tipsSentCount,
|
|
80
|
+
[currency]: (prevStream.tipsSentCount[currency] ?? 0n) + 1n,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
appendTipReceived(userStreamId, currency, amount) {
|
|
87
|
+
this.set((prev) => {
|
|
88
|
+
const prevStream = prev[userStreamId] ?? this.makeDefault(userStreamId);
|
|
89
|
+
return {
|
|
90
|
+
...prev,
|
|
91
|
+
[userStreamId]: {
|
|
92
|
+
...prevStream,
|
|
93
|
+
tipsReceived: {
|
|
94
|
+
...prevStream.tipsReceived,
|
|
95
|
+
[currency]: (prevStream.tipsReceived[currency] ?? 0n) + amount,
|
|
96
|
+
},
|
|
97
|
+
tipsReceivedCount: {
|
|
98
|
+
...prevStream.tipsReceivedCount,
|
|
99
|
+
[currency]: (prevStream.tipsReceivedCount[currency] ?? 0n) + 1n,
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=userStreamsView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userStreamsView.js","sourceRoot":"","sources":["../../../src/views/streams/userStreamsView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,43 @@
|
|
|
1
1
|
import { Observable } from '../observable/observable';
|
|
2
2
|
import { StreamStatus } from './streams/streamStatus';
|
|
3
3
|
import { TimelinesView, TimelinesViewDelegate } from './streams/timelines';
|
|
4
|
-
import {
|
|
4
|
+
import { UserSettingsStreamModel, UserSettingsStreamsView } from './streams/userSettingsStreams';
|
|
5
5
|
import { UnreadMarkersModel } from './streams/unreadMarkersTransform';
|
|
6
6
|
import { MentionsModel } from './streams/spaceMentionsTransform';
|
|
7
|
+
import { SpaceStreamsView } from './streams/spaceStreams';
|
|
8
|
+
import { UserStreamModel, UserStreamsView } from './streams/userStreamsView';
|
|
9
|
+
import { UserMetadataStreamModel, UserMetadataStreamsView } from './streams/userMetadataStreams';
|
|
10
|
+
import { UserInboxStreamModel, UserInboxStreamsView } from './streams/userInboxStreams';
|
|
11
|
+
import { ChannelStreamsView } from './streams/channelStreams';
|
|
12
|
+
import { DmStreamsView } from './streams/dmStreams';
|
|
13
|
+
import { GdmStreamsView } from './streams/gdmStreams';
|
|
14
|
+
import { Membership } from '../sync-agent/timeline/models/timeline-types';
|
|
15
|
+
import { DmAndGdmModel } from './transforms/dmsAndGdmsTransform';
|
|
16
|
+
import { StreamMemberIdsView } from './streams/streamMemberIds';
|
|
7
17
|
export type StreamsViewDelegate = TimelinesViewDelegate;
|
|
8
18
|
export declare class StreamsView {
|
|
9
19
|
readonly streamStatus: StreamStatus;
|
|
20
|
+
readonly streamMemberIds: StreamMemberIdsView;
|
|
21
|
+
readonly spaceStreams: SpaceStreamsView;
|
|
22
|
+
readonly channelStreams: ChannelStreamsView;
|
|
23
|
+
readonly dmStreams: DmStreamsView;
|
|
24
|
+
readonly gdmStreams: GdmStreamsView;
|
|
25
|
+
readonly userStreams: UserStreamsView;
|
|
26
|
+
readonly userInboxStreams: UserInboxStreamsView;
|
|
27
|
+
readonly userMetadataStreams: UserMetadataStreamsView;
|
|
28
|
+
readonly userSettingsStreams: UserSettingsStreamsView;
|
|
10
29
|
readonly timelinesView: TimelinesView;
|
|
11
|
-
readonly userSettingsStreams: UserSettingsStreams;
|
|
12
30
|
readonly my: {
|
|
31
|
+
userId: Observable<string>;
|
|
32
|
+
userStream: Observable<UserStreamModel | undefined>;
|
|
33
|
+
userInboxStream: Observable<UserInboxStreamModel | undefined>;
|
|
34
|
+
userMetadataStream: Observable<UserMetadataStreamModel | undefined>;
|
|
35
|
+
userSettingsStream: Observable<UserSettingsStreamModel | undefined>;
|
|
13
36
|
unreadMarkers: Observable<UnreadMarkersModel>;
|
|
14
37
|
spaceMentions: Observable<MentionsModel>;
|
|
38
|
+
memberships: Observable<Record<string, Membership>>;
|
|
39
|
+
spaceIds: Observable<string[]>;
|
|
40
|
+
dmsAndGdms: Observable<DmAndGdmModel[]>;
|
|
15
41
|
};
|
|
16
42
|
constructor(userId: string, delegate: StreamsViewDelegate | undefined);
|
|
17
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamsView.d.ts","sourceRoot":"","sources":["../../src/views/streamsView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"streamsView.d.ts","sourceRoot":"","sources":["../../src/views/streamsView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAO1E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAChG,OAAO,EAAE,kBAAkB,EAA0B,MAAM,kCAAkC,CAAA;AAC7F,OAAO,EAAE,aAAa,EAA0B,MAAM,kCAAkC,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAChG,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAEzE,OAAO,EAAE,aAAa,EAAuB,MAAM,kCAAkC,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAGvD,qBAAa,WAAW;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,eAAe,EAAE,mBAAmB,CAAA;IAC7C,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAA;IACvC,QAAQ,CAAC,cAAc,EAAE,kBAAkB,CAAA;IAC3C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;IACrC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAA;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,uBAAuB,CAAA;IACrD,QAAQ,CAAC,mBAAmB,EAAE,uBAAuB,CAAA;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,EAAE,EAAE;QACT,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;QAC1B,UAAU,EAAE,UAAU,CAAC,eAAe,GAAG,SAAS,CAAC,CAAA;QACnD,eAAe,EAAE,UAAU,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAA;QAC7D,kBAAkB,EAAE,UAAU,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAA;QACnE,kBAAkB,EAAE,UAAU,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAA;QACnE,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAC7C,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;QACxC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;QACnD,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9B,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC,CAAA;KAC1C,CAAA;gBAEW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,SAAS;CA+ExE"}
|
|
@@ -1,41 +1,102 @@
|
|
|
1
1
|
import { Observable } from '../observable/observable';
|
|
2
|
-
import {
|
|
2
|
+
import { combine } from '../observable/combine';
|
|
3
3
|
import { StreamStatus } from './streams/streamStatus';
|
|
4
4
|
import { TimelinesView } from './streams/timelines';
|
|
5
|
-
import { makeUserSettingsStreamId } from '../id';
|
|
6
|
-
import {
|
|
5
|
+
import { makeUserInboxStreamId, makeUserMetadataStreamId, makeUserSettingsStreamId, makeUserStreamId, } from '../id';
|
|
6
|
+
import { UserSettingsStreamsView } from './streams/userSettingsStreams';
|
|
7
7
|
import { unreadMarkersTransform } from './streams/unreadMarkersTransform';
|
|
8
8
|
import { spaceMentionsTransform } from './streams/spaceMentionsTransform';
|
|
9
|
+
import { SpaceStreamsView } from './streams/spaceStreams';
|
|
10
|
+
import { UserStreamsView } from './streams/userStreamsView';
|
|
11
|
+
import { UserMetadataStreamsView } from './streams/userMetadataStreams';
|
|
12
|
+
import { UserInboxStreamsView } from './streams/userInboxStreams';
|
|
13
|
+
import { ChannelStreamsView } from './streams/channelStreams';
|
|
14
|
+
import { DmStreamsView } from './streams/dmStreams';
|
|
15
|
+
import { GdmStreamsView } from './streams/gdmStreams';
|
|
16
|
+
import { membershipsTransform } from './transforms/membershipsTransform';
|
|
17
|
+
import { spaceIdsTransform } from './transforms/spaceIdsTransform';
|
|
18
|
+
import { dmsAndGdmsTransform } from './transforms/dmsAndGdmsTransform';
|
|
19
|
+
import { StreamMemberIdsView } from './streams/streamMemberIds';
|
|
9
20
|
// a view of all the streams
|
|
10
21
|
export class StreamsView {
|
|
11
22
|
streamStatus;
|
|
12
|
-
|
|
23
|
+
streamMemberIds;
|
|
24
|
+
spaceStreams;
|
|
25
|
+
channelStreams;
|
|
26
|
+
dmStreams;
|
|
27
|
+
gdmStreams;
|
|
28
|
+
userStreams;
|
|
29
|
+
userInboxStreams;
|
|
30
|
+
userMetadataStreams;
|
|
13
31
|
userSettingsStreams;
|
|
32
|
+
timelinesView;
|
|
14
33
|
my;
|
|
15
34
|
constructor(userId, delegate) {
|
|
35
|
+
const myUserId = new Observable(userId);
|
|
36
|
+
const userStreamId = userId !== '' ? makeUserStreamId(userId) : '';
|
|
37
|
+
const userInboxStreamId = userId !== '' ? makeUserInboxStreamId(userId) : '';
|
|
38
|
+
const userMetadataStreamId = userId !== '' ? makeUserMetadataStreamId(userId) : '';
|
|
16
39
|
const userSettingsStreamId = userId !== '' ? makeUserSettingsStreamId(userId) : '';
|
|
17
|
-
this.timelinesView = new TimelinesView(userId, delegate);
|
|
18
|
-
this.userSettingsStreams = new UserSettingsStreams();
|
|
19
40
|
this.streamStatus = new StreamStatus();
|
|
41
|
+
this.streamMemberIds = new StreamMemberIdsView();
|
|
42
|
+
this.userSettingsStreams = new UserSettingsStreamsView();
|
|
43
|
+
this.spaceStreams = new SpaceStreamsView();
|
|
44
|
+
this.channelStreams = new ChannelStreamsView();
|
|
45
|
+
this.dmStreams = new DmStreamsView();
|
|
46
|
+
this.gdmStreams = new GdmStreamsView();
|
|
47
|
+
this.userStreams = new UserStreamsView();
|
|
48
|
+
this.userMetadataStreams = new UserMetadataStreamsView();
|
|
49
|
+
this.userInboxStreams = new UserInboxStreamsView();
|
|
50
|
+
this.timelinesView = new TimelinesView(userId, delegate);
|
|
51
|
+
// throttle the timelines for subsequent observers
|
|
20
52
|
const throttledTimelinesView = this.timelinesView.throttle(15);
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
53
|
+
// map my streams
|
|
54
|
+
const myUserStream = this.userStreams.map((x) => x[userStreamId]);
|
|
55
|
+
const myUserInboxStream = this.userInboxStreams.map((x) => x[userInboxStreamId]);
|
|
56
|
+
const myUserMetadataStream = this.userMetadataStreams.map((x) => x[userMetadataStreamId]);
|
|
57
|
+
const myUserSettingsStream = this.userSettingsStreams.map((x) => x[userSettingsStreamId]);
|
|
58
|
+
// grab the remote fully read markers
|
|
59
|
+
const myRemoteFullyReadMarkers = myUserSettingsStream.map((x) => x?.fullyReadMarkers ?? {});
|
|
60
|
+
// combine the userId, my remote fully read markers, and the timelines view
|
|
61
|
+
// to get the unread markers
|
|
62
|
+
const unreadMarkers = combine({
|
|
63
|
+
userId: myUserId,
|
|
24
64
|
myRemoteFullyReadMarkers: myRemoteFullyReadMarkers.throttle(10),
|
|
25
65
|
timelinesView: throttledTimelinesView,
|
|
26
66
|
})
|
|
27
67
|
.throttle(250)
|
|
28
68
|
.map(unreadMarkersTransform);
|
|
29
|
-
|
|
69
|
+
// grab the space mentions
|
|
70
|
+
const spaceMentions = combine({
|
|
30
71
|
timelinesView: throttledTimelinesView,
|
|
31
72
|
fullyReadMarkers: unreadMarkers,
|
|
32
73
|
})
|
|
33
74
|
.throttle(250)
|
|
34
75
|
.map(spaceMentionsTransform);
|
|
76
|
+
const throttledMyUserStream = myUserStream.throttle(10);
|
|
77
|
+
const myMemberships = throttledMyUserStream.map(membershipsTransform);
|
|
78
|
+
const mySpaceIds = myMemberships.map(spaceIdsTransform);
|
|
79
|
+
const myDmsAndGdms = combine({
|
|
80
|
+
userId: myUserId,
|
|
81
|
+
memberships: myMemberships,
|
|
82
|
+
streamMemberIds: this.streamMemberIds,
|
|
83
|
+
dmStreams: this.dmStreams,
|
|
84
|
+
gdmStreams: this.gdmStreams,
|
|
85
|
+
})
|
|
86
|
+
.throttle(250)
|
|
87
|
+
.map(dmsAndGdmsTransform);
|
|
35
88
|
///
|
|
36
89
|
this.my = {
|
|
90
|
+
userId: myUserId,
|
|
91
|
+
userStream: myUserStream,
|
|
92
|
+
userInboxStream: myUserInboxStream,
|
|
93
|
+
userMetadataStream: myUserMetadataStream,
|
|
94
|
+
userSettingsStream: myUserSettingsStream,
|
|
37
95
|
unreadMarkers,
|
|
38
96
|
spaceMentions,
|
|
97
|
+
memberships: myMemberships,
|
|
98
|
+
spaceIds: mySpaceIds,
|
|
99
|
+
dmsAndGdms: myDmsAndGdms,
|
|
39
100
|
};
|
|
40
101
|
}
|
|
41
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamsView.js","sourceRoot":"","sources":["../../src/views/streamsView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAA;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"streamsView.js","sourceRoot":"","sources":["../../src/views/streamsView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAyB,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EACH,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,GACnB,MAAM,OAAO,CAAA;AACd,OAAO,EAA2B,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAChG,OAAO,EAAsB,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC7F,OAAO,EAAiB,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAmB,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAA2B,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAChG,OAAO,EAAwB,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAI/D,4BAA4B;AAC5B,MAAM,OAAO,WAAW;IACX,YAAY,CAAc;IAC1B,eAAe,CAAqB;IACpC,YAAY,CAAkB;IAC9B,cAAc,CAAoB;IAClC,SAAS,CAAe;IACxB,UAAU,CAAgB;IAC1B,WAAW,CAAiB;IAC5B,gBAAgB,CAAsB;IACtC,mBAAmB,CAAyB;IAC5C,mBAAmB,CAAyB;IAC5C,aAAa,CAAe;IAC5B,EAAE,CAWV;IAED,YAAY,MAAc,EAAE,QAAyC;QACjE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,YAAY,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAClE,MAAM,iBAAiB,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5E,MAAM,oBAAoB,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAClF,MAAM,oBAAoB,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAElF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAA;QAChD,IAAI,CAAC,mBAAmB,GAAG,IAAI,uBAAuB,EAAE,CAAA;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAkB,EAAE,CAAA;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,EAAE,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,EAAE,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,IAAI,CAAC,mBAAmB,GAAG,IAAI,uBAAuB,EAAE,CAAA;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,oBAAoB,EAAE,CAAA;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAExD,kDAAkD;QAClD,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE9D,iBAAiB;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;QACjE,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAChF,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QACzF,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAA;QAEzF,qCAAqC;QACrC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAA;QAE3F,2EAA2E;QAC3E,4BAA4B;QAC5B,MAAM,aAAa,GAAG,OAAO,CAAC;YAC1B,MAAM,EAAE,QAAQ;YAChB,wBAAwB,EAAE,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,aAAa,EAAE,sBAAsB;SACxC,CAAC;aACG,QAAQ,CAAC,GAAG,CAAC;aACb,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAEhC,0BAA0B;QAC1B,MAAM,aAAa,GAAG,OAAO,CAAC;YAC1B,aAAa,EAAE,sBAAsB;YACrC,gBAAgB,EAAE,aAAa;SAClC,CAAC;aACG,QAAQ,CAAC,GAAG,CAAC;aACb,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAEhC,MAAM,qBAAqB,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAEvD,MAAM,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAErE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QAEvD,MAAM,YAAY,GAAG,OAAO,CAAC;YACzB,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,aAAa;YAC1B,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC;aACG,QAAQ,CAAC,GAAG,CAAC;aACb,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAE7B,GAAG;QACH,IAAI,CAAC,EAAE,GAAG;YACN,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,YAAY;YACxB,eAAe,EAAE,iBAAiB;YAClC,kBAAkB,EAAE,oBAAoB;YACxC,kBAAkB,EAAE,oBAAoB;YACxC,aAAa;YACb,aAAa;YACb,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,YAAY;SAC3B,CAAA;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ChannelProperties } from '@towns-protocol/proto';
|
|
2
|
+
import { Membership } from '../../sync-agent/timeline/models/timeline-types';
|
|
3
|
+
import { DmStreamModel } from '../streams/dmStreams';
|
|
4
|
+
import { GdmStreamModel } from '../streams/gdmStreams';
|
|
5
|
+
export interface DmAndGdmModel {
|
|
6
|
+
id: string;
|
|
7
|
+
joined: boolean;
|
|
8
|
+
left: boolean;
|
|
9
|
+
userIds: string[];
|
|
10
|
+
properties?: ChannelProperties;
|
|
11
|
+
isDecryptingProperties?: boolean;
|
|
12
|
+
lastEventCreatedAtEpochMs: bigint;
|
|
13
|
+
isGdm: boolean;
|
|
14
|
+
}
|
|
15
|
+
interface Input {
|
|
16
|
+
userId: string;
|
|
17
|
+
memberships: Record<string, Membership>;
|
|
18
|
+
streamMemberIds: Record<string, string[] | undefined>;
|
|
19
|
+
dmStreams: Record<string, DmStreamModel | undefined>;
|
|
20
|
+
gdmStreams: Record<string, GdmStreamModel | undefined>;
|
|
21
|
+
}
|
|
22
|
+
export declare function dmsAndGdmsTransform(value: Input, prev: Input, prevResult?: DmAndGdmModel[]): DmAndGdmModel[];
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=dmsAndGdmsTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dmsAndGdmsTransform.d.ts","sourceRoot":"","sources":["../../../src/views/transforms/dmsAndGdmsTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,yBAAyB,EAAE,MAAM,CAAA;IACjC,KAAK,EAAE,OAAO,CAAA;CACjB;AAED,UAAU,KAAK;IACX,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACrD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC,CAAA;IACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC,CAAA;CACzD;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,EACX,UAAU,CAAC,EAAE,aAAa,EAAE,GAC7B,aAAa,EAAE,CAiEjB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Membership } from '../../sync-agent/timeline/models/timeline-types';
|
|
2
|
+
import { isDefined } from '../../check';
|
|
3
|
+
import isEqual from 'lodash/isEqual';
|
|
4
|
+
export function dmsAndGdmsTransform(value, prev, prevResult) {
|
|
5
|
+
// note to self, it makes more sense to loop over memberships, and to hydrate the dm/gdms from
|
|
6
|
+
// local storage, then from remote data source, but for now we are copying existing behavior which is to
|
|
7
|
+
// loop over streams and filter out the ones that are not relevant to the user
|
|
8
|
+
const userId = value.userId;
|
|
9
|
+
const gdmStreams = Object.entries(value.gdmStreams)
|
|
10
|
+
.map(([streamId, gdmStream]) => {
|
|
11
|
+
if (!gdmStream) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
const membership = value.memberships[streamId];
|
|
15
|
+
const streamMemberIds = value.streamMemberIds[streamId]
|
|
16
|
+
?.filter((memberUserId) => memberUserId !== userId)
|
|
17
|
+
.sort((a, b) => a.localeCompare(b));
|
|
18
|
+
return {
|
|
19
|
+
id: streamId,
|
|
20
|
+
joined: membership === Membership.Join,
|
|
21
|
+
left: membership === Membership.Leave,
|
|
22
|
+
userIds: streamMemberIds ?? [],
|
|
23
|
+
properties: gdmStream.metadata,
|
|
24
|
+
isDecryptingProperties: gdmStream.latestMetadataEventId !== gdmStream.metadataEventId,
|
|
25
|
+
lastEventCreatedAtEpochMs: gdmStream.lastEventCreatedAtEpochMs,
|
|
26
|
+
isGdm: true,
|
|
27
|
+
};
|
|
28
|
+
})
|
|
29
|
+
.filter(isDefined);
|
|
30
|
+
const dmStreams = Object.entries(value.dmStreams)
|
|
31
|
+
.map(([streamId, dmStream]) => {
|
|
32
|
+
if (!dmStream) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
const membership = value.memberships[streamId];
|
|
36
|
+
const streamMemberIds = value.streamMemberIds[streamId]
|
|
37
|
+
?.filter((memberUserId, _index, numParticipants) => memberUserId !== userId || numParticipants.length === 1)
|
|
38
|
+
.sort((a, b) => a.localeCompare(b));
|
|
39
|
+
return {
|
|
40
|
+
id: streamId,
|
|
41
|
+
joined: membership === Membership.Join,
|
|
42
|
+
left: membership === Membership.Leave,
|
|
43
|
+
userIds: streamMemberIds ?? [],
|
|
44
|
+
properties: undefined,
|
|
45
|
+
lastEventCreatedAtEpochMs: dmStream.lastEventCreatedAtEpochMs,
|
|
46
|
+
isGdm: false,
|
|
47
|
+
};
|
|
48
|
+
})
|
|
49
|
+
.filter(isDefined);
|
|
50
|
+
const channels = [...dmStreams, ...gdmStreams].sort((a, b) => {
|
|
51
|
+
if (a.lastEventCreatedAtEpochMs === b.lastEventCreatedAtEpochMs) {
|
|
52
|
+
// If lastEventCreatedAtEpochMs is equal, sort by id
|
|
53
|
+
return a.id < b.id ? -1 : a.id > b.id ? 1 : 0;
|
|
54
|
+
}
|
|
55
|
+
// Otherwise, sort by lastEventCreatedAtEpochMs
|
|
56
|
+
return a.lastEventCreatedAtEpochMs > b.lastEventCreatedAtEpochMs ? -1 : 1;
|
|
57
|
+
});
|
|
58
|
+
if (prevResult && isEqual(prevResult, channels)) {
|
|
59
|
+
return prevResult;
|
|
60
|
+
}
|
|
61
|
+
return channels;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=dmsAndGdmsTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dmsAndGdmsTransform.js","sourceRoot":"","sources":["../../../src/views/transforms/dmsAndGdmsTransform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Membership } from '../../sync-agent/timeline/models/timeline-types';
|
|
2
|
+
import { UserStreamModel } from '../streams/userStreamsView';
|
|
3
|
+
export declare function membershipsTransform(userStream?: UserStreamModel, _prev?: UserStreamModel, prevResult?: Record<string, Membership>): Record<string, Membership>;
|
|
4
|
+
//# sourceMappingURL=membershipsTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membershipsTransform.d.ts","sourceRoot":"","sources":["../../../src/views/transforms/membershipsTransform.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAI5D,wBAAgB,oBAAoB,CAChC,UAAU,CAAC,EAAE,eAAe,EAC5B,KAAK,CAAC,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GACxC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAkB5B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { toMembership } from '../streams/timelineEvents';
|
|
2
|
+
import { isEqual } from 'lodash';
|
|
3
|
+
export function membershipsTransform(userStream, _prev, prevResult) {
|
|
4
|
+
const streamMemberships = userStream?.streamMemberships ?? {};
|
|
5
|
+
const memberships = Object.entries(streamMemberships).reduce((acc, entry) => {
|
|
6
|
+
if (entry[1]) {
|
|
7
|
+
acc[entry[0]] = toMembership(entry[1].op);
|
|
8
|
+
}
|
|
9
|
+
return acc;
|
|
10
|
+
}, {});
|
|
11
|
+
if (prevResult && isEqual(prevResult, memberships)) {
|
|
12
|
+
return prevResult;
|
|
13
|
+
}
|
|
14
|
+
return memberships;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=membershipsTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membershipsTransform.js","sourceRoot":"","sources":["../../../src/views/transforms/membershipsTransform.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,UAAU,oBAAoB,CAChC,UAA4B,EAC5B,KAAuB,EACvB,UAAuC;IAEvC,MAAM,iBAAiB,GAAG,UAAU,EAAE,iBAAiB,IAAI,EAAE,CAAA;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CACxD,CACI,GAA+B,EAC/B,KAAuD,EACzD,EAAE;QACA,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD,OAAO,GAAG,CAAA;IACd,CAAC,EACD,EAAE,CACL,CAAA;IACD,IAAI,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QACjD,OAAO,UAAU,CAAA;IACrB,CAAC;IACD,OAAO,WAAW,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Membership } from '../../sync-agent/timeline/models/timeline-types';
|
|
2
|
+
export declare function spaceIdsTransform(memberships: Record<string, Membership>, _prev: Record<string, Membership>, prevResult?: string[]): string[];
|
|
3
|
+
//# sourceMappingURL=spaceIdsTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spaceIdsTransform.d.ts","sourceRoot":"","sources":["../../../src/views/transforms/spaceIdsTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAI5E,wBAAgB,iBAAiB,CAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,UAAU,CAAC,EAAE,MAAM,EAAE,GACtB,MAAM,EAAE,CASV"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Membership } from '../../sync-agent/timeline/models/timeline-types';
|
|
2
|
+
import { isSpaceStreamId } from '../../id';
|
|
3
|
+
import isEqual from 'lodash/isEqual';
|
|
4
|
+
export function spaceIdsTransform(memberships, _prev, prevResult) {
|
|
5
|
+
const spaceIds = Object.entries(memberships)
|
|
6
|
+
.filter(([id, membership]) => isSpaceStreamId(id) && membership === Membership.Join)
|
|
7
|
+
.map(([id]) => id)
|
|
8
|
+
.sort((a, b) => a.localeCompare(b));
|
|
9
|
+
if (prevResult && isEqual(prevResult, spaceIds)) {
|
|
10
|
+
return prevResult;
|
|
11
|
+
}
|
|
12
|
+
return spaceIds;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=spaceIdsTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spaceIdsTransform.js","sourceRoot":"","sources":["../../../src/views/transforms/spaceIdsTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iDAAiD,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,MAAM,UAAU,iBAAiB,CAC7B,WAAuC,EACvC,KAAiC,EACjC,UAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;SACnF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SACjB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,IAAI,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,UAAU,CAAA;IACrB,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@towns-protocol/sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.255",
|
|
4
4
|
"packageManager": "yarn@3.8.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
"@ethereumjs/util": "^10.0.0",
|
|
31
31
|
"@noble/curves": "^1.9.1",
|
|
32
32
|
"@noble/hashes": "^1.8.0",
|
|
33
|
-
"@towns-protocol/dlog": "^0.0.
|
|
34
|
-
"@towns-protocol/encryption": "^0.0.
|
|
35
|
-
"@towns-protocol/generated": "^0.0.
|
|
36
|
-
"@towns-protocol/proto": "^0.0.
|
|
37
|
-
"@towns-protocol/rpc-connector": "^0.0.
|
|
38
|
-
"@towns-protocol/sdk-crypto": "^0.0.
|
|
39
|
-
"@towns-protocol/web3": "^0.0.
|
|
33
|
+
"@towns-protocol/dlog": "^0.0.255",
|
|
34
|
+
"@towns-protocol/encryption": "^0.0.255",
|
|
35
|
+
"@towns-protocol/generated": "^0.0.255",
|
|
36
|
+
"@towns-protocol/proto": "^0.0.255",
|
|
37
|
+
"@towns-protocol/rpc-connector": "^0.0.255",
|
|
38
|
+
"@towns-protocol/sdk-crypto": "^0.0.255",
|
|
39
|
+
"@towns-protocol/web3": "^0.0.255",
|
|
40
40
|
"browser-or-node": "^3.0.0",
|
|
41
41
|
"debug": "^4.3.4",
|
|
42
42
|
"dexie": "^4.0.7",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"files": [
|
|
73
73
|
"/dist"
|
|
74
74
|
],
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "7c7eedeb938c78663bc892df4f505b909361517f"
|
|
76
76
|
}
|