@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.
Files changed (114) hide show
  1. package/dist/client.d.ts.map +1 -1
  2. package/dist/client.js +4 -4
  3. package/dist/client.js.map +1 -1
  4. package/dist/index.d.ts +20 -6
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +20 -6
  7. package/dist/index.js.map +1 -1
  8. package/dist/observable/combine.d.ts +4 -2
  9. package/dist/observable/combine.d.ts.map +1 -1
  10. package/dist/observable/combine.js +5 -2
  11. package/dist/observable/combine.js.map +1 -1
  12. package/dist/observable/observableRecord.d.ts +18 -0
  13. package/dist/observable/observableRecord.d.ts.map +1 -0
  14. package/dist/observable/observableRecord.js +71 -0
  15. package/dist/observable/observableRecord.js.map +1 -0
  16. package/dist/streamStateView.d.ts.map +1 -1
  17. package/dist/streamStateView.js +8 -8
  18. package/dist/streamStateView.js.map +1 -1
  19. package/dist/streamStateView_Channel.d.ts +1 -6
  20. package/dist/streamStateView_Channel.d.ts.map +1 -1
  21. package/dist/streamStateView_Channel.js +4 -10
  22. package/dist/streamStateView_Channel.js.map +1 -1
  23. package/dist/streamStateView_DMChannel.d.ts +8 -7
  24. package/dist/streamStateView_DMChannel.d.ts.map +1 -1
  25. package/dist/streamStateView_DMChannel.js +22 -15
  26. package/dist/streamStateView_DMChannel.js.map +1 -1
  27. package/dist/streamStateView_GDMChannel.d.ts +5 -4
  28. package/dist/streamStateView_GDMChannel.d.ts.map +1 -1
  29. package/dist/streamStateView_GDMChannel.js +13 -12
  30. package/dist/streamStateView_GDMChannel.js.map +1 -1
  31. package/dist/streamStateView_Space.d.ts +5 -8
  32. package/dist/streamStateView_Space.d.ts.map +1 -1
  33. package/dist/streamStateView_Space.js +26 -23
  34. package/dist/streamStateView_Space.js.map +1 -1
  35. package/dist/streamStateView_User.d.ts +11 -18
  36. package/dist/streamStateView_User.d.ts.map +1 -1
  37. package/dist/streamStateView_User.js +35 -20
  38. package/dist/streamStateView_User.js.map +1 -1
  39. package/dist/streamStateView_UserInbox.d.ts +4 -1
  40. package/dist/streamStateView_UserInbox.d.ts.map +1 -1
  41. package/dist/streamStateView_UserInbox.js +6 -1
  42. package/dist/streamStateView_UserInbox.js.map +1 -1
  43. package/dist/streamStateView_UserMetadata.d.ts +4 -1
  44. package/dist/streamStateView_UserMetadata.d.ts.map +1 -1
  45. package/dist/streamStateView_UserMetadata.js +6 -1
  46. package/dist/streamStateView_UserMetadata.js.map +1 -1
  47. package/dist/streamStateView_UserSettings.d.ts +4 -3
  48. package/dist/streamStateView_UserSettings.d.ts.map +1 -1
  49. package/dist/streamStateView_UserSettings.js +11 -12
  50. package/dist/streamStateView_UserSettings.js.map +1 -1
  51. package/dist/sync-agent/spaces/models/space.js +1 -1
  52. package/dist/sync-agent/spaces/models/space.js.map +1 -1
  53. package/dist/sync-agent/user/models/userMemberships.d.ts.map +1 -1
  54. package/dist/sync-agent/user/models/userMemberships.js +3 -1
  55. package/dist/sync-agent/user/models/userMemberships.js.map +1 -1
  56. package/dist/syncedStream.js +1 -1
  57. package/dist/syncedStream.js.map +1 -1
  58. package/dist/tests/multi/channelSpaceSettings.test.js +23 -23
  59. package/dist/tests/multi/channelSpaceSettings.test.js.map +1 -1
  60. package/dist/tests/multi_ne/space.test.js +5 -7
  61. package/dist/tests/multi_ne/space.test.js.map +1 -1
  62. package/dist/tests/multi_ne/streamStateView_User.test.js +3 -3
  63. package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
  64. package/dist/tests/unit/observable/combine.test.js +23 -23
  65. package/dist/tests/unit/observable/combine.test.js.map +1 -1
  66. package/dist/views/streams/channelStreams.d.ts +8 -0
  67. package/dist/views/streams/channelStreams.d.ts.map +1 -0
  68. package/dist/views/streams/channelStreams.js +9 -0
  69. package/dist/views/streams/channelStreams.js.map +1 -0
  70. package/dist/views/streams/dmStreams.d.ts +13 -0
  71. package/dist/views/streams/dmStreams.d.ts.map +1 -0
  72. package/dist/views/streams/dmStreams.js +33 -0
  73. package/dist/views/streams/dmStreams.js.map +1 -0
  74. package/dist/views/streams/gdmStreams.d.ts +10 -0
  75. package/dist/views/streams/gdmStreams.d.ts.map +1 -0
  76. package/dist/views/streams/gdmStreams.js +21 -0
  77. package/dist/views/streams/gdmStreams.js.map +1 -0
  78. package/dist/views/streams/spaceStreams.d.ts +17 -0
  79. package/dist/views/streams/spaceStreams.d.ts.map +1 -0
  80. package/dist/views/streams/spaceStreams.js +52 -0
  81. package/dist/views/streams/spaceStreams.js.map +1 -0
  82. package/dist/views/streams/streamStatus.d.ts +3 -2
  83. package/dist/views/streams/streamStatus.d.ts.map +1 -1
  84. package/dist/views/streams/streamStatus.js +11 -9
  85. package/dist/views/streams/streamStatus.js.map +1 -1
  86. package/dist/views/streams/unreadMarkersTransform.d.ts +1 -1
  87. package/dist/views/streams/unreadMarkersTransform.d.ts.map +1 -1
  88. package/dist/views/streams/unreadMarkersTransform.js +4 -0
  89. package/dist/views/streams/unreadMarkersTransform.js.map +1 -1
  90. package/dist/views/streams/userInboxStreams.d.ts +8 -0
  91. package/dist/views/streams/userInboxStreams.d.ts.map +1 -0
  92. package/dist/views/streams/userInboxStreams.js +11 -0
  93. package/dist/views/streams/userInboxStreams.js.map +1 -0
  94. package/dist/views/streams/userMetadataStreams.d.ts +8 -0
  95. package/dist/views/streams/userMetadataStreams.d.ts.map +1 -0
  96. package/dist/views/streams/userMetadataStreams.js +12 -0
  97. package/dist/views/streams/userMetadataStreams.js.map +1 -0
  98. package/dist/views/streams/userSettingsStreams.d.ts +6 -5
  99. package/dist/views/streams/userSettingsStreams.d.ts.map +1 -1
  100. package/dist/views/streams/userSettingsStreams.js +29 -17
  101. package/dist/views/streams/userSettingsStreams.js.map +1 -1
  102. package/dist/views/streams/userStreamsView.d.ts +26 -0
  103. package/dist/views/streams/userStreamsView.d.ts.map +1 -0
  104. package/dist/views/streams/userStreamsView.js +106 -0
  105. package/dist/views/streams/userStreamsView.js.map +1 -0
  106. package/dist/views/streamsView.d.ts +16 -2
  107. package/dist/views/streamsView.d.ts.map +1 -1
  108. package/dist/views/streamsView.js +28 -7
  109. package/dist/views/streamsView.js.map +1 -1
  110. package/package.json +9 -9
  111. package/dist/streamStateView_Common_ChannelMessages.d.ts +0 -15
  112. package/dist/streamStateView_Common_ChannelMessages.d.ts.map +0 -1
  113. package/dist/streamStateView_Common_ChannelMessages.js +0 -19
  114. package/dist/streamStateView_Common_ChannelMessages.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userInboxStreams.js","sourceRoot":"","sources":["../../../src/views/streams/userInboxStreams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAMpE,MAAM,OAAO,oBAAqB,SAAQ,gBAA8C;IACpF;QACI,KAAK,CAAC;YACF,WAAW,EAAE,CAAC,iBAAyB,EAAwB,EAAE,CAAC,CAAC;gBAC/D,QAAQ,EAAE,iBAAiB;aAC9B,CAAC;SACL,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -0,0 +1,8 @@
