mezon-sdk 2.7.95 → 2.7.96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/cjs/api.d.ts +2 -0
  2. package/dist/cjs/api.js +55 -1
  3. package/dist/cjs/api.js.map +1 -1
  4. package/dist/cjs/constants/enum.d.ts +5 -2
  5. package/dist/cjs/constants/enum.js +3 -0
  6. package/dist/cjs/constants/enum.js.map +1 -1
  7. package/dist/cjs/mezon-client/client/MezonClient.d.ts +8 -2
  8. package/dist/cjs/mezon-client/client/MezonClient.js +111 -58
  9. package/dist/cjs/mezon-client/client/MezonClient.js.map +1 -1
  10. package/dist/cjs/mezon-client/manager/channel_manager.js +2 -1
  11. package/dist/cjs/mezon-client/manager/channel_manager.js.map +1 -1
  12. package/dist/cjs/mezon-client/manager/socket_manager.d.ts +4 -4
  13. package/dist/cjs/mezon-client/manager/socket_manager.js +16 -17
  14. package/dist/cjs/mezon-client/manager/socket_manager.js.map +1 -1
  15. package/dist/cjs/mezon-client/structures/Clan.d.ts +3 -1
  16. package/dist/cjs/mezon-client/structures/Clan.js +15 -6
  17. package/dist/cjs/mezon-client/structures/Clan.js.map +1 -1
  18. package/dist/cjs/mezon-client/structures/TextChannel.d.ts +3 -1
  19. package/dist/cjs/mezon-client/structures/TextChannel.js +9 -5
  20. package/dist/cjs/mezon-client/structures/TextChannel.js.map +1 -1
  21. package/dist/cjs/mezon-client/structures/User.d.ts +2 -2
  22. package/dist/cjs/mezon-client/structures/User.js +22 -10
  23. package/dist/cjs/mezon-client/structures/User.js.map +1 -1
  24. package/dist/cjs/sqlite/MessageDatabase.d.ts +9 -0
  25. package/dist/cjs/sqlite/MessageDatabase.js +79 -0
  26. package/dist/cjs/sqlite/MessageDatabase.js.map +1 -0
  27. package/dist/cjs/utils/helper.d.ts +3 -2
  28. package/dist/cjs/utils/helper.js +5 -13
  29. package/dist/cjs/utils/helper.js.map +1 -1
  30. package/dist/esm/api.d.ts +2 -0
  31. package/dist/esm/api.js +55 -1
  32. package/dist/esm/api.js.map +1 -1
  33. package/dist/esm/constants/enum.d.ts +5 -2
  34. package/dist/esm/constants/enum.js +3 -0
  35. package/dist/esm/constants/enum.js.map +1 -1
  36. package/dist/esm/mezon-client/client/MezonClient.d.ts +8 -2
  37. package/dist/esm/mezon-client/client/MezonClient.js +111 -57
  38. package/dist/esm/mezon-client/client/MezonClient.js.map +1 -1
  39. package/dist/esm/mezon-client/manager/channel_manager.js +1 -1
  40. package/dist/esm/mezon-client/manager/channel_manager.js.map +1 -1
  41. package/dist/esm/mezon-client/manager/socket_manager.d.ts +4 -4
  42. package/dist/esm/mezon-client/manager/socket_manager.js +17 -19
  43. package/dist/esm/mezon-client/manager/socket_manager.js.map +1 -1
  44. package/dist/esm/mezon-client/structures/Clan.d.ts +3 -1
  45. package/dist/esm/mezon-client/structures/Clan.js +16 -6
  46. package/dist/esm/mezon-client/structures/Clan.js.map +1 -1
  47. package/dist/esm/mezon-client/structures/TextChannel.d.ts +3 -1
  48. package/dist/esm/mezon-client/structures/TextChannel.js +10 -5
  49. package/dist/esm/mezon-client/structures/TextChannel.js.map +1 -1
  50. package/dist/esm/mezon-client/structures/User.d.ts +2 -2
  51. package/dist/esm/mezon-client/structures/User.js +21 -10
  52. package/dist/esm/mezon-client/structures/User.js.map +1 -1
  53. package/dist/esm/sqlite/MessageDatabase.d.ts +9 -0
  54. package/dist/esm/sqlite/MessageDatabase.js +79 -0
  55. package/dist/esm/sqlite/MessageDatabase.js.map +1 -0
  56. package/dist/esm/utils/helper.d.ts +3 -2
  57. package/dist/esm/utils/helper.js +5 -13
  58. package/dist/esm/utils/helper.js.map +1 -1
  59. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +3 -1
