@towns-protocol/sdk 0.0.242 → 0.0.245

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 (198) hide show
  1. package/dist/client.d.ts +5 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +61 -18
  4. package/dist/client.js.map +1 -1
  5. package/dist/id.d.ts +3 -1
  6. package/dist/id.d.ts.map +1 -1
  7. package/dist/id.js +3 -0
  8. package/dist/id.js.map +1 -1
  9. package/dist/index.d.ts +4 -8
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -8
  12. package/dist/index.js.map +1 -1
  13. package/dist/makeAuthenticationRpcClient.d.ts +1 -1
  14. package/dist/makeAuthenticationRpcClient.d.ts.map +1 -1
  15. package/dist/makeAuthenticationRpcClient.js +2 -2
  16. package/dist/makeAuthenticationRpcClient.js.map +1 -1
  17. package/dist/makeNotificationRpcClient.d.ts +1 -1
  18. package/dist/makeNotificationRpcClient.d.ts.map +1 -1
  19. package/dist/makeNotificationRpcClient.js +2 -2
  20. package/dist/makeNotificationRpcClient.js.map +1 -1
  21. package/dist/makeStreamRpcClient.d.ts +1 -1
  22. package/dist/makeStreamRpcClient.d.ts.map +1 -1
  23. package/dist/makeStreamRpcClient.js +2 -2
  24. package/dist/makeStreamRpcClient.js.map +1 -1
  25. package/dist/notificationService.d.ts.map +1 -1
  26. package/dist/notificationService.js +2 -1
  27. package/dist/notificationService.js.map +1 -1
  28. package/dist/riverConfig.js +1 -1
  29. package/dist/riverConfig.js.map +1 -1
  30. package/dist/rpcCommon.d.ts +1 -3
  31. package/dist/rpcCommon.d.ts.map +1 -1
  32. package/dist/rpcCommon.js +1 -13
  33. package/dist/rpcCommon.js.map +1 -1
  34. package/dist/sign.d.ts +1 -1
  35. package/dist/sign.d.ts.map +1 -1
  36. package/dist/sign.js +13 -7
  37. package/dist/sign.js.map +1 -1
  38. package/dist/stream.d.ts +4 -2
  39. package/dist/stream.d.ts.map +1 -1
  40. package/dist/stream.js +9 -6
  41. package/dist/stream.js.map +1 -1
  42. package/dist/streamEvents.d.ts +3 -3
  43. package/dist/streamEvents.d.ts.map +1 -1
  44. package/dist/streamStateView.d.ts +9 -6
  45. package/dist/streamStateView.d.ts.map +1 -1
  46. package/dist/streamStateView.js +58 -62
  47. package/dist/streamStateView.js.map +1 -1
  48. package/dist/streamStateView_Space.js +1 -1
  49. package/dist/streamStateView_Space.js.map +1 -1
  50. package/dist/streamStateView_UserMetadata.js +1 -1
  51. package/dist/streamStateView_UserMetadata.js.map +1 -1
  52. package/dist/streamUtils.d.ts.map +1 -1
  53. package/dist/streamUtils.js +2 -0
  54. package/dist/streamUtils.js.map +1 -1
  55. package/dist/streams-view/streamsView.d.ts +7 -0
  56. package/dist/streams-view/streamsView.d.ts.map +1 -0
  57. package/dist/streams-view/streamsView.js +10 -0
  58. package/dist/streams-view/streamsView.js.map +1 -0
  59. package/dist/streams-view/timelineEvents.d.ts +11 -0
  60. package/dist/streams-view/timelineEvents.d.ts.map +1 -0
  61. package/dist/{sync-agent/timeline/models/timelineEvent.js → streams-view/timelineEvents.js} +240 -303
  62. package/dist/streams-view/timelineEvents.js.map +1 -0
  63. package/dist/streams-view/timelinesView.d.ts +26 -0
  64. package/dist/streams-view/timelinesView.d.ts.map +1 -0
  65. package/dist/streams-view/timelinesView.js +111 -0
  66. package/dist/streams-view/timelinesView.js.map +1 -0
  67. package/dist/streams-view/timelinesViewModel.d.ts +38 -0
  68. package/dist/streams-view/timelinesViewModel.d.ts.map +1 -0
  69. package/dist/streams-view/timelinesViewModel.js +681 -0
  70. package/dist/streams-view/timelinesViewModel.js.map +1 -0
  71. package/dist/sync-agent/dms/models/dm.js +2 -2
  72. package/dist/sync-agent/dms/models/dm.js.map +1 -1
  73. package/dist/sync-agent/gdms/models/gdm.js +2 -2
  74. package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
  75. package/dist/sync-agent/spaces/models/channel.js +3 -3
  76. package/dist/sync-agent/spaces/models/channel.js.map +1 -1
  77. package/dist/sync-agent/syncAgent.d.ts.map +1 -1
  78. package/dist/sync-agent/syncAgent.js +4 -0
  79. package/dist/sync-agent/syncAgent.js.map +1 -1
  80. package/dist/sync-agent/timeline/models/timeline-types.d.ts +2 -1
  81. package/dist/sync-agent/timeline/models/timeline-types.d.ts.map +1 -1
  82. package/dist/sync-agent/timeline/models/timeline-types.js +109 -0
  83. package/dist/sync-agent/timeline/models/timeline-types.js.map +1 -1
  84. package/dist/sync-agent/timeline/timeline.d.ts +9 -26
  85. package/dist/sync-agent/timeline/timeline.d.ts.map +1 -1
  86. package/dist/sync-agent/timeline/timeline.js +21 -226
  87. package/dist/sync-agent/timeline/timeline.js.map +1 -1
  88. package/dist/syncedStream.d.ts +2 -1
  89. package/dist/syncedStream.d.ts.map +1 -1
  90. package/dist/syncedStream.js +11 -12
  91. package/dist/syncedStream.js.map +1 -1
  92. package/dist/syncedStreams.d.ts +1 -0
  93. package/dist/syncedStreams.d.ts.map +1 -1
  94. package/dist/syncedStreams.js.map +1 -1
  95. package/dist/syncedStreamsLoop.d.ts +1 -0
  96. package/dist/syncedStreamsLoop.d.ts.map +1 -1
  97. package/dist/syncedStreamsLoop.js +7 -2
  98. package/dist/syncedStreamsLoop.js.map +1 -1
  99. package/dist/tags.d.ts.map +1 -1
  100. package/dist/tags.js +15 -16
  101. package/dist/tags.js.map +1 -1
  102. package/dist/tests/bob_testUtils.d.ts.map +1 -1
  103. package/dist/tests/bob_testUtils.js +4 -1
  104. package/dist/tests/bob_testUtils.js.map +1 -1
  105. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +3 -3
  106. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +1 -1
  107. package/dist/tests/multi/sync-agent/timeline.test.js +12 -7
  108. package/dist/tests/multi/sync-agent/timeline.test.js.map +1 -1
  109. package/dist/tests/multi/transactions_SpaceReview.test.js +11 -17
  110. package/dist/tests/multi/transactions_SpaceReview.test.js.map +1 -1
  111. package/dist/tests/multi/transactions_Tip.test.js +16 -20
  112. package/dist/tests/multi/transactions_Tip.test.js.map +1 -1
  113. package/dist/tests/multi_ne/channels.test.js +6 -8
  114. package/dist/tests/multi_ne/channels.test.js.map +1 -1
  115. package/dist/tests/multi_ne/client.test.js +45 -62
  116. package/dist/tests/multi_ne/client.test.js.map +1 -1
  117. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +6 -11
  118. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
  119. package/dist/tests/multi_ne/deviceKeyMessage.test.js +6 -4
  120. package/dist/tests/multi_ne/deviceKeyMessage.test.js.map +1 -1
  121. package/dist/tests/multi_ne/gdms.test.js +6 -1
  122. package/dist/tests/multi_ne/gdms.test.js.map +1 -1
  123. package/dist/tests/multi_ne/media.test.js +1 -1
  124. package/dist/tests/multi_ne/media.test.js.map +1 -1
  125. package/dist/tests/multi_ne/space.test.js +1 -1
  126. package/dist/tests/multi_ne/space.test.js.map +1 -1
  127. package/dist/tests/multi_ne/streamRpcClient.test.js +4 -1
  128. package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
  129. package/dist/tests/multi_ne/streamRpcClientSync.test.js +8 -2
  130. package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
  131. package/dist/tests/multi_ne/syncWithBlocks.test.js +4 -1
  132. package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
  133. package/dist/tests/multi_ne/syncedStream.test.js +39 -7
  134. package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
  135. package/dist/tests/multi_ne/syncedStreams.test.js +9 -365
  136. package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
  137. package/dist/tests/multi_ne/tags.test.js +114 -85
  138. package/dist/tests/multi_ne/tags.test.js.map +1 -1
  139. package/dist/tests/multi_ne/userSettings.test.js +15 -15
  140. package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
  141. package/dist/tests/syncAgent_testUtils.d.ts.map +1 -1
  142. package/dist/tests/syncAgent_testUtils.js +4 -0
  143. package/dist/tests/syncAgent_testUtils.js.map +1 -1
  144. package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
  145. package/dist/tests/testDriver_testUtils.js +4 -7
  146. package/dist/tests/testDriver_testUtils.js.map +1 -1
  147. package/dist/tests/testUtils.d.ts +1 -0
  148. package/dist/tests/testUtils.d.ts.map +1 -1
  149. package/dist/tests/testUtils.js +13 -4
  150. package/dist/tests/testUtils.js.map +1 -1
  151. package/dist/tests/unit/crypto.test.js +6 -0
  152. package/dist/tests/unit/crypto.test.js.map +1 -1
  153. package/dist/tests/unit/crypto_utils.test.js +1 -1
  154. package/dist/tests/unit/crypto_utils.test.js.map +1 -1
  155. package/dist/tests/unit/helpers/ConversationBuilder.d.ts +39 -0
  156. package/dist/tests/unit/helpers/ConversationBuilder.d.ts.map +1 -0
  157. package/dist/tests/unit/helpers/ConversationBuilder.js +171 -0
  158. package/dist/tests/unit/helpers/ConversationBuilder.js.map +1 -0
  159. package/dist/tests/unit/timelineStoreInterface.test.d.ts +5 -0
  160. package/dist/tests/unit/timelineStoreInterface.test.d.ts.map +1 -0
  161. package/dist/tests/unit/timelineStoreInterface.test.js +343 -0
  162. package/dist/tests/unit/timelineStoreInterface.test.js.map +1 -0
  163. package/dist/unauthenticatedClient.d.ts +2 -1
  164. package/dist/unauthenticatedClient.d.ts.map +1 -1
  165. package/dist/unauthenticatedClient.js +2 -2
  166. package/dist/unauthenticatedClient.js.map +1 -1
  167. package/package.json +11 -10
  168. package/dist/crypto_utils.d.ts +0 -15
  169. package/dist/crypto_utils.d.ts.map +0 -1
  170. package/dist/crypto_utils.js +0 -99
  171. package/dist/crypto_utils.js.map +0 -1
  172. package/dist/sync-agent/timeline/models/pendingReplacedEvents.d.ts +0 -12
  173. package/dist/sync-agent/timeline/models/pendingReplacedEvents.d.ts.map +0 -1
  174. package/dist/sync-agent/timeline/models/pendingReplacedEvents.js +0 -20
  175. package/dist/sync-agent/timeline/models/pendingReplacedEvents.js.map +0 -1
  176. package/dist/sync-agent/timeline/models/reactions.d.ts +0 -13
  177. package/dist/sync-agent/timeline/models/reactions.d.ts.map +0 -1
  178. package/dist/sync-agent/timeline/models/reactions.js +0 -67
  179. package/dist/sync-agent/timeline/models/reactions.js.map +0 -1
  180. package/dist/sync-agent/timeline/models/replacedEvents.d.ts +0 -18
  181. package/dist/sync-agent/timeline/models/replacedEvents.d.ts.map +0 -1
  182. package/dist/sync-agent/timeline/models/replacedEvents.js +0 -19
  183. package/dist/sync-agent/timeline/models/replacedEvents.js.map +0 -1
  184. package/dist/sync-agent/timeline/models/threadStats.d.ts +0 -14
  185. package/dist/sync-agent/timeline/models/threadStats.d.ts.map +0 -1
  186. package/dist/sync-agent/timeline/models/threadStats.js +0 -99
  187. package/dist/sync-agent/timeline/models/threadStats.js.map +0 -1
  188. package/dist/sync-agent/timeline/models/threads.d.ts +0 -14
  189. package/dist/sync-agent/timeline/models/threads.d.ts.map +0 -1
  190. package/dist/sync-agent/timeline/models/threads.js +0 -57
  191. package/dist/sync-agent/timeline/models/threads.js.map +0 -1
  192. package/dist/sync-agent/timeline/models/timelineEvent.d.ts +0 -12
  193. package/dist/sync-agent/timeline/models/timelineEvent.d.ts.map +0 -1
  194. package/dist/sync-agent/timeline/models/timelineEvent.js.map +0 -1
  195. package/dist/sync-agent/timeline/models/timelineEvents.d.ts +0 -13
  196. package/dist/sync-agent/timeline/models/timelineEvents.d.ts.map +0 -1
  197. package/dist/sync-agent/timeline/models/timelineEvents.js +0 -37
  198. package/dist/sync-agent/timeline/models/timelineEvents.js.map +0 -1
