mezon-sdk 2.8.46 → 2.8.49
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/api/api.d.ts +25 -0
- package/dist/cjs/api/api.js +150 -10
- package/dist/cjs/api/api.js.map +1 -1
- package/dist/cjs/api.js +3 -0
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/constants/enum.d.ts +3 -0
- package/dist/cjs/constants/enum.js +3 -0
- package/dist/cjs/constants/enum.js.map +1 -1
- package/dist/cjs/google/protobuf/wrappers.js +1 -1
- package/dist/cjs/google/protobuf/wrappers.js.map +1 -1
- package/dist/cjs/interfaces/client.d.ts +6 -0
- package/dist/cjs/interfaces/client.js.map +1 -1
- package/dist/cjs/interfaces/socket.d.ts +7 -1
- package/dist/cjs/mezon-client/client/MezonClient.js +2 -6
- package/dist/cjs/mezon-client/client/MezonClient.js.map +1 -1
- package/dist/cjs/mezon-client/client/MezonClientCore.d.ts +10 -1
- package/dist/cjs/mezon-client/client/MezonClientCore.js +34 -15
- package/dist/cjs/mezon-client/client/MezonClientCore.js.map +1 -1
- package/dist/cjs/mezon-client/manager/channel_manager.d.ts +2 -0
- package/dist/cjs/mezon-client/manager/channel_manager.js +20 -3
- package/dist/cjs/mezon-client/manager/channel_manager.js.map +1 -1
- package/dist/cjs/mezon-client/manager/socket_manager.d.ts +3 -0
- package/dist/cjs/mezon-client/manager/socket_manager.js +63 -19
- package/dist/cjs/mezon-client/manager/socket_manager.js.map +1 -1
- package/dist/cjs/mezon-client/structures/Message.d.ts +21 -2
- package/dist/cjs/mezon-client/structures/Message.js +34 -6
- package/dist/cjs/mezon-client/structures/Message.js.map +1 -1
- package/dist/cjs/mezon-client/structures/TextChannel.d.ts +11 -5
- package/dist/cjs/mezon-client/structures/TextChannel.js +36 -1
- package/dist/cjs/mezon-client/structures/TextChannel.js.map +1 -1
- package/dist/cjs/mezon-client/structures/User.d.ts +7 -2
- package/dist/cjs/mezon-client/structures/User.js +9 -1
- package/dist/cjs/mezon-client/structures/User.js.map +1 -1
- package/dist/cjs/rtapi/realtime.d.ts +73 -0
- package/dist/cjs/rtapi/realtime.js +544 -7
- package/dist/cjs/rtapi/realtime.js.map +1 -1
- package/dist/cjs/socket.d.ts +2 -1
- package/dist/cjs/socket.js +30 -26
- package/dist/cjs/socket.js.map +1 -1
- package/dist/esm/api/api.d.ts +25 -0
- package/dist/esm/api/api.js +139 -3
- package/dist/esm/api/api.js.map +1 -1
- package/dist/esm/api.js +3 -0
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/constants/enum.d.ts +3 -0
- package/dist/esm/constants/enum.js +3 -0
- package/dist/esm/constants/enum.js.map +1 -1
- package/dist/esm/google/protobuf/wrappers.js +1 -1
- package/dist/esm/google/protobuf/wrappers.js.map +1 -1
- package/dist/esm/interfaces/client.d.ts +6 -0
- package/dist/esm/interfaces/client.js.map +1 -1
- package/dist/esm/interfaces/socket.d.ts +7 -1
- package/dist/esm/mezon-client/client/MezonClient.js +2 -6
- package/dist/esm/mezon-client/client/MezonClient.js.map +1 -1
- package/dist/esm/mezon-client/client/MezonClientCore.d.ts +10 -1
- package/dist/esm/mezon-client/client/MezonClientCore.js +34 -15
- package/dist/esm/mezon-client/client/MezonClientCore.js.map +1 -1
- package/dist/esm/mezon-client/manager/channel_manager.d.ts +2 -0
- package/dist/esm/mezon-client/manager/channel_manager.js +13 -3
- package/dist/esm/mezon-client/manager/channel_manager.js.map +1 -1
- package/dist/esm/mezon-client/manager/socket_manager.d.ts +3 -0
- package/dist/esm/mezon-client/manager/socket_manager.js +54 -18
- package/dist/esm/mezon-client/manager/socket_manager.js.map +1 -1
- package/dist/esm/mezon-client/structures/Message.d.ts +21 -2
- package/dist/esm/mezon-client/structures/Message.js +41 -4
- package/dist/esm/mezon-client/structures/Message.js.map +1 -1
- package/dist/esm/mezon-client/structures/TextChannel.d.ts +11 -5
- package/dist/esm/mezon-client/structures/TextChannel.js +37 -1
- package/dist/esm/mezon-client/structures/TextChannel.js.map +1 -1
- package/dist/esm/mezon-client/structures/User.d.ts +7 -2
- package/dist/esm/mezon-client/structures/User.js +12 -2
- package/dist/esm/mezon-client/structures/User.js.map +1 -1
- package/dist/esm/rtapi/realtime.d.ts +73 -0
- package/dist/esm/rtapi/realtime.js +536 -2
- package/dist/esm/rtapi/realtime.js.map +1 -1
- package/dist/esm/socket.d.ts +2 -1
- package/dist/esm/socket.js +30 -26
- package/dist/esm/socket.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,8 @@ export class ChannelManager {
|
|
|
4
4
|
apiClient;
|
|
5
5
|
socketManager;
|
|
6
6
|
sessionManager;
|
|
7
|
-
allDmChannels;
|
|
7
|
+
allDmChannels = {};
|
|
8
|
+
allDmChannelDescs = [];
|
|
8
9
|
constructor(apiClient, socketManager, sessionManager) {
|
|
9
10
|
this.apiClient = apiClient;
|
|
10
11
|
this.socketManager = socketManager;
|
|
@@ -14,9 +15,15 @@ export class ChannelManager {
|
|
|
14
15
|
if (!sessionToken)
|
|
15
16
|
return;
|
|
16
17
|
const channels = await this.apiClient.listChannelDescs(sessionToken, ChannelType.CHANNEL_TYPE_DM);
|
|
17
|
-
if (!channels?.channeldesc || !channels?.channeldesc?.length)
|
|
18
|
+
if (!channels?.channeldesc || !channels?.channeldesc?.length) {
|
|
19
|
+
this.allDmChannels = {};
|
|
20
|
+
this.allDmChannelDescs = [];
|
|
18
21
|
return;
|
|
19
|
-
|
|
22
|
+
}
|
|
23
|
+
this.allDmChannelDescs = channels.channeldesc.filter((channel) => !!channel?.channel_id &&
|
|
24
|
+
!!channel?.user_ids?.length &&
|
|
25
|
+
channel?.type === ChannelType.CHANNEL_TYPE_DM);
|
|
26
|
+
this.allDmChannels = this.allDmChannelDescs
|
|
20
27
|
.map((channel) => {
|
|
21
28
|
if (!channel?.user_ids?.length ||
|
|
22
29
|
channel?.type !== ChannelType.CHANNEL_TYPE_DM)
|
|
@@ -31,6 +38,9 @@ export class ChannelManager {
|
|
|
31
38
|
getAllDmChannels() {
|
|
32
39
|
return this.allDmChannels;
|
|
33
40
|
}
|
|
41
|
+
getAllDmChannelDescs() {
|
|
42
|
+
return this.allDmChannelDescs;
|
|
43
|
+
}
|
|
34
44
|
/** Create DM channel with user */
|
|
35
45
|
async createDMchannel(userId) {
|
|
36
46
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/channel_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"channel_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/channel_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,9 @@ export declare class SocketManager {
|
|
|
33
33
|
ondisconnect(e: CloseEvent): void;
|
|
34
34
|
connectSocket(sessionToken: string): Promise<void>;
|
|
35
35
|
retriesConnect(): Promise<void>;
|
|
36
|
+
private isMustJoinChannelError;
|
|
37
|
+
private getChannelTypeFromMode;
|
|
38
|
+
private joinChannelBeforeRetry;
|
|
36
39
|
writeChatMessage(dataWriteMessage: ReplyMessageData): Promise<import("../../interfaces").ChannelMessageAck>;
|
|
37
40
|
writeEphemeralMessage(dataWriteMessage: EphemeralMessageData): Promise<import("../../interfaces").ChannelMessageAck>;
|
|
38
41
|
updateChatMessage(dataUpdateMessage: UpdateMessageData): Promise<import("../../interfaces").ChannelMessageAck>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Events } from "../../constants";
|
|
1
|
+
import { ChannelStreamMode, ChannelType, Events } from "../../constants";
|
|
2
2
|
import { DefaultSocket } from "../../socket";
|
|
3
3
|
import { WebSocketAdapterPb } from "../../web_socket_adapter_pb";
|
|
4
4
|
import { Clan } from "../structures/Clan";
|
|
@@ -67,6 +67,18 @@ export class SocketManager {
|
|
|
67
67
|
this.retriesConnect();
|
|
68
68
|
}
|
|
69
69
|
async connectSocket(sessionToken) {
|
|
70
|
+
if (!this.eventsBound) {
|
|
71
|
+
["ondisconnect", "onerror", "onheartbeattimeout"].forEach((event) => {
|
|
72
|
+
this.socket[event] = this[event].bind(this);
|
|
73
|
+
});
|
|
74
|
+
for (const event in Events) {
|
|
75
|
+
const key = Events[event].toString();
|
|
76
|
+
this.socket.socketEvents.on(key, (...args) => {
|
|
77
|
+
this.client.emit(key, ...args);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
this.eventsBound = true;
|
|
81
|
+
}
|
|
70
82
|
try {
|
|
71
83
|
const clans = await this.apiClient.listClanDescs(sessionToken);
|
|
72
84
|
const clanList = clans?.clandesc ?? [];
|
|
@@ -84,18 +96,6 @@ export class SocketManager {
|
|
|
84
96
|
this.client.clans.set(clan.clan_id, clanObj);
|
|
85
97
|
}
|
|
86
98
|
}
|
|
87
|
-
if (!this.eventsBound) {
|
|
88
|
-
["ondisconnect", "onerror", "onheartbeattimeout"].forEach((event) => {
|
|
89
|
-
this.socket[event] = this[event].bind(this);
|
|
90
|
-
});
|
|
91
|
-
for (const event in Events) {
|
|
92
|
-
const key = Events[event].toString();
|
|
93
|
-
this.socket.socketEvents.on(key, (...args) => {
|
|
94
|
-
this.client.emit(key, ...args);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
this.eventsBound = true;
|
|
98
|
-
}
|
|
99
99
|
}
|
|
100
100
|
catch (error) {
|
|
101
101
|
throw error;
|
|
@@ -125,25 +125,61 @@ export class SocketManager {
|
|
|
125
125
|
};
|
|
126
126
|
setTimeout(retry, retryInterval);
|
|
127
127
|
}
|
|
128
|
+
isMustJoinChannelError(error) {
|
|
129
|
+
return (error?.code === 3 ||
|
|
130
|
+
`${error?.message ?? error ?? ""}`.includes("Must join channel before sending messages"));
|
|
131
|
+
}
|
|
132
|
+
getChannelTypeFromMode(mode) {
|
|
133
|
+
switch (mode) {
|
|
134
|
+
case ChannelStreamMode.STREAM_MODE_DM:
|
|
135
|
+
return ChannelType.CHANNEL_TYPE_DM;
|
|
136
|
+
case ChannelStreamMode.STREAM_MODE_GROUP:
|
|
137
|
+
return ChannelType.CHANNEL_TYPE_GROUP;
|
|
138
|
+
case ChannelStreamMode.STREAM_MODE_THREAD:
|
|
139
|
+
return ChannelType.CHANNEL_TYPE_THREAD;
|
|
140
|
+
case ChannelStreamMode.STREAM_MODE_CHANNEL:
|
|
141
|
+
default:
|
|
142
|
+
return ChannelType.CHANNEL_TYPE_CHANNEL;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async joinChannelBeforeRetry(data) {
|
|
146
|
+
await this.socket.joinChat(data.clan_id, data.channel_id, data.channel_type ?? this.getChannelTypeFromMode(data.mode), data.is_public);
|
|
147
|
+
}
|
|
128
148
|
async writeChatMessage(dataWriteMessage) {
|
|
129
149
|
const currentContentLength = JSON.stringify(dataWriteMessage.content ?? {}).length;
|
|
130
150
|
if (currentContentLength > 8000)
|
|
131
151
|
throw new Error(`message.content exceeds the allowed length! Content exceeds allowed length. Maximum total of 8000 characters. Current length: ${currentContentLength}!`);
|
|
132
|
-
const
|
|
133
|
-
|
|
152
|
+
const send = () => this.socket.writeChatMessage(dataWriteMessage.clan_id, dataWriteMessage.channel_id, dataWriteMessage.mode, dataWriteMessage.is_public, dataWriteMessage.content, dataWriteMessage?.mentions ?? [], dataWriteMessage?.attachments ?? [], dataWriteMessage?.references ?? [], dataWriteMessage?.anonymous_message, dataWriteMessage?.mention_everyone, dataWriteMessage?.avatar, dataWriteMessage?.code, dataWriteMessage?.topic_id);
|
|
153
|
+
try {
|
|
154
|
+
return await send();
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
if (!this.isMustJoinChannelError(error))
|
|
158
|
+
throw error;
|
|
159
|
+
await this.joinChannelBeforeRetry(dataWriteMessage);
|
|
160
|
+
return send();
|
|
161
|
+
}
|
|
134
162
|
}
|
|
135
163
|
async writeEphemeralMessage(dataWriteMessage) {
|
|
136
164
|
const currentContentLength = JSON.stringify(dataWriteMessage.content ?? {}).length;
|
|
137
165
|
if (currentContentLength > 8000)
|
|
138
166
|
throw new Error(`message.content exceeds the allowed length! Content exceeds allowed length. Maximum total of 8000 characters. Current length: ${currentContentLength}!`);
|
|
139
|
-
const
|
|
140
|
-
|
|
167
|
+
const send = () => this.socket.writeEphemeralMessage(dataWriteMessage.receiver_id, dataWriteMessage.clan_id, dataWriteMessage.channel_id, dataWriteMessage.mode, dataWriteMessage.is_public, dataWriteMessage.content, dataWriteMessage?.mentions ?? [], dataWriteMessage?.attachments ?? [], dataWriteMessage?.references ?? [], dataWriteMessage?.anonymous_message, dataWriteMessage?.mention_everyone, dataWriteMessage?.avatar, dataWriteMessage?.code, dataWriteMessage?.topic_id, dataWriteMessage?.message_id);
|
|
168
|
+
try {
|
|
169
|
+
return await send();
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
if (!this.isMustJoinChannelError(error))
|
|
173
|
+
throw error;
|
|
174
|
+
await this.joinChannelBeforeRetry(dataWriteMessage);
|
|
175
|
+
return send();
|
|
176
|
+
}
|
|
141
177
|
}
|
|
142
178
|
async updateChatMessage(dataUpdateMessage) {
|
|
143
179
|
const currentContentLength = JSON.stringify(dataUpdateMessage.content ?? {}).length;
|
|
144
180
|
if (currentContentLength > 8000)
|
|
145
181
|
throw new Error(`message.content exceeds the allowed length! Content exceeds allowed length. Maximum total of 8000 characters. Current length: ${currentContentLength}!`);
|
|
146
|
-
const msgACK = await this.socket.updateChatMessage(dataUpdateMessage.clan_id, dataUpdateMessage.channel_id, dataUpdateMessage.mode, dataUpdateMessage.is_public, dataUpdateMessage.message_id, dataUpdateMessage.content, dataUpdateMessage?.mentions ?? [], dataUpdateMessage?.attachments ?? [], dataUpdateMessage?.hideEditted ?? false, dataUpdateMessage?.topic_id, dataUpdateMessage?.is_update_msg_topic);
|
|
182
|
+
const msgACK = await this.socket.updateChatMessage(dataUpdateMessage.clan_id, dataUpdateMessage.channel_id, dataUpdateMessage.mode, dataUpdateMessage.is_public, dataUpdateMessage.message_id, dataUpdateMessage.content, dataUpdateMessage?.mentions ?? [], dataUpdateMessage?.attachments ?? [], dataUpdateMessage?.create_time_seconds, dataUpdateMessage?.hideEditted ?? false, dataUpdateMessage?.topic_id, dataUpdateMessage?.is_update_msg_topic);
|
|
147
183
|
return msgACK;
|
|
148
184
|
}
|
|
149
185
|
async writeMessageReaction(dataReactionMessage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/socket_manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/socket_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,19 @@ export interface MessageInitData {
|
|
|
14
14
|
references?: ApiMessageRef[];
|
|
15
15
|
topic_id?: string;
|
|
16
16
|
create_time_seconds?: number;
|
|
17
|
+
update_time_seconds?: number;
|
|
18
|
+
code?: number;
|
|
19
|
+
username?: string;
|
|
20
|
+
create_time?: string;
|
|
21
|
+
update_time?: string;
|
|
22
|
+
persistent?: boolean;
|
|
23
|
+
persistence?: boolean;
|
|
24
|
+
mode?: number;
|
|
17
25
|
}
|
|
18
26
|
export declare class Message {
|
|
19
27
|
id: string;
|
|
28
|
+
clan_id: string;
|
|
29
|
+
channel_id: string;
|
|
20
30
|
sender_id: string;
|
|
21
31
|
content: ChannelMessageContent;
|
|
22
32
|
mentions: ApiMessageMention[] | undefined;
|
|
@@ -25,12 +35,21 @@ export declare class Message {
|
|
|
25
35
|
references: ApiMessageRef[] | undefined;
|
|
26
36
|
topic_id: string | undefined;
|
|
27
37
|
create_time_seconds: number | undefined;
|
|
38
|
+
update_time_seconds: number | undefined;
|
|
39
|
+
code: number;
|
|
40
|
+
username: string;
|
|
41
|
+
create_time: string;
|
|
42
|
+
update_time: string;
|
|
43
|
+
persistent: boolean | undefined;
|
|
44
|
+
persistence: boolean;
|
|
45
|
+
mode: number;
|
|
28
46
|
channel: TextChannel;
|
|
29
47
|
private readonly socketManager;
|
|
30
48
|
private readonly messageQueue;
|
|
31
49
|
constructor(initMessageData: MessageInitData, channel: TextChannel, socketManager: SocketManager, messageQueue: AsyncThrottleQueue);
|
|
32
|
-
|
|
33
|
-
|
|
50
|
+
get message_id(): string;
|
|
51
|
+
reply(content: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string, code?: number): Promise<Message>;
|
|
52
|
+
update(content: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>): Promise<this>;
|
|
34
53
|
react(dataReactMessage: ReactMessagePayload): Promise<ApiMessageReaction>;
|
|
35
54
|
delete(): Promise<import("../../interfaces").ChannelMessageAck>;
|
|
36
55
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { convertChanneltypeToChannelMode } from "../../utils/helper";
|
|
2
2
|
export class Message {
|
|
3
3
|
id;
|
|
4
|
+
clan_id;
|
|
5
|
+
channel_id;
|
|
4
6
|
sender_id;
|
|
5
7
|
content;
|
|
6
8
|
mentions;
|
|
@@ -9,11 +11,21 @@ export class Message {
|
|
|
9
11
|
references;
|
|
10
12
|
topic_id;
|
|
11
13
|
create_time_seconds;
|
|
14
|
+
update_time_seconds;
|
|
15
|
+
code;
|
|
16
|
+
username;
|
|
17
|
+
create_time;
|
|
18
|
+
update_time;
|
|
19
|
+
persistent;
|
|
20
|
+
persistence;
|
|
21
|
+
mode;
|
|
12
22
|
channel;
|
|
13
23
|
socketManager;
|
|
14
24
|
messageQueue;
|
|
15
25
|
constructor(initMessageData, channel, socketManager, messageQueue) {
|
|
16
26
|
this.id = initMessageData.id;
|
|
27
|
+
this.clan_id = initMessageData.clan_id;
|
|
28
|
+
this.channel_id = initMessageData.channel_id;
|
|
17
29
|
this.sender_id = initMessageData.sender_id;
|
|
18
30
|
this.content = initMessageData.content;
|
|
19
31
|
this.references = initMessageData?.references;
|
|
@@ -23,10 +35,21 @@ export class Message {
|
|
|
23
35
|
this.references = initMessageData?.references;
|
|
24
36
|
this.topic_id = initMessageData?.topic_id;
|
|
25
37
|
this.create_time_seconds = initMessageData?.create_time_seconds;
|
|
38
|
+
this.update_time_seconds = initMessageData?.update_time_seconds;
|
|
39
|
+
this.code = initMessageData?.code ?? 0;
|
|
40
|
+
this.username = initMessageData?.username ?? "";
|
|
41
|
+
this.create_time = initMessageData?.create_time ?? "";
|
|
42
|
+
this.update_time = initMessageData?.update_time ?? "";
|
|
43
|
+
this.persistent = initMessageData?.persistent;
|
|
44
|
+
this.persistence = initMessageData?.persistence ?? false;
|
|
45
|
+
this.mode = initMessageData?.mode ?? 0;
|
|
26
46
|
this.channel = channel;
|
|
27
47
|
this.socketManager = socketManager;
|
|
28
48
|
this.messageQueue = messageQueue;
|
|
29
49
|
}
|
|
50
|
+
get message_id() {
|
|
51
|
+
return this.id;
|
|
52
|
+
}
|
|
30
53
|
async reply(content, mentions, attachments, mention_everyone, anonymous_message, topic_id = "0", code) {
|
|
31
54
|
return await this.messageQueue.enqueue(async () => {
|
|
32
55
|
const client = this.channel.clan.getClient();
|
|
@@ -42,6 +65,7 @@ export class Message {
|
|
|
42
65
|
];
|
|
43
66
|
const dataReply = {
|
|
44
67
|
clan_id: this.channel.clan.id,
|
|
68
|
+
channel_type: this.channel.channel_type,
|
|
45
69
|
mode: convertChanneltypeToChannelMode(this.channel.channel_type),
|
|
46
70
|
is_public: !this.channel.is_private,
|
|
47
71
|
channel_id: this.channel.id,
|
|
@@ -54,30 +78,42 @@ export class Message {
|
|
|
54
78
|
code,
|
|
55
79
|
topic_id: topic_id || this.topic_id,
|
|
56
80
|
};
|
|
57
|
-
|
|
81
|
+
const ack = await this.socketManager.writeChatMessage(dataReply);
|
|
82
|
+
return this.channel.createMessageFromAck(ack, dataReply);
|
|
58
83
|
});
|
|
59
84
|
}
|
|
60
85
|
async update(content, mentions, attachments) {
|
|
61
|
-
return await this.messageQueue.enqueue(() => {
|
|
86
|
+
return await this.messageQueue.enqueue(async () => {
|
|
62
87
|
const dataUpdate = {
|
|
63
88
|
clan_id: this.channel.clan.id,
|
|
64
89
|
channel_id: this.channel.id,
|
|
90
|
+
channel_type: this.channel.channel_type,
|
|
65
91
|
mode: convertChanneltypeToChannelMode(this.channel.channel_type),
|
|
66
92
|
is_public: !this.channel.is_private,
|
|
67
93
|
message_id: this.id,
|
|
68
94
|
content,
|
|
69
95
|
mentions,
|
|
70
96
|
attachments,
|
|
97
|
+
create_time_seconds: this.create_time_seconds
|
|
98
|
+
? Number(this.create_time_seconds)
|
|
99
|
+
: undefined,
|
|
71
100
|
topic_id: this.topic_id || "0",
|
|
72
101
|
is_update_msg_topic: !!this.topic_id,
|
|
73
102
|
};
|
|
74
|
-
|
|
103
|
+
await this.socketManager.updateChatMessage(dataUpdate);
|
|
104
|
+
this.content = content;
|
|
105
|
+
if (mentions)
|
|
106
|
+
this.mentions = mentions;
|
|
107
|
+
if (attachments)
|
|
108
|
+
this.attachments = attachments;
|
|
109
|
+
this.channel.messages.set(this.id, this);
|
|
110
|
+
return this;
|
|
75
111
|
});
|
|
76
112
|
}
|
|
77
113
|
async react(dataReactMessage) {
|
|
78
114
|
return await this.messageQueue.enqueue(() => {
|
|
79
115
|
const dataReact = {
|
|
80
|
-
id: dataReactMessage?.id
|
|
116
|
+
id: dataReactMessage?.id || "0",
|
|
81
117
|
clan_id: this.channel.clan.id,
|
|
82
118
|
channel_id: this.channel.id,
|
|
83
119
|
mode: convertChanneltypeToChannelMode(this.channel.channel_type),
|
|
@@ -97,6 +133,7 @@ export class Message {
|
|
|
97
133
|
const dataRemove = {
|
|
98
134
|
clan_id: this.channel.clan.id,
|
|
99
135
|
channel_id: this.channel.id,
|
|
136
|
+
channel_type: this.channel.channel_type,
|
|
100
137
|
mode: convertChanneltypeToChannelMode(this.channel.channel_type),
|
|
101
138
|
is_public: !this.channel.is_private,
|
|
102
139
|
message_id: this.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/Message.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/Message.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApiChannelDescription, ApiMessageAttachment, ApiMessageMention, ChannelMessageContent } from "../../interfaces";
|
|
1
|
+
import { ApiChannelDescription, ChannelMessageAck, ApiMessageAttachment, ApiMessageMention, ChannelMessageContent, ReplyMessageData } from "../../interfaces";
|
|
2
2
|
import { MessageDatabase } from "../../sqlite/MessageDatabase";
|
|
3
3
|
import { SocketManager } from "../manager/socket_manager";
|
|
4
4
|
import { AsyncThrottleQueue } from "../utils/AsyncThrottleQueue";
|
|
@@ -20,11 +20,17 @@ export declare class TextChannel {
|
|
|
20
20
|
private readonly messageQueue;
|
|
21
21
|
private messageDB;
|
|
22
22
|
constructor(initChannelData: ApiChannelDescription, clan: Clan, socketManager: SocketManager, messageQueue: AsyncThrottleQueue, messageDB: MessageDatabase);
|
|
23
|
-
send(content: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string, code?: number): Promise<
|
|
23
|
+
send(content: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string, code?: number): Promise<Message>;
|
|
24
|
+
createMessageFromAck(ack: ChannelMessageAck & {
|
|
25
|
+
create_time_seconds?: number;
|
|
26
|
+
update_time_seconds?: number;
|
|
27
|
+
persistent?: boolean;
|
|
28
|
+
persistence?: boolean;
|
|
29
|
+
}, data: ReplyMessageData): Message;
|
|
24
30
|
private _buildEphemeralReferences;
|
|
25
31
|
private _buildEphemeralBase;
|
|
26
|
-
sendEphemeral(receiver_id: string | string[], content: any, reference_message_id?: string, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string): Promise<
|
|
27
|
-
updateEphemeral(receiver_id: string, content: any, message_id: string, topic_id?: string, reference_message_id?: string, attachments?: Array<ApiMessageAttachment>, mentions?: Array<ApiMessageMention>, mention_everyone?: boolean, anonymous_message?: boolean): Promise<
|
|
28
|
-
deleteEphemeral(receiver_id: string, message_id: string, topic_id?: string): Promise<
|
|
32
|
+
sendEphemeral(receiver_id: string | string[], content: any, reference_message_id?: string, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string): Promise<ChannelMessageAck>;
|
|
33
|
+
updateEphemeral(receiver_id: string, content: any, message_id: string, topic_id?: string, reference_message_id?: string, attachments?: Array<ApiMessageAttachment>, mentions?: Array<ApiMessageMention>, mention_everyone?: boolean, anonymous_message?: boolean): Promise<ChannelMessageAck>;
|
|
34
|
+
deleteEphemeral(receiver_id: string, message_id: string, topic_id?: string): Promise<ChannelMessageAck>;
|
|
29
35
|
playMedia(url: string, participantIdentity: string, participantName: string, name: string): Promise<any>;
|
|
30
36
|
}
|
|
@@ -43,6 +43,7 @@ export class TextChannel {
|
|
|
43
43
|
const dataSend = {
|
|
44
44
|
clan_id: this.clan.id,
|
|
45
45
|
channel_id: this.id,
|
|
46
|
+
channel_type: this.channel_type,
|
|
46
47
|
mode: convertChanneltypeToChannelMode(this.channel_type),
|
|
47
48
|
is_public: !this.is_private,
|
|
48
49
|
content,
|
|
@@ -53,9 +54,43 @@ export class TextChannel {
|
|
|
53
54
|
code,
|
|
54
55
|
topic_id,
|
|
55
56
|
};
|
|
56
|
-
|
|
57
|
+
const ack = await this.socketManager.writeChatMessage(dataSend);
|
|
58
|
+
return this.createMessageFromAck(ack, dataSend);
|
|
57
59
|
});
|
|
58
60
|
}
|
|
61
|
+
createMessageFromAck(ack, data) {
|
|
62
|
+
const createTimeSeconds = ack.create_time_seconds ??
|
|
63
|
+
(ack.create_time ? Number(ack.create_time) : undefined);
|
|
64
|
+
const updateTimeSeconds = ack.update_time_seconds ??
|
|
65
|
+
(ack.update_time ? Number(ack.update_time) : undefined);
|
|
66
|
+
const messageRaw = {
|
|
67
|
+
id: ack.message_id,
|
|
68
|
+
clan_id: data.clan_id,
|
|
69
|
+
channel_id: ack.channel_id || data.channel_id,
|
|
70
|
+
sender_id: this.clan.getClient().clientId,
|
|
71
|
+
content: data.content,
|
|
72
|
+
mentions: data.mentions,
|
|
73
|
+
attachments: data.attachments,
|
|
74
|
+
references: data.references,
|
|
75
|
+
topic_id: data.topic_id,
|
|
76
|
+
create_time_seconds: Number.isNaN(createTimeSeconds)
|
|
77
|
+
? undefined
|
|
78
|
+
: createTimeSeconds,
|
|
79
|
+
update_time_seconds: Number.isNaN(updateTimeSeconds)
|
|
80
|
+
? undefined
|
|
81
|
+
: updateTimeSeconds,
|
|
82
|
+
code: ack.code,
|
|
83
|
+
username: ack.username,
|
|
84
|
+
create_time: ack.create_time,
|
|
85
|
+
update_time: ack.update_time,
|
|
86
|
+
persistent: ack.persistent ?? ack.persistence,
|
|
87
|
+
persistence: ack.persistence ?? ack.persistent ?? false,
|
|
88
|
+
mode: ack.mode,
|
|
89
|
+
};
|
|
90
|
+
const message = new Message(messageRaw, this, this.socketManager, this.messageQueue);
|
|
91
|
+
this.messages.set(message.id, message);
|
|
92
|
+
return message;
|
|
93
|
+
}
|
|
59
94
|
async _buildEphemeralReferences(reference_message_id) {
|
|
60
95
|
if (!reference_message_id) {
|
|
61
96
|
return { references: [], topic_id_from_ref: undefined };
|
|
@@ -79,6 +114,7 @@ export class TextChannel {
|
|
|
79
114
|
receiver_id,
|
|
80
115
|
clan_id: this.clan.id,
|
|
81
116
|
channel_id: this.id,
|
|
117
|
+
channel_type: this.channel_type,
|
|
82
118
|
mode: convertChanneltypeToChannelMode(this.channel_type),
|
|
83
119
|
is_public: !this.is_private,
|
|
84
120
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextChannel.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/TextChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextChannel.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/TextChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { ApiMessageAttachment, ChannelMessageContent } from "../../interfaces";
|
|
1
|
+
import { ApiChannelDescription, ApiMessageAttachment, ChannelMessageContent } from "../../interfaces";
|
|
2
2
|
import { ChannelManager } from "../manager/channel_manager";
|
|
3
3
|
import { SocketManager } from "../manager/socket_manager";
|
|
4
4
|
import { AsyncThrottleQueue } from "../utils/AsyncThrottleQueue";
|
|
5
|
+
import { TextChannel } from "./TextChannel";
|
|
5
6
|
export interface UserInitData {
|
|
6
7
|
id: string;
|
|
7
8
|
username?: string;
|
|
@@ -15,6 +16,8 @@ type UserDeps = {
|
|
|
15
16
|
socketManager: SocketManager;
|
|
16
17
|
messageQueue: AsyncThrottleQueue;
|
|
17
18
|
channelManager: ChannelManager;
|
|
19
|
+
cacheDmChannel: (channel: ApiChannelDescription) => TextChannel | undefined;
|
|
20
|
+
getChannel: (channelId: string) => Promise<TextChannel>;
|
|
18
21
|
};
|
|
19
22
|
export declare class User {
|
|
20
23
|
id: string;
|
|
@@ -27,8 +30,10 @@ export declare class User {
|
|
|
27
30
|
private readonly socketManager;
|
|
28
31
|
private readonly messageQueue;
|
|
29
32
|
private readonly channelManager;
|
|
33
|
+
private readonly cacheDmChannel;
|
|
34
|
+
private readonly getChannel;
|
|
30
35
|
constructor(initUserData: UserInitData, deps: UserDeps);
|
|
31
36
|
private createDmChannel;
|
|
32
|
-
sendDM(content: ChannelMessageContent, code?: number, attachments?: Array<ApiMessageAttachment>): Promise<import("
|
|
37
|
+
sendDM(content: ChannelMessageContent, code?: number, attachments?: Array<ApiMessageAttachment>): Promise<import("./Message").Message>;
|
|
33
38
|
}
|
|
34
39
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChannelStreamMode } from "../../constants";
|
|
1
|
+
import { ChannelStreamMode, ChannelType } from "../../constants";
|
|
2
2
|
export class User {
|
|
3
3
|
id;
|
|
4
4
|
username;
|
|
@@ -10,6 +10,8 @@ export class User {
|
|
|
10
10
|
socketManager;
|
|
11
11
|
messageQueue;
|
|
12
12
|
channelManager;
|
|
13
|
+
cacheDmChannel;
|
|
14
|
+
getChannel;
|
|
13
15
|
constructor(initUserData, deps) {
|
|
14
16
|
this.id = initUserData.id;
|
|
15
17
|
this.avartar = initUserData.avartar ?? "";
|
|
@@ -21,6 +23,8 @@ export class User {
|
|
|
21
23
|
this.socketManager = deps.socketManager;
|
|
22
24
|
this.messageQueue = deps.messageQueue;
|
|
23
25
|
this.channelManager = deps.channelManager;
|
|
26
|
+
this.cacheDmChannel = deps.cacheDmChannel;
|
|
27
|
+
this.getChannel = deps.getChannel;
|
|
24
28
|
}
|
|
25
29
|
async createDmChannel() {
|
|
26
30
|
try {
|
|
@@ -37,6 +41,9 @@ export class User {
|
|
|
37
41
|
if (!this.dmChannelId) {
|
|
38
42
|
const dmChannel = await this.createDmChannel();
|
|
39
43
|
this.dmChannelId = dmChannel?.channel_id ?? "";
|
|
44
|
+
if (dmChannel) {
|
|
45
|
+
this.cacheDmChannel(dmChannel);
|
|
46
|
+
}
|
|
40
47
|
}
|
|
41
48
|
if (!this.dmChannelId) {
|
|
42
49
|
throw Error(`Can not get dmChannelId for this user ${this.id}!`);
|
|
@@ -44,13 +51,16 @@ export class User {
|
|
|
44
51
|
const dataSendDm = {
|
|
45
52
|
clan_id: "0",
|
|
46
53
|
channel_id: this.dmChannelId,
|
|
54
|
+
channel_type: ChannelType.CHANNEL_TYPE_DM,
|
|
47
55
|
mode: ChannelStreamMode.STREAM_MODE_DM,
|
|
48
56
|
is_public: false,
|
|
49
57
|
content,
|
|
50
58
|
attachments,
|
|
51
59
|
code,
|
|
52
60
|
};
|
|
53
|
-
|
|
61
|
+
const ack = await this.socketManager.writeChatMessage(dataSendDm);
|
|
62
|
+
const channel = await this.getChannel(this.dmChannelId);
|
|
63
|
+
return channel.createMessageFromAck(ack, dataSendDm);
|
|
54
64
|
});
|
|
55
65
|
}
|
|
56
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/User.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/User.ts"],"names":[],"mappings":"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"}
|