@wildix/xbees-conversations-utils 1.1.45 → 1.1.46
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-cjs/normalization.js +136 -16
- package/dist-es/normalization.js +125 -16
- package/dist-types/normalization.d.ts +13 -2
- package/dist-types/stream.d.ts +8 -1
- package/dist-types/types.d.ts +23 -4
- package/package.json +1 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeStreamMember = exports.normalizeStreamChannel = exports.localizeStreamMessage = exports.normalizeStreamMessage = exports.normalizeStreamReaction = exports.localizeStreamUser = exports.normalizeStreamUser = void 0;
|
|
3
|
+
exports.normalizeStreamChannelsUsers = exports.normalizeStreamChannelsUsersToMap = exports.normalizeStreamChannelUsersToMap = exports.normalizeStreamChannelUsers = exports.normalizeStreamChannelOwnReadIndicators = exports.normalizeStreamChannelReadIndicators = exports.normalizeStreamChannelReadIndicator = exports.localizeStreamChannel = exports.localizeStreamChannelsMembersToMapByChannelId = exports.localizeStreamChannelMembers = exports.localizeStreamMember = exports.normalizeStreamMember = exports.normalizeStreamChannel = exports.localizeStreamMessage = exports.normalizeStreamMessage = exports.normalizeStreamReaction = exports.localizeStreamUser = exports.normalizeStreamUser = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
|
+
const xbees_conversations_client_1 = require("@wildix/xbees-conversations-client");
|
|
5
6
|
function normalizeStreamUser(streamUser) {
|
|
6
7
|
return {
|
|
7
8
|
id: streamUser.id,
|
|
@@ -73,6 +74,7 @@ function normalizeStreamMessage(streamMessage, channelId) {
|
|
|
73
74
|
}
|
|
74
75
|
exports.normalizeStreamMessage = normalizeStreamMessage;
|
|
75
76
|
function localizeStreamMessage(streamMessage, channelId, userId) {
|
|
77
|
+
const { pinned, ref } = streamMessage;
|
|
76
78
|
const normalizedMessage = normalizeStreamMessage(streamMessage, channelId);
|
|
77
79
|
const createdAt = new Date(normalizedMessage.createdAt);
|
|
78
80
|
const updatedAt = normalizedMessage.updatedAt ? new Date(normalizedMessage.updatedAt) : undefined;
|
|
@@ -84,7 +86,7 @@ function localizeStreamMessage(streamMessage, channelId, userId) {
|
|
|
84
86
|
ownReactions.push(reaction);
|
|
85
87
|
}
|
|
86
88
|
});
|
|
87
|
-
const direction = userId ===
|
|
89
|
+
const direction = userId === normalizedMessage.user.id ? types_1.MessageDirection.OUTGOING : types_1.MessageDirection.INCOMING;
|
|
88
90
|
return {
|
|
89
91
|
...normalizedMessage,
|
|
90
92
|
user: localizeStreamUser(streamMessage.user),
|
|
@@ -92,6 +94,8 @@ function localizeStreamMessage(streamMessage, channelId, userId) {
|
|
|
92
94
|
direction,
|
|
93
95
|
createdAt,
|
|
94
96
|
updatedAt,
|
|
97
|
+
pinned,
|
|
98
|
+
ref: ref || null,
|
|
95
99
|
};
|
|
96
100
|
}
|
|
97
101
|
exports.localizeStreamMessage = localizeStreamMessage;
|
|
@@ -118,36 +122,36 @@ function normalizeStreamChannel(channel) {
|
|
|
118
122
|
assignee = data.assignee;
|
|
119
123
|
}
|
|
120
124
|
return {
|
|
125
|
+
access: data.access,
|
|
126
|
+
assignee,
|
|
127
|
+
broadcast: data.broadcast || data.is_broadcast,
|
|
121
128
|
channelId: data.id,
|
|
122
129
|
channelType: data.type,
|
|
123
|
-
memberCount: data.member_count || 0,
|
|
124
|
-
subject: data.subject,
|
|
125
|
-
description: data.description,
|
|
126
|
-
picture: data.picture,
|
|
127
|
-
pictureColor: data.picture_color,
|
|
128
|
-
access: data.access,
|
|
129
130
|
company: data.company,
|
|
130
131
|
context,
|
|
132
|
+
createdAt: data.created_at,
|
|
133
|
+
createdBy: data.created_by_id || data.created_by.id,
|
|
134
|
+
description: data.description,
|
|
135
|
+
external: data.external,
|
|
131
136
|
kite: data.kite,
|
|
132
137
|
kiteTarget: data.kite_target,
|
|
133
138
|
kiteVariant: data.kite_variant,
|
|
134
139
|
kiteAssign: data.kite_assign,
|
|
135
140
|
kiteServiceName: data.kite_service_name,
|
|
136
141
|
kiteDefaultSubject: data.kite_default_subject,
|
|
142
|
+
memberCount: data.member_count || 0,
|
|
143
|
+
mms: data.mms,
|
|
144
|
+
picture: data.picture,
|
|
145
|
+
pictureColor: data.picture_color,
|
|
137
146
|
service: data.service,
|
|
138
147
|
serviceTitle: data.service_title,
|
|
139
148
|
serviceRecipient: data.service_recipient,
|
|
140
|
-
assignee,
|
|
141
|
-
telephony: data.telephony,
|
|
142
149
|
sms: data.sms,
|
|
143
|
-
|
|
150
|
+
subject: data.subject,
|
|
151
|
+
telephony: data.telephony,
|
|
152
|
+
updatedAt: data.updated_at,
|
|
144
153
|
whatsapp: data.whatsapp,
|
|
145
154
|
whatsappStatus: data.whatsapp_status,
|
|
146
|
-
broadcast: data.broadcast || data.is_broadcast,
|
|
147
|
-
external: data.external,
|
|
148
|
-
createdAt: data.created_at,
|
|
149
|
-
createdBy: data.created_by_id,
|
|
150
|
-
updatedAt: data.updated_at,
|
|
151
155
|
};
|
|
152
156
|
}
|
|
153
157
|
exports.normalizeStreamChannel = normalizeStreamChannel;
|
|
@@ -160,3 +164,119 @@ function normalizeStreamMember(member) {
|
|
|
160
164
|
};
|
|
161
165
|
}
|
|
162
166
|
exports.normalizeStreamMember = normalizeStreamMember;
|
|
167
|
+
function localizeStreamMember(member) {
|
|
168
|
+
const { role, user, user_id, created_at } = member;
|
|
169
|
+
return {
|
|
170
|
+
id: user?.id || user_id,
|
|
171
|
+
createdAt: created_at ? new Date(created_at) : new Date(),
|
|
172
|
+
role: (role || 'member'),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
exports.localizeStreamMember = localizeStreamMember;
|
|
176
|
+
function localizeStreamChannelMembers(streamChannel) {
|
|
177
|
+
const { state } = streamChannel;
|
|
178
|
+
const wid = streamChannel.getClient().userID;
|
|
179
|
+
return Object.values(state.members).map(localizeStreamMember).filter((member) => member.id !== wid);
|
|
180
|
+
}
|
|
181
|
+
exports.localizeStreamChannelMembers = localizeStreamChannelMembers;
|
|
182
|
+
function localizeStreamChannelsMembersToMapByChannelId(streamChannels) {
|
|
183
|
+
return streamChannels.reduce((accumulator, channel) => {
|
|
184
|
+
const members = localizeStreamChannelMembers(channel);
|
|
185
|
+
const channelId = channel.data?.id;
|
|
186
|
+
accumulator[channelId] = members;
|
|
187
|
+
return accumulator;
|
|
188
|
+
}, {});
|
|
189
|
+
}
|
|
190
|
+
exports.localizeStreamChannelsMembersToMapByChannelId = localizeStreamChannelsMembersToMapByChannelId;
|
|
191
|
+
function localizeStreamChannel(streamChannel) {
|
|
192
|
+
const normalizedChannel = normalizeStreamChannel(streamChannel);
|
|
193
|
+
const { data, state } = streamChannel;
|
|
194
|
+
const wid = streamChannel.getClient().userID || '';
|
|
195
|
+
const createdAt = new Date(normalizedChannel.createdAt);
|
|
196
|
+
const updatedAt = new Date(normalizedChannel.updatedAt || normalizedChannel?.createdBy);
|
|
197
|
+
const members = Object.values(state.members).filter(({ user_id }) => user_id !== wid);
|
|
198
|
+
const userId = data?.type === xbees_conversations_client_1.ChannelType.DIRECT && members.length > 0 ? members[0].user_id : null;
|
|
199
|
+
const unread = state.read[wid]?.unread_messages || 0;
|
|
200
|
+
const unreadMark = data?.unreadMarkUsers?.includes(wid) || false;
|
|
201
|
+
const lastMessage = streamChannel.lastMessage();
|
|
202
|
+
const normalizedLastMessage = lastMessage ? localizeStreamMessage(lastMessage, normalizedChannel.channelId, wid) : null;
|
|
203
|
+
const lastMessageAt = normalizedLastMessage ? normalizedLastMessage.createdAt : updatedAt || createdAt;
|
|
204
|
+
const lastRead = state.read[wid]?.last_read || null;
|
|
205
|
+
const role = state.membership.role || xbees_conversations_client_1.ChannelMemberRole.MEMBER;
|
|
206
|
+
const isArchived = Boolean(data?.hidden);
|
|
207
|
+
return {
|
|
208
|
+
...normalizedChannel,
|
|
209
|
+
userId,
|
|
210
|
+
role,
|
|
211
|
+
createdAt,
|
|
212
|
+
updatedAt,
|
|
213
|
+
isArchived,
|
|
214
|
+
unread,
|
|
215
|
+
unreadMark,
|
|
216
|
+
isExternal: Boolean(normalizedChannel.external),
|
|
217
|
+
isBroadcast: Boolean(normalizedChannel.broadcast),
|
|
218
|
+
lastRead,
|
|
219
|
+
lastMessage: normalizedLastMessage,
|
|
220
|
+
lastMessageAt,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
exports.localizeStreamChannel = localizeStreamChannel;
|
|
224
|
+
function normalizeStreamChannelReadIndicator(channelReadStatus, channelId) {
|
|
225
|
+
const { user, last_read } = channelReadStatus;
|
|
226
|
+
return {
|
|
227
|
+
userId: user.id,
|
|
228
|
+
lastRead: last_read,
|
|
229
|
+
user: localizeStreamUser(user),
|
|
230
|
+
channelId,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
exports.normalizeStreamChannelReadIndicator = normalizeStreamChannelReadIndicator;
|
|
234
|
+
function normalizeStreamChannelReadIndicators(streamChannel) {
|
|
235
|
+
const wid = streamChannel.getClient().userID;
|
|
236
|
+
const { state: { read }, data } = streamChannel;
|
|
237
|
+
return Object.values(read)
|
|
238
|
+
.filter(({ user }) => wid !== user.id)
|
|
239
|
+
.map((readIndicator) => {
|
|
240
|
+
return normalizeStreamChannelReadIndicator(readIndicator, data?.id);
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
exports.normalizeStreamChannelReadIndicators = normalizeStreamChannelReadIndicators;
|
|
244
|
+
function normalizeStreamChannelOwnReadIndicators(streamChannel) {
|
|
245
|
+
const wid = streamChannel.getClient().userID;
|
|
246
|
+
const { state: { read }, data } = streamChannel;
|
|
247
|
+
return Object.values(read)
|
|
248
|
+
.filter(({ user }) => wid === user.id)
|
|
249
|
+
.map((readIndicator) => {
|
|
250
|
+
return normalizeStreamChannelReadIndicator(readIndicator, data?.id);
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
exports.normalizeStreamChannelOwnReadIndicators = normalizeStreamChannelOwnReadIndicators;
|
|
254
|
+
function normalizeStreamChannelUsers(streamChannel) {
|
|
255
|
+
const { state } = streamChannel;
|
|
256
|
+
const wid = streamChannel.getClient().userID;
|
|
257
|
+
return Object.values(state.members)
|
|
258
|
+
.filter((member) => member.user && member.user.id !== wid)
|
|
259
|
+
.map((member) => localizeStreamUser(member.user));
|
|
260
|
+
}
|
|
261
|
+
exports.normalizeStreamChannelUsers = normalizeStreamChannelUsers;
|
|
262
|
+
function normalizeStreamChannelUsersToMap(streamChannel) {
|
|
263
|
+
const normalizedUsers = normalizeStreamChannelUsers(streamChannel);
|
|
264
|
+
return normalizedUsers.reduce((accumulator, user) => {
|
|
265
|
+
accumulator[user.id] = user;
|
|
266
|
+
return accumulator;
|
|
267
|
+
}, {});
|
|
268
|
+
}
|
|
269
|
+
exports.normalizeStreamChannelUsersToMap = normalizeStreamChannelUsersToMap;
|
|
270
|
+
function normalizeStreamChannelsUsersToMap(streamChannels) {
|
|
271
|
+
return streamChannels.reduce((accumulator, channel) => {
|
|
272
|
+
return {
|
|
273
|
+
...normalizeStreamChannelUsersToMap(channel),
|
|
274
|
+
...accumulator,
|
|
275
|
+
};
|
|
276
|
+
}, {});
|
|
277
|
+
}
|
|
278
|
+
exports.normalizeStreamChannelsUsersToMap = normalizeStreamChannelsUsersToMap;
|
|
279
|
+
function normalizeStreamChannelsUsers(streamChannels) {
|
|
280
|
+
return Object.values(normalizeStreamChannelsUsersToMap(streamChannels));
|
|
281
|
+
}
|
|
282
|
+
exports.normalizeStreamChannelsUsers = normalizeStreamChannelsUsers;
|
package/dist-es/normalization.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { MessageDirection } from "./types";
|
|
1
|
+
import { MessageDirection, } from "./types";
|
|
2
|
+
import { ChannelType, ChannelMemberRole, } from "@wildix/xbees-conversations-client";
|
|
2
3
|
export function normalizeStreamUser(streamUser) {
|
|
3
4
|
return {
|
|
4
5
|
id: streamUser.id,
|
|
@@ -66,6 +67,7 @@ export function normalizeStreamMessage(streamMessage, channelId) {
|
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
export function localizeStreamMessage(streamMessage, channelId, userId) {
|
|
70
|
+
const { pinned, ref } = streamMessage;
|
|
69
71
|
const normalizedMessage = normalizeStreamMessage(streamMessage, channelId);
|
|
70
72
|
const createdAt = new Date(normalizedMessage.createdAt);
|
|
71
73
|
const updatedAt = normalizedMessage.updatedAt ? new Date(normalizedMessage.updatedAt) : undefined;
|
|
@@ -77,7 +79,7 @@ export function localizeStreamMessage(streamMessage, channelId, userId) {
|
|
|
77
79
|
ownReactions.push(reaction);
|
|
78
80
|
}
|
|
79
81
|
});
|
|
80
|
-
const direction = userId ===
|
|
82
|
+
const direction = userId === normalizedMessage.user.id ? MessageDirection.OUTGOING : MessageDirection.INCOMING;
|
|
81
83
|
return {
|
|
82
84
|
...normalizedMessage,
|
|
83
85
|
user: localizeStreamUser(streamMessage.user),
|
|
@@ -85,6 +87,8 @@ export function localizeStreamMessage(streamMessage, channelId, userId) {
|
|
|
85
87
|
direction,
|
|
86
88
|
createdAt,
|
|
87
89
|
updatedAt,
|
|
90
|
+
pinned,
|
|
91
|
+
ref: ref || null,
|
|
88
92
|
};
|
|
89
93
|
}
|
|
90
94
|
export function normalizeStreamChannel(channel) {
|
|
@@ -110,36 +114,36 @@ export function normalizeStreamChannel(channel) {
|
|
|
110
114
|
assignee = data.assignee;
|
|
111
115
|
}
|
|
112
116
|
return {
|
|
117
|
+
access: data.access,
|
|
118
|
+
assignee,
|
|
119
|
+
broadcast: data.broadcast || data.is_broadcast,
|
|
113
120
|
channelId: data.id,
|
|
114
121
|
channelType: data.type,
|
|
115
|
-
memberCount: data.member_count || 0,
|
|
116
|
-
subject: data.subject,
|
|
117
|
-
description: data.description,
|
|
118
|
-
picture: data.picture,
|
|
119
|
-
pictureColor: data.picture_color,
|
|
120
|
-
access: data.access,
|
|
121
122
|
company: data.company,
|
|
122
123
|
context,
|
|
124
|
+
createdAt: data.created_at,
|
|
125
|
+
createdBy: data.created_by_id || data.created_by.id,
|
|
126
|
+
description: data.description,
|
|
127
|
+
external: data.external,
|
|
123
128
|
kite: data.kite,
|
|
124
129
|
kiteTarget: data.kite_target,
|
|
125
130
|
kiteVariant: data.kite_variant,
|
|
126
131
|
kiteAssign: data.kite_assign,
|
|
127
132
|
kiteServiceName: data.kite_service_name,
|
|
128
133
|
kiteDefaultSubject: data.kite_default_subject,
|
|
134
|
+
memberCount: data.member_count || 0,
|
|
135
|
+
mms: data.mms,
|
|
136
|
+
picture: data.picture,
|
|
137
|
+
pictureColor: data.picture_color,
|
|
129
138
|
service: data.service,
|
|
130
139
|
serviceTitle: data.service_title,
|
|
131
140
|
serviceRecipient: data.service_recipient,
|
|
132
|
-
assignee,
|
|
133
|
-
telephony: data.telephony,
|
|
134
141
|
sms: data.sms,
|
|
135
|
-
|
|
142
|
+
subject: data.subject,
|
|
143
|
+
telephony: data.telephony,
|
|
144
|
+
updatedAt: data.updated_at,
|
|
136
145
|
whatsapp: data.whatsapp,
|
|
137
146
|
whatsappStatus: data.whatsapp_status,
|
|
138
|
-
broadcast: data.broadcast || data.is_broadcast,
|
|
139
|
-
external: data.external,
|
|
140
|
-
createdAt: data.created_at,
|
|
141
|
-
createdBy: data.created_by_id,
|
|
142
|
-
updatedAt: data.updated_at,
|
|
143
147
|
};
|
|
144
148
|
}
|
|
145
149
|
export function normalizeStreamMember(member) {
|
|
@@ -150,3 +154,108 @@ export function normalizeStreamMember(member) {
|
|
|
150
154
|
role: (role || 'member'),
|
|
151
155
|
};
|
|
152
156
|
}
|
|
157
|
+
export function localizeStreamMember(member) {
|
|
158
|
+
const { role, user, user_id, created_at } = member;
|
|
159
|
+
return {
|
|
160
|
+
id: user?.id || user_id,
|
|
161
|
+
createdAt: created_at ? new Date(created_at) : new Date(),
|
|
162
|
+
role: (role || 'member'),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
export function localizeStreamChannelMembers(streamChannel) {
|
|
166
|
+
const { state } = streamChannel;
|
|
167
|
+
const wid = streamChannel.getClient().userID;
|
|
168
|
+
return Object.values(state.members).map(localizeStreamMember).filter((member) => member.id !== wid);
|
|
169
|
+
}
|
|
170
|
+
export function localizeStreamChannelsMembersToMapByChannelId(streamChannels) {
|
|
171
|
+
return streamChannels.reduce((accumulator, channel) => {
|
|
172
|
+
const members = localizeStreamChannelMembers(channel);
|
|
173
|
+
const channelId = channel.data?.id;
|
|
174
|
+
accumulator[channelId] = members;
|
|
175
|
+
return accumulator;
|
|
176
|
+
}, {});
|
|
177
|
+
}
|
|
178
|
+
export function localizeStreamChannel(streamChannel) {
|
|
179
|
+
const normalizedChannel = normalizeStreamChannel(streamChannel);
|
|
180
|
+
const { data, state } = streamChannel;
|
|
181
|
+
const wid = streamChannel.getClient().userID || '';
|
|
182
|
+
const createdAt = new Date(normalizedChannel.createdAt);
|
|
183
|
+
const updatedAt = new Date(normalizedChannel.updatedAt || normalizedChannel?.createdBy);
|
|
184
|
+
const members = Object.values(state.members).filter(({ user_id }) => user_id !== wid);
|
|
185
|
+
const userId = data?.type === ChannelType.DIRECT && members.length > 0 ? members[0].user_id : null;
|
|
186
|
+
const unread = state.read[wid]?.unread_messages || 0;
|
|
187
|
+
const unreadMark = data?.unreadMarkUsers?.includes(wid) || false;
|
|
188
|
+
const lastMessage = streamChannel.lastMessage();
|
|
189
|
+
const normalizedLastMessage = lastMessage ? localizeStreamMessage(lastMessage, normalizedChannel.channelId, wid) : null;
|
|
190
|
+
const lastMessageAt = normalizedLastMessage ? normalizedLastMessage.createdAt : updatedAt || createdAt;
|
|
191
|
+
const lastRead = state.read[wid]?.last_read || null;
|
|
192
|
+
const role = state.membership.role || ChannelMemberRole.MEMBER;
|
|
193
|
+
const isArchived = Boolean(data?.hidden);
|
|
194
|
+
return {
|
|
195
|
+
...normalizedChannel,
|
|
196
|
+
userId,
|
|
197
|
+
role,
|
|
198
|
+
createdAt,
|
|
199
|
+
updatedAt,
|
|
200
|
+
isArchived,
|
|
201
|
+
unread,
|
|
202
|
+
unreadMark,
|
|
203
|
+
isExternal: Boolean(normalizedChannel.external),
|
|
204
|
+
isBroadcast: Boolean(normalizedChannel.broadcast),
|
|
205
|
+
lastRead,
|
|
206
|
+
lastMessage: normalizedLastMessage,
|
|
207
|
+
lastMessageAt,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
export function normalizeStreamChannelReadIndicator(channelReadStatus, channelId) {
|
|
211
|
+
const { user, last_read } = channelReadStatus;
|
|
212
|
+
return {
|
|
213
|
+
userId: user.id,
|
|
214
|
+
lastRead: last_read,
|
|
215
|
+
user: localizeStreamUser(user),
|
|
216
|
+
channelId,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
export function normalizeStreamChannelReadIndicators(streamChannel) {
|
|
220
|
+
const wid = streamChannel.getClient().userID;
|
|
221
|
+
const { state: { read }, data } = streamChannel;
|
|
222
|
+
return Object.values(read)
|
|
223
|
+
.filter(({ user }) => wid !== user.id)
|
|
224
|
+
.map((readIndicator) => {
|
|
225
|
+
return normalizeStreamChannelReadIndicator(readIndicator, data?.id);
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
export function normalizeStreamChannelOwnReadIndicators(streamChannel) {
|
|
229
|
+
const wid = streamChannel.getClient().userID;
|
|
230
|
+
const { state: { read }, data } = streamChannel;
|
|
231
|
+
return Object.values(read)
|
|
232
|
+
.filter(({ user }) => wid === user.id)
|
|
233
|
+
.map((readIndicator) => {
|
|
234
|
+
return normalizeStreamChannelReadIndicator(readIndicator, data?.id);
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
export function normalizeStreamChannelUsers(streamChannel) {
|
|
238
|
+
const { state } = streamChannel;
|
|
239
|
+
const wid = streamChannel.getClient().userID;
|
|
240
|
+
return Object.values(state.members)
|
|
241
|
+
.filter((member) => member.user && member.user.id !== wid)
|
|
242
|
+
.map((member) => localizeStreamUser(member.user));
|
|
243
|
+
}
|
|
244
|
+
export function normalizeStreamChannelUsersToMap(streamChannel) {
|
|
245
|
+
const normalizedUsers = normalizeStreamChannelUsers(streamChannel);
|
|
246
|
+
return normalizedUsers.reduce((accumulator, user) => {
|
|
247
|
+
accumulator[user.id] = user;
|
|
248
|
+
return accumulator;
|
|
249
|
+
}, {});
|
|
250
|
+
}
|
|
251
|
+
export function normalizeStreamChannelsUsersToMap(streamChannels) {
|
|
252
|
+
return streamChannels.reduce((accumulator, channel) => {
|
|
253
|
+
return {
|
|
254
|
+
...normalizeStreamChannelUsersToMap(channel),
|
|
255
|
+
...accumulator,
|
|
256
|
+
};
|
|
257
|
+
}, {});
|
|
258
|
+
}
|
|
259
|
+
export function normalizeStreamChannelsUsers(streamChannels) {
|
|
260
|
+
return Object.values(normalizeStreamChannelsUsersToMap(streamChannels));
|
|
261
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { StreamChannel, StreamMessageResponse, StreamReactionResponse, StreamUserResponse, StreamChannelResponse, StreamChannelMemberResponse } from "./stream";
|
|
2
|
-
import { LocalizedMessage, LocalizedUser } from "./types";
|
|
1
|
+
import { StreamChannel, StreamMessageResponse, StreamReactionResponse, StreamUserResponse, StreamChannelResponse, StreamChannelMemberResponse, StreamReadIndicator } from "./stream";
|
|
2
|
+
import { LocalizedMessage, LocalizedUser, LocalizedChannel, LocalizedChannelMember, LocalizedReadIndicator } from "./types";
|
|
3
3
|
import { Channel, ChannelMember, Message, Reaction, User } from "@wildix/xbees-conversations-client";
|
|
4
4
|
export declare function normalizeStreamUser(streamUser: StreamUserResponse): User;
|
|
5
5
|
export declare function localizeStreamUser(streamUser: StreamUserResponse): LocalizedUser;
|
|
@@ -8,3 +8,14 @@ export declare function normalizeStreamMessage(streamMessage: StreamMessageRespo
|
|
|
8
8
|
export declare function localizeStreamMessage(streamMessage: StreamMessageResponse, channelId: string, userId: string): LocalizedMessage;
|
|
9
9
|
export declare function normalizeStreamChannel(channel: StreamChannel | StreamChannelResponse): Channel;
|
|
10
10
|
export declare function normalizeStreamMember(member: StreamChannelMemberResponse): ChannelMember;
|
|
11
|
+
export declare function localizeStreamMember(member: Partial<StreamChannelMemberResponse>): LocalizedChannelMember;
|
|
12
|
+
export declare function localizeStreamChannelMembers(streamChannel: StreamChannel): LocalizedChannelMember[];
|
|
13
|
+
export declare function localizeStreamChannelsMembersToMapByChannelId(streamChannels: StreamChannel[]): Record<string, LocalizedChannelMember[]>;
|
|
14
|
+
export declare function localizeStreamChannel(streamChannel: StreamChannel): LocalizedChannel;
|
|
15
|
+
export declare function normalizeStreamChannelReadIndicator(channelReadStatus: StreamReadIndicator, channelId: string): LocalizedReadIndicator;
|
|
16
|
+
export declare function normalizeStreamChannelReadIndicators(streamChannel: StreamChannel): LocalizedReadIndicator[];
|
|
17
|
+
export declare function normalizeStreamChannelOwnReadIndicators(streamChannel: StreamChannel): LocalizedReadIndicator[];
|
|
18
|
+
export declare function normalizeStreamChannelUsers(streamChannel: StreamChannel): LocalizedUser[];
|
|
19
|
+
export declare function normalizeStreamChannelUsersToMap(streamChannel: StreamChannel): Record<string, LocalizedUser>;
|
|
20
|
+
export declare function normalizeStreamChannelsUsersToMap(streamChannels: StreamChannel[]): Record<string, LocalizedUser>;
|
|
21
|
+
export declare function normalizeStreamChannelsUsers(streamChannels: StreamChannel[]): LocalizedUser[];
|
package/dist-types/stream.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Channel, ChannelData, ChannelFilters, ChannelMembership, ChannelMemberResponse, ChannelSort, ChannelResponse, Event, ExtendableGenerics, LiteralStringForUnion, Message, MessageResponse, ReactionResponse, UR, UserResponse, ChannelAPIResponse, User, Reaction, PartialMessageUpdate, UpdatedMessage, PartialUpdateChannel } from 'stream-chat';
|
|
1
|
+
import { Channel, ChannelData, ChannelState, ChannelFilters, ChannelMembership, ChannelMemberResponse, ChannelSort, ChannelResponse, Event, ExtendableGenerics, LiteralStringForUnion, Message, MessageResponse, ReactionResponse, SearchAPIResponse, SyncResponse, UR, UserResponse, GetRepliesAPIResponse, GetReactionsAPIResponse, OwnUserResponse, ChannelAPIResponse, User, Reaction, PartialMessageUpdate, UpdatedMessage, PartialUpdateChannel } from 'stream-chat';
|
|
2
2
|
import { MessageQuote, MessageForward, MessageAttachment, MessageGiphy, User as NormalizedUser, ChannelAccess, MessageSmsStatus, MessageWhatsAppStatus, ChannelWhatsAppStatus, Element } from "@wildix/xbees-conversations-client";
|
|
3
3
|
export interface StreamChannelFields extends UR {
|
|
4
4
|
subject?: string;
|
|
@@ -103,3 +103,10 @@ export type StreamChannelSort = ChannelSort<StreamType>;
|
|
|
103
103
|
export type StreamChannelData = ChannelData<StreamType>;
|
|
104
104
|
export type StreamPartialUpdateChannel = PartialUpdateChannel<StreamType>;
|
|
105
105
|
export type StreamChannelAPIResponse = ChannelAPIResponse<StreamType>;
|
|
106
|
+
export type StreamSearchAPIResponse = SearchAPIResponse<StreamType>;
|
|
107
|
+
export type StreamSyncResponse = SyncResponse<StreamType>;
|
|
108
|
+
export type StreamGetRepliesAPIResponse = GetRepliesAPIResponse<StreamType>;
|
|
109
|
+
export type StreamOwnUserResponse = OwnUserResponse<StreamType>;
|
|
110
|
+
export type StreamChannelState = ChannelState<StreamType>;
|
|
111
|
+
export type StreamGetReactionsAPIResponse = GetReactionsAPIResponse<StreamType>;
|
|
112
|
+
export type StreamReadIndicator = (StreamChannelState['read'])[keyof StreamChannelState['read']];
|
package/dist-types/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Channel, ChannelMemberRole, Message, Reaction, User } from "@wildix/xbees-conversations-client";
|
|
1
|
+
import { Channel, ChannelMemberRole, ChannelMember, Message, Reaction, User } from "@wildix/xbees-conversations-client";
|
|
2
2
|
export declare enum MessageDirection {
|
|
3
3
|
INCOMING = "incoming",
|
|
4
4
|
OUTGOING = "outgoing"
|
|
@@ -16,10 +16,29 @@ export interface LocalizedMessage extends Omit<Message, 'user' | 'createdAt' | '
|
|
|
16
16
|
direction: MessageDirection;
|
|
17
17
|
createdAt: Date;
|
|
18
18
|
updatedAt?: Date;
|
|
19
|
+
pinned: boolean | undefined;
|
|
20
|
+
ref?: string | null;
|
|
19
21
|
}
|
|
20
|
-
export interface LocalizedChannel extends Omit<Channel, 'createdAt' | 'updatedAt'> {
|
|
21
|
-
userId?: string;
|
|
22
|
-
role: ChannelMemberRole;
|
|
22
|
+
export interface LocalizedChannel extends Omit<Channel, 'createdAt' | 'updatedAt' | 'is_broadcast' | 'external' | 'hidden'> {
|
|
23
23
|
createdAt: Date;
|
|
24
|
+
isArchived: boolean;
|
|
25
|
+
isBroadcast?: boolean;
|
|
26
|
+
isExternal: boolean;
|
|
27
|
+
lastMessage: LocalizedMessage | null;
|
|
28
|
+
lastMessageAt: Date;
|
|
29
|
+
lastRead: Date;
|
|
30
|
+
role: ChannelMemberRole;
|
|
31
|
+
unread: number;
|
|
32
|
+
unreadMark: boolean;
|
|
24
33
|
updatedAt?: Date;
|
|
34
|
+
userId: string | null;
|
|
35
|
+
}
|
|
36
|
+
export interface LocalizedReadIndicator {
|
|
37
|
+
userId: string;
|
|
38
|
+
lastRead: Date;
|
|
39
|
+
user: LocalizedUser;
|
|
40
|
+
channelId: string;
|
|
41
|
+
}
|
|
42
|
+
export interface LocalizedChannelMember extends Omit<ChannelMember, 'createdAt'> {
|
|
43
|
+
createdAt: Date;
|
|
25
44
|
}
|