mezon-sdk 2.7.82 → 2.7.84
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 -194
- package/dist/cjs/api/api.js +43 -356
- package/dist/cjs/api/api.js.map +1 -1
- package/dist/cjs/api.d.ts +5 -1
- package/dist/cjs/api.js +60 -0
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/constants/enum.d.ts +7 -4
- package/dist/cjs/constants/enum.js +5 -2
- package/dist/cjs/constants/enum.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +16 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/client.d.ts +78 -5
- package/dist/cjs/interfaces/client.js +6 -0
- package/dist/cjs/interfaces/client.js.map +1 -1
- package/dist/cjs/interfaces/socket.d.ts +132 -7
- package/dist/cjs/mezon-client/client/MezonClient.d.ts +74 -0
- package/dist/cjs/mezon-client/client/MezonClient.js +301 -0
- package/dist/cjs/mezon-client/client/MezonClient.js.map +1 -0
- package/dist/cjs/mezon-client/manager/channel_manager.d.ts +16 -0
- package/dist/cjs/mezon-client/manager/channel_manager.js +60 -0
- package/dist/cjs/mezon-client/manager/channel_manager.js.map +1 -0
- package/dist/cjs/mezon-client/manager/event_manager.d.ts +7 -0
- package/dist/cjs/mezon-client/manager/event_manager.js +37 -0
- package/dist/cjs/mezon-client/manager/event_manager.js.map +1 -0
- package/dist/cjs/mezon-client/manager/session_manager.d.ts +10 -0
- package/dist/cjs/mezon-client/manager/session_manager.js +35 -0
- package/dist/cjs/mezon-client/manager/session_manager.js.map +1 -0
- package/dist/cjs/mezon-client/manager/socket_manager.d.ts +40 -0
- package/dist/cjs/mezon-client/manager/socket_manager.js +154 -0
- package/dist/cjs/mezon-client/manager/socket_manager.js.map +1 -0
- package/dist/cjs/mezon-client/socket_manager.d.ts +1 -1
- package/dist/cjs/mezon-client/socket_manager.js +8 -4
- package/dist/cjs/mezon-client/socket_manager.js.map +1 -1
- package/dist/cjs/mezon-client/structures/Clan.d.ts +29 -0
- package/dist/cjs/mezon-client/structures/Clan.js +77 -0
- package/dist/cjs/mezon-client/structures/Clan.js.map +1 -0
- package/dist/cjs/mezon-client/structures/Message.d.ts +34 -0
- package/dist/cjs/mezon-client/structures/Message.js +90 -0
- package/dist/cjs/mezon-client/structures/Message.js.map +1 -0
- package/dist/cjs/mezon-client/structures/TextChannel.d.ts +22 -0
- package/dist/cjs/mezon-client/structures/TextChannel.js +65 -0
- package/dist/cjs/mezon-client/structures/TextChannel.js.map +1 -0
- package/dist/cjs/mezon-client/structures/User.d.ts +26 -0
- package/dist/cjs/mezon-client/structures/User.js +32 -0
- package/dist/cjs/mezon-client/structures/User.js.map +1 -0
- package/dist/cjs/mezon-client/utils/AsyncThrottleQueue.d.ts +8 -0
- package/dist/cjs/mezon-client/utils/AsyncThrottleQueue.js +40 -0
- package/dist/cjs/mezon-client/utils/AsyncThrottleQueue.js.map +1 -0
- package/dist/cjs/mezon-client/utils/CacheManager.d.ts +16 -0
- package/dist/cjs/mezon-client/utils/CacheManager.js +53 -0
- package/dist/cjs/mezon-client/utils/CacheManager.js.map +1 -0
- package/dist/cjs/mezon-client/utils/Collection.d.ts +23 -0
- package/dist/cjs/mezon-client/utils/Collection.js +100 -0
- package/dist/cjs/mezon-client/utils/Collection.js.map +1 -0
- package/dist/cjs/mezon-client-v1/channel_manager.d.ts +15 -0
- package/dist/cjs/mezon-client-v1/channel_manager.js +70 -0
- package/dist/cjs/mezon-client-v1/channel_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v1/event_manager.d.ts +7 -0
- package/dist/cjs/mezon-client-v1/event_manager.js +37 -0
- package/dist/cjs/mezon-client-v1/event_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v1/message_manager.d.ts +16 -0
- package/dist/cjs/mezon-client-v1/message_manager.js +59 -0
- package/dist/cjs/mezon-client-v1/message_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v1/mezon_client.d.ts +37 -0
- package/dist/cjs/mezon-client-v1/mezon_client.js +87 -0
- package/dist/cjs/mezon-client-v1/mezon_client.js.map +1 -0
- package/dist/cjs/mezon-client-v1/session_manager.d.ts +10 -0
- package/dist/cjs/mezon-client-v1/session_manager.js +35 -0
- package/dist/cjs/mezon-client-v1/session_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v1/socket_manager.d.ts +31 -0
- package/dist/cjs/mezon-client-v1/socket_manager.js +99 -0
- package/dist/cjs/mezon-client-v1/socket_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v2/client/MezonClient.d.ts +74 -0
- package/dist/cjs/mezon-client-v2/client/MezonClient.js +301 -0
- package/dist/cjs/mezon-client-v2/client/MezonClient.js.map +1 -0
- package/dist/cjs/mezon-client-v2/manager/channel_manager.d.ts +16 -0
- package/dist/cjs/mezon-client-v2/manager/channel_manager.js +60 -0
- package/dist/cjs/mezon-client-v2/manager/channel_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v2/manager/event_manager.d.ts +7 -0
- package/dist/cjs/mezon-client-v2/manager/event_manager.js +37 -0
- package/dist/cjs/mezon-client-v2/manager/event_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v2/manager/session_manager.d.ts +10 -0
- package/dist/cjs/mezon-client-v2/manager/session_manager.js +35 -0
- package/dist/cjs/mezon-client-v2/manager/session_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v2/manager/socket_manager.d.ts +40 -0
- package/dist/cjs/mezon-client-v2/manager/socket_manager.js +154 -0
- package/dist/cjs/mezon-client-v2/manager/socket_manager.js.map +1 -0
- package/dist/cjs/mezon-client-v2/structures/Clan.d.ts +29 -0
- package/dist/cjs/mezon-client-v2/structures/Clan.js +77 -0
- package/dist/cjs/mezon-client-v2/structures/Clan.js.map +1 -0
- package/dist/cjs/mezon-client-v2/structures/Message.d.ts +34 -0
- package/dist/cjs/mezon-client-v2/structures/Message.js +90 -0
- package/dist/cjs/mezon-client-v2/structures/Message.js.map +1 -0
- package/dist/cjs/mezon-client-v2/structures/TextChannel.d.ts +22 -0
- package/dist/cjs/mezon-client-v2/structures/TextChannel.js +65 -0
- package/dist/cjs/mezon-client-v2/structures/TextChannel.js.map +1 -0
- package/dist/cjs/mezon-client-v2/structures/User.d.ts +26 -0
- package/dist/cjs/mezon-client-v2/structures/User.js +32 -0
- package/dist/cjs/mezon-client-v2/structures/User.js.map +1 -0
- package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.d.ts +8 -0
- package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.js +40 -0
- package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.js.map +1 -0
- package/dist/cjs/mezon-client-v2/utils/CacheManager.d.ts +16 -0
- package/dist/cjs/mezon-client-v2/utils/CacheManager.js +53 -0
- package/dist/cjs/mezon-client-v2/utils/CacheManager.js.map +1 -0
- package/dist/cjs/mezon-client-v2/utils/Collection.d.ts +23 -0
- package/dist/cjs/mezon-client-v2/utils/Collection.js +100 -0
- package/dist/cjs/mezon-client-v2/utils/Collection.js.map +1 -0
- package/dist/cjs/rtapi/realtime.d.ts +6 -0
- package/dist/cjs/utils/helper.d.ts +2 -1
- package/dist/cjs/utils/helper.js +10 -4
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/esm/api/api.d.ts +25 -194
- package/dist/esm/api/api.js +35 -342
- package/dist/esm/api/api.js.map +1 -1
- package/dist/esm/api.d.ts +5 -1
- package/dist/esm/api.js +60 -0
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/constants/enum.d.ts +7 -4
- package/dist/esm/constants/enum.js +5 -2
- package/dist/esm/constants/enum.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/client.d.ts +78 -5
- package/dist/esm/interfaces/client.js +6 -0
- package/dist/esm/interfaces/client.js.map +1 -1
- package/dist/esm/interfaces/socket.d.ts +132 -7
- package/dist/esm/mezon-client/client/MezonClient.d.ts +74 -0
- package/dist/esm/mezon-client/client/MezonClient.js +311 -0
- package/dist/esm/mezon-client/client/MezonClient.js.map +1 -0
- package/dist/esm/mezon-client/manager/channel_manager.d.ts +16 -0
- package/dist/esm/mezon-client/manager/channel_manager.js +62 -0
- package/dist/esm/mezon-client/manager/channel_manager.js.map +1 -0
- package/dist/esm/mezon-client/manager/event_manager.d.ts +7 -0
- package/dist/esm/mezon-client/manager/event_manager.js +31 -0
- package/dist/esm/mezon-client/manager/event_manager.js.map +1 -0
- package/dist/esm/mezon-client/manager/session_manager.d.ts +10 -0
- package/dist/esm/mezon-client/manager/session_manager.js +33 -0
- package/dist/esm/mezon-client/manager/session_manager.js.map +1 -0
- package/dist/esm/mezon-client/manager/socket_manager.d.ts +40 -0
- package/dist/esm/mezon-client/manager/socket_manager.js +157 -0
- package/dist/esm/mezon-client/manager/socket_manager.js.map +1 -0
- package/dist/esm/mezon-client/socket_manager.d.ts +1 -1
- package/dist/esm/mezon-client/socket_manager.js +8 -4
- package/dist/esm/mezon-client/socket_manager.js.map +1 -1
- package/dist/esm/mezon-client/structures/Clan.d.ts +29 -0
- package/dist/esm/mezon-client/structures/Clan.js +82 -0
- package/dist/esm/mezon-client/structures/Clan.js.map +1 -0
- package/dist/esm/mezon-client/structures/Message.d.ts +34 -0
- package/dist/esm/mezon-client/structures/Message.js +96 -0
- package/dist/esm/mezon-client/structures/Message.js.map +1 -0
- package/dist/esm/mezon-client/structures/TextChannel.d.ts +22 -0
- package/dist/esm/mezon-client/structures/TextChannel.js +70 -0
- package/dist/esm/mezon-client/structures/TextChannel.js.map +1 -0
- package/dist/esm/mezon-client/structures/User.d.ts +26 -0
- package/dist/esm/mezon-client/structures/User.js +36 -0
- package/dist/esm/mezon-client/structures/User.js.map +1 -0
- package/dist/esm/mezon-client/utils/AsyncThrottleQueue.d.ts +8 -0
- package/dist/esm/mezon-client/utils/AsyncThrottleQueue.js +37 -0
- package/dist/esm/mezon-client/utils/AsyncThrottleQueue.js.map +1 -0
- package/dist/esm/mezon-client/utils/CacheManager.d.ts +16 -0
- package/dist/esm/mezon-client/utils/CacheManager.js +49 -0
- package/dist/esm/mezon-client/utils/CacheManager.js.map +1 -0
- package/dist/esm/mezon-client/utils/Collection.d.ts +23 -0
- package/dist/esm/mezon-client/utils/Collection.js +97 -0
- package/dist/esm/mezon-client/utils/Collection.js.map +1 -0
- package/dist/esm/mezon-client-v1/channel_manager.d.ts +15 -0
- package/dist/esm/mezon-client-v1/channel_manager.js +69 -0
- package/dist/esm/mezon-client-v1/channel_manager.js.map +1 -0
- package/dist/esm/mezon-client-v1/event_manager.d.ts +7 -0
- package/dist/esm/mezon-client-v1/event_manager.js +31 -0
- package/dist/esm/mezon-client-v1/event_manager.js.map +1 -0
- package/dist/esm/mezon-client-v1/message_manager.d.ts +16 -0
- package/dist/esm/mezon-client-v1/message_manager.js +56 -0
- package/dist/esm/mezon-client-v1/message_manager.js.map +1 -0
- package/dist/esm/mezon-client-v1/mezon_client.d.ts +37 -0
- package/dist/esm/mezon-client-v1/mezon_client.js +94 -0
- package/dist/esm/mezon-client-v1/mezon_client.js.map +1 -0
- package/dist/esm/mezon-client-v1/session_manager.d.ts +10 -0
- package/dist/esm/mezon-client-v1/session_manager.js +33 -0
- package/dist/esm/mezon-client-v1/session_manager.js.map +1 -0
- package/dist/esm/mezon-client-v1/socket_manager.d.ts +31 -0
- package/dist/esm/mezon-client-v1/socket_manager.js +104 -0
- package/dist/esm/mezon-client-v1/socket_manager.js.map +1 -0
- package/dist/esm/mezon-client-v2/client/MezonClient.d.ts +74 -0
- package/dist/esm/mezon-client-v2/client/MezonClient.js +311 -0
- package/dist/esm/mezon-client-v2/client/MezonClient.js.map +1 -0
- package/dist/esm/mezon-client-v2/manager/channel_manager.d.ts +16 -0
- package/dist/esm/mezon-client-v2/manager/channel_manager.js +62 -0
- package/dist/esm/mezon-client-v2/manager/channel_manager.js.map +1 -0
- package/dist/esm/mezon-client-v2/manager/event_manager.d.ts +7 -0
- package/dist/esm/mezon-client-v2/manager/event_manager.js +31 -0
- package/dist/esm/mezon-client-v2/manager/event_manager.js.map +1 -0
- package/dist/esm/mezon-client-v2/manager/session_manager.d.ts +10 -0
- package/dist/esm/mezon-client-v2/manager/session_manager.js +33 -0
- package/dist/esm/mezon-client-v2/manager/session_manager.js.map +1 -0
- package/dist/esm/mezon-client-v2/manager/socket_manager.d.ts +40 -0
- package/dist/esm/mezon-client-v2/manager/socket_manager.js +157 -0
- package/dist/esm/mezon-client-v2/manager/socket_manager.js.map +1 -0
- package/dist/esm/mezon-client-v2/structures/Clan.d.ts +29 -0
- package/dist/esm/mezon-client-v2/structures/Clan.js +82 -0
- package/dist/esm/mezon-client-v2/structures/Clan.js.map +1 -0
- package/dist/esm/mezon-client-v2/structures/Message.d.ts +34 -0
- package/dist/esm/mezon-client-v2/structures/Message.js +96 -0
- package/dist/esm/mezon-client-v2/structures/Message.js.map +1 -0
- package/dist/esm/mezon-client-v2/structures/TextChannel.d.ts +22 -0
- package/dist/esm/mezon-client-v2/structures/TextChannel.js +70 -0
- package/dist/esm/mezon-client-v2/structures/TextChannel.js.map +1 -0
- package/dist/esm/mezon-client-v2/structures/User.d.ts +26 -0
- package/dist/esm/mezon-client-v2/structures/User.js +36 -0
- package/dist/esm/mezon-client-v2/structures/User.js.map +1 -0
- package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.d.ts +8 -0
- package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.js +37 -0
- package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.js.map +1 -0
- package/dist/esm/mezon-client-v2/utils/CacheManager.d.ts +16 -0
- package/dist/esm/mezon-client-v2/utils/CacheManager.js +49 -0
- package/dist/esm/mezon-client-v2/utils/CacheManager.js.map +1 -0
- package/dist/esm/mezon-client-v2/utils/Collection.d.ts +23 -0
- package/dist/esm/mezon-client-v2/utils/Collection.js +97 -0
- package/dist/esm/mezon-client-v2/utils/Collection.js.map +1 -0
- package/dist/esm/rtapi/realtime.d.ts +6 -0
- package/dist/esm/utils/helper.d.ts +2 -1
- package/dist/esm/utils/helper.js +9 -4
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/cjs/constants/events.d.ts +0 -10
- package/dist/cjs/constants/events.js +0 -16
- package/dist/cjs/constants/events.js.map +0 -1
- package/dist/esm/constants/events.d.ts +0 -10
- package/dist/esm/constants/events.js +0 -13
- package/dist/esm/constants/events.js.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MezonClient = void 0;
|
|
4
|
+
const api_1 = require("../api");
|
|
5
|
+
// import { Session } from "./session";
|
|
6
|
+
// import { DefaultSocket } from "./socket";
|
|
7
|
+
// import { WebSocketAdapter } from "./web_socket_adapter";
|
|
8
|
+
const web_socket_adapter_pb_1 = require("../web_socket_adapter_pb");
|
|
9
|
+
const socket_manager_1 = require("./socket_manager");
|
|
10
|
+
const message_manager_1 = require("./message_manager");
|
|
11
|
+
const channel_manager_1 = require("./channel_manager");
|
|
12
|
+
const session_manager_1 = require("./session_manager");
|
|
13
|
+
const event_manager_1 = require("./event_manager");
|
|
14
|
+
const DEFAULT_HOST = "api.mezon.vn";
|
|
15
|
+
const DEFAULT_PORT = "443";
|
|
16
|
+
const DEFAULT_API_KEY = "";
|
|
17
|
+
const DEFAULT_SSL = true;
|
|
18
|
+
const DEFAULT_TIMEOUT_MS = 7000;
|
|
19
|
+
class MezonClient {
|
|
20
|
+
constructor(apiKey = DEFAULT_API_KEY, host = DEFAULT_HOST, port = DEFAULT_PORT, useSSL = DEFAULT_SSL, timeout = DEFAULT_TIMEOUT_MS) {
|
|
21
|
+
this.apiKey = apiKey;
|
|
22
|
+
this.host = host;
|
|
23
|
+
this.port = port;
|
|
24
|
+
this.useSSL = useSSL;
|
|
25
|
+
this.timeout = timeout;
|
|
26
|
+
const scheme = useSSL ? "https://" : "http://";
|
|
27
|
+
const basePath = `${scheme}${host}:${port}`;
|
|
28
|
+
this.apiClient = new api_1.MezonApi(apiKey, basePath, timeout);
|
|
29
|
+
this.sessionManager = new session_manager_1.SessionManager(this.apiClient);
|
|
30
|
+
this.eventManager = new event_manager_1.EventManager();
|
|
31
|
+
this.socketManager = new socket_manager_1.SocketManager(this.host, this.port, this.useSSL, new web_socket_adapter_pb_1.WebSocketAdapterPb(), this.sessionManager, this.apiClient, this.apiKey, this.eventManager);
|
|
32
|
+
this.messageManager = new message_manager_1.MessageManager(this.socketManager);
|
|
33
|
+
this.channelManager = new channel_manager_1.ChannelManager(this.apiClient, this.socketManager, this.sessionManager);
|
|
34
|
+
}
|
|
35
|
+
async authenticate() {
|
|
36
|
+
const sockSession = await this.sessionManager.authenticate(this.apiKey);
|
|
37
|
+
const sessionConnected = await this.socketManager.connect(sockSession);
|
|
38
|
+
if (sessionConnected === null || sessionConnected === void 0 ? void 0 : sessionConnected.token) {
|
|
39
|
+
await this.socketManager.connectSocket(sessionConnected.token);
|
|
40
|
+
}
|
|
41
|
+
return "Authenticate success!";
|
|
42
|
+
}
|
|
43
|
+
on(event, func, context = null) {
|
|
44
|
+
this.eventManager.on(event, func, context);
|
|
45
|
+
}
|
|
46
|
+
remove(event, func) {
|
|
47
|
+
this.eventManager.remove(event, func);
|
|
48
|
+
}
|
|
49
|
+
closeSocket() {
|
|
50
|
+
this.socketManager.closeSocket();
|
|
51
|
+
this.eventManager = new event_manager_1.EventManager(); // Reset event manager
|
|
52
|
+
}
|
|
53
|
+
async logout() {
|
|
54
|
+
return this.sessionManager.logout();
|
|
55
|
+
}
|
|
56
|
+
/** Send message in channel/thread */
|
|
57
|
+
async sendMessage(clan_id, channel_id, mode, is_public, msg, mentions, attachments, ref, anonymous_message, mention_everyone, avatar, code, topic_id) {
|
|
58
|
+
return await this.messageManager.sendMessage(clan_id, channel_id, mode, is_public, msg, mentions, attachments, ref, anonymous_message, mention_everyone, avatar, code, topic_id);
|
|
59
|
+
}
|
|
60
|
+
/** Send DM message */
|
|
61
|
+
async sendDMChannelMessage(channelDmId, msg, messOptions = {}, attachments = [], refs = [], code) {
|
|
62
|
+
return await this.messageManager.sendDMChannelMessage(channelDmId, msg, messOptions, attachments, refs, code);
|
|
63
|
+
}
|
|
64
|
+
/** Update message */
|
|
65
|
+
async updateChatMessage(clan_id, channel_id, mode, is_public, message_id, content, mentions, attachments, hideEditted) {
|
|
66
|
+
return await this.messageManager.updateChatMessage(clan_id, channel_id, mode, is_public, message_id, content, mentions, attachments, hideEditted);
|
|
67
|
+
}
|
|
68
|
+
/** Create DM channel */
|
|
69
|
+
async createDMchannel(userId) {
|
|
70
|
+
return this.channelManager.createDMchannel(userId);
|
|
71
|
+
}
|
|
72
|
+
/** List current user in channel voice */
|
|
73
|
+
async listChannelVoiceUsers(clanId, channelId, channelType, limit = 500, state, cursor) {
|
|
74
|
+
return await this.channelManager.listChannelVoiceUsers(clanId, channelId, channelType, limit, state, cursor);
|
|
75
|
+
}
|
|
76
|
+
/** Send token to user */
|
|
77
|
+
async sendToken(sendTokenData) {
|
|
78
|
+
const session = this.sessionManager.getSession();
|
|
79
|
+
return this.apiClient.sendToken(session.token, sendTokenData);
|
|
80
|
+
}
|
|
81
|
+
/** React message */
|
|
82
|
+
async reactionMessage(id, clan_id, channel_id, mode, is_public, message_id, emoji_id, emoji, count, message_sender_id, action_delete) {
|
|
83
|
+
return await this.messageManager.reactionMessage(id, clan_id, channel_id, mode, is_public, message_id, emoji_id, emoji, count, message_sender_id, action_delete);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.MezonClient = MezonClient;
|
|
87
|
+
//# sourceMappingURL=mezon_client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mezon_client.js","sourceRoot":"","sources":["../../../src/mezon-client-v1/mezon_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MezonApi } from '../api';
|
|
2
|
+
import { Session } from '../session';
|
|
3
|
+
export declare class SessionManager {
|
|
4
|
+
private apiClient;
|
|
5
|
+
private session;
|
|
6
|
+
constructor(apiClient: MezonApi);
|
|
7
|
+
authenticate(apiKey: string): Promise<Session>;
|
|
8
|
+
logout(): Promise<boolean>;
|
|
9
|
+
getSession(): Session | undefined;
|
|
10
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionManager = void 0;
|
|
4
|
+
const session_1 = require("../session");
|
|
5
|
+
class SessionManager {
|
|
6
|
+
constructor(apiClient) {
|
|
7
|
+
this.apiClient = apiClient;
|
|
8
|
+
}
|
|
9
|
+
async authenticate(apiKey) {
|
|
10
|
+
return this.apiClient.mezonAuthenticate(apiKey, "", {
|
|
11
|
+
account: {
|
|
12
|
+
token: apiKey,
|
|
13
|
+
}
|
|
14
|
+
}).then(async (apiSession) => {
|
|
15
|
+
this.session = new session_1.Session(apiSession);
|
|
16
|
+
return this.session;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async logout() {
|
|
20
|
+
if (!this.session)
|
|
21
|
+
return false;
|
|
22
|
+
const request = {
|
|
23
|
+
token: this.session.token,
|
|
24
|
+
refresh_token: this.session.refresh_token
|
|
25
|
+
};
|
|
26
|
+
return this.apiClient.mezonAuthenticateLogout(this.session.token, request).then((response) => {
|
|
27
|
+
return response !== undefined;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getSession() {
|
|
31
|
+
return this.session;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.SessionManager = SessionManager;
|
|
35
|
+
//# sourceMappingURL=session_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session_manager.js","sourceRoot":"","sources":["../../../src/mezon-client-v1/session_manager.ts"],"names":[],"mappings":";;;AAEA,wCAAqC;AAErC,MAAa,cAAc;IAGzB,YAAoB,SAAmB;QAAnB,cAAS,GAAT,SAAS,CAAU;IAAG,CAAC;IAE3C,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,EAAE;YAClD,OAAO,EAAE;gBACP,KAAK,EAAE,MAAM;aACd;SACF,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,UAAsB,EAAE,EAAE;YACvC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,UAAU,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAEhC,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;SAC1C,CAAC;QAEF,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC3F,OAAO,QAAQ,KAAK,SAAS,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAhCD,wCAgCC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { WebSocketAdapter } from "../web_socket_adapter";
|
|
2
|
+
import { Session } from "../session";
|
|
3
|
+
import { Socket } from "../interfaces";
|
|
4
|
+
import { SessionManager } from "./session_manager";
|
|
5
|
+
import { MezonApi } from "../api";
|
|
6
|
+
import { ErrorEvent, CloseEvent } from "ws";
|
|
7
|
+
import { EventManager } from "./event_manager";
|
|
8
|
+
export declare class SocketManager {
|
|
9
|
+
private host;
|
|
10
|
+
private port;
|
|
11
|
+
private useSSL;
|
|
12
|
+
private adapter;
|
|
13
|
+
private sessionManager;
|
|
14
|
+
private apiClient;
|
|
15
|
+
private apiKey;
|
|
16
|
+
private eventManager;
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
private socket;
|
|
19
|
+
private isHardDisconnect;
|
|
20
|
+
constructor(host: string, port: string, useSSL: boolean, adapter: WebSocketAdapter, sessionManager: SessionManager, apiClient: MezonApi, apiKey: string, eventManager: EventManager);
|
|
21
|
+
createSocket(): void;
|
|
22
|
+
getSocket(): Socket;
|
|
23
|
+
connect(sockSession: Session): Promise<Session>;
|
|
24
|
+
closeSocket(): void;
|
|
25
|
+
isOpen(): boolean;
|
|
26
|
+
onerror(evt: ErrorEvent): Promise<void>;
|
|
27
|
+
onheartbeattimeout(): void;
|
|
28
|
+
ondisconnect(e: CloseEvent): void;
|
|
29
|
+
connectSocket(sessionToken: string): Promise<void>;
|
|
30
|
+
retriesConnect(): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SocketManager = void 0;
|
|
4
|
+
const socket_1 = require("../socket");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const web_socket_adapter_pb_1 = require("../web_socket_adapter_pb");
|
|
7
|
+
class SocketManager {
|
|
8
|
+
constructor(host, port, useSSL, adapter, sessionManager, apiClient, apiKey, eventManager) {
|
|
9
|
+
this.host = host;
|
|
10
|
+
this.port = port;
|
|
11
|
+
this.useSSL = useSSL;
|
|
12
|
+
this.adapter = adapter;
|
|
13
|
+
this.sessionManager = sessionManager;
|
|
14
|
+
this.apiClient = apiClient;
|
|
15
|
+
this.apiKey = apiKey;
|
|
16
|
+
this.eventManager = eventManager;
|
|
17
|
+
this.socket = new socket_1.DefaultSocket(this.host, this.port, this.useSSL, false, this.adapter);
|
|
18
|
+
}
|
|
19
|
+
createSocket() {
|
|
20
|
+
this.adapter = new web_socket_adapter_pb_1.WebSocketAdapterPb();
|
|
21
|
+
this.socket = new socket_1.DefaultSocket(this.host, this.port, this.useSSL, false, this.adapter);
|
|
22
|
+
}
|
|
23
|
+
getSocket() {
|
|
24
|
+
return this.socket;
|
|
25
|
+
}
|
|
26
|
+
async connect(sockSession) {
|
|
27
|
+
const session = await this.socket.connect(sockSession, true);
|
|
28
|
+
this.isHardDisconnect = false;
|
|
29
|
+
return session;
|
|
30
|
+
}
|
|
31
|
+
closeSocket() {
|
|
32
|
+
this.isHardDisconnect = true;
|
|
33
|
+
this.socket.close();
|
|
34
|
+
}
|
|
35
|
+
isOpen() {
|
|
36
|
+
return this.socket.isOpen();
|
|
37
|
+
}
|
|
38
|
+
async onerror(evt) {
|
|
39
|
+
console.log("onerror", evt);
|
|
40
|
+
if (this.isHardDisconnect)
|
|
41
|
+
return;
|
|
42
|
+
if (this.socket.isOpen()) {
|
|
43
|
+
await this.retriesConnect();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
onheartbeattimeout() {
|
|
47
|
+
console.log("Heartbeat timeout.");
|
|
48
|
+
}
|
|
49
|
+
ondisconnect(e) {
|
|
50
|
+
console.log("Disconnected!", e === null || e === void 0 ? void 0 : e.reason);
|
|
51
|
+
if (this.isHardDisconnect)
|
|
52
|
+
return;
|
|
53
|
+
this.retriesConnect();
|
|
54
|
+
}
|
|
55
|
+
async connectSocket(sessionToken) {
|
|
56
|
+
var _a;
|
|
57
|
+
const clans = await this.apiClient.listClanDescs(sessionToken);
|
|
58
|
+
(_a = clans.clandesc) === null || _a === void 0 ? void 0 : _a.forEach(async (clan) => {
|
|
59
|
+
await this.socket.joinClanChat(clan.clan_id || "");
|
|
60
|
+
});
|
|
61
|
+
// join direct message
|
|
62
|
+
await this.socket.joinClanChat("0");
|
|
63
|
+
["ondisconnect", "onerror", "onheartbeattimeout"].forEach((event) => {
|
|
64
|
+
this.socket[event] = this[event].bind(this);
|
|
65
|
+
});
|
|
66
|
+
for (const event in constants_1.Events) {
|
|
67
|
+
const key = constants_1.Events[event].toString();
|
|
68
|
+
this.socket.socketEvents.on(key, (...args) => {
|
|
69
|
+
this.eventManager.emit(key, ...args);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async retriesConnect() {
|
|
74
|
+
let retryInterval = 5000;
|
|
75
|
+
const maxRetryInterval = 60000;
|
|
76
|
+
console.log("Reconnecting...");
|
|
77
|
+
const interval = setInterval(async () => {
|
|
78
|
+
try {
|
|
79
|
+
this.createSocket();
|
|
80
|
+
const sockSession = await this.sessionManager.authenticate(this.apiKey);
|
|
81
|
+
const sessionConnected = await this.connect(sockSession);
|
|
82
|
+
if (sessionConnected === null || sessionConnected === void 0 ? void 0 : sessionConnected.token) {
|
|
83
|
+
await this.connectSocket(sessionConnected.token);
|
|
84
|
+
}
|
|
85
|
+
console.log("Connected successfully!");
|
|
86
|
+
clearInterval(interval);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.log("Connection failed:", e);
|
|
90
|
+
retryInterval = Math.min(retryInterval * 2, maxRetryInterval);
|
|
91
|
+
console.log(`Retrying in ${retryInterval / 1000} seconds...`);
|
|
92
|
+
clearInterval(interval);
|
|
93
|
+
setTimeout(() => this.retriesConnect(), retryInterval);
|
|
94
|
+
}
|
|
95
|
+
}, retryInterval);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.SocketManager = SocketManager;
|
|
99
|
+
//# sourceMappingURL=socket_manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../src/mezon-client-v1/socket_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
import { CacheManager } from "../utils/CacheManager";
|
|
4
|
+
import { Clan } from "../structures/Clan";
|
|
5
|
+
import { TextChannel } from "../structures/TextChannel";
|
|
6
|
+
import { AddClanUserEvent, ChannelCreatedEvent, ChannelDeletedEvent, ChannelMessage, ChannelUpdatedEvent, DropdownBoxSelected, GiveCoffeeEvent, MessageReaction, StreamingJoinedEvent, StreamingLeavedEvent, TokenSentEvent, UserChannelAddedEvent, UserChannelRemoved, UserClanRemovedEvent } from "../../interfaces";
|
|
7
|
+
import { MessageButtonClicked, RoleAssignedEvent, RoleEvent, WebrtcSignalingFwd } from "../../rtapi/realtime";
|
|
8
|
+
import { CreateEventRequest } from "../../api/api";
|
|
9
|
+
export declare class MezonClient extends EventEmitter {
|
|
10
|
+
readonly host: string;
|
|
11
|
+
readonly port: string;
|
|
12
|
+
readonly useSSL: boolean;
|
|
13
|
+
readonly timeout: number;
|
|
14
|
+
token: string;
|
|
15
|
+
private readonly apiClient;
|
|
16
|
+
private readonly socketManager;
|
|
17
|
+
private readonly channelManager;
|
|
18
|
+
private readonly sessionManager;
|
|
19
|
+
private clientId;
|
|
20
|
+
private eventManager;
|
|
21
|
+
private messageQueue;
|
|
22
|
+
clans: CacheManager<string, Clan>;
|
|
23
|
+
channels: CacheManager<string, TextChannel>;
|
|
24
|
+
constructor(token?: string, host?: string, port?: string, useSSL?: boolean, timeout?: number);
|
|
25
|
+
/** Login bot */
|
|
26
|
+
login(): Promise<string>;
|
|
27
|
+
/** Create DM channel */
|
|
28
|
+
createDMchannel(userId: string): Promise<any>;
|
|
29
|
+
sendToken(sendTokenData: TokenSentEvent): Promise<any>;
|
|
30
|
+
/** Listen to messages user sends on the channel, thread */
|
|
31
|
+
onChannelMessage(listener: (e: ChannelMessage) => void): Promise<this>;
|
|
32
|
+
/** Listen to channel created */
|
|
33
|
+
onChannelCreated(listener: (e: ChannelCreatedEvent) => void): this;
|
|
34
|
+
/** Listen to channel updated */
|
|
35
|
+
onChannelUpdated(listener: (e: ChannelUpdatedEvent) => void): this;
|
|
36
|
+
/** Listen to channel deleted */
|
|
37
|
+
onChannelDeleted(listener: (e: ChannelDeletedEvent) => void): this;
|
|
38
|
+
/** Listen to user send token to each other */
|
|
39
|
+
onTokenSend(listener: (e: TokenSentEvent) => void): this;
|
|
40
|
+
/** Listen to user react to messages on the channel, thread */
|
|
41
|
+
onMessageReaction(listener: (e: MessageReaction) => void): this;
|
|
42
|
+
/** Listen to user react to messages on the channel, thread */
|
|
43
|
+
onUserChannelRemoved(listener: (e: UserChannelRemoved) => void): this;
|
|
44
|
+
/** Listen to user leaved/removed in the channel */
|
|
45
|
+
onUserClanRemoved(listener: (e: UserClanRemovedEvent) => void): this;
|
|
46
|
+
/** Listen to user added in the channel */
|
|
47
|
+
onUserChannelAdded(listener: (e: UserChannelAddedEvent) => void): this;
|
|
48
|
+
/** Listen to users give coffee to each other */
|
|
49
|
+
onGiveCoffee(listener: (e: GiveCoffeeEvent) => void): this;
|
|
50
|
+
/** Listen to clan create new role */
|
|
51
|
+
onRoleEvent(listener: (e: RoleEvent) => void): this;
|
|
52
|
+
/** Listen to assigning a role to user */
|
|
53
|
+
onRoleAssign(listener: (e: RoleAssignedEvent) => void): this;
|
|
54
|
+
/** Listen to user added in CLAN */
|
|
55
|
+
onAddClanUser(listener: (e: AddClanUserEvent) => void): this;
|
|
56
|
+
/** Listen to clan create a new event */
|
|
57
|
+
onClanEventCreated(listener: (e: CreateEventRequest) => void): this;
|
|
58
|
+
/** Listen to user lick a button on embed message */
|
|
59
|
+
onMessageButtonClicked(listener: (e: MessageButtonClicked) => void): this;
|
|
60
|
+
/** Listen to user joined a stream room */
|
|
61
|
+
onStreamingJoinedEvent(listener: (e: StreamingJoinedEvent) => void): this;
|
|
62
|
+
/** Listen to user leaved a stream room */
|
|
63
|
+
onStreamingLeavedEvent(listener: (e: StreamingLeavedEvent) => void): this;
|
|
64
|
+
/** Listen to user selected a input dropdown */
|
|
65
|
+
onDropdownBoxSelected(listener: (e: DropdownBoxSelected) => void): this;
|
|
66
|
+
/** Listen to user accepted call 1-1 */
|
|
67
|
+
onWebrtcSignalingFwd(listener: (e: WebrtcSignalingFwd) => void): this;
|
|
68
|
+
closeSocket(): void;
|
|
69
|
+
private _fetchClanFromAPI;
|
|
70
|
+
private _fetchChannelFromAPI;
|
|
71
|
+
private _initChannelMessageCache;
|
|
72
|
+
private _initUserClanCache;
|
|
73
|
+
_updateCacheChannel(e: ChannelCreatedEvent | ChannelUpdatedEvent): void;
|
|
74
|
+
}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MezonClient = void 0;
|
|
4
|
+
// src/client/MezonClient.ts
|
|
5
|
+
const events_1 = require("events");
|
|
6
|
+
const CacheManager_1 = require("../utils/CacheManager");
|
|
7
|
+
const TextChannel_1 = require("../structures/TextChannel");
|
|
8
|
+
// import { User } from "../structures/User";
|
|
9
|
+
const Message_1 = require("../structures/Message");
|
|
10
|
+
const api_1 = require("../../api");
|
|
11
|
+
const socket_manager_1 = require("../manager/socket_manager");
|
|
12
|
+
const session_manager_1 = require("../manager/session_manager");
|
|
13
|
+
const event_manager_1 = require("../manager/event_manager");
|
|
14
|
+
const web_socket_adapter_pb_1 = require("../../web_socket_adapter_pb");
|
|
15
|
+
const constants_1 = require("../../constants");
|
|
16
|
+
const helper_1 = require("../../utils/helper");
|
|
17
|
+
const channel_manager_1 = require("../manager/channel_manager");
|
|
18
|
+
const User_1 = require("../structures/User");
|
|
19
|
+
const AsyncThrottleQueue_1 = require("../utils/AsyncThrottleQueue");
|
|
20
|
+
const DEFAULT_HOST = "api.mezon.vn";
|
|
21
|
+
const DEFAULT_PORT = "443";
|
|
22
|
+
const DEFAULT_API_KEY = "";
|
|
23
|
+
const DEFAULT_SSL = true;
|
|
24
|
+
const DEFAULT_TIMEOUT_MS = 7000;
|
|
25
|
+
class MezonClient extends events_1.EventEmitter {
|
|
26
|
+
constructor(token = DEFAULT_API_KEY, host = DEFAULT_HOST, port = DEFAULT_PORT, useSSL = DEFAULT_SSL, timeout = DEFAULT_TIMEOUT_MS) {
|
|
27
|
+
super();
|
|
28
|
+
this.host = host;
|
|
29
|
+
this.port = port;
|
|
30
|
+
this.useSSL = useSSL;
|
|
31
|
+
this.timeout = timeout;
|
|
32
|
+
this.messageQueue = new AsyncThrottleQueue_1.AsyncThrottleQueue();
|
|
33
|
+
const scheme = useSSL ? "https://" : "http://";
|
|
34
|
+
const basePath = `${scheme}${host}:${port}`;
|
|
35
|
+
this.token = token;
|
|
36
|
+
this.apiClient = new api_1.MezonApi(token, basePath, timeout);
|
|
37
|
+
// this.users = new CacheManager(this._fetchUserFromAPI.bind(this)); // TODO: add user
|
|
38
|
+
this.clans = new CacheManager_1.CacheManager(this._fetchClanFromAPI.bind(this));
|
|
39
|
+
this.channels = new CacheManager_1.CacheManager(this._fetchChannelFromAPI.bind(this));
|
|
40
|
+
this.sessionManager = new session_manager_1.SessionManager(this.apiClient);
|
|
41
|
+
this.eventManager = new event_manager_1.EventManager();
|
|
42
|
+
this.socketManager = new socket_manager_1.SocketManager(this.host, this.port, this.useSSL, new web_socket_adapter_pb_1.WebSocketAdapterPb(), this.sessionManager, this.apiClient, this.token, this.eventManager, this.messageQueue, this);
|
|
43
|
+
this.channelManager = new channel_manager_1.ChannelManager(this.apiClient, this.socketManager, this.sessionManager);
|
|
44
|
+
}
|
|
45
|
+
/** Login bot */
|
|
46
|
+
async login() {
|
|
47
|
+
const sockSession = await this.sessionManager.authenticate(this.token);
|
|
48
|
+
this.clientId = sockSession === null || sockSession === void 0 ? void 0 : sockSession.user_id;
|
|
49
|
+
const sessionConnected = await this.socketManager.connect(sockSession);
|
|
50
|
+
if (sessionConnected === null || sessionConnected === void 0 ? void 0 : sessionConnected.token) {
|
|
51
|
+
await this.socketManager.connectSocket(sessionConnected.token);
|
|
52
|
+
await this.channelManager.initAllDmChannels(sessionConnected.token);
|
|
53
|
+
}
|
|
54
|
+
this.emit("ready");
|
|
55
|
+
return "Authenticate success!";
|
|
56
|
+
}
|
|
57
|
+
/** Create DM channel */
|
|
58
|
+
async createDMchannel(userId) {
|
|
59
|
+
try {
|
|
60
|
+
if (!(0, helper_1.isValidUserId)(userId))
|
|
61
|
+
return null;
|
|
62
|
+
const socket = this.socketManager.getSocket();
|
|
63
|
+
const request = {
|
|
64
|
+
clan_id: "",
|
|
65
|
+
channel_id: "0",
|
|
66
|
+
category_id: "0",
|
|
67
|
+
type: constants_1.ChannelType.CHANNEL_TYPE_DM,
|
|
68
|
+
user_ids: [userId],
|
|
69
|
+
channel_private: 1,
|
|
70
|
+
};
|
|
71
|
+
const channelDM = await this.apiClient.createChannelDesc(this.sessionManager.getSession().token, request);
|
|
72
|
+
if (channelDM) {
|
|
73
|
+
await (0, helper_1.sleep)(100);
|
|
74
|
+
await socket.joinChat(channelDM.clan_id, channelDM.channel_id, channelDM.type, false);
|
|
75
|
+
return channelDM;
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
console.log(e);
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async sendToken(sendTokenData) {
|
|
85
|
+
const session = this.sessionManager.getSession();
|
|
86
|
+
return this.apiClient.sendToken(session.token, sendTokenData);
|
|
87
|
+
}
|
|
88
|
+
/** Listen to messages user sends on the channel, thread */
|
|
89
|
+
async onChannelMessage(listener) {
|
|
90
|
+
this.on(constants_1.Events.ChannelMessage.toString(), async (e) => {
|
|
91
|
+
// handle init cache channel, message, user
|
|
92
|
+
await this._initChannelMessageCache(e);
|
|
93
|
+
await this._initUserClanCache(e);
|
|
94
|
+
listener(e);
|
|
95
|
+
});
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
/** Listen to channel created */
|
|
99
|
+
onChannelCreated(listener) {
|
|
100
|
+
this.on(constants_1.Events.ChannelCreated.toString(), async (e) => {
|
|
101
|
+
this._updateCacheChannel(e);
|
|
102
|
+
listener(e);
|
|
103
|
+
});
|
|
104
|
+
return this;
|
|
105
|
+
}
|
|
106
|
+
/** Listen to channel updated */
|
|
107
|
+
onChannelUpdated(listener) {
|
|
108
|
+
this.on(constants_1.Events.ChannelUpdated.toString(), async (e) => {
|
|
109
|
+
if (e.channel_type === constants_1.ChannelType.CHANNEL_TYPE_THREAD &&
|
|
110
|
+
e.status === 1) {
|
|
111
|
+
const socket = this.socketManager.getSocket();
|
|
112
|
+
await socket.joinChat(e.clan_id, e.channel_id, e.channel_type, false);
|
|
113
|
+
}
|
|
114
|
+
this._updateCacheChannel(e);
|
|
115
|
+
listener(e);
|
|
116
|
+
});
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
/** Listen to channel deleted */
|
|
120
|
+
onChannelDeleted(listener) {
|
|
121
|
+
this.on(constants_1.Events.ChannelDeleted.toString(), async (e) => {
|
|
122
|
+
const clan = this.clans.get(e.clan_id);
|
|
123
|
+
if (!clan)
|
|
124
|
+
return;
|
|
125
|
+
this.channels.delete(e.channel_id);
|
|
126
|
+
clan.channels.delete(e.channel_id);
|
|
127
|
+
listener(e);
|
|
128
|
+
});
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
/** Listen to user send token to each other */
|
|
132
|
+
onTokenSend(listener) {
|
|
133
|
+
this.on(constants_1.Events.TokenSend.toString(), listener);
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
136
|
+
/** Listen to user react to messages on the channel, thread */
|
|
137
|
+
onMessageReaction(listener) {
|
|
138
|
+
this.on(constants_1.Events.MessageReaction.toString(), listener);
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
/** Listen to user react to messages on the channel, thread */
|
|
142
|
+
onUserChannelRemoved(listener) {
|
|
143
|
+
this.on(constants_1.Events.UserChannelRemoved.toString(), listener);
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
/** Listen to user leaved/removed in the channel */
|
|
147
|
+
onUserClanRemoved(listener) {
|
|
148
|
+
this.on(constants_1.Events.UserClanRemoved.toString(), async (e) => {
|
|
149
|
+
const clan = this.clans.get(e.clan_id);
|
|
150
|
+
if (!clan)
|
|
151
|
+
return;
|
|
152
|
+
e.user_ids.forEach((user_id) => {
|
|
153
|
+
clan.users.delete(user_id);
|
|
154
|
+
});
|
|
155
|
+
listener(e);
|
|
156
|
+
});
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
/** Listen to user added in the channel */
|
|
160
|
+
onUserChannelAdded(listener) {
|
|
161
|
+
this.on(constants_1.Events.UserChannelAdded.toString(), async (e) => {
|
|
162
|
+
var _a;
|
|
163
|
+
const socket = this.socketManager.getSocket();
|
|
164
|
+
if ((_a = e === null || e === void 0 ? void 0 : e.users) === null || _a === void 0 ? void 0 : _a.some((user) => user.user_id == this.clientId)) {
|
|
165
|
+
await socket.joinChat(e.clan_id, e.channel_desc.channel_id, e.channel_desc.type, !e.channel_desc.channel_private);
|
|
166
|
+
}
|
|
167
|
+
listener(e);
|
|
168
|
+
});
|
|
169
|
+
return this;
|
|
170
|
+
}
|
|
171
|
+
/** Listen to users give coffee to each other */
|
|
172
|
+
onGiveCoffee(listener) {
|
|
173
|
+
this.on(constants_1.Events.GiveCoffee.toString(), listener);
|
|
174
|
+
return this;
|
|
175
|
+
}
|
|
176
|
+
/** Listen to clan create new role */
|
|
177
|
+
onRoleEvent(listener) {
|
|
178
|
+
this.on(constants_1.Events.RoleEvent.toString(), listener);
|
|
179
|
+
return this;
|
|
180
|
+
}
|
|
181
|
+
/** Listen to assigning a role to user */
|
|
182
|
+
onRoleAssign(listener) {
|
|
183
|
+
this.on(constants_1.Events.RoleAssign.toString(), listener);
|
|
184
|
+
return this;
|
|
185
|
+
}
|
|
186
|
+
/** Listen to user added in CLAN */
|
|
187
|
+
onAddClanUser(listener) {
|
|
188
|
+
this.on(constants_1.Events.AddClanUser.toString(), listener);
|
|
189
|
+
return this;
|
|
190
|
+
}
|
|
191
|
+
/** Listen to clan create a new event */
|
|
192
|
+
onClanEventCreated(listener) {
|
|
193
|
+
this.on(constants_1.Events.ClanEventCreated.toString(), listener);
|
|
194
|
+
return this;
|
|
195
|
+
}
|
|
196
|
+
/** Listen to user lick a button on embed message */
|
|
197
|
+
onMessageButtonClicked(listener) {
|
|
198
|
+
this.on(constants_1.Events.MessageButtonClicked.toString(), listener);
|
|
199
|
+
return this;
|
|
200
|
+
}
|
|
201
|
+
/** Listen to user joined a stream room */
|
|
202
|
+
onStreamingJoinedEvent(listener) {
|
|
203
|
+
this.on(constants_1.Events.StreamingJoinedEvent.toString(), listener);
|
|
204
|
+
return this;
|
|
205
|
+
}
|
|
206
|
+
/** Listen to user leaved a stream room */
|
|
207
|
+
onStreamingLeavedEvent(listener) {
|
|
208
|
+
this.on(constants_1.Events.StreamingLeavedEvent.toString(), listener);
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
/** Listen to user selected a input dropdown */
|
|
212
|
+
onDropdownBoxSelected(listener) {
|
|
213
|
+
this.on(constants_1.Events.DropdownBoxSelected.toString(), listener);
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
/** Listen to user accepted call 1-1 */
|
|
217
|
+
onWebrtcSignalingFwd(listener) {
|
|
218
|
+
this.on(constants_1.Events.WebrtcSignalingFwd.toString(), listener);
|
|
219
|
+
return this;
|
|
220
|
+
}
|
|
221
|
+
closeSocket() {
|
|
222
|
+
this.socketManager.closeSocket();
|
|
223
|
+
this.eventManager = new event_manager_1.EventManager(); // Reset event manager
|
|
224
|
+
}
|
|
225
|
+
async _fetchClanFromAPI(id) {
|
|
226
|
+
throw Error(`Can not find clan ${id}!`);
|
|
227
|
+
}
|
|
228
|
+
async _fetchChannelFromAPI(id) {
|
|
229
|
+
var _a;
|
|
230
|
+
console.log("_fetchChannelFromAPI", id);
|
|
231
|
+
const session = this.sessionManager.getSession();
|
|
232
|
+
const channelDetail = await this.apiClient.listChannelDetail(session.token, id);
|
|
233
|
+
if (!(channelDetail === null || channelDetail === void 0 ? void 0 : channelDetail.clan_id) || (channelDetail === null || channelDetail === void 0 ? void 0 : channelDetail.clan_id) === "0") {
|
|
234
|
+
throw Error(`Cannot fetch channelDM ${(_a = channelDetail === null || channelDetail === void 0 ? void 0 : channelDetail.channel_id) !== null && _a !== void 0 ? _a : ""}!`);
|
|
235
|
+
}
|
|
236
|
+
const clanId = channelDetail.clan_id;
|
|
237
|
+
const clan = this.clans.get(clanId);
|
|
238
|
+
const channel = new TextChannel_1.TextChannel(channelDetail, clan, this.socketManager, this.messageQueue);
|
|
239
|
+
this.channels.set(channel.id, channel);
|
|
240
|
+
clan.channels.set(channel.id, channel);
|
|
241
|
+
return channel;
|
|
242
|
+
}
|
|
243
|
+
async _initChannelMessageCache(e) {
|
|
244
|
+
const { clan_id, channel_id, sender_id, message_id, content, reactions, mentions, attachments, references, } = e;
|
|
245
|
+
if (!clan_id || clan_id === "0")
|
|
246
|
+
return;
|
|
247
|
+
const clan = this.clans.get(clan_id);
|
|
248
|
+
if (!clan)
|
|
249
|
+
return;
|
|
250
|
+
await clan.loadChannels();
|
|
251
|
+
const channel = await this.channels.fetch(channel_id);
|
|
252
|
+
const messageRaw = {
|
|
253
|
+
id: message_id,
|
|
254
|
+
clan_id: clan_id,
|
|
255
|
+
channel_id: channel_id,
|
|
256
|
+
sender_id: sender_id,
|
|
257
|
+
content,
|
|
258
|
+
reactions,
|
|
259
|
+
mentions,
|
|
260
|
+
attachments,
|
|
261
|
+
references,
|
|
262
|
+
};
|
|
263
|
+
const message = new Message_1.Message(messageRaw, channel, this.socketManager, this.messageQueue);
|
|
264
|
+
channel.messages.set(message_id, message);
|
|
265
|
+
}
|
|
266
|
+
async _initUserClanCache(e) {
|
|
267
|
+
var _a, _b;
|
|
268
|
+
const { clan_id, sender_id, username, clan_nick, clan_avatar, avatar, display_name, } = e;
|
|
269
|
+
const clan = this.clans.get(clan_id);
|
|
270
|
+
if (clan) {
|
|
271
|
+
let userCache = clan.users.get(sender_id);
|
|
272
|
+
let dmChannelId = (_a = userCache === null || userCache === void 0 ? void 0 : userCache.dmChannelId) !== null && _a !== void 0 ? _a : "";
|
|
273
|
+
if (!userCache && sender_id !== this.clientId) {
|
|
274
|
+
const allDmChannel = this.channelManager.getAllDmChannels();
|
|
275
|
+
dmChannelId = (_b = allDmChannel === null || allDmChannel === void 0 ? void 0 : allDmChannel[sender_id]) !== null && _b !== void 0 ? _b : "";
|
|
276
|
+
}
|
|
277
|
+
const userRaw = {
|
|
278
|
+
id: sender_id,
|
|
279
|
+
username: username,
|
|
280
|
+
clan_nick: clan_nick,
|
|
281
|
+
clan_avatar: clan_avatar,
|
|
282
|
+
avartar: avatar,
|
|
283
|
+
display_name: display_name,
|
|
284
|
+
dmChannelId,
|
|
285
|
+
};
|
|
286
|
+
const user = new User_1.User(userRaw, clan, this.channelManager);
|
|
287
|
+
clan.users.set(sender_id, user);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
_updateCacheChannel(e) {
|
|
291
|
+
const clan = this.clans.get(e.clan_id);
|
|
292
|
+
if (!clan)
|
|
293
|
+
return;
|
|
294
|
+
const channelObj = new TextChannel_1.TextChannel(Object.assign(Object.assign({}, e), { type: e.channel_type, channel_private: e.channel_private ? 1 : 0 }), clan, this.socketManager, this.messageQueue);
|
|
295
|
+
this.channels.set(e.channel_id, channelObj);
|
|
296
|
+
clan.channels.set(e.channel_id, channelObj);
|
|
297
|
+
this.socketManager.getSocket().joinChat;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
exports.MezonClient = MezonClient;
|
|
301
|
+
//# sourceMappingURL=MezonClient.js.map
|