mezon-sdk 2.8.45 → 2.8.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +192 -192
  2. package/dist/cjs/api/api.d.ts.map +1 -0
  3. package/dist/cjs/api.d.ts.map +1 -0
  4. package/dist/cjs/constants/enum.d.ts.map +1 -0
  5. package/dist/cjs/constants/index.d.ts.map +1 -0
  6. package/dist/cjs/google/protobuf/struct.d.ts.map +1 -0
  7. package/dist/cjs/google/protobuf/timestamp.d.ts.map +1 -0
  8. package/dist/cjs/google/protobuf/wrappers.d.ts.map +1 -0
  9. package/dist/cjs/index.d.ts.map +1 -0
  10. package/dist/cjs/interfaces/api.d.ts.map +1 -0
  11. package/dist/cjs/interfaces/client.d.ts.map +1 -0
  12. package/dist/cjs/interfaces/index.d.ts.map +1 -0
  13. package/dist/cjs/interfaces/socket.d.ts.map +1 -0
  14. package/dist/cjs/message-socket-events/base_event.d.ts.map +1 -0
  15. package/dist/cjs/message-socket-events/index.d.ts.map +1 -0
  16. package/dist/cjs/message-socket-events/user_channel_added.d.ts.map +1 -0
  17. package/dist/cjs/message-socket-events/user_channel_updated.d.ts.map +1 -0
  18. package/dist/cjs/mezon-client/client/MezonClient.d.ts.map +1 -0
  19. package/dist/cjs/mezon-client/client/MezonClientCore.d.ts +1 -1
  20. package/dist/cjs/mezon-client/client/MezonClientCore.d.ts.map +1 -0
  21. package/dist/cjs/mezon-client/client/MezonClientCore.js +1 -2
  22. package/dist/cjs/mezon-client/client/MezonClientCore.js.map +1 -1
  23. package/dist/cjs/mezon-client/manager/channel_manager.d.ts.map +1 -0
  24. package/dist/cjs/mezon-client/manager/event_manager.d.ts.map +1 -0
  25. package/dist/cjs/mezon-client/manager/rate-limit_manager.d.ts.map +1 -0
  26. package/dist/cjs/mezon-client/manager/session_manager.d.ts.map +1 -0
  27. package/dist/cjs/mezon-client/manager/socket_manager.d.ts.map +1 -0
  28. package/dist/cjs/mezon-client/structures/ButtonBuilder.d.ts.map +1 -0
  29. package/dist/cjs/mezon-client/structures/Clan.d.ts.map +1 -0
  30. package/dist/cjs/mezon-client/structures/InteractiveMessage.d.ts.map +1 -0
  31. package/dist/cjs/mezon-client/structures/Message.d.ts.map +1 -0
  32. package/dist/cjs/mezon-client/structures/TextChannel.d.ts.map +1 -0
  33. package/dist/cjs/mezon-client/structures/User.d.ts.map +1 -0
  34. package/dist/cjs/mezon-client/utils/AsyncThrottleQueue.d.ts.map +1 -0
  35. package/dist/cjs/mezon-client/utils/CacheManager.d.ts.map +1 -0
  36. package/dist/cjs/mezon-client/utils/Collection.d.ts.map +1 -0
  37. package/dist/cjs/mezon-client/utils/helper.d.ts.map +1 -0
  38. package/dist/cjs/rtapi/realtime.d.ts.map +1 -0
  39. package/dist/cjs/session.d.ts.map +1 -0
  40. package/dist/cjs/socket.d.ts.map +1 -0
  41. package/dist/cjs/sqlite/MessageDatabase.d.ts.map +1 -0
  42. package/dist/cjs/sqlite/MessageDatabase.js +20 -20
  43. package/dist/cjs/utils/format_message_input.d.ts.map +1 -0
  44. package/dist/cjs/utils/generate_reply_message.d.ts.map +1 -0
  45. package/dist/cjs/utils/helper.d.ts.map +1 -0
  46. package/dist/cjs/utils/stack.d.ts.map +1 -0
  47. package/dist/cjs/utils.d.ts.map +1 -0
  48. package/dist/cjs/web_socket_adapter.d.ts.map +1 -0
  49. package/dist/cjs/web_socket_adapter_pb.d.ts.map +1 -0
  50. package/dist/esm/api/api.d.ts.map +1 -0
  51. package/dist/esm/api.d.ts.map +1 -0
  52. package/dist/esm/constants/enum.d.ts.map +1 -0
  53. package/dist/esm/constants/index.d.ts.map +1 -0
  54. package/dist/esm/google/protobuf/struct.d.ts.map +1 -0
  55. package/dist/esm/google/protobuf/timestamp.d.ts.map +1 -0
  56. package/dist/esm/google/protobuf/wrappers.d.ts.map +1 -0
  57. package/dist/esm/index.d.ts.map +1 -0
  58. package/dist/esm/interfaces/api.d.ts.map +1 -0
  59. package/dist/esm/interfaces/client.d.ts.map +1 -0
  60. package/dist/esm/interfaces/index.d.ts.map +1 -0
  61. package/dist/esm/interfaces/socket.d.ts.map +1 -0
  62. package/dist/esm/message-socket-events/base_event.d.ts.map +1 -0
  63. package/dist/esm/message-socket-events/index.d.ts.map +1 -0
  64. package/dist/esm/message-socket-events/user_channel_added.d.ts.map +1 -0
  65. package/dist/esm/message-socket-events/user_channel_updated.d.ts.map +1 -0
  66. package/dist/esm/mezon-client/client/MezonClient.d.ts.map +1 -0
  67. package/dist/esm/mezon-client/client/MezonClientCore.d.ts +1 -1
  68. package/dist/esm/mezon-client/client/MezonClientCore.d.ts.map +1 -0
  69. package/dist/esm/mezon-client/client/MezonClientCore.js +1 -2
  70. package/dist/esm/mezon-client/client/MezonClientCore.js.map +1 -1
  71. package/dist/esm/mezon-client/manager/channel_manager.d.ts.map +1 -0
  72. package/dist/esm/mezon-client/manager/event_manager.d.ts.map +1 -0
  73. package/dist/esm/mezon-client/manager/rate-limit_manager.d.ts.map +1 -0
  74. package/dist/esm/mezon-client/manager/session_manager.d.ts.map +1 -0
  75. package/dist/esm/mezon-client/manager/socket_manager.d.ts.map +1 -0
  76. package/dist/esm/mezon-client/structures/ButtonBuilder.d.ts.map +1 -0
  77. package/dist/esm/mezon-client/structures/Clan.d.ts.map +1 -0
  78. package/dist/esm/mezon-client/structures/InteractiveMessage.d.ts.map +1 -0
  79. package/dist/esm/mezon-client/structures/Message.d.ts.map +1 -0
  80. package/dist/esm/mezon-client/structures/TextChannel.d.ts.map +1 -0
  81. package/dist/esm/mezon-client/structures/User.d.ts.map +1 -0
  82. package/dist/esm/mezon-client/utils/AsyncThrottleQueue.d.ts.map +1 -0
  83. package/dist/esm/mezon-client/utils/CacheManager.d.ts.map +1 -0
  84. package/dist/esm/mezon-client/utils/Collection.d.ts.map +1 -0
  85. package/dist/esm/mezon-client/utils/helper.d.ts.map +1 -0
  86. package/dist/esm/rtapi/realtime.d.ts.map +1 -0
  87. package/dist/esm/session.d.ts.map +1 -0
  88. package/dist/esm/socket.d.ts.map +1 -0
  89. package/dist/esm/sqlite/MessageDatabase.d.ts.map +1 -0
  90. package/dist/esm/sqlite/MessageDatabase.js +20 -20
  91. package/dist/esm/utils/format_message_input.d.ts.map +1 -0
  92. package/dist/esm/utils/generate_reply_message.d.ts.map +1 -0
  93. package/dist/esm/utils/helper.d.ts.map +1 -0
  94. package/dist/esm/utils/stack.d.ts.map +1 -0
  95. package/dist/esm/utils.d.ts.map +1 -0
  96. package/dist/esm/web_socket_adapter.d.ts.map +1 -0
  97. package/dist/esm/web_socket_adapter_pb.d.ts.map +1 -0
  98. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/package.json +59 -59
  101. package/dist/cjs/client.d.ts +0 -86
  102. package/dist/cjs/client.js +0 -348
  103. package/dist/cjs/client.js.map +0 -1
  104. package/dist/cjs/mezon-client/channel_manager.d.ts +0 -15
  105. package/dist/cjs/mezon-client/channel_manager.js +0 -70
  106. package/dist/cjs/mezon-client/channel_manager.js.map +0 -1
  107. package/dist/cjs/mezon-client/event_manager.d.ts +0 -7
  108. package/dist/cjs/mezon-client/event_manager.js +0 -37
  109. package/dist/cjs/mezon-client/event_manager.js.map +0 -1
  110. package/dist/cjs/mezon-client/message_manager.d.ts +0 -16
  111. package/dist/cjs/mezon-client/message_manager.js +0 -59
  112. package/dist/cjs/mezon-client/message_manager.js.map +0 -1
  113. package/dist/cjs/mezon-client/mezon_client.d.ts +0 -37
  114. package/dist/cjs/mezon-client/mezon_client.js +0 -87
  115. package/dist/cjs/mezon-client/mezon_client.js.map +0 -1
  116. package/dist/cjs/mezon-client/session_manager.d.ts +0 -10
  117. package/dist/cjs/mezon-client/session_manager.js +0 -35
  118. package/dist/cjs/mezon-client/session_manager.js.map +0 -1
  119. package/dist/cjs/mezon-client/socket_manager.d.ts +0 -31
  120. package/dist/cjs/mezon-client/socket_manager.js +0 -99
  121. package/dist/cjs/mezon-client/socket_manager.js.map +0 -1
  122. package/dist/cjs/mezon-client-v1/channel_manager.d.ts +0 -15
  123. package/dist/cjs/mezon-client-v1/channel_manager.js +0 -70
  124. package/dist/cjs/mezon-client-v1/channel_manager.js.map +0 -1
  125. package/dist/cjs/mezon-client-v1/event_manager.d.ts +0 -7
  126. package/dist/cjs/mezon-client-v1/event_manager.js +0 -37
  127. package/dist/cjs/mezon-client-v1/event_manager.js.map +0 -1
  128. package/dist/cjs/mezon-client-v1/message_manager.d.ts +0 -16
  129. package/dist/cjs/mezon-client-v1/message_manager.js +0 -59
  130. package/dist/cjs/mezon-client-v1/message_manager.js.map +0 -1
  131. package/dist/cjs/mezon-client-v1/mezon_client.d.ts +0 -37
  132. package/dist/cjs/mezon-client-v1/mezon_client.js +0 -87
  133. package/dist/cjs/mezon-client-v1/mezon_client.js.map +0 -1
  134. package/dist/cjs/mezon-client-v1/session_manager.d.ts +0 -10
  135. package/dist/cjs/mezon-client-v1/session_manager.js +0 -35
  136. package/dist/cjs/mezon-client-v1/session_manager.js.map +0 -1
  137. package/dist/cjs/mezon-client-v1/socket_manager.d.ts +0 -31
  138. package/dist/cjs/mezon-client-v1/socket_manager.js +0 -99
  139. package/dist/cjs/mezon-client-v1/socket_manager.js.map +0 -1
  140. package/dist/cjs/mezon-client-v2/client/MezonClient.d.ts +0 -74
  141. package/dist/cjs/mezon-client-v2/client/MezonClient.js +0 -301
  142. package/dist/cjs/mezon-client-v2/client/MezonClient.js.map +0 -1
  143. package/dist/cjs/mezon-client-v2/manager/channel_manager.d.ts +0 -16
  144. package/dist/cjs/mezon-client-v2/manager/channel_manager.js +0 -60
  145. package/dist/cjs/mezon-client-v2/manager/channel_manager.js.map +0 -1
  146. package/dist/cjs/mezon-client-v2/manager/event_manager.d.ts +0 -7
  147. package/dist/cjs/mezon-client-v2/manager/event_manager.js +0 -37
  148. package/dist/cjs/mezon-client-v2/manager/event_manager.js.map +0 -1
  149. package/dist/cjs/mezon-client-v2/manager/session_manager.d.ts +0 -10
  150. package/dist/cjs/mezon-client-v2/manager/session_manager.js +0 -35
  151. package/dist/cjs/mezon-client-v2/manager/session_manager.js.map +0 -1
  152. package/dist/cjs/mezon-client-v2/manager/socket_manager.d.ts +0 -40
  153. package/dist/cjs/mezon-client-v2/manager/socket_manager.js +0 -154
  154. package/dist/cjs/mezon-client-v2/manager/socket_manager.js.map +0 -1
  155. package/dist/cjs/mezon-client-v2/structures/Clan.d.ts +0 -29
  156. package/dist/cjs/mezon-client-v2/structures/Clan.js +0 -77
  157. package/dist/cjs/mezon-client-v2/structures/Clan.js.map +0 -1
  158. package/dist/cjs/mezon-client-v2/structures/Message.d.ts +0 -34
  159. package/dist/cjs/mezon-client-v2/structures/Message.js +0 -90
  160. package/dist/cjs/mezon-client-v2/structures/Message.js.map +0 -1
  161. package/dist/cjs/mezon-client-v2/structures/TextChannel.d.ts +0 -22
  162. package/dist/cjs/mezon-client-v2/structures/TextChannel.js +0 -65
  163. package/dist/cjs/mezon-client-v2/structures/TextChannel.js.map +0 -1
  164. package/dist/cjs/mezon-client-v2/structures/User.d.ts +0 -26
  165. package/dist/cjs/mezon-client-v2/structures/User.js +0 -32
  166. package/dist/cjs/mezon-client-v2/structures/User.js.map +0 -1
  167. package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.d.ts +0 -8
  168. package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.js +0 -40
  169. package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.js.map +0 -1
  170. package/dist/cjs/mezon-client-v2/utils/CacheManager.d.ts +0 -16
  171. package/dist/cjs/mezon-client-v2/utils/CacheManager.js +0 -53
  172. package/dist/cjs/mezon-client-v2/utils/CacheManager.js.map +0 -1
  173. package/dist/cjs/mezon-client-v2/utils/Collection.d.ts +0 -23
  174. package/dist/cjs/mezon-client-v2/utils/Collection.js +0 -100
  175. package/dist/cjs/mezon-client-v2/utils/Collection.js.map +0 -1
  176. package/dist/esm/client.d.ts +0 -86
  177. package/dist/esm/client.js +0 -356
  178. package/dist/esm/client.js.map +0 -1
  179. package/dist/esm/mezon-client/channel_manager.d.ts +0 -15
  180. package/dist/esm/mezon-client/channel_manager.js +0 -69
  181. package/dist/esm/mezon-client/channel_manager.js.map +0 -1
  182. package/dist/esm/mezon-client/event_manager.d.ts +0 -7
  183. package/dist/esm/mezon-client/event_manager.js +0 -31
  184. package/dist/esm/mezon-client/event_manager.js.map +0 -1
  185. package/dist/esm/mezon-client/message_manager.d.ts +0 -16
  186. package/dist/esm/mezon-client/message_manager.js +0 -56
  187. package/dist/esm/mezon-client/message_manager.js.map +0 -1
  188. package/dist/esm/mezon-client/mezon_client.d.ts +0 -37
  189. package/dist/esm/mezon-client/mezon_client.js +0 -94
  190. package/dist/esm/mezon-client/mezon_client.js.map +0 -1
  191. package/dist/esm/mezon-client/session_manager.d.ts +0 -10
  192. package/dist/esm/mezon-client/session_manager.js +0 -33
  193. package/dist/esm/mezon-client/session_manager.js.map +0 -1
  194. package/dist/esm/mezon-client/socket_manager.d.ts +0 -31
  195. package/dist/esm/mezon-client/socket_manager.js +0 -104
  196. package/dist/esm/mezon-client/socket_manager.js.map +0 -1
  197. package/dist/esm/mezon-client-v1/channel_manager.d.ts +0 -15
  198. package/dist/esm/mezon-client-v1/channel_manager.js +0 -69
  199. package/dist/esm/mezon-client-v1/channel_manager.js.map +0 -1
  200. package/dist/esm/mezon-client-v1/event_manager.d.ts +0 -7
  201. package/dist/esm/mezon-client-v1/event_manager.js +0 -31
  202. package/dist/esm/mezon-client-v1/event_manager.js.map +0 -1
  203. package/dist/esm/mezon-client-v1/message_manager.d.ts +0 -16
  204. package/dist/esm/mezon-client-v1/message_manager.js +0 -56
  205. package/dist/esm/mezon-client-v1/message_manager.js.map +0 -1
  206. package/dist/esm/mezon-client-v1/mezon_client.d.ts +0 -37
  207. package/dist/esm/mezon-client-v1/mezon_client.js +0 -94
  208. package/dist/esm/mezon-client-v1/mezon_client.js.map +0 -1
  209. package/dist/esm/mezon-client-v1/session_manager.d.ts +0 -10
  210. package/dist/esm/mezon-client-v1/session_manager.js +0 -33
  211. package/dist/esm/mezon-client-v1/session_manager.js.map +0 -1
  212. package/dist/esm/mezon-client-v1/socket_manager.d.ts +0 -31
  213. package/dist/esm/mezon-client-v1/socket_manager.js +0 -104
  214. package/dist/esm/mezon-client-v1/socket_manager.js.map +0 -1
  215. package/dist/esm/mezon-client-v2/client/MezonClient.d.ts +0 -74
  216. package/dist/esm/mezon-client-v2/client/MezonClient.js +0 -311
  217. package/dist/esm/mezon-client-v2/client/MezonClient.js.map +0 -1
  218. package/dist/esm/mezon-client-v2/manager/channel_manager.d.ts +0 -16
  219. package/dist/esm/mezon-client-v2/manager/channel_manager.js +0 -62
  220. package/dist/esm/mezon-client-v2/manager/channel_manager.js.map +0 -1
  221. package/dist/esm/mezon-client-v2/manager/event_manager.d.ts +0 -7
  222. package/dist/esm/mezon-client-v2/manager/event_manager.js +0 -31
  223. package/dist/esm/mezon-client-v2/manager/event_manager.js.map +0 -1
  224. package/dist/esm/mezon-client-v2/manager/session_manager.d.ts +0 -10
  225. package/dist/esm/mezon-client-v2/manager/session_manager.js +0 -33
  226. package/dist/esm/mezon-client-v2/manager/session_manager.js.map +0 -1
  227. package/dist/esm/mezon-client-v2/manager/socket_manager.d.ts +0 -40
  228. package/dist/esm/mezon-client-v2/manager/socket_manager.js +0 -157
  229. package/dist/esm/mezon-client-v2/manager/socket_manager.js.map +0 -1
  230. package/dist/esm/mezon-client-v2/structures/Clan.d.ts +0 -29
  231. package/dist/esm/mezon-client-v2/structures/Clan.js +0 -82
  232. package/dist/esm/mezon-client-v2/structures/Clan.js.map +0 -1
  233. package/dist/esm/mezon-client-v2/structures/Message.d.ts +0 -34
  234. package/dist/esm/mezon-client-v2/structures/Message.js +0 -96
  235. package/dist/esm/mezon-client-v2/structures/Message.js.map +0 -1
  236. package/dist/esm/mezon-client-v2/structures/TextChannel.d.ts +0 -22
  237. package/dist/esm/mezon-client-v2/structures/TextChannel.js +0 -70
  238. package/dist/esm/mezon-client-v2/structures/TextChannel.js.map +0 -1
  239. package/dist/esm/mezon-client-v2/structures/User.d.ts +0 -26
  240. package/dist/esm/mezon-client-v2/structures/User.js +0 -36
  241. package/dist/esm/mezon-client-v2/structures/User.js.map +0 -1
  242. package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.d.ts +0 -8
  243. package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.js +0 -37
  244. package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.js.map +0 -1
  245. package/dist/esm/mezon-client-v2/utils/CacheManager.d.ts +0 -16
  246. package/dist/esm/mezon-client-v2/utils/CacheManager.js +0 -49
  247. package/dist/esm/mezon-client-v2/utils/CacheManager.js.map +0 -1
  248. package/dist/esm/mezon-client-v2/utils/Collection.d.ts +0 -23
  249. package/dist/esm/mezon-client-v2/utils/Collection.js +0 -97
  250. package/dist/esm/mezon-client-v2/utils/Collection.js.map +0 -1
