@towns-protocol/sdk 0.0.242 → 0.0.244
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 +5 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +64 -18
- package/dist/client.js.map +1 -1
- package/dist/id.d.ts +3 -1
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +3 -0
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +4 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -8
- package/dist/index.js.map +1 -1
- package/dist/makeAuthenticationRpcClient.d.ts +1 -1
- package/dist/makeAuthenticationRpcClient.d.ts.map +1 -1
- package/dist/makeAuthenticationRpcClient.js +2 -2
- package/dist/makeAuthenticationRpcClient.js.map +1 -1
- package/dist/makeNotificationRpcClient.d.ts +1 -1
- package/dist/makeNotificationRpcClient.d.ts.map +1 -1
- package/dist/makeNotificationRpcClient.js +2 -2
- package/dist/makeNotificationRpcClient.js.map +1 -1
- package/dist/makeStreamRpcClient.d.ts +1 -1
- package/dist/makeStreamRpcClient.d.ts.map +1 -1
- package/dist/makeStreamRpcClient.js +2 -2
- package/dist/makeStreamRpcClient.js.map +1 -1
- package/dist/notificationService.d.ts.map +1 -1
- package/dist/notificationService.js +2 -1
- package/dist/notificationService.js.map +1 -1
- package/dist/riverConfig.js +1 -1
- package/dist/riverConfig.js.map +1 -1
- package/dist/rpcCommon.d.ts +1 -3
- package/dist/rpcCommon.d.ts.map +1 -1
- package/dist/rpcCommon.js +1 -13
- package/dist/rpcCommon.js.map +1 -1
- package/dist/sign.d.ts +1 -1
- package/dist/sign.d.ts.map +1 -1
- package/dist/sign.js +13 -7
- package/dist/sign.js.map +1 -1
- package/dist/stream.d.ts +4 -2
- package/dist/stream.d.ts.map +1 -1
- package/dist/stream.js +9 -6
- package/dist/stream.js.map +1 -1
- package/dist/streamEvents.d.ts +3 -3
- package/dist/streamEvents.d.ts.map +1 -1
- package/dist/streamStateView.d.ts +9 -6
- package/dist/streamStateView.d.ts.map +1 -1
- package/dist/streamStateView.js +58 -62
- package/dist/streamStateView.js.map +1 -1
- package/dist/streamStateView_Space.js +1 -1
- package/dist/streamStateView_Space.js.map +1 -1
- package/dist/streamStateView_UserMetadata.js +1 -1
- package/dist/streamStateView_UserMetadata.js.map +1 -1
- package/dist/streamUtils.d.ts.map +1 -1
- package/dist/streamUtils.js +2 -0
- package/dist/streamUtils.js.map +1 -1
- package/dist/streams-view/streamsView.d.ts +18 -0
- package/dist/streams-view/streamsView.d.ts.map +1 -0
- package/dist/streams-view/streamsView.js +25 -0
- package/dist/streams-view/streamsView.js.map +1 -0
- package/dist/streams-view/timelineEvents.d.ts +11 -0
- package/dist/streams-view/timelineEvents.d.ts.map +1 -0
- package/dist/{sync-agent/timeline/models/timelineEvent.js → streams-view/timelineEvents.js} +240 -303
- package/dist/streams-view/timelineEvents.js.map +1 -0
- package/dist/streams-view/timelinesView.d.ts +27 -0
- package/dist/streams-view/timelinesView.d.ts.map +1 -0
- package/dist/streams-view/timelinesView.js +109 -0
- package/dist/streams-view/timelinesView.js.map +1 -0
- package/dist/streams-view/timelinesViewModel.d.ts +38 -0
- package/dist/streams-view/timelinesViewModel.d.ts.map +1 -0
- package/dist/streams-view/timelinesViewModel.js +681 -0
- package/dist/streams-view/timelinesViewModel.js.map +1 -0
- package/dist/sync-agent/dms/models/dm.js +2 -2
- package/dist/sync-agent/dms/models/dm.js.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.js +2 -2
- package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
- package/dist/sync-agent/spaces/models/channel.js +3 -3
- package/dist/sync-agent/spaces/models/channel.js.map +1 -1
- package/dist/sync-agent/syncAgent.d.ts.map +1 -1
- package/dist/sync-agent/syncAgent.js +4 -0
- package/dist/sync-agent/syncAgent.js.map +1 -1
- package/dist/sync-agent/timeline/models/timeline-types.d.ts +2 -1
- package/dist/sync-agent/timeline/models/timeline-types.d.ts.map +1 -1
- package/dist/sync-agent/timeline/models/timeline-types.js +109 -0
- package/dist/sync-agent/timeline/models/timeline-types.js.map +1 -1
- package/dist/sync-agent/timeline/timeline.d.ts +9 -26
- package/dist/sync-agent/timeline/timeline.d.ts.map +1 -1
- package/dist/sync-agent/timeline/timeline.js +21 -226
- package/dist/sync-agent/timeline/timeline.js.map +1 -1
- package/dist/syncedStream.d.ts +2 -1
- package/dist/syncedStream.d.ts.map +1 -1
- package/dist/syncedStream.js +11 -12
- package/dist/syncedStream.js.map +1 -1
- package/dist/syncedStreams.d.ts +1 -0
- package/dist/syncedStreams.d.ts.map +1 -1
- package/dist/syncedStreams.js.map +1 -1
- package/dist/syncedStreamsLoop.d.ts +1 -0
- package/dist/syncedStreamsLoop.d.ts.map +1 -1
- package/dist/syncedStreamsLoop.js +6 -1
- package/dist/syncedStreamsLoop.js.map +1 -1
- package/dist/tags.d.ts.map +1 -1
- package/dist/tags.js +15 -16
- package/dist/tags.js.map +1 -1
- package/dist/tests/bob_testUtils.d.ts.map +1 -1
- package/dist/tests/bob_testUtils.js +4 -1
- package/dist/tests/bob_testUtils.js.map +1 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +3 -3
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +1 -1
- package/dist/tests/multi/sync-agent/timeline.test.js +12 -7
- package/dist/tests/multi/sync-agent/timeline.test.js.map +1 -1
- package/dist/tests/multi/transactions_SpaceReview.test.js +11 -17
- package/dist/tests/multi/transactions_SpaceReview.test.js.map +1 -1
- package/dist/tests/multi/transactions_Tip.test.js +16 -20
- package/dist/tests/multi/transactions_Tip.test.js.map +1 -1
- package/dist/tests/multi_ne/channels.test.js +6 -8
- package/dist/tests/multi_ne/channels.test.js.map +1 -1
- package/dist/tests/multi_ne/client.test.js +45 -62
- package/dist/tests/multi_ne/client.test.js.map +1 -1
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +6 -11
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
- package/dist/tests/multi_ne/deviceKeyMessage.test.js +6 -4
- package/dist/tests/multi_ne/deviceKeyMessage.test.js.map +1 -1
- package/dist/tests/multi_ne/gdms.test.js +6 -1
- package/dist/tests/multi_ne/gdms.test.js.map +1 -1
- package/dist/tests/multi_ne/media.test.js +1 -1
- package/dist/tests/multi_ne/media.test.js.map +1 -1
- package/dist/tests/multi_ne/space.test.js +1 -1
- package/dist/tests/multi_ne/space.test.js.map +1 -1
- package/dist/tests/multi_ne/streamRpcClient.test.js +4 -1
- package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
- package/dist/tests/multi_ne/streamRpcClientSync.test.js +8 -2
- package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
- package/dist/tests/multi_ne/syncWithBlocks.test.js +4 -1
- package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
- package/dist/tests/multi_ne/syncedStream.test.js +39 -7
- package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
- package/dist/tests/multi_ne/syncedStreams.test.js +9 -365
- package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
- package/dist/tests/multi_ne/tags.test.js +114 -85
- package/dist/tests/multi_ne/tags.test.js.map +1 -1
- package/dist/tests/multi_ne/userSettings.test.js +15 -15
- package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
- package/dist/tests/syncAgent_testUtils.d.ts.map +1 -1
- package/dist/tests/syncAgent_testUtils.js +4 -0
- package/dist/tests/syncAgent_testUtils.js.map +1 -1
- package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
- package/dist/tests/testDriver_testUtils.js +4 -7
- package/dist/tests/testDriver_testUtils.js.map +1 -1
- package/dist/tests/testUtils.d.ts +1 -0
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +13 -4
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/unit/crypto.test.js +6 -0
- package/dist/tests/unit/crypto.test.js.map +1 -1
- package/dist/tests/unit/crypto_utils.test.js +1 -1
- package/dist/tests/unit/crypto_utils.test.js.map +1 -1
- package/dist/tests/unit/helpers/ConversationBuilder.d.ts +39 -0
- package/dist/tests/unit/helpers/ConversationBuilder.d.ts.map +1 -0
- package/dist/tests/unit/helpers/ConversationBuilder.js +171 -0
- package/dist/tests/unit/helpers/ConversationBuilder.js.map +1 -0
- package/dist/tests/unit/timelineStoreInterface.test.d.ts +5 -0
- package/dist/tests/unit/timelineStoreInterface.test.d.ts.map +1 -0
- package/dist/tests/unit/timelineStoreInterface.test.js +343 -0
- package/dist/tests/unit/timelineStoreInterface.test.js.map +1 -0
- package/dist/unauthenticatedClient.d.ts +2 -1
- package/dist/unauthenticatedClient.d.ts.map +1 -1
- package/dist/unauthenticatedClient.js +2 -2
- package/dist/unauthenticatedClient.js.map +1 -1
- package/package.json +11 -10
- package/dist/crypto_utils.d.ts +0 -15
- package/dist/crypto_utils.d.ts.map +0 -1
- package/dist/crypto_utils.js +0 -99
- package/dist/crypto_utils.js.map +0 -1
- package/dist/sync-agent/timeline/models/pendingReplacedEvents.d.ts +0 -12
- package/dist/sync-agent/timeline/models/pendingReplacedEvents.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/pendingReplacedEvents.js +0 -20
- package/dist/sync-agent/timeline/models/pendingReplacedEvents.js.map +0 -1
- package/dist/sync-agent/timeline/models/reactions.d.ts +0 -13
- package/dist/sync-agent/timeline/models/reactions.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/reactions.js +0 -67
- package/dist/sync-agent/timeline/models/reactions.js.map +0 -1
- package/dist/sync-agent/timeline/models/replacedEvents.d.ts +0 -18
- package/dist/sync-agent/timeline/models/replacedEvents.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/replacedEvents.js +0 -19
- package/dist/sync-agent/timeline/models/replacedEvents.js.map +0 -1
- package/dist/sync-agent/timeline/models/threadStats.d.ts +0 -14
- package/dist/sync-agent/timeline/models/threadStats.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/threadStats.js +0 -99
- package/dist/sync-agent/timeline/models/threadStats.js.map +0 -1
- package/dist/sync-agent/timeline/models/threads.d.ts +0 -14
- package/dist/sync-agent/timeline/models/threads.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/threads.js +0 -57
- package/dist/sync-agent/timeline/models/threads.js.map +0 -1
- package/dist/sync-agent/timeline/models/timelineEvent.d.ts +0 -12
- package/dist/sync-agent/timeline/models/timelineEvent.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/timelineEvent.js.map +0 -1
- package/dist/sync-agent/timeline/models/timelineEvents.d.ts +0 -13
- package/dist/sync-agent/timeline/models/timelineEvents.d.ts.map +0 -1
- package/dist/sync-agent/timeline/models/timelineEvents.js +0 -37
- 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;
|
|
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAW,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAChD,OAAO,EAAmB,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAsB,YAAY,EAAE,MAAM,QAAQ,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;
|
|
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.
|
|
3
|
+
"version": "0.0.244",
|
|
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.
|
|
36
|
-
"@towns-protocol/encryption": "^0.0.
|
|
37
|
-
"@towns-protocol/generated": "^0.0.
|
|
38
|
-
"@towns-protocol/proto": "^0.0.
|
|
39
|
-
"@towns-protocol/
|
|
33
|
+
"@towns-protocol/dlog": "^0.0.244",
|
|
34
|
+
"@towns-protocol/encryption": "^0.0.244",
|
|
35
|
+
"@towns-protocol/generated": "^0.0.244",
|
|
36
|
+
"@towns-protocol/proto": "^0.0.244",
|
|
37
|
+
"@towns-protocol/rpc-connector": "^0.0.244",
|
|
38
|
+
"@towns-protocol/sdk-crypto": "^0.0.244",
|
|
39
|
+
"@towns-protocol/web3": "^0.0.244",
|
|
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.
|
|
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": "
|
|
75
|
+
"gitHead": "8f17f6f7a619532ed6e0e50687b9073d49cc8eb5"
|
|
75
76
|
}
|
package/dist/crypto_utils.d.ts
DELETED
|
@@ -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"}
|
package/dist/crypto_utils.js
DELETED
|
@@ -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
|
package/dist/crypto_utils.js.map
DELETED
|
@@ -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"}
|