@@ -8,25 +8,24 @@ export class SocketManager {
8
8
  port;
9
9
  useSSL;
10
10
  adapter;
11
- sessionManager;
12
11
  apiClient;
13
- apiKey;
14
12
  eventManager;
15
13
  messageQueue;
16
14
  client;
15
+ messageDB;
17
16
  socket;
18
17
  isHardDisconnect;
19
- constructor(host, port, useSSL, adapter, sessionManager, apiClient, apiKey, eventManager, messageQueue, client) {
18
+ isRetrying = false;
19
+ constructor(host, port, useSSL, adapter, apiClient, eventManager, messageQueue, client, messageDB) {
20
20
  this.host = host;
21
21
  this.port = port;
22
22
  this.useSSL = useSSL;
23
23
  this.adapter = adapter;
24
- this.sessionManager = sessionManager;
25
24
  this.apiClient = apiClient;
26
- this.apiKey = apiKey;
27
25
  this.eventManager = eventManager;
28
26
  this.messageQueue = messageQueue;
29
27
  this.client = client;
28
+ this.messageDB = messageDB;
30
29
  this.socket = new DefaultSocket(this.host, this.port, this.useSSL, false, this.adapter);
31
30
  }
32
31
  createSocket() {
@@ -42,7 +41,7 @@ export class SocketManager {
42
41
  return session;
43
42
  }
44
43
  closeSocket() {
45
- this.isHardDisconnect = true;
44
+ // this.isHardDisconnect = true;
46
45
  this.socket.close();
47
46
  console.log("eventManager", this.eventManager);
48
47
  }
@@ -76,7 +75,7 @@ export class SocketManager {
76
75
  const clanObj = new Clan({
77
76
  id: clan.clan_id,
78
77
  name: clan?.clan_name ?? "unknown",
79
- }, this.client, this.apiClient, this, sessionToken, this.messageQueue);
78
+ }, this.client, this.apiClient, this, sessionToken, this.messageQueue, this.messageDB);
80
79
  this.client.clans.set(clan.clan_id, clanObj);
81
80
  }
82
81
  });
@@ -93,28 +92,27 @@ export class SocketManager {
93
92
  }
94
93
  }
95
94
  async retriesConnect() {
95
+ if (this.isRetrying)
96
+ return;
97
+ this.isRetrying = true;
96
98
  let retryInterval = 5000;
97
99
  const maxRetryInterval = 60000;
98
100
  console.log("Reconnecting...");
99
- const interval = setInterval(async () => {
101
+ const retry = async () => {
100
102
  try {
101
- this.createSocket();
102
- const sockSession = await this.sessionManager.authenticate(this.apiKey);
103
- const sessionConnected = await this.connect(sockSession);
104
- if (sessionConnected?.token) {
105
- await this.connectSocket(sessionConnected.token);
106
- }
103
+ const sessionStr = await this.client.login();
104
+ console.log("Reconnected session:", sessionStr);
105
+ this.isRetrying = false;
107
106
  console.log("Connected successfully!");
108
- clearInterval(interval);
109
107
  }
110
108
  catch (e) {
111
- console.log("Connection failed!");
109
+ console.log("Connection failed!", e);
112
110
  retryInterval = Math.min(retryInterval * 2, maxRetryInterval);
113
111
  console.log(`Retrying in ${retryInterval / 1000} seconds...`);
114
- clearInterval(interval);
115
- setTimeout(() => this.retriesConnect(), retryInterval);
112
+ setTimeout(retry, retryInterval);
116
113
  }
117
- }, retryInterval);
114
+ };
115
+ retry();
118
116
  }