@@ -1,16 +0,0 @@
1
- import Collection from "./Collection";
2
- export declare class CacheManager<K, V> {
3
- private fetcher;
4
- private maxSize;
5
- cache: Collection<K, V>;
6
- constructor(fetcher: (id: K) => Promise<V>, maxSize?: number);
7
- get size(): number;
8
- get(id: K): V | undefined;
9
- set(id: K, value: V): void;
10
- fetch(id: K): Promise<V>;
11
- first(): V | undefined;
12
- filter(fn: (value: V) => boolean): Collection<K, V>;
13
- map<T>(fn: (value: V) => T): T[];
14
- values(): IterableIterator<V>;
15
- delete(id: K): boolean;
16
- }
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.CacheManager = void 0;
7
- const Collection_1 = __importDefault(require("./Collection"));
8
- class CacheManager {
9
- constructor(fetcher, maxSize = Infinity) {
10
- this.fetcher = fetcher;
11
- this.maxSize = maxSize;
12
- this.cache = new Collection_1.default();
13
- }
14
- get size() {
15
- return this.cache.size;
16
- }
17
- get(id) {
18
- return this.cache.get(id);
19
- }
20
- set(id, value) {
21
- if (this.cache.size >= this.maxSize) {
22
- const firstKey = this.cache.firstKey();
23
- if (firstKey)
24
- this.cache.delete(firstKey);
25
- }
26
- this.cache.set(id, value);
27
- }
28
- async fetch(id) {
29
- const existing = this.get(id);
30
- if (existing)
31
- return existing;
32
- const fetched = await this.fetcher(id);
33
- this.set(id, fetched);
34
- return fetched;
35
- }
36
- first() {
37
- return this.cache.first();
38
- }
39
- filter(fn) {
40
- return this.cache.filter(fn);
41
- }
42
- map(fn) {
43
- return this.cache.map(fn);
44
- }
45
- values() {
46
- return this.cache.values();
47
- }
48
- delete(id) {
49
- return this.cache.delete(id);
50
- }
51
- }
52
- exports.CacheManager = CacheManager;
53
- //# sourceMappingURL=CacheManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../../src/mezon-client-v2/utils/CacheManager.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAsC;AAEtC,MAAa,YAAY;IAGvB,YACU,OAA8B,EAC9B,UAAkB,QAAQ;QAD1B,YAAO,GAAP,OAAO,CAAuB;QAC9B,YAAO,GAAP,OAAO,CAAmB;QAElC,IAAI,CAAC,KAAK,GAAG,IAAI,oBAAU,EAAQ,CAAC;IACtC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,EAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,EAAK,EAAE,KAAQ;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAK;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,EAAyB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAI,EAAmB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,EAAK;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;CACF;AAtDD,oCAsDC"}
@@ -1,23 +0,0 @@
1
- export default class Collection<K, V> extends Map<K, V> {
2
- constructor(entries?: readonly (readonly [K, V])[] | null);
3
- get size(): number;
4
- set(key: K, value: V): this;
5
- delete(key: K): boolean;
6
- has(key: K): boolean;
7
- get(key: K): V | undefined;
8
- first(): V | undefined;
9
- firstKey(): K | undefined;
10
- last(): V | undefined;
11
- filter(fn: (value: V, key: K, collection: this) => boolean): Collection<K, V>;
12
- find(fn: (value: V, key: K, collection: this) => boolean): V | undefined;
13
- map<T>(fn: (value: V, key: K, collection: this) => T): T[];
14
- some(fn: (value: V, key: K, collection: this) => boolean): boolean;
15
- every(fn: (value: V, key: K, collection: this) => boolean): boolean;
16
- reduce<T>(fn: (acc: T, val: V, key: K, col: this) => T, initialValue: T): T;
17
- random(): V | undefined;
18
- sort(compareFn?: (a: V, b: V) => number): Collection<K, V>;
19
- clear(): void;
20
- keysArray(): K[];
21
- valuesArray(): V[];
22
- entriesArray(): [K, V][];
23
- }
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class Collection extends Map {
4
- constructor(entries) {
5
- super(entries !== null && entries !== void 0 ? entries : []);
6
- }
7
- get size() {
8
- return super.size;
9
- }
10
- set(key, value) {
11
- super.set(key, value);
12
- return this;
13
- }
14
- delete(key) {
15
- return super.delete(key);
16
- }
17
- has(key) {
18
- return super.has(key);
19
- }
20
- get(key) {
21
- return super.get(key);
22
- }
23
- first() {
24
- return this.values().next().value;
25
- }
26
- firstKey() {
27
- return this.keys().next().value;
28
- }
29
- last() {
30
- return [...this.values()].at(-1);
31
- }
32
- filter(fn) {
33
- const filtered = new Collection();
34
- for (const [key, value] of this) {
35
- if (fn(value, key, this)) {
36
- filtered.set(key, value);
37
- }
38
- }
39
- return filtered;
40
- }
41
- find(fn) {
42
- for (const [key, value] of this) {
43
- if (fn(value, key, this))
44
- return value;
45
- }
46
- return undefined;
47
- }
48
- map(fn) {
49
- const result = [];
50
- for (const [key, value] of this) {
51
- result.push(fn(value, key, this));
52
- }
53
- return result;
54
- }
55
- some(fn) {
56
- for (const [key, value] of this) {
57
- if (fn(value, key, this))
58
- return true;
59
- }
60
- return false;
61
- }
62
- every(fn) {
63
- for (const [key, value] of this) {
64
- if (!fn(value, key, this))
65
- return false;
66
- }
67
- return true;
68
- }
69
- reduce(fn, initialValue) {
70
- let acc = initialValue;
71
- for (const [key, value] of this) {
72
- acc = fn(acc, value, key, this);
73
- }
74
- return acc;
75
- }
76
- random() {
77
- const arr = [...this.values()];
78
- if (!arr.length)
79
- return undefined;
80
- return arr[Math.floor(Math.random() * arr.length)];
81
- }
82
- sort(compareFn) {
83
- const sorted = [...this.entries()].sort((a, b) => compareFn ? compareFn(a[1], b[1]) : 0);
84
- return new Collection(sorted);
85
- }
86
- clear() {
87
- super.clear();
88
- }
89
- keysArray() {
90
- return [...this.keys()];
91
- }
92
- valuesArray() {
93
- return [...this.values()];
94
- }
95
- entriesArray() {
96
- return [...this.entries()];
97
- }
98
- }
99
- exports.default = Collection;
100
- //# sourceMappingURL=Collection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../../../src/mezon-client-v2/utils/Collection.ts"],"names":[],"mappings":"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"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Copyright 2020 The Nakama Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { CloseEvent, ErrorEvent } from "ws";
17
- import { ApiRegisterStreamingChannelRequest, ApiVoiceChannelUserList, MessagePayLoad, MessageUserPayLoad, Socket, TokenSentEvent } from "./interfaces";
18
- import { Session } from "./session";
19
- import { WebSocketAdapter } from "./web_socket_adapter";
20
- import { Events } from "./constants/enum";
21
- import { Client, ApiChannelDescription, ApiCreateChannelDescRequest, ChannelMessageContent, ApiMessageMention, ApiMessageAttachment, ApiMessageRef } from "./interfaces";
22
- import { Stack } from "./utils/stack";
23
- /** A client for Mezon server. */
24
- export declare class MezonClient implements Client {
25
- readonly apiKey: string;
26
- readonly host: string;
27
- readonly port: string;
28
- readonly useSSL: boolean;
29
- readonly timeout: number;
30
- readonly autoRefreshSession: boolean;
31
- /** The expired timespan used to check session lifetime. */
32
- expiredTimespanMs: number;
33
- /** The low level API client for Nakama server. */
34
- private readonly apiClient;
35
- /** the socket */
36
- private socket;
37
- /** the session */
38
- private session;
39
- private isHardDisconnect;
40
- [key: string]: any;
41
- constructor(apiKey?: string, host?: string, port?: string, useSSL?: boolean, timeout?: number, autoRefreshSession?: boolean);
42
- /** Send message to channel */
43
- sendMessage(clan_id: string, channel_id: string, mode: number, is_public: boolean, msg: ChannelMessageContent, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, ref?: Array<ApiMessageRef>, anonymous_message?: boolean, mention_everyone?: boolean, avatar?: string, code?: number, topic_id?: string): Promise<import("./interfaces").ChannelMessageAck>;
44
- /** Send token to user */
45
- sendToken(sendTokenData: TokenSentEvent): Promise<any>;
46
- /** React message */
47
- reactionMessage(id: string, clan_id: string, channel_id: string, mode: number, is_public: boolean, message_id: string, emoji_id: string, emoji: string, count: number, message_sender_id: string, action_delete: boolean): Promise<import("./interfaces").ApiMessageReaction>;
48
- /** Update message */
49
- updateChatMessage(clan_id: string, channel_id: string, mode: number, is_public: boolean, message_id: string, content: any, mentions?: Array<ApiMessageMention>, attachments?: Array<ApiMessageAttachment>, hideEditted?: boolean): Promise<import("./interfaces").ChannelMessageAck>;
50
- /** Join to chat in clan when invited to clan */
51
- joinClanChat(clan_id: string): Promise<void>;
52
- /** Authenticate a user with an ID against the server. */
53
- authenticate(): Promise<string>;
54
- /** Close socket. */
55
- closeSocket(): void;
56
- /** Refresh a user's session using a refresh token retrieved from a previous authentication request. */
57
- sessionRefresh(): Promise<void>;
58
- /** Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. */
59
- logout(session: Session): Promise<boolean>;
60
- /** A socket created with the client's configuration. */
61
- createSocket(useSSL?: boolean, verbose?: boolean, adapter?: WebSocketAdapter, sendTimeoutMs?: number): Socket;
62
- /**Add handle function to event socket */
63
- on(event: Events, func: Function, context?: any): void;
64
- /**remove handle function to event socket */
65
- remove(event: string, func: Function): void;
66
- /**Create connect to event socket */
67
- connectSocket(): Promise<void>;
68
- onerror(evt: ErrorEvent): void;
69
- onheartbeattimeout(): void;
70
- ondisconnect(e: CloseEvent): void;
71
- retriesConnect(): void;
72
- createChannelDesc(request: ApiCreateChannelDescRequest): Promise<void | ApiChannelDescription>;
73
- sleep(ms: number): Promise<unknown>;
74
- /** Create DM channel to send DM with user */
75
- createDMchannel(userId: string): Promise<null | ApiChannelDescription>;
76
- sendBulkMessage(messages: MessagePayLoad[], callback: Function): Stack;
77
- sendBulkMessageUser(messages: MessageUserPayLoad[], callback: Function): Stack;
78
- /** Send DM message to user */
79
- sendDMChannelMessage(channelDmId: string, msg: string, messOptions?: {
80
- [x: string]: any;
81
- }, attachments?: Array<ApiMessageAttachment>, refs?: Array<ApiMessageRef>): Promise<import("./interfaces").ChannelMessageAck>;
82
- /** List a channel's users. */
83
- listChannelVoiceUsers(clanId: string, channelId: string, channelType: number, limit?: number, state?: number, cursor?: string): Promise<ApiVoiceChannelUserList>;
84
- /** Register stream channel */
85
- registerStreamingChannel(request: ApiRegisterStreamingChannelRequest): Promise<any>;
86
- }
@@ -1,356 +0,0 @@
1
- /**
2
- * Copyright 2020 The Nakama Authors
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { MezonApi } from './api';
17
- import { Session } from "./session";
18
- import { DefaultSocket } from "./socket";
19
- import { WebSocketAdapterPb } from './web_socket_adapter_pb';
20
- import { ChannelType, Events } from "./constants/enum";
21
- import { convertChanneltypeToChannelMode, isValidUserId } from "./utils/helper";
22
- import { replyMessageGenerate } from "./utils/generate_reply_message";
23
- import { Stack } from "./utils/stack";
24
- const DEFAULT_HOST = "api.mezon.vn";
25
- const DEFAULT_PORT = "443";
26
- const DEFAULT_API_KEY = "";
27
- const DEFAULT_SSL = true;
28
- const DEFAULT_TIMEOUT_MS = 7000;
29
- const DEFAULT_EXPIRED_TIMESPAN_MS = 5 * 60 * 1000;
30
- const DEFAULT_SEND_BULK_INTERVAL = 1000;
31
- const DEFAULT_MESSAGE_PER_TIME = 5;
32
- /** A client for Mezon server. */
33
- export class MezonClient {
34
- apiKey;
35
- host;
36
- port;
37
- useSSL;
38
- timeout;
39
- autoRefreshSession;
40
- /** The expired timespan used to check session lifetime. */
41
- expiredTimespanMs = DEFAULT_EXPIRED_TIMESPAN_MS;
42
- /** The low level API client for Nakama server. */
43
- apiClient;
44
- /** the socket */
45
- socket;
46
- /** the session */
47
- session;
48
- isHardDisconnect;
49
- constructor(apiKey = DEFAULT_API_KEY, host = DEFAULT_HOST, port = DEFAULT_PORT, useSSL = DEFAULT_SSL, timeout = DEFAULT_TIMEOUT_MS, autoRefreshSession = true) {
50
- this.apiKey = apiKey;
51
- this.host = host;
52
- this.port = port;
53
- this.useSSL = useSSL;
54
- this.timeout = timeout;
55
- this.autoRefreshSession = autoRefreshSession;
56
- const scheme = useSSL ? "https://" : "http://";
57
- const basePath = `${scheme}${host}:${port}`;
58
- this.apiClient = new MezonApi(apiKey, basePath, timeout);
59
- /**init event to connect socket*/
60
- for (const event in Events) {
61
- const key = Events[event].toString();
62
- if (!(key in this)) {
63
- this[key] = [];
64
- }
65
- }
66
- this.socket = this.createSocket(this.useSSL, false, new WebSocketAdapterPb());
67
- }
68
- /** Send message to channel */
69
- async sendMessage(clan_id, channel_id, mode, is_public, msg, mentions, attachments, ref, anonymous_message, mention_everyone, avatar, code, topic_id) {
70
- const messageLength = JSON.stringify(msg).length;
71
- if (messageLength > 4096 * 2)
72
- throw "Message exceeds allowed characters";
73
- const msgACK = await this.socket.writeChatMessage(clan_id, channel_id, mode, is_public, msg, mentions, attachments, ref, anonymous_message, mention_everyone, avatar, code, topic_id);
74
- return msgACK;
75
- }
76
- /** Send token to user */
77
- async sendToken(sendTokenData) {
78
- const session = this.session;
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
- const msgReaction = await this.socket.writeMessageReaction(id, clan_id, channel_id, mode, is_public, message_id, emoji_id, emoji, count, message_sender_id, action_delete);
84
- return msgReaction;
85
- }
86
- /** Update message */
87
- async updateChatMessage(clan_id, channel_id, mode, is_public, message_id, content, mentions, attachments, hideEditted) {
88
- const messageLength = JSON.stringify(content).length;
89
- if (messageLength > 4096 * 2)
90
- throw "Message exceeds allowed characters";
91
- const msgUpdated = await this.socket.updateChatMessage(clan_id, channel_id, mode, is_public, message_id, content, mentions, attachments, hideEditted);
92
- return msgUpdated;
93
- }
94
- /** Join to chat in clan when invited to clan */
95
- async joinClanChat(clan_id) {
96
- try {
97
- await this.socket.joinClanChat(clan_id);
98
- }
99
- catch (error) {
100
- throw (error);
101
- }
102
- }
103
- /** Authenticate a user with an ID against the server. */
104
- async authenticate() {
105
- return this.apiClient.mezonAuthenticate(this.apiKey, "", {
106
- account: {
107
- token: this.apiKey,
108
- }
109
- }).then(async (apiSession) => {
110
- const sockSession = new Session(apiSession);
111
- this.session = await this.socket.connect(sockSession, true);
112
- if (!this.session) {
113
- return Promise.resolve("error authenticate");
114
- }
115
- await this.connectSocket();
116
- this.isHardDisconnect = false;
117
- return Promise.resolve("connect successful");
118
- });
119
- }
120
- /** Close socket. */
121
- closeSocket() {
122
- console.log("Client sent disconnected.");
123
- this.isHardDisconnect = true;
124
- this.socket.close();
125
- }
126
- /** Refresh a user's session using a refresh token retrieved from a previous authentication request. */
127
- async sessionRefresh() {
128
- }
129
- /** Log out a session, invalidate a refresh token, or log out all sessions/refresh tokens for a user. */
130
- async logout(session) {
131
- const request = {
132
- "token": session.token,
133
- "refresh_token": session.refresh_token
134
- };
135
- return this.apiClient.mezonAuthenticateLogout(session.token, request).then((response) => {
136
- return Promise.resolve(response !== undefined);
137
- });
138
- }
139
- /** A socket created with the client's configuration. */
140
- createSocket(useSSL = false, verbose = false, adapter = new WebSocketAdapterPb(), sendTimeoutMs = DefaultSocket.DefaultSendTimeoutMs) {
141
- return new DefaultSocket(this.host, this.port, useSSL, verbose, adapter, sendTimeoutMs);
142
- }
143
- /**Add handle function to event socket */
144
- on(event, func, context = null) {
145
- const key = event;
146
- if (!(key in this)) {
147
- throw new Error("Mezon SDK not support this event");
148
- }
149
- if (typeof func != "function") {
150
- throw new Error("Please add function to event");
151
- }
152
- const handleFunctions = this[key];
153
- if (Array.isArray(handleFunctions)) {
154
- handleFunctions.push(context ? func.bind(context) : func);
155
- }
156
- }
157
- /**remove handle function to event socket */
158
- remove(event, func) {
159
- const key = event;
160
- if (!(key in this)) {
161
- throw new Error("Mezon SDK not support this event");
162
- }
163
- const handleFunctions = this[key];
164
- if (Array.isArray(handleFunctions)) {
165
- this[key] = handleFunctions.filter((f) => f != func);
166
- }
167
- }
168
- /**Create connect to event socket */
169
- async connectSocket() {
170
- const clans = await this.apiClient.listClanDescs(this.session.token);
171
- clans.clandesc?.forEach(async (clan) => {
172
- await this.socket.joinClanChat(clan.clan_id || '');
173
- });
174
- // join direct message
175
- await this.socket.joinClanChat("0");
176
- ["ondisconnect", "onerror", "onheartbeattimeout"].forEach((event) => {
177
- this.socket[event] = this[event].bind(this);
178
- });
179
- for (const event in Events) {
180
- const key = Events[event].toString();
181
- this.socket.socketEvents.on(key, (...args) => {
182
- const handleFunctions = this[key];
183
- if (Array.isArray(handleFunctions)) {
184
- handleFunctions.forEach((func) => {
185
- if (typeof func == "function") {
186
- Promise.resolve(func(...args)).catch((err) => {
187
- if (func.toString().includes(" this.")) {
188
- console.log(`Please using arrow function for function ${func.name} or add event with context with sync like .on('event', callback, this) pass 'this variable' in to get context`);
189
- }
190
- console.log(err);
191
- });
192
- }
193
- });
194
- }
195
- });
196
- }
197
- }
198
- onerror(evt) {
199
- console.log(evt);
200
- if (this.isHardDisconnect)
201
- return;
202
- if (this.socket.isOpen()) {
203
- this.retriesConnect();
204
- }
205
- }
206
- onheartbeattimeout() {
207
- console.log("Heartbeat timeout.");
208
- }
209
- ondisconnect(e) {
210
- console.log("Disconnected!", e?.reason);
211
- if (this.isHardDisconnect)
212
- return;
213
- this.retriesConnect();
214
- }
215
- retriesConnect() {
216
- let retryInterval = 5000; // Initial wait time in milliseconds
217
- const maxRetryInterval = 60000; // Maximum wait time (60 seconds)
218
- console.log("Reconnecting...");
219
- const interval = setInterval(async () => {
220
- try {
221
- this.socket = this.createSocket(this.useSSL, false, new WebSocketAdapterPb());
222
- await this.authenticate();
223
- clearInterval(interval); // Clear the interval on success
224
- console.log("Connected successfully!");
225
- retryInterval = 5000; // Reset the interval on successful connection
226
- }
227
- catch (e) {
228
- console.log("Connection failed:", e);
229
- retryInterval = Math.min(retryInterval * 2, maxRetryInterval); // Double the interval, max at 32 seconds
230
- // Clear the current interval and restart with the new retry interval
231
- clearInterval(interval);
232
- setTimeout(() => {
233
- this.retriesConnect(); // Restart the connection attempt
234
- }, retryInterval);
235
- }
236
- }, retryInterval);
237
- }
238
- async createChannelDesc(request) {
239
- if (!this.session)
240
- return;
241
- const session = this.session;
242
- if (this.autoRefreshSession &&
243
- session.refresh_token &&
244
- session.isexpired(Date.now() / 1000)) {
245
- await this.sessionRefresh();
246
- }
247
- return this.apiClient
248
- .createChannelDesc(session.token, request);
249
- }
250
- async sleep(ms) {
251
- return new Promise((resolve) => setTimeout(resolve, ms));
252
- }
253
- /** Create DM channel to send DM with user */
254
- async createDMchannel(userId) {
255
- try {
256
- if (!isValidUserId(userId))
257
- return null;
258
- const request = {
259
- clan_id: "",
260
- channel_id: "0",
261
- category_id: "0",
262
- type: ChannelType.CHANNEL_TYPE_DM,
263
- user_ids: [userId],
264
- channel_private: 1,
265
- };
266
- const channelDM = await this.createChannelDesc(request);
267
- if (channelDM) {
268
- await this.socket.joinChat(channelDM.clan_id, channelDM.channel_id, channelDM.type, false);
269
- return channelDM;
270
- }
271
- return null;
272
- }
273
- catch (e) {
274
- console.log(e);
275
- return null;
276
- }
277
- }
278
- sendBulkMessage(messages, callback) {
279
- const stack = new Stack(DEFAULT_MESSAGE_PER_TIME, DEFAULT_SEND_BULK_INTERVAL, this, callback);
280
- stack.push(messages);
281
- return stack;
282
- }
283
- sendBulkMessageUser(messages, callback) {
284
- const stack = new Stack(DEFAULT_MESSAGE_PER_TIME, DEFAULT_SEND_BULK_INTERVAL, this, callback, true);
285
- stack.push(messages);
286
- return stack;
287
- }
288
- /** Send DM message to user */
289
- async sendDMChannelMessage(channelDmId, msg, messOptions = {}, attachments = [], refs = []) {
290
- const messageLength = JSON.stringify(msg).length +
291
- JSON.stringify(messOptions).length;
292
- if (messageLength > 4096 * 2)
293
- throw "Message exceeds allowed characters";
294
- try {
295
- const message = {
296
- clan_id: "",
297
- channel_id: channelDmId,
298
- is_public: false,
299
- mode: convertChanneltypeToChannelMode(ChannelType.CHANNEL_TYPE_DM),
300
- mentions: [],
301
- attachments: attachments,
302
- ref: [],
303
- };
304
- const mess = replyMessageGenerate({ messageContent: msg, ...messOptions, attachments, refs }, message);
305
- return this.sendMessage(mess.clan_id, mess.channel_id, mess.mode, mess.is_public, mess.msg, [], mess.attachments, refs);
306
- }
307
- catch (error) {
308
- throw Error(`Can't send message channel DM`);
309
- }
310
- }
311
- /** List a channel's users. */
312
- async listChannelVoiceUsers(clanId, channelId, channelType, limit = 500, state, cursor) {
313
- if (limit <= 0 || limit > 500) {
314
- console.log("0 < limit <= 500");
315
- throw Error("0 < limit <= 500");
316
- }
317
- const session = this.session;
318
- if (this.autoRefreshSession &&
319
- session.refresh_token &&
320
- session.isexpired(Date.now() / 1000)) {
321
- await this.sessionRefresh();
322
- }
323
- return this.apiClient
324
- .listChannelVoiceUsers(session.token, clanId, channelId, channelType, limit, state, cursor)
325
- .then((response) => {
326
- var result = {
327
- voice_channel_users: [],
328
- };
329
- if (response.voice_channel_users == null) {
330
- return Promise.resolve(result);
331
- }
332
- response.voice_channel_users.forEach((gu) => {
333
- result.voice_channel_users.push({
334
- id: gu.id,
335
- channel_id: gu.channel_id,
336
- user_id: gu.user_id,
337
- participant: gu.participant,
338
- });
339
- });
340
- return Promise.resolve(result);
341
- });
342
- }
343
- /** Register stream channel */
344
- async registerStreamingChannel(request) {
345
- const session = this.session;
346
- if (this.autoRefreshSession &&
347
- session.refresh_token &&
348
- session.isexpired(Date.now() / 1000)) {
349
- await this.sessionRefresh();
350
- }
351
- return this.apiClient
352
- .registerStreamingChannel(session.token, request);
353
- }
354
- }
355
- ;
356
- //# sourceMappingURL=client.js.map