1
+ import { ObservableRecord } from '../../observable/observableRecord';
2
+ export interface UserMetadataStreamModel {
3
+ streamId: string;
4
+ }
5
+ export declare class UserMetadataStreamsView extends ObservableRecord<string, UserMetadataStreamModel> {
6
+ constructor();
7
+ }
8
+ //# sourceMappingURL=userMetadataStreams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userMetadataStreams.d.ts","sourceRoot":"","sources":["../../../src/views/streams/userMetadataStreams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAA;CACnB;AAGD,qBAAa,uBAAwB,SAAQ,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,CAAC;;CAQ7F"}
@@ -0,0 +1,12 @@
1
+ import { ObservableRecord } from '../../observable/observableRecord';
2
+ /// stream metadata gets requested from the river.delivery server - at time of writing this is only for completeness
3
+ export class UserMetadataStreamsView extends ObservableRecord {
4
+ constructor() {
5
+ super({
6
+ makeDefault: (userMetadataStreamId) => ({
7
+ streamId: userMetadataStreamId,
8
+ }),
9
+ });
10
+ }
11
+ }
12
+ //# sourceMappingURL=userMetadataStreams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userMetadataStreams.js","sourceRoot":"","sources":["../../../src/views/streams/userMetadataStreams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAMpE,oHAAoH;AACpH,MAAM,OAAO,uBAAwB,SAAQ,gBAAiD;IAC1F;QACI,KAAK,CAAC;YACF,WAAW,EAAE,CAAC,oBAA4B,EAA2B,EAAE,CAAC,CAAC;gBACrE,QAAQ,EAAE,oBAAoB;aACjC,CAAC;SACL,CAAC,CAAA;IACN,CAAC;CACJ"}
@@ -1,13 +1,14 @@
1
1
  import { FullyReadMarker, UserSettingsPayload_Snapshot_UserBlocks, UserSettingsPayload_Snapshot_UserBlocks_Block } from '@towns-protocol/proto';