@@ -0,0 +1,343 @@
1
+ /**
2
+ * @group core
3
+ */
4
+ import { TimelinesView } from '../../streams-view/timelinesView';
5
+ import { ConversationBuilder } from './helpers/ConversationBuilder';
6
+ function describeEvent(event) {
7
+ return `${event.eventId} ${event.fallbackContent}`;
8
+ }
9
+ function describeEvents(events) {
10
+ return events.map((e) => describeEvent(e));
11
+ }
12
+ function describeThreads(threads) {
13
+ if (!threads) {
14
+ return undefined;
15
+ }
16
+ return Object.entries(threads).reduce((acc, [threadParentId, thread]) => {
17
+ acc[threadParentId] = thread.map((e) => describeEvent(e));
18
+ return acc;
19
+ }, {});
20
+ }
21
+ function describeTips(tipsMap) {
22
+ if (!tipsMap) {
23
+ return undefined;
24
+ }
25
+ const returnValue = {};
26
+ for (const [eventId, tips] of Object.entries(tipsMap)) {
27
+ const described = tips.map((t) => `${t.eventId} amount: ${t.content.tip.event?.amount.toString() ?? '??'} from: ${t.content.fromUserId} to: ${t.content.toUserId}`);
28
+ returnValue[eventId] = described;
29
+ }
30
+ return returnValue;
31
+ }
32
+ function execute(timelinesView, userId, events, expected) {
33
+ const setState = timelinesView.setState;
34
+ const channelId = 'channel1';
35
+ //
36
+ {
37
+ // test appending events (normal flow when syncing channels)
38
+ setState.appendEvents(events, userId, channelId);
39
+ // get the timeline store interface
40
+ const { timelines: timelinesAppended, threads: threadsAppended, threadsStats: threadStatsAppended, tips: tipsAppended, } = timelinesView.getState();
41
+ // assert the timeline events are in the correct order
42
+ expect(describeEvents(timelinesAppended[channelId])).toEqual(expected.timeline);
43
+ // check threads
44
+ if (expected.threads) {
45
+ expect(describeThreads(threadsAppended[channelId])).toEqual(expected.threads);
46
+ }
47
+ // thread stats
48
+ if (expected.threadStats) {
49
+ expect(threadStatsAppended[channelId]).toEqual(expected.threadStats);
50
+ }
51
+ // check tips
52
+ if (expected.tips) {
53
+ expect(describeTips(tipsAppended[channelId])).toEqual(expected.tips);
54
+ }
55
+ }
56
+ // clear the timeline
57
+ setState.reset([channelId]);
58
+ //
59
+ {
60
+ // test prepending events (normal flow when paginating)
61
+ setState.prependEvents(events, userId, channelId);
62
+ // get the timeline store interface
63
+ const { timelines: timelinesPrepended, threads: threadsPrepended, threadsStats: threadStatsPrepended, tips: tipsPrepended, } = timelinesView.getState();
64
+ // assert the timeline events are in the correct order
65
+ expect(describeEvents(timelinesPrepended[channelId])).toEqual(expected.timeline);
66
+ // check threads
67
+ if (expected.threads) {
68
+ expect(describeThreads(threadsPrepended[channelId])).toEqual(expected.threads);
69
+ }
70
+ // thread stats
71
+ if (expected.threadStats) {
72
+ expect(threadStatsPrepended[channelId]).toEqual(expected.threadStats);
73
+ }
74
+ // check tips
75
+ if (expected.tips) {
76
+ expect(describeTips(tipsPrepended[channelId])).toEqual(expected.tips);
77
+ }
78
+ }
79
+ }
80
+ describe('UseTimelinesView', () => {
81
+ const timelinesView = new TimelinesView('', undefined);
82
+ beforeAll(() => {
83
+ const { timelines } = timelinesView.getState();
84
+ const setState = timelinesView.setState;
85
+ const roomIds = Object.keys(timelines);
86
+ setState.reset(roomIds);
87
+ });
88
+ afterEach(() => {
89
+ const { timelines } = timelinesView.getState();
90
+ const setState = timelinesView.setState;
91
+ const roomIds = Object.keys(timelines);
92
+ setState.reset(roomIds);
93
+ });
94
+ test('test send', () => {
95
+ // events
96
+ const events = new ConversationBuilder()
97
+ .sendMessage({ from: 'alice', body: 'hi bob!' })
98
+ .getEvents();
99
+ // results
100
+ execute(timelinesView, 'alice', events, { timeline: ['event0 alice: hi bob!'] });
101
+ });
102
+ test('test send and edit', () => {
103
+ // events (use a custom id for the fist message so we can edit it)
104
+ const events = new ConversationBuilder()
105
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
106
+ .editMessage({ edits: 'MSG_0', newBody: 'hi bob! (edited)' })
107
+ .getEvents();
108
+ // results
109
+ execute(timelinesView, 'alice', events, { timeline: ['MSG_0 alice: hi bob! (edited)'] });
110
+ });
111
+ test('test send and edit with different sender', () => {
112
+ // events (use a custom id for the fist message so we can edit it)
113
+ const events = new ConversationBuilder()
114
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
115
+ .editMessage({ edits: 'MSG_0', newBody: 'alice sucks! (edited)', senderId: 'bob' })
116
+ .getEvents();
117
+ // results
118
+ execute(timelinesView, 'alice', events, { timeline: ['MSG_0 alice: hi bob!'] });
119
+ });
120
+ test('test send and multiple edits', () => {
121
+ // events (use a custom id for the fist message so we can edit it)
122
+ const events = new ConversationBuilder()
123
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
124
+ .editMessage({ edits: 'MSG_0', newBody: 'hi bob! (edited)' })
125
+ .editMessage({ edits: 'MSG_0', newBody: 'hi bob! (edited2)' })
126
+ .getEvents();
127
+ // results
128
+ execute(timelinesView, 'alice', events, { timeline: ['MSG_0 alice: hi bob! (edited2)'] });
129
+ });
130
+ test('test send and multiple edits out of order', () => {
131
+ // events (use a custom id for the fist message so we can edit it)
132
+ const events = new ConversationBuilder()
133
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
134
+ .editMessage({ edits: 'MSG_0', newBody: 'hi bob! (edited)' })
135
+ .editMessage({ edits: 'MSG_0', newBody: 'hi bob! (edited2)' })
136
+ .getEvents();
137
+ // results
138
+ const ex = events[events.length - 1];
139
+ events[events.length - 1] = events[events.length - 2];
140
+ events[events.length - 2] = ex;
141
+ execute(timelinesView, 'alice', events, { timeline: ['MSG_0 alice: hi bob! (edited2)'] });
142
+ });
143
+ test('test threads and thread stats', () => {
144
+ // events
145
+ const events = new ConversationBuilder()
146
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
147
+ .sendMessage({ threadId: 'MSG_0', from: 'bob', body: 'hi alice!' })
148
+ .sendMessage({ threadId: 'MSG_0', from: 'bob', body: 'Hows it going?' })
149
+ .getEvents();
150
+ // results
151
+ execute(timelinesView, 'alice', events, {
152
+ timeline: [
153
+ 'MSG_0 alice: hi bob!',
154
+ 'event1 bob: hi alice!',
155
+ 'event2 bob: Hows it going?',
156
+ ],
157
+ threads: {
158
+ MSG_0: ['event1 bob: hi alice!', 'event2 bob: Hows it going?'],
159
+ },
160
+ threadStats: {
161
+ MSG_0: {
162
+ replyEventIds: new Set(['event1', 'event2']),
163
+ userIds: new Set(['bob']),
164
+ latestTs: events[2].createdAtEpochMs,
165
+ parentId: events[0].eventId,
166
+ parentEvent: events[0],
167
+ parentMessageContent: events[0].content,
168
+ isParticipating: true,
169
+ },
170
+ },
171
+ });
172
+ });
173
+ test('test tip', () => {
174
+ // ids must be hex
175
+ const msgId_0 = '0x1234';
176
+ const msgId_1 = '0x1235';
177
+ const tipId_a = '0x1236';
178
+ const tipId_b = '0x1237';
179
+ const tipId_c = '0x1238';
180
+ // events
181
+ const events = new ConversationBuilder()
182
+ .sendMessage({ id: msgId_0, from: 'alice', body: 'hi bob!' })
183
+ .sendMessage({ id: msgId_1, from: 'bob', body: 'hi alice!' })
184
+ .sendTip({ tip: 10, ref: msgId_1, id: tipId_a, from: 'bob', to: 'alice' })
185
+ .sendTip({ tip: 10, ref: msgId_0, id: tipId_b, from: 'alice', to: 'bob' })
186
+ .sendTip({ tip: 10, ref: msgId_0, id: tipId_c, from: 'alice', to: 'bob' })
187
+ .getEvents();
188
+ // results
189
+ execute(timelinesView, 'alice', events, {
190
+ timeline: [
191
+ `${msgId_0} alice: hi bob!`,
192
+ `${msgId_1} bob: hi alice!`,
193
+ `${tipId_a} tip from: bob to: alice refEventId: ${msgId_1} amount: 10`,
194
+ `${tipId_b} tip from: alice to: bob refEventId: ${msgId_0} amount: 10`,
195
+ `${tipId_c} tip from: alice to: bob refEventId: ${msgId_0} amount: 10`,
196
+ ],
197
+ tips: {
198
+ [msgId_1]: [`${tipId_a} amount: 10 from: bob to: alice`],
199
+ [msgId_0]: [
200
+ `${tipId_b} amount: 10 from: alice to: bob`,
201
+ `${tipId_c} amount: 10 from: alice to: bob`,
202
+ ],
203
+ },
204
+ });
205
+ });
206
+ test('test edit thread item', () => {
207
+ // events
208
+ const events = new ConversationBuilder()
209
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
210
+ .sendMessage({ id: 'THREAD_0', threadId: 'MSG_0', from: 'bob', body: 'hi alice!' })
211
+ .editMessage({ edits: 'THREAD_0', newBody: 'hi alice! (edited)' })
212
+ .getEvents();
213
+ // results
214
+ execute(timelinesView, 'alice', events, {
215
+ timeline: ['MSG_0 alice: hi bob!', 'THREAD_0 bob: hi alice! (edited)'],
216
+ threads: {
217
+ MSG_0: ['THREAD_0 bob: hi alice! (edited)'],
218
+ },
219
+ threadStats: {
220
+ MSG_0: {
221
+ replyEventIds: new Set(['THREAD_0']),
222
+ userIds: new Set(['bob']),
223
+ latestTs: events[1].createdAtEpochMs,
224
+ parentId: events[0].eventId,
225
+ parentEvent: events[0],
226
+ parentMessageContent: events[0].content,
227
+ isParticipating: true,
228
+ },
229
+ },
230
+ });
231
+ });
232
+ test('test redact thread item', () => {
233
+ // events
234
+ const events = new ConversationBuilder()
235
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob!' })
236
+ .sendMessage({ id: 'THREAD_0', threadId: 'MSG_0', from: 'bob', body: 'hi alice!' })
237
+ .redactMessage({ redacts: 'THREAD_0' })
238
+ .getEvents();
239
+ // results
240
+ execute(timelinesView, 'alice', events, {
241
+ timeline: [
242
+ 'MSG_0 alice: hi bob!',
243
+ 'THREAD_0 ~Redacted~',
244
+ 'event2 Redacts THREAD_0 adminRedaction: false',
245
+ ],
246
+ threads: {
247
+ MSG_0: ['THREAD_0 ~Redacted~'],
248
+ },
249
+ threadStats: {
250
+ MSG_0: {
251
+ replyEventIds: new Set([]),
252
+ userIds: new Set([]),
253
+ latestTs: events[1].createdAtEpochMs,
254
+ parentId: events[0].eventId,
255
+ parentEvent: events[0],
256
+ parentMessageContent: events[0].content,
257
+ isParticipating: false,
258
+ },
259
+ },
260
+ });
261
+ });
262
+ test('test send, edit and redact', () => {
263
+ // events
264
+ const events = new ConversationBuilder()
265
+ .sendMessage({ from: 'alice', body: 'hi bob!' })
266
+ .sendMessage({
267
+ id: 'MSG_1',
268
+ from: 'bob',
269
+ body: 'hi alice!',
270
+ })
271
+ .sendMessage({
272
+ id: 'MSG_2',
273
+ from: 'bob',
274
+ body: 'this is banannas',
275
+ })
276
+ .editMessage({
277
+ edits: 'MSG_1',
278
+ newBody: 'hi alice! (edited)',
279
+ })
280
+ .sendMessage({ from: 'alice', body: 'banannas? lol' })
281
+ .redactMessage({ redacts: 'MSG_2' })
282
+ .getEvents();
283
+ // results
284
+ execute(timelinesView, 'alice', events, {
285
+ timeline: [
286
+ 'event0 alice: hi bob!',
287
+ 'MSG_1 bob: hi alice! (edited)',
288
+ 'MSG_2 ~Redacted~',
289
+ 'event4 alice: banannas? lol',
290
+ 'event5 Redacts MSG_2 adminRedaction: false',
291
+ ],
292
+ });
293
+ });
294
+ test('test send and redact', () => {
295
+ // events (use a custom id for the fist message so we can edit it)
296
+ const events = new ConversationBuilder()
297
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob' })
298
+ .sendMessage({ id: 'MSG_1', from: 'alice', body: 'hi bob!' })
299
+ .redactMessage({ redacts: 'MSG_0' })
300
+ .getEvents();
301
+ // results
302
+ execute(timelinesView, 'alice', events, {
303
+ timeline: [
304
+ 'MSG_0 ~Redacted~',
305
+ 'MSG_1 alice: hi bob!',
306
+ 'event2 Redacts MSG_0 adminRedaction: false',
307
+ ],
308
+ });
309
+ });
310
+ test('test send and redact with different sender, redaction should be ignored', () => {
311
+ // events (use a custom id for the fist message so we can edit it)
312
+ const events = new ConversationBuilder()
313
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob' })
314
+ .sendMessage({ id: 'MSG_1', from: 'alice', body: 'hi bob!' })
315
+ .redactMessage({ redacts: 'MSG_0', senderId: 'bob' })
316
+ .getEvents();
317
+ // results
318
+ execute(timelinesView, 'alice', events, {
319
+ timeline: [
320
+ 'MSG_0 alice: hi bob',
321
+ 'MSG_1 alice: hi bob!',
322
+ 'event2 Redacts MSG_0 adminRedaction: false', // the redaction action show up, but the message is not redacted
323
+ ],
324
+ });
325
+ });
326
+ test('test send and admin redact', () => {
327
+ // events (use a custom id for the fist message so we can edit it)
328
+ const events = new ConversationBuilder()
329
+ .sendMessage({ id: 'MSG_0', from: 'alice', body: 'hi bob' })
330
+ .sendMessage({ id: 'MSG_1', from: 'alice', body: 'hi bob!' })
331
+ .redactMessage({ redacts: 'MSG_0', senderId: 'bob', isAdmin: true })
332
+ .getEvents();
333
+ // results
334
+ execute(timelinesView, 'alice', events, {
335
+ timeline: [
336
+ 'MSG_0 ~Redacted~',
337
+ 'MSG_1 alice: hi bob!',
338
+ 'event2 Redacts MSG_0 adminRedaction: true',
339
+ ],
340
+ });
341
+ });
342
+ });
343
+ //# sourceMappingURL=timelineStoreInterface.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelineStoreInterface.test.js","sourceRoot":"","sources":["../../../src/tests/unit/timelineStoreInterface.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { StreamRpcClient } from './makeStreamRpcClient';
2
2
  import { UnpackEnvelopeOpts } from './sign';