119
117
  async writeChatMessage(dataWriteMessage) {
120
118
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/socket_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket_manager.js","sourceRoot":"","sources":["../../../../src/mezon-client/manager/socket_manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { MezonApi } from "../../api";
2
2
  import { ApiRoleListEventResponse, ApiVoiceChannelUserList, MezonUpdateRoleBody } from "../../interfaces";
3
+ import { MessageDatabase } from "../../sqlite/MessageDatabase";
3
4
  import { MezonClient } from "../client/MezonClient";
4
5
  import { SocketManager } from "../manager/socket_manager";
5
6
  import { AsyncThrottleQueue } from "../utils/AsyncThrottleQueue";
@@ -22,7 +23,8 @@ export declare class Clan {
22
23
  private readonly client;
23
24
  private readonly socketManager;
24
25
  private readonly messageQueue;
25
- constructor(initClanData: ClanInitData, client: MezonClient, apiClient: MezonApi, socketManager: SocketManager, sessionToken: string, messageQueue: AsyncThrottleQueue);
26
+ private readonly messageDB;
27
+ constructor(initClanData: ClanInitData, client: MezonClient, apiClient: MezonApi, socketManager: SocketManager, sessionToken: string, messageQueue: AsyncThrottleQueue, messageDB: MessageDatabase);
26
28
  loadChannels(): Promise<void>;
27
29
  listChannelVoiceUsers(channel_id?: string, channel_type?: number, limit?: number, state?: number, cursor?: string): Promise<ApiVoiceChannelUserList>;
28
30
  updateRole(roleId: string, request: MezonUpdateRoleBody): Promise<boolean>;
@@ -1,6 +1,7 @@
1
1
  import { ChannelType } from "../../constants";
2
2
  import { CacheManager } from "../utils/CacheManager";
3
3
  import { TextChannel } from "./TextChannel";
4
+ import { User } from "./User";
4
5
  export class Clan {
5
6
  id;
6
7
  name;
@@ -15,7 +16,8 @@ export class Clan {
15
16
  client;
16
17
  socketManager;
17
18
  messageQueue;
18
- constructor(initClanData, client, apiClient, socketManager, sessionToken, messageQueue) {
19
+ messageDB;
20
+ constructor(initClanData, client, apiClient, socketManager, sessionToken, messageQueue, messageDB) {
19
21
  this.id = initClanData.id;
20
22
  this.name = initClanData.name;
21
23
  this.client = client;
@@ -23,14 +25,22 @@ export class Clan {
23
25
  this.socketManager = socketManager;
24
26
  this.messageQueue = messageQueue;
25
27
  this.sessionToken = sessionToken;
28
+ this.messageDB = messageDB;
26
29
  this.channels = new CacheManager(async (channelId) => {
27
30
  return this.client.channels.fetch(channelId);
28
31
  });
29
32
  this.users = new CacheManager(async (user_id) => {
30
- // TODO: If the channel's user cache is empty,
31
- // and channel.users.fetch(user_id) is called,
32
- // this function will be triggered to fetch the user detail from the API.
33
- throw Error(`User ${user_id} not found in this clan ${this.id}!`);
33
+ const dmChannel = await this.client.createDMchannel(user_id);
34
+ if (!dmChannel || !dmChannel?.channel_id) {
35
+ throw Error(`User ${user_id} not found in this clan ${this.id}!`);
36
+ }
37
+ const userRaw = {
38
+ id: user_id,
39
+ dmChannelId: dmChannel.channel_id,
40
+ };
41
+ const user = new User(userRaw, this, this.messageQueue, this.socketManager);
42
+ this.users.set(user_id, user);
43
+ return user;
34
44
  });
35
45
  }
36
46
  async loadChannels() {
@@ -43,7 +53,7 @@ export class Clan {
43
53
  const validChannels = channels?.channeldesc?.filter((c) => Object.keys(c).length > 0) ??
44
54
  [];
45
55
  for (const channel of validChannels) {
46
- const channelObj = new TextChannel({ ...channel, type: channel?.channel_type || channel?.type }, this, this.socketManager, this.messageQueue);
56
+ const channelObj = new TextChannel({ ...channel, type: channel?.channel_type || channel?.type }, this, this.socketManager, this.messageQueue, this.messageDB);
47
57
  this.channels.set(channel.channel_id, channelObj);
48
58
  this.client.channels.set(channel.channel_id, channelObj);
49
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Clan.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/Clan.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,MAAM,OAAO,IAAI;IACR,EAAE,CAAS;IACX,IAAI,CAAS;IACb,QAAQ,CAAoC;IAC5C,KAAK,CAA6B;IAClC,YAAY,CAAS;IACrB,SAAS,CAAW;IAE3B,4BAA4B;IACpB,eAAe,GAAG,KAAK,CAAC;IAEhC,qCAAqC;IAC7B,eAAe,GAAyB,IAAI,CAAC;IACpC,MAAM,CAAc;IACpB,aAAa,CAAgB;IAC7B,YAAY,CAAqB;IAElD,YACE,YAA0B,EAC1B,MAAmB,EACnB,SAAmB,EACnB,aAA4B,EAC5B,YAAoB,EACpB,YAAgC;QAEhC,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAsB,KAAK,EAAE,SAAS,EAAE,EAAE;YACxE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAe,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5D,8CAA8C;YAC9C,8CAA8C;YAC9C,yEAAyE;YACzE,MAAM,KAAK,CAAC,QAAQ,OAAO,2BAA2B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACjC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QAEtD,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CACpD,IAAI,CAAC,YAAY,EACjB,WAAW,CAAC,oBAAoB,EAChC,IAAI,CAAC,EAAE,CACR,CAAC;YAEF,MAAM,aAAa,GACjB,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;gBACpE,EAAE,CAAC;YACL,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;gBACnC,MAAM,UAAU,GAAG,IAAI,WAAW,CAChC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,IAAI,EAAE,EAC5D,IAAI,EACJ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAClB,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAW,EAAE,UAAU,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,UAAW,EAAE,UAAU,CAAC,CAAC;aAC3D;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,aAAqB,EAAE,EACvB,eAAuB,WAAW,CAAC,wBAAwB,EAC3D,QAAgB,GAAG,EACnB,KAAc,EACd,MAAe;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;QAEvB,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC,SAAS;aAClB,qBAAqB,CACpB,IAAI,CAAC,YAAY,EACjB,MAAM,EACN,UAAU,EACV,YAAY,EACZ,KAAK,EACL,KAAK,EACL,MAAM,CACP;aACA,IAAI,CAAC,CAAC,QAAiC,EAAE,EAAE;YAC1C,IAAI,MAAM,GAA4B;gBACpC,mBAAmB,EAAE,EAAE;aACxB,CAAC;YAEF,IAAI,QAAQ,CAAC,mBAAmB,IAAI,IAAI,EAAE;gBACxC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAChC;YAED,QAAQ,CAAC,mBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC3C,MAAM,CAAC,mBAAoB,CAAC,IAAI,CAAC;oBAC/B,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,WAAW,EAAE,EAAE,CAAC,WAAW;iBAC5B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAc,EACd,OAA4B;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAAc,EACd,KAAc,EACd,MAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAC7B,OAAO,EACP,IAAI,CAAC,EAAE,EACP,KAAK,EACL,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"Clan.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/Clan.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ApiChannelDescription, ApiMessageAttachment, ApiMessageMention, ChannelMessageContent } from "../../interfaces";
2
+ import { MessageDatabase } from "../../sqlite/MessageDatabase";
2
3
  import { SocketManager } from "../manager/socket_manager";
3
4
  import { AsyncThrottleQueue } from "../utils/AsyncThrottleQueue";
4
5
  import { CacheManager } from "../utils/CacheManager";
@@ -16,6 +17,7 @@ export declare class TextChannel {
16
17
  messages: CacheManager<string, Message>;
17
18
  private readonly socketManager;
18
19
  private readonly messageQueue;
19
- constructor(initChannelData: ApiChannelDescription, clan: Clan, socketManager: SocketManager, messageQueue: AsyncThrottleQueue);
20
+ private messageDB;
21
+ constructor(initChannelData: ApiChannelDescription, clan: Clan, socketManager: SocketManager, messageQueue: AsyncThrottleQueue, messageDB: MessageDatabase);
20
22
  send(content: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, mention_everyone?: boolean, anonymous_message?: boolean, topic_id?: string, code?: number): Promise<import("../../interfaces").ChannelMessageAck>;
21
23
  }
@@ -1,5 +1,6 @@
1
1
  import { convertChanneltypeToChannelMode } from "../../utils/helper";
2
2
  import { CacheManager } from "../utils/CacheManager";
3
+ import { Message } from "./Message";
3
4
  export class TextChannel {
4
5
  id;
5
6
  name;
@@ -12,7 +13,8 @@ export class TextChannel {
12
13
  messages;
13
14
  socketManager;
14
15
  messageQueue;
15
- constructor(initChannelData, clan, socketManager, messageQueue) {
16
+ messageDB;
17
+ constructor(initChannelData, clan, socketManager, messageQueue, messageDB) {
16
18
  this.id = initChannelData.channel_id;
17
19
  this.name = initChannelData.channel_label;
18
20
  this.channel_type = initChannelData?.type;
@@ -22,13 +24,16 @@ export class TextChannel {
22
24
  this.parent_id = initChannelData?.parent_id ?? "";
23
25
  this.clan = clan;
24
26
  this.messages = new CacheManager(async (message_id) => {
25
- // TODO: If the channel's message cache is empty,
26
- // and channel.messages.fetch(message_id) is called,
27
- // this function will be triggered to fetch the message detail from the API.
28
- throw Error(`Message ${message_id} not found on channel ${this.id}!`);
27
+ const messageDb = this.messageDB.getMessageById(message_id, this.id);
28
+ if (!messageDb) {
29
+ throw Error(`Message ${message_id} not found on channel ${this.id}!`);
30
+ }
31
+ const newMessage = new Message(messageDb, this, this.socketManager, this.messageQueue);
32
+ return newMessage;
29
33
  }, 200);
30
34
  this.socketManager = socketManager;
31
35
  this.messageQueue = messageQueue;
36
+ this.messageDB = messageDB;
32
37
  }
33
38
  async send(content, mentions, attachments, mention_everyone, anonymous_message, topic_id, code) {
34
39
  return this.messageQueue.enqueue(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"TextChannel.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/TextChannel.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,MAAM,OAAO,WAAW;IACf,EAAE,CAAqB;IACvB,IAAI,CAAqB;IACzB,UAAU,CAAU;IACpB,YAAY,CAAqB;IACjC,WAAW,CAAqB;IAChC,aAAa,CAAqB;IAClC,SAAS,CAAqB;IAE9B,IAAI,CAAO;IACX,QAAQ,CAAgC;IAE9B,aAAa,CAAgB;IAC7B,YAAY,CAAqB;IAElD,YACE,eAAsC,EACtC,IAAU,EACV,aAA4B,EAC5B,YAAgC;QAEhC,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,eAAe,EAAE,IAAI,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,WAAW,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,eAAe,EAAE,aAAa,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAkB,KAAK,EAAE,UAAU,EAAE,EAAE;YACrE,iDAAiD;YACjD,oDAAoD;YACpD,4EAA4E;YAC5E,MAAM,KAAK,CAAC,WAAW,UAAU,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAA8B,EAC9B,QAAmC,EACnC,WAAyC,EACzC,gBAA0B,EAC1B,iBAA2B,EAC3B,QAAiB,EACjB,IAAa;QAEb,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,QAAQ,GAAqB;gBACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrB,UAAU,EAAE,IAAI,CAAC,EAAG;gBACpB,IAAI,EAAE,+BAA+B,CAAC,IAAI,CAAC,YAAa,CAAC;gBACzD,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU;gBAC3B,OAAO;gBACP,QAAQ;gBACR,WAAW;gBACX,iBAAiB;gBACjB,gBAAgB;gBAChB,IAAI;gBACJ,QAAQ;aACT,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"TextChannel.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/TextChannel.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,WAAW;IACf,EAAE,CAAqB;IACvB,IAAI,CAAqB;IACzB,UAAU,CAAU;IACpB,YAAY,CAAqB;IACjC,WAAW,CAAqB;IAChC,aAAa,CAAqB;IAClC,SAAS,CAAqB;IAE9B,IAAI,CAAO;IACX,QAAQ,CAAgC;IAE9B,aAAa,CAAgB;IAC7B,YAAY,CAAqB;IAC1C,SAAS,CAAkB;IAEnC,YACE,eAAsC,EACtC,IAAU,EACV,aAA4B,EAC5B,YAAgC,EAChC,SAA0B;QAE1B,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,eAAe,EAAE,IAAI,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC;QACrD,IAAI,CAAC,WAAW,GAAG,eAAe,EAAE,WAAW,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,eAAe,EAAE,aAAa,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,SAAS,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAkB,KAAK,EAAE,UAAU,EAAE,EAAE;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,EAAG,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,KAAK,CAAC,WAAW,UAAU,yBAAyB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;aACvE;YACD,MAAM,UAAU,GAAG,IAAI,OAAO,CAC5B,SAAS,EACT,IAAI,EACJ,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,CAClB,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAA8B,EAC9B,QAAmC,EACnC,WAAyC,EACzC,gBAA0B,EAC1B,iBAA2B,EAC3B,QAAiB,EACjB,IAAa;QAEb,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,QAAQ,GAAqB;gBACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrB,UAAU,EAAE,IAAI,CAAC,EAAG;gBACpB,IAAI,EAAE,+BAA+B,CAAC,IAAI,CAAC,YAAa,CAAC;gBACzD,SAAS,EAAE,CAAC,IAAI,CAAC,UAAU;gBAC3B,OAAO;gBACP,QAAQ;gBACR,WAAW;gBACX,iBAAiB;gBACjB,gBAAgB;gBAChB,IAAI;gBACJ,QAAQ;aACT,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -24,8 +24,8 @@ export declare class User {
24
24
  private readonly channelManager;
25
25
  private readonly messageQueue;
26
26
  private readonly socketManager;
27
- constructor(initUserData: UserInitData, clan: Clan, channelManager: ChannelManager, messageQueue: AsyncThrottleQueue, socketManager: SocketManager);
27
+ constructor(initUserData: UserInitData, clan: Clan, messageQueue: AsyncThrottleQueue, socketManager: SocketManager, channelManager?: ChannelManager);
28
28
  sendToken(sendTokenData: SendTokenData): Promise<any>;
29
29
  sendDM(content: ChannelMessageContent, code?: number): Promise<import("../../interfaces").ChannelMessageAck>;
30
- createDmChannel(): Promise<import("../../interfaces").ApiChannelDescription>;
30
+ createDmChannel(): Promise<import("../../interfaces").ApiChannelDescription | null>;
31
31
  }
@@ -11,14 +11,14 @@ export class User {
11
11
  channelManager;
12
12
  messageQueue;
13
13
  socketManager;
14
- constructor(initUserData, clan, channelManager, messageQueue, socketManager) {
14
+ constructor(initUserData, clan, messageQueue, socketManager, channelManager) {
15
15
  this.id = initUserData.id;
16
- this.avartar = initUserData.avartar ?? '';
17
- this.dmChannelId = initUserData?.dmChannelId ?? '';
18
- this.username = initUserData?.username ?? '';
19
- this.clan_nick = initUserData?.clan_nick ?? '';
20
- this.clan_avatar = initUserData?.clan_avatar ?? '';
21
- this.display_name = initUserData?.display_name ?? '';
16
+ this.avartar = initUserData.avartar ?? "";
17
+ this.dmChannelId = initUserData?.dmChannelId ?? "";
18
+ this.username = initUserData?.username ?? "";
19
+ this.clan_nick = initUserData?.clan_nick ?? "";
20
+ this.clan_avatar = initUserData?.clan_avatar ?? "";
21
+ this.display_name = initUserData?.display_name ?? "";
22
22
  this.clan = clan;
23
23
  this.channelManager = channelManager;
24
24
  this.messageQueue = messageQueue;
@@ -31,7 +31,12 @@ export class User {
31
31
  note: sendTokenData?.note ?? "",
32
32
  extra_attribute: sendTokenData?.extra_attribute ?? "",
33
33
  };
34
- return this.clan.apiClient.sendToken(this.clan.sessionToken, dataSendToken);
34
+ try {
35
+ return this.clan.apiClient.sendToken(this.clan.sessionToken, dataSendToken);
36
+ }
37
+ catch (error) {
38
+ console.log("Error sendToken");
39
+ }
35
40
  }
36
41
  async sendDM(content, code) {
37
42
  return this.messageQueue.enqueue(async () => {
@@ -53,8 +58,14 @@ export class User {
53
58
  });
54
59
  }
55
60
  async createDmChannel() {
56
- const dmChannel = await this.channelManager.createDMchannel(this.id);
57
- return dmChannel ?? {};
61
+ try {
62
+ const dmChannel = await this.channelManager?.createDMchannel(this.id);
63
+ return dmChannel ?? {};
64
+ }
65
+ catch (error) {
66
+ console.log("Error createDmChannel User");
67
+ return null;
68
+ }
58
69
  }
59
70
  }
60
71
  //# sourceMappingURL=User.js.map
@@ -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;AAoBpD,MAAM,OAAO,IAAI;IACR,EAAE,CAAS;IACX,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,OAAO,CAAS;IAChB,WAAW,CAAS;IACnB,IAAI,CAAO;IACF,cAAc,CAAiB;IAC/B,YAAY,CAAqB;IACjC,aAAa,CAAgB;IAE9C,YACE,YAA0B,EAC1B,IAAU,EACV,cAA8B,EAC9B,YAAgC,EAChC,aAA4B;QAE5B,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,YAAY,EAAE,WAAW,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,SAAS,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,YAAY,EAAE,WAAW,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,YAAY,EAAE,YAAY,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,aAA4B;QAC1C,MAAM,aAAa,GAAmB;YACpC,WAAW,EAAE,IAAI,CAAC,EAAE;YACpB,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,IAAI,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE;YAC/B,eAAe,EAAE,aAAa,EAAE,eAAe,IAAI,EAAE;SACtD,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA8B,EAAE,IAAa;QACxD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/C,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,UAAU,IAAI,EAAE,CAAC;aAChD;YACD,IAAI,CAAC,IAAI,CAAC,WAAW;gBACnB,MAAM,KAAK,CAAC,yCAAyC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,IAAI,CAAC,WAAW;gBAC5B,IAAI,EAAE,iBAAiB,CAAC,cAAc;gBACtC,SAAS,EAAE,KAAK;gBAChB,OAAO;gBACP,IAAI;aACL,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO,SAAS,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"User.js","sourceRoot":"","sources":["../../../../src/mezon-client/structures/User.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ChannelMessage } from "../interfaces";
2
+ export declare class MessageDatabase {
3
+ private db;
4
+ constructor(dbPath?: string);
5
+ private ensureGitIgnore;
6
+ private init;
7
+ saveMessage(message: ChannelMessage): void;
8
+ getMessageById(messageId: string, channelId: string): any;
9
+ }
@@ -0,0 +1,79 @@
1
+ import Database from "better-sqlite3";
2
+ import fs from "fs";
3
+ import path from "path";
4
+ export class MessageDatabase {
5
+ db;
6
+ constructor(dbPath = "./mezon-cache/mezon-messages-cache.db") {
7
+ const dir = path.dirname(dbPath);
8
+ if (!fs.existsSync(dir)) {
9
+ fs.mkdirSync(dir, { recursive: true });
10
+ }
11
+ this.ensureGitIgnore(dbPath);
12
+ this.db = new Database(dbPath);
13
+ this.init();
14
+ }
15
+ ensureGitIgnore(dbPath) {
16
+ const gitignorePath = path.resolve(".gitignore");
17
+ const dirName = path.dirname(dbPath);
18
+ let relativeDir = dirName.replace(/\\/g, "/");
19
+ if (relativeDir.startsWith("./")) {
20
+ relativeDir = relativeDir.slice(2);
21
+ }
22
+ try {
23
+ let gitignoreContent = "";
24
+ if (fs.existsSync(gitignorePath)) {
25
+ gitignoreContent = fs.readFileSync(gitignorePath, "utf-8");
26
+ }
27
+ if (!gitignoreContent.includes(relativeDir)) {
28
+ fs.appendFileSync(gitignorePath, `\n# Mezon cache\n/${relativeDir}`);
29
+ console.log(`[mezon] Added "${relativeDir}" to .gitignore`);
30
+ }
31
+ }
32
+ catch (err) {
33
+ console.warn("[mezon] Could not modify .gitignore:", err);
34
+ }
35
+ }
36
+ init() {
37
+ this.db
38
+ .prepare(`CREATE TABLE IF NOT EXISTS messages (
39
+ id TEXT PRIMARY KEY,
40
+ clan_id TEXT,
41
+ channel_id TEXT,
42
+ sender_id TEXT,
43
+ content TEXT,
44
+ mentions TEXT,
45
+ attachments TEXT,
46
+ reactions TEXT,
47
+ msg_references TEXT,
48
+ topic_id TEXT,
49
+ create_time_seconds INTEGER
50
+ )`)
51
+ .run();
52
+ this.db
53
+ .prepare(`CREATE INDEX IF NOT EXISTS idx_channel_id_id ON messages(channel_id, id)`)
54
+ .run();
55
+ }
56
+ saveMessage(message) {
57
+ const stmt = this.db.prepare(`INSERT OR REPLACE INTO messages (
58
+ id, clan_id, channel_id, sender_id,
59
+ content, mentions, attachments, reactions,
60
+ msg_references, topic_id, create_time_seconds
61
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
62
+ stmt.run(message.message_id, message.clan_id, message.channel_id, message.sender_id, JSON.stringify(message.content ?? {}), JSON.stringify(message.mentions ?? []), JSON.stringify(message.attachments ?? []), JSON.stringify(message.reactions ?? []), JSON.stringify(message.references ?? []), message.topic_id ?? null, message.create_time_seconds ?? null);
63
+ }
64
+ getMessageById(messageId, channelId) {
65
+ const stmt = this.db.prepare(`SELECT * FROM messages WHERE channel_id = ? AND id = ? LIMIT 1`);
66
+ const row = stmt.get(channelId, messageId);
67
+ if (!row)
68
+ return null;
69
+ return {
70
+ ...row,
71
+ content: JSON.parse(row.content),
72
+ mentions: JSON.parse(row.mentions),
73
+ attachments: JSON.parse(row.attachments),
74
+ reactions: JSON.parse(row.reactions),
75
+ references: JSON.parse(row.msg_references),
76
+ };
77
+ }
78
+ }
79
+ //# sourceMappingURL=MessageDatabase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageDatabase.js","sourceRoot":"","sources":["../../../src/sqlite/MessageDatabase.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,OAAO,eAAe;IAClB,EAAE,CAAC;IAEX,YAAY,MAAM,GAAG,uCAAuC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACvB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SACxC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAChC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpC;QAED,IAAI;YACF,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBAChC,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;aAC5D;YAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC3C,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,qBAAqB,WAAW,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,iBAAiB,CAAC,CAAC;aAC7D;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;SAC3D;IACH,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;QAYA,CACD;aACA,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,0EAA0E,CAC3E;aACA,GAAG,EAAE,CAAC;IACX,CAAC;IAED,WAAW,CAAC,OAAuB;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B;;;;iDAI2C,CAC5C,CAAC;QAEF,IAAI,CAAC,GAAG,CACN,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,EACzC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EACxC,OAAO,CAAC,QAAQ,IAAI,IAAI,EACxB,OAAO,CAAC,mBAAmB,IAAI,IAAI,CACpC,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,SAAiB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,gEAAgE,CACjE,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAQ,CAAC;QAElD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,OAAO;YACL,GAAG,GAAG;YACN,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;YAChC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;SAC3C,CAAC;IACJ,CAAC;CACF"}
@@ -1,9 +1,10 @@
1
1
  import { ChannelStreamMode, InternalEventsSocket } from "../constants";
2
2
  export declare function convertInternalEventToEvents(input: InternalEventsSocket): string;
3
- export declare function convertChanneltypeToChannelMode(channelType: string | number): ChannelStreamMode.STREAM_MODE_CHANNEL | ChannelStreamMode.STREAM_MODE_GROUP | ChannelStreamMode.STREAM_MODE_DM | ChannelStreamMode.STREAM_MODE_THREAD | 0;
3
+ export declare function convertChanneltypeToChannelMode(channelType: string | number): 0 | ChannelStreamMode.STREAM_MODE_CHANNEL | ChannelStreamMode.STREAM_MODE_GROUP | ChannelStreamMode.STREAM_MODE_DM | ChannelStreamMode.STREAM_MODE_THREAD;
4
4
  export declare function isValidUserId(userId: string | number): boolean;
5
5
  export declare function sleep(ms: number): Promise<unknown>;
6
- export declare function parseUrlToHostAndSSL(url: string): {
6
+ export declare function parseUrlToHostAndSSL(urlStr: string): {
7
7
  host: string;
8
+ port: string;
8
9
  useSSL: boolean;
9
10
  };
@@ -25,20 +25,12 @@ export function isValidUserId(userId) {
25
25
  export function sleep(ms) {
26
26
  return new Promise((resolve) => setTimeout(resolve, ms));
27
27
  }
28
- export function parseUrlToHostAndSSL(url) {
29
- const trimmedUrl = url.trim();
30
- const isHttps = trimmedUrl.startsWith("https://");
31
- const isHttp = trimmedUrl.startsWith("http://");
32
- if (isHttps || isHttp) {
33
- const withoutScheme = trimmedUrl.replace(/^https?:\/\//, "");
34
- return {
35
- host: withoutScheme.replace(/\/$/, ""),
36
- useSSL: isHttps,
37
- };
38
- }
28
+ export function parseUrlToHostAndSSL(urlStr) {
29
+ const url = new URL(urlStr);
39
30
  return {
40
- host: trimmedUrl.replace(/\/$/, ""),
41
- useSSL: false,
31
+ host: url.hostname,
32
+ port: url.port || (url.protocol === "https:" ? "443" : "80"),
33
+ useSSL: url.protocol === "https:",
42
34
  };
43
35
  }
44
36
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,GAEZ,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,4BAA4B,CAC1C,KAA2B;IAE3B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAA4B;IAC1E,QAAQ,MAAM,CAAC,WAAW,CAAC,EAAE;QAC3B,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,iBAAiB,CAAC,cAAc,CAAC;QAC1C,KAAK,WAAW,CAAC,kBAAkB;YACjC,OAAO,iBAAiB,CAAC,iBAAiB,CAAC;QAC7C,KAAK,WAAW,CAAC,oBAAoB;YACnC,OAAO,iBAAiB,CAAC,mBAAmB,CAAC;QAC/C,KAAK,WAAW,CAAC,mBAAmB;YAClC,OAAO,iBAAiB,CAAC,kBAAkB,CAAC;KAC/C;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEhC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAEhD,IAAI,OAAO,IAAI,MAAM,EAAE;QACrB,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACtC,MAAM,EAAE,OAAO;SAChB,CAAC;KACH;IAED,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,KAAK;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,WAAW,GAEZ,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,4BAA4B,CAC1C,KAA2B;IAE3B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,WAA4B;IAC1E,QAAQ,MAAM,CAAC,WAAW,CAAC,EAAE;QAC3B,KAAK,WAAW,CAAC,eAAe;YAC9B,OAAO,iBAAiB,CAAC,cAAc,CAAC;QAC1C,KAAK,WAAW,CAAC,kBAAkB;YACjC,OAAO,iBAAiB,CAAC,iBAAiB,CAAC;QAC7C,KAAK,WAAW,CAAC,oBAAoB;YACnC,OAAO,iBAAiB,CAAC,mBAAmB,CAAC;QAC/C,KAAK,WAAW,CAAC,mBAAmB;YAClC,OAAO,iBAAiB,CAAC,kBAAkB,CAAC;KAC/C;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB;IACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEhC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAKjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,QAAQ;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,QAAQ;KAClC,CAAC;AACJ,CAAC"}