2
- import { Observable } from '../../observable/observable';
2
+ import { ObservableRecord } from '../../observable/observableRecord';
3
3
  export interface UserSettingsStreamModel {
4
+ streamId: string;
4
5
  fullyReadMarkers: Record<string, Record<string, FullyReadMarker>>;
5
6
  userBlocks: Record<string, UserSettingsPayload_Snapshot_UserBlocks>;
6
7
  }
7
- export declare class UserSettingsStreams extends Observable<Record<string, UserSettingsStreamModel>> {
8
+ export declare class UserSettingsStreamsView extends ObservableRecord<string, UserSettingsStreamModel> {
8
9
  constructor();
9
- setFullyReadMarkers(userStreamId: string, streamId: string, fullyReadMarkers: Record<string, FullyReadMarker>): void;
10
- setUserBlocks(userStreamId: string, userId: string, userBlocks: UserSettingsPayload_Snapshot_UserBlocks): void;
11
- updateUserBlock(userStreamId: string, userId: string, userBlock: UserSettingsPayload_Snapshot_UserBlocks_Block): void;
10
+ setFullyReadMarkers(userSettingsStreamId: string, streamId: string, fullyReadMarkers: Record<string, FullyReadMarker>): void;
11
+ setUserBlocks(userSettingsStreamId: string, userId: string, userBlocks: UserSettingsPayload_Snapshot_UserBlocks): void;
12
+ updateUserBlock(userSettingsStreamId: string, userId: string, userBlock: UserSettingsPayload_Snapshot_UserBlocks_Block): void;
12
13
  }
13
14
  //# sourceMappingURL=userSettingsStreams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"userSettingsStreams.d.ts","sourceRoot":"","sources":["../../../src/views/streams/userSettingsStreams.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,uCAAuC,EACvC,6CAA6C,EAChD,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAA;CACtE;AAED,qBAAa,mBAAoB,SAAQ,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;;IAKxF,mBAAmB,CACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAClD,IAAI;IAaP,aAAa,CACT,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,uCAAuC,GACpD,IAAI;IAaP,eAAe,CACX,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,6CAA6C,GACzD,IAAI;CAkBV"}
1
+ {"version":3,"file":"userSettingsStreams.d.ts","sourceRoot":"","sources":["../../../src/views/streams/userSettingsStreams.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,uCAAuC,EACvC,6CAA6C,EAEhD,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uCAAuC,CAAC,CAAA;CACtE;AAUD,qBAAa,uBAAwB,SAAQ,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,CAAC;;IAW1F,mBAAmB,CACf,oBAAoB,EAAE,MAAM,EAC5B,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAClD,IAAI;IAaP,aAAa,CACT,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,uCAAuC,GACpD,IAAI;IAaP,eAAe,CACX,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,6CAA6C,GACzD,IAAI;CAkBV"}
@@ -1,43 +1,55 @@
1
- import { Observable } from '../../observable/observable';
2
- export class UserSettingsStreams extends Observable {
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(userStreamId, streamId, fullyReadMarkers) {
18
+ setFullyReadMarkers(userSettingsStreamId, streamId, fullyReadMarkers) {
7
19
  this.set((prev) => ({
8
20
  ...prev,
9
- [userStreamId]: {
10
- ...prev[userStreamId],
21
+ [userSettingsStreamId]: {
22
+ ...(prev[userSettingsStreamId] ?? this.makeDefault(userSettingsStreamId)),
11
23
  fullyReadMarkers: {
12
- ...(prev[userStreamId]?.fullyReadMarkers ?? {}),
24
+ ...(prev[userSettingsStreamId]?.fullyReadMarkers ?? {}),
13
25
  [streamId]: fullyReadMarkers,
14
26
  },
15
27
  },
16
28
  }));
17
29
  }
18
- setUserBlocks(userStreamId, userId, userBlocks) {
30
+ setUserBlocks(userSettingsStreamId, userId, userBlocks) {
19
31
  this.set((prev) => ({
20
32
  ...prev,
21
- [userStreamId]: {
22
- ...prev[userStreamId],
33
+ [userSettingsStreamId]: {
34
+ ...(prev[userSettingsStreamId] ?? this.makeDefault(userSettingsStreamId)),
23
35
  userBlocks: {
24
- ...(prev[userStreamId]?.userBlocks ?? {}),
36
+ ...(prev[userSettingsStreamId]?.userBlocks ?? {}),
25
37
  [userId]: userBlocks,
26
38
  },
27
39
  },
28
40
  }));
29
41
  }
30
- updateUserBlock(userStreamId, userId, userBlock) {
42
+ updateUserBlock(userSettingsStreamId, userId, userBlock) {
31
43
  this.set((prev) => ({
32
44
  ...prev,
33
- [userStreamId]: {
34
- ...prev[userStreamId],
45
+ [userSettingsStreamId]: {
46
+ ...(prev[userSettingsStreamId] ?? this.makeDefault(userSettingsStreamId)),
35
47
  userBlocks: {
36
- ...(prev[userStreamId]?.userBlocks ?? {}),
48
+ ...(prev[userSettingsStreamId]?.userBlocks ?? {}),
37
49
  [userId]: {
38
- ...(prev[userStreamId]?.userBlocks[userId] ?? {}),
50
+ ...(prev[userSettingsStreamId]?.userBlocks[userId] ?? EMPTY_USER_BLOCKS),
39
51
  blocks: [
40
- ...(prev[userStreamId]?.userBlocks[userId]?.blocks ?? []),
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":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAOxD,MAAM,OAAO,mBAAoB,SAAQ,UAAmD;IACxF;QACI,KAAK,CAAC,EAAE,CAAC,CAAA;IACb,CAAC;IAED,mBAAmB,CACf,YAAoB,EACpB,QAAgB,EAChB,gBAAiD;QAEjD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,CAAC,YAAY,CAAC,EAAE;gBACZ,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrB,gBAAgB,EAAE;oBACd,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,gBAAgB,IAAI,EAAE,CAAC;oBAC/C,CAAC,QAAQ,CAAC,EAAE,gBAAgB;iBAC/B;aACJ;SACJ,CAAC,CAAC,CAAA;IACP,CAAC;IAED,aAAa,CACT,YAAoB,EACpB,MAAc,EACd,UAAmD;QAEnD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,CAAC,YAAY,CAAC,EAAE;gBACZ,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrB,UAAU,EAAE;oBACR,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;oBACzC,CAAC,MAAM,CAAC,EAAE,UAAU;iBACvB;aACJ;SACJ,CAAC,CAAC,CAAA;IACP,CAAC;IAED,eAAe,CACX,YAAoB,EACpB,MAAc,EACd,SAAwD;QAExD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,GAAG,IAAI;YACP,CAAC,YAAY,CAAC,EAAE;gBACZ,GAAG,IAAI,CAAC,YAAY,CAAC;gBACrB,UAAU,EAAE;oBACR,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;oBACzC,CAAC,MAAM,CAAC,EAAE;wBACN,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjD,MAAM,EAAE;4BACJ,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;4BACzD,SAAS;yBACZ;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC,CAAA;IACP,CAAC;CACJ"}
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,14 +1,28 @@
1
1
  import { Observable } from '../observable/observable';
2
2
  import { StreamStatus } from './streams/streamStatus';
3
3
  import { TimelinesView, TimelinesViewDelegate } from './streams/timelines';
4
- import { UserSettingsStreams } from './streams/userSettingsStreams';
4
+ import { 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 { UserStreamsView } from './streams/userStreamsView';
9
+ import { UserMetadataStreamsView } from './streams/userMetadataStreams';
10
+ import { UserInboxStreamsView } from './streams/userInboxStreams';
11
+ import { ChannelStreamsView } from './streams/channelStreams';
12
+ import { DmStreamsView } from './streams/dmStreams';
13
+ import { GdmStreamsView } from './streams/gdmStreams';
7
14
  export type StreamsViewDelegate = TimelinesViewDelegate;
8
15
  export declare class StreamsView {
9
16
  readonly streamStatus: StreamStatus;
17
+ readonly spaceStreams: SpaceStreamsView;
18
+ readonly channelStreams: ChannelStreamsView;
19
+ readonly dmStreams: DmStreamsView;
20
+ readonly gdmStreams: GdmStreamsView;
21
+ readonly userStreams: UserStreamsView;
22
+ readonly userInboxStreams: UserInboxStreamsView;
23
+ readonly userMetadataStreams: UserMetadataStreamsView;
24
+ readonly userSettingsStreams: UserSettingsStreamsView;
10
25
  readonly timelinesView: TimelinesView;
11
- readonly userSettingsStreams: UserSettingsStreams;
12
26
  readonly my: {
13
27
  unreadMarkers: Observable<UnreadMarkersModel>;
14
28
  spaceMentions: Observable<MentionsModel>;
@@ -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;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAA0B,MAAM,kCAAkC,CAAA;AAC7F,OAAO,EAAE,aAAa,EAA0B,MAAM,kCAAkC,CAAA;AAExF,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAGvD,qBAAa,WAAW;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAA;IACjD,QAAQ,CAAC,EAAE,EAAE;QACT,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAC7C,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;KAC3C,CAAA;gBAEW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,SAAS;CAkCxE"}
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;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AACvE,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,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAGvD,qBAAa,WAAW;IACpB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,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,aAAa,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAA;QAC7C,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,CAAA;KAC3C,CAAA;gBAEW,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,SAAS;CAyCxE"}
@@ -1,32 +1,53 @@
1
1
  import { Observable } from '../observable/observable';
2
- import { Combine } from '../observable/combine';
2
+ import { combine } from '../observable/combine';
3
3
  import { StreamStatus } from './streams/streamStatus';
4
4
  import { TimelinesView } from './streams/timelines';
5
5
  import { makeUserSettingsStreamId } from '../id';
6
- import { UserSettingsStreams } from './streams/userSettingsStreams';
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';
9
16
  // a view of all the streams
10
17
  export class StreamsView {
11
18
  streamStatus;
12
- timelinesView;
19
+ spaceStreams;
20
+ channelStreams;
21
+ dmStreams;
22
+ gdmStreams;
23
+ userStreams;
24
+ userInboxStreams;
25
+ userMetadataStreams;
13
26
  userSettingsStreams;
27
+ timelinesView;
14
28
  my;
15
29
  constructor(userId, delegate) {
16
30
  const userSettingsStreamId = userId !== '' ? makeUserSettingsStreamId(userId) : '';
17
- this.timelinesView = new TimelinesView(userId, delegate);
18
- this.userSettingsStreams = new UserSettingsStreams();
31
+ this.userSettingsStreams = new UserSettingsStreamsView();
32
+ this.spaceStreams = new SpaceStreamsView();
33
+ this.channelStreams = new ChannelStreamsView();
34
+ this.dmStreams = new DmStreamsView();
35
+ this.gdmStreams = new GdmStreamsView();
19
36
  this.streamStatus = new StreamStatus();
37
+ this.userStreams = new UserStreamsView();
38
+ this.userMetadataStreams = new UserMetadataStreamsView();
39
+ this.userInboxStreams = new UserInboxStreamsView();
40
+ this.timelinesView = new TimelinesView(userId, delegate);
20
41
  const throttledTimelinesView = this.timelinesView.throttle(15);
21
42
  const myRemoteFullyReadMarkers = this.userSettingsStreams.map((x) => x[userSettingsStreamId]?.fullyReadMarkers ?? {});
22
- const unreadMarkers = new Combine({
43
+ const unreadMarkers = combine({
23
44
  userId: new Observable(userId),
24
45
  myRemoteFullyReadMarkers: myRemoteFullyReadMarkers.throttle(10),
25
46
  timelinesView: throttledTimelinesView,
26
47
  })
27
48
  .throttle(250)
28
49
  .map(unreadMarkersTransform);
29
- const spaceMentions = new Combine({
50
+ const spaceMentions = combine({
30
51
  timelinesView: throttledTimelinesView,
31
52
  fullyReadMarkers: unreadMarkers,
32
53
  })
@@ -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,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAsB,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC7F,OAAO,EAAiB,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAIxF,4BAA4B;AAC5B,MAAM,OAAO,WAAW;IACX,YAAY,CAAc;IAC1B,aAAa,CAAe;IAC5B,mBAAmB,CAAqB;IACxC,EAAE,CAGV;IAED,YAAY,MAAc,EAAE,QAAyC;QACjE,MAAM,oBAAoB,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAElF,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACxD,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;QAEtC,MAAM,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE9D,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,gBAAgB,IAAI,EAAE,CACzD,CAAA;QAED,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC;YAC9B,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;YAC9B,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,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC;YAC9B,aAAa,EAAE,sBAAsB;YACrC,gBAAgB,EAAE,aAAa;SAClC,CAAC;aACG,QAAQ,CAAC,GAAG,CAAC;aACb,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAEhC,GAAG;QACH,IAAI,CAAC,EAAE,GAAG;YACN,aAAa;YACb,aAAa;SAChB,CAAA;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"streamsView.js","sourceRoot":"","sources":["../../src/views/streamsView.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@towns-protocol/sdk",
3
- "version": "0.0.251",
3
+ "version": "0.0.253",
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.251",
34
- "@towns-protocol/encryption": "^0.0.251",
35
- "@towns-protocol/generated": "^0.0.251",
36
- "@towns-protocol/proto": "^0.0.251",
37
- "@towns-protocol/rpc-connector": "^0.0.251",
38
- "@towns-protocol/sdk-crypto": "^0.0.251",
39
- "@towns-protocol/web3": "^0.0.251",
33
+ "@towns-protocol/dlog": "^0.0.253",
34
+ "@towns-protocol/encryption": "^0.0.253",
35
+ "@towns-protocol/generated": "^0.0.253",
36
+ "@towns-protocol/proto": "^0.0.253",
37
+ "@towns-protocol/rpc-connector": "^0.0.253",
38
+ "@towns-protocol/sdk-crypto": "^0.0.253",
39
+ "@towns-protocol/web3": "^0.0.253",
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": "7f4c80a751d8e7d8c043ebfe36d3e018e1b67189"
75
+ "gitHead": "5b687cbd26af3cdf380c3e909c49b0fb4352cd7c"
76
76
  }
@@ -1,15 +0,0 @@
1
- import TypedEmitter from 'typed-emitter';
2
- import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents';
3
- import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
4
- import { RemoteTimelineEvent } from './types';
5
- import { EncryptedData } from '@towns-protocol/proto';
6
- import { DecryptedContent } from './encryptedContentTypes';
7
- export declare class StreamStateView_ChannelMessages {
8
- readonly streamId: string;
9
- private readonly parent;
10
- constructor(streamId: string, parent: StreamStateView_AbstractContent);
11
- onDecryptedContent(_eventId: string, _content: DecryptedContent, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
12
- appendChannelMessage(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined, value: EncryptedData): void;
13
- prependChannelMessage(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined, value: EncryptedData): void;
14
- }
15
- //# sourceMappingURL=streamStateView_Common_ChannelMessages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamStateView_Common_ChannelMessages.d.ts","sourceRoot":"","sources":["../src/streamStateView_Common_ChannelMessages.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAG1D,qBAAa,+BAA+B;aAEpB,QAAQ,EAAE,MAAM;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADP,QAAQ,EAAE,MAAM,EACf,MAAM,EAAE,+BAA+B;IAG5D,kBAAkB,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAIP,oBAAoB,CAChB,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,EACzD,KAAK,EAAE,aAAa,GACrB,IAAI;IAIP,qBAAqB,CACjB,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,EACzD,KAAK,EAAE,aAAa,GACrB,IAAI;CAGV"}
@@ -1,19 +0,0 @@
1
- /// place to hold common logic for decrypting "ChannelMessage" payloads
2
- export class StreamStateView_ChannelMessages {
3
- streamId;
4
- parent;
5
- constructor(streamId, parent) {
6
- this.streamId = streamId;
7
- this.parent = parent;
8
- }
9
- onDecryptedContent(_eventId, _content, _stateEmitter) {
10
- // pass
11
- }
12
- appendChannelMessage(event, cleartext, encryptionEmitter, stateEmitter, value) {
13
- this.parent.decryptEvent('channelMessage', event, value, cleartext, encryptionEmitter);
14
- }
15
- prependChannelMessage(event, cleartext, encryptionEmitter, stateEmitter, value) {
16
- this.parent.decryptEvent('channelMessage', event, value, cleartext, encryptionEmitter);
17
- }
18
- }
19
- //# sourceMappingURL=streamStateView_Common_ChannelMessages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streamStateView_Common_ChannelMessages.js","sourceRoot":"","sources":["../src/streamStateView_Common_ChannelMessages.ts"],"names":[],"mappings":"AAOA,uEAAuE;AACvE,MAAM,OAAO,+BAA+B;IAEpB;IACC;IAFrB,YACoB,QAAgB,EACf,MAAuC;QADxC,aAAQ,GAAR,QAAQ,CAAQ;QACf,WAAM,GAAN,MAAM,CAAiC;IACzD,CAAC;IAEJ,kBAAkB,CACd,QAAgB,EAChB,QAA0B,EAC1B,aAA0D;QAE1D,OAAO;IACX,CAAC;IAED,oBAAoB,CAChB,KAA0B,EAC1B,SAA0C,EAC1C,iBAAmE,EACnE,YAAyD,EACzD,KAAoB;QAEpB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;IAC1F,CAAC;IAED,qBAAqB,CACjB,KAA0B,EAC1B,SAA0C,EAC1C,iBAAmE,EACnE,YAAyD,EACzD,KAAoB;QAEpB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;IAC1F,CAAC;CACJ"}