3
3
  import { StreamStateView } from './streamStateView';
4
+ import { StreamsView } from './streams-view/streamsView';
4
5
  export declare class UnauthenticatedClient {
5
6
  readonly rpcClient: StreamRpcClient;
6
7
  private readonly logCall;
@@ -13,7 +14,7 @@ export declare class UnauthenticatedClient {
13
14
  userWithAddressExists(address: Uint8Array): Promise<boolean>;
14
15
  userExists(userId: string): Promise<boolean>;
15
16
  streamExists(streamId: string | Uint8Array): Promise<boolean>;
16
- getStream(streamId: string | Uint8Array): Promise<StreamStateView>;
17
+ getStream(streamId: string | Uint8Array, streamsView?: StreamsView): Promise<StreamStateView>;
17
18
  scrollback(streamView: StreamStateView): Promise<{
18
19
  terminus: boolean;
19
20
  fromInclusiveMiniblockNum: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"unauthenticatedClient.d.ts","sourceRoot":"","sources":["../src/unauthenticatedClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAgB,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAKnD,qBAAa,qBAAqB;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IAEnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,qBAAqB,CAA6D;gBAGtF,SAAS,EAAE,eAAe,EAC1B,kBAAkB,CAAC,EAAE,MAAM,EAE3B,IAAI,GAAE,kBAGL;IAmBC,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;IAiClE,UAAU,CACZ,UAAU,EAAE,eAAe,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,yBAAyB,EAAE,MAAM,CAAA;KAAE,CAAC;YAoEtD,aAAa;IA2B3B,OAAO,CAAC,QAAQ;CAInB"}
1
+ {"version":3,"file":"unauthenticatedClient.d.ts","sourceRoot":"","sources":["../src/unauthenticatedClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAgB,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAGxD,qBAAa,qBAAqB;IAC9B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;IAEnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IAEvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,qBAAqB,CAA6D;gBAGtF,SAAS,EAAE,eAAe,EAC1B,kBAAkB,CAAC,EAAE,MAAM,EAE3B,IAAI,GAAE,kBAGL;IAmBC,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7D,SAAS,CACX,QAAQ,EAAE,MAAM,GAAG,UAAU,EAC7B,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,eAAe,CAAC;IAqCrB,UAAU,CACZ,UAAU,EAAE,eAAe,GAC5B,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,yBAAyB,EAAE,MAAM,CAAA;KAAE,CAAC;YAoEtD,aAAa;IA2B3B,OAAO,CAAC,QAAQ;CAInB"}
@@ -47,14 +47,14 @@ export class UnauthenticatedClient {
47
47
  this.logCall('streamExists=', streamId, response.stream);
48
48
  return response.stream !== undefined;
49
49
  }
50
- async getStream(streamId) {
50
+ async getStream(streamId, streamsView) {
51
51
  try {
52
52
  this.logCall('getStream', streamId);
53
53
  const response = await this.rpcClient.getStream({ streamId: streamIdAsBytes(streamId) });
54
54
  this.logCall('getStream', response.stream);
55
55
  check(isDefined(response.stream) && hasElements(response.stream.miniblocks), 'got bad stream');
56
56
  const { streamAndCookie, snapshot, prevSnapshotMiniblockNum } = await unpackStream(response.stream, this.unpackEnvelopeOpts);
57
- const streamView = new StreamStateView(this.userId, streamIdAsString(streamId));
57
+ const streamView = new StreamStateView(this.userId, streamIdAsString(streamId), streamsView);
58
58
  streamView.initialize(streamAndCookie.nextSyncCookie, streamAndCookie.events, snapshot, streamAndCookie.miniblocks, [], prevSnapshotMiniblockNum, undefined, [], undefined);
59
59
  return streamView;
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unauthenticatedClient.js","sourceRoot":"","sources":["../src/unauthenticatedClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unauthenticatedClient.js","sourceRoot":"","sources":["../src/unauthenticatedClient.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.242",
3
+ "version": "0.0.245",
4
4
  "packageManager": "yarn@3.8.0",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,16 +27,16 @@
27
27
  "dependencies": {
28
28
  "@bufbuild/protobuf": "^2.2.2",
29
29
  "@connectrpc/connect": "^2.0.0",
30
- "@connectrpc/connect-node": "^2.0.0",
31
- "@connectrpc/connect-web": "^2.0.0",
32
30
  "@ethereumjs/util": "^10.0.0",
33
31
  "@noble/curves": "^1.9.1",
34
32
  "@noble/hashes": "^1.8.0",
35
- "@towns-protocol/dlog": "^0.0.242",
36
- "@towns-protocol/encryption": "^0.0.242",
37
- "@towns-protocol/generated": "^0.0.242",
38
- "@towns-protocol/proto": "^0.0.242",
39
- "@towns-protocol/web3": "^0.0.242",
33
+ "@towns-protocol/dlog": "^0.0.245",
34
+ "@towns-protocol/encryption": "^0.0.245",
35
+ "@towns-protocol/generated": "^0.0.245",
36
+ "@towns-protocol/proto": "^0.0.245",
37
+ "@towns-protocol/rpc-connector": "^0.0.245",
38
+ "@towns-protocol/sdk-crypto": "^0.0.245",
39
+ "@towns-protocol/web3": "^0.0.245",
40
40
  "browser-or-node": "^3.0.0",
41
41
  "debug": "^4.3.4",
42
42
  "dexie": "^4.0.7",
@@ -45,9 +45,10 @@
45
45
  "lodash": "^4.17.21",
46
46
  "nanoid": "^4.0.0",
47
47
  "p-limit": "^6.1.0",
48
- "vitest": "3.0.5"
48
+ "vitest": "^3.2.3"
49
49
  },
50
50
  "devDependencies": {
51
+ "@connectrpc/connect-web": "^2.0.0",
51
52
  "@types/debug": "^4.1.8",
52
53
  "@types/lodash": "^4.14.186",
53
54
  "@types/node": "^20.14.8",
@@ -71,5 +72,5 @@
71
72
  "files": [
72
73
  "/dist"
73
74
  ],
74
- "gitHead": "0da2aeb0eeeb344c6ac5ef5c4d137f68936d1c78"
75
+ "gitHead": "72b12b78630a122af504bbe8ad8d655820ae9d7b"
75
76
  }
@@ -1,15 +0,0 @@
1
- import { EncryptedData } from '@towns-protocol/proto';
2
- export declare function uint8ArrayToBase64(uint8Array: Uint8Array): string;
3
- export declare function base64ToUint8Array(base64: string): Uint8Array;
4
- export declare function deriveKeyAndIV(keyPhrase: string | Uint8Array): Promise<{
5
- key: Uint8Array;
6
- iv: Uint8Array;
7
- }>;
8
- export declare function encryptAESGCM(data: Uint8Array, key?: Uint8Array, iv?: Uint8Array): Promise<{
9
- ciphertext: Uint8Array;
10
- iv: Uint8Array;
11
- secretKey: Uint8Array;
12
- }>;
13
- export declare function decryptAESGCM(data: Uint8Array | string, key: Uint8Array, iv: Uint8Array): Promise<Uint8Array>;
14
- export declare function decryptDerivedAESGCM(keyPhrase: string, encryptedData: EncryptedData): Promise<Uint8Array>;
15
- //# sourceMappingURL=crypto_utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto_utils.d.ts","sourceRoot":"","sources":["../src/crypto_utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAO,MAAM,uBAAuB,CAAA;AAI1D,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAG7D;AAwBD,wBAAsB,cAAc,CAChC,SAAS,EAAE,MAAM,GAAG,UAAU,GAC/B,OAAO,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,UAAU,CAAA;CAAE,CAAC,CAgB9C;AAED,wBAAsB,aAAa,CAC/B,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,UAAU,EAChB,EAAE,CAAC,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,UAAU,CAAA;CAAE,CAAC,CA2B5E;AAED,wBAAsB,aAAa,CAC/B,IAAI,EAAE,UAAU,GAAG,MAAM,EACzB,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAwCrB;AAED,wBAAsB,oBAAoB,CACtC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,GAC7B,OAAO,CAAC,UAAU,CAAC,CAOrB"}
@@ -1,99 +0,0 @@
1
- // This function is a helper for encrypting and decrypting public content.
2
- // The same IV and key are generated from the key phrase each time.
3
- // Not intended for protecting sensitive data, but rather for obfuscating content.
4
- import { throwWithCode } from '@towns-protocol/dlog';
5
- import { Err } from '@towns-protocol/proto';
6
- import { AES_GCM_DERIVED_ALGORITHM } from '@towns-protocol/encryption';
7
- import crypto from 'crypto';
8
- export function uint8ArrayToBase64(uint8Array) {
9
- return Buffer.from(uint8Array).toString('base64');
10
- }
11
- export function base64ToUint8Array(base64) {
12
- const buffer = Buffer.from(base64, 'base64');
13
- return new Uint8Array(buffer);
14
- }
15
- function bufferToUint8Array(buffer) {
16
- return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
17
- }
18
- function uint8ArrayToBuffer(uint8Array) {
19
- return Buffer.from(uint8Array.buffer, uint8Array.byteOffset, uint8Array.byteLength);
20
- }
21
- async function getExtendedKeyMaterial(seedBuffer, length) {
22
- const hash = crypto.createHash('sha256');
23
- hash.update(uint8ArrayToBuffer(seedBuffer));
24
- let keyMaterial = bufferToUint8Array(hash.digest());
25
- while (keyMaterial.length < length) {
26
- const newHash = crypto.createHash('sha256');
27
- newHash.update(uint8ArrayToBuffer(keyMaterial));
28
- keyMaterial = new Uint8Array([...keyMaterial, ...bufferToUint8Array(newHash.digest())]);
29
- }
30
- return keyMaterial.slice(0, length);
31
- }
32
- export async function deriveKeyAndIV(keyPhrase) {
33
- let keyBuffer;
34
- if (typeof keyPhrase === 'string') {
35
- const encoder = new TextEncoder();
36
- keyBuffer = encoder.encode(keyPhrase);
37
- }
38
- else {
39
- keyBuffer = keyPhrase;
40
- }
41
- const keyMaterial = await getExtendedKeyMaterial(keyBuffer, 32 + 12); // 32 bytes for key, 12 bytes for IV
42
- const key = keyMaterial.slice(0, 32); // AES-256 key
43
- const iv = keyMaterial.slice(32, 32 + 12); // AES-GCM IV
44
- return { key, iv };
45
- }
46
- export async function encryptAESGCM(data, key, iv) {
47
- if (!data || data.length === 0) {
48
- throw new Error('Cannot encrypt undefined or empty data');
49
- }
50
- if (!key) {
51
- key = crypto.randomBytes(32);
52
- }
53
- else if (key.length !== 32) {
54
- throw new Error('Invalid key length. AES-256-GCM requires a 32-byte key.');
55
- }
56
- if (!iv) {
57
- iv = crypto.randomBytes(12);
58
- }
59
- else if (iv.length !== 12) {
60
- throw new Error('Invalid IV length. AES-256-GCM requires a 12-byte IV.');
61
- }
62
- const cipher = crypto.createCipheriv('aes-256-gcm', uint8ArrayToBuffer(key), uint8ArrayToBuffer(iv));
63
- const encrypted = Buffer.concat([cipher.update(uint8ArrayToBuffer(data)), cipher.final()]);
64
- const authTag = cipher.getAuthTag();
65
- const ciphertext = Buffer.concat([encrypted, authTag]);
66
- return { ciphertext: bufferToUint8Array(ciphertext), iv, secretKey: key };
67
- }
68
- export async function decryptAESGCM(data, key, iv) {
69
- if (key.length !== 32) {
70
- throw new Error('Invalid key length. AES-256-GCM requires a 32-byte key.');
71
- }
72
- if (iv.length !== 12) {
73
- throw new Error('Invalid IV length. AES-256-GCM requires a 12-byte IV.');
74
- }
75
- // Convert data to Uint8Array if it is a string
76
- let dataBuffer;
77
- if (typeof data === 'string') {
78
- dataBuffer = Buffer.from(data, 'base64');
79
- }
80
- else {
81
- dataBuffer = data;
82
- }
83
- const encryptedBuffer = Buffer.from(dataBuffer.buffer, dataBuffer.byteOffset, dataBuffer.byteLength);
84
- const authTag = new Uint8Array(encryptedBuffer.buffer.slice(encryptedBuffer.byteOffset + encryptedBuffer.length - 16, encryptedBuffer.byteOffset + encryptedBuffer.length));
85
- const encryptedContent = new Uint8Array(encryptedBuffer.buffer.slice(encryptedBuffer.byteOffset, encryptedBuffer.byteOffset + encryptedBuffer.length - 16));
86
- const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
87
- decipher.setAuthTag(authTag);
88
- const decrypted = Buffer.concat([decipher.update(encryptedContent), decipher.final()]);
89
- return new Uint8Array(decrypted.buffer, decrypted.byteOffset, decrypted.byteLength);
90
- }
91
- export async function decryptDerivedAESGCM(keyPhrase, encryptedData) {
92
- if (encryptedData.algorithm !== AES_GCM_DERIVED_ALGORITHM) {
93
- throwWithCode(`${encryptedData.algorithm}" algorithm not implemented`, Err.UNIMPLEMENTED);
94
- }
95
- const { key, iv } = await deriveKeyAndIV(keyPhrase);
96
- const ciphertext = base64ToUint8Array(encryptedData.ciphertext);
97
- return decryptAESGCM(ciphertext, key, iv);
98
- }
99
- //# sourceMappingURL=crypto_utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto_utils.js","sourceRoot":"","sources":["../src/crypto_utils.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { Observable } from '../../../observable/observable';
2
- import { TimelineEvent } from './timeline-types';
3
- type PendingReplacedEventsMap = Record<string, TimelineEvent>;
4
- export declare class PendingReplacedEvents extends Observable<PendingReplacedEventsMap> {
5
- constructor(initialValue?: Record<string, TimelineEvent>);
6
- update(fn: (current: PendingReplacedEventsMap) => PendingReplacedEventsMap): void;
7
- reset(): void;
8
- get(eventId: string): TimelineEvent | undefined;
9
- add(eventId: string, event: TimelineEvent): void;
10
- }
11
- export {};
12
- //# sourceMappingURL=pendingReplacedEvents.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pendingReplacedEvents.d.ts","sourceRoot":"","sources":["../../../../src/sync-agent/timeline/models/pendingReplacedEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,KAAK,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAE7D,qBAAa,qBAAsB,SAAQ,UAAU,CAAC,wBAAwB,CAAC;gBAC/D,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAM;IAI5D,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,wBAAwB,GAAG,IAAI;IAIjF,KAAK;IAIL,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI/C,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;CAG5C"}