mezon-sdk 2.8.43 → 2.8.45

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 (278) hide show
  1. package/README.md +192 -192
  2. package/dist/cjs/api/api.d.ts +579 -10
  3. package/dist/cjs/api/api.js +3786 -46
  4. package/dist/cjs/api/api.js.map +1 -1
  5. package/dist/cjs/client.d.ts +86 -0
  6. package/dist/cjs/client.js +348 -0
  7. package/dist/cjs/client.js.map +1 -0
  8. package/dist/cjs/constants/enum.d.ts +4 -1
  9. package/dist/cjs/constants/enum.js +3 -0
  10. package/dist/cjs/constants/enum.js.map +1 -1
  11. package/dist/cjs/interfaces/client.d.ts +4 -4
  12. package/dist/cjs/interfaces/client.js.map +1 -1
  13. package/dist/cjs/mezon-client/channel_manager.d.ts +15 -0
  14. package/dist/cjs/mezon-client/channel_manager.js +70 -0
  15. package/dist/cjs/mezon-client/channel_manager.js.map +1 -0
  16. package/dist/cjs/mezon-client/event_manager.d.ts +7 -0
  17. package/dist/cjs/mezon-client/event_manager.js +37 -0
  18. package/dist/cjs/mezon-client/event_manager.js.map +1 -0
  19. package/dist/cjs/mezon-client/message_manager.d.ts +16 -0
  20. package/dist/cjs/mezon-client/message_manager.js +59 -0
  21. package/dist/cjs/mezon-client/message_manager.js.map +1 -0
  22. package/dist/cjs/mezon-client/mezon_client.d.ts +37 -0
  23. package/dist/cjs/mezon-client/mezon_client.js +87 -0
  24. package/dist/cjs/mezon-client/mezon_client.js.map +1 -0
  25. package/dist/cjs/mezon-client/session_manager.d.ts +10 -0
  26. package/dist/cjs/mezon-client/session_manager.js +35 -0
  27. package/dist/cjs/mezon-client/session_manager.js.map +1 -0
  28. package/dist/cjs/mezon-client/socket_manager.d.ts +31 -0
  29. package/dist/cjs/mezon-client/socket_manager.js +99 -0
  30. package/dist/cjs/mezon-client/socket_manager.js.map +1 -0
  31. package/dist/cjs/mezon-client/structures/Message.js +1 -1
  32. package/dist/cjs/mezon-client/structures/TextChannel.js +1 -1
  33. package/dist/cjs/mezon-client-v1/channel_manager.d.ts +15 -0
  34. package/dist/cjs/mezon-client-v1/channel_manager.js +70 -0
  35. package/dist/cjs/mezon-client-v1/channel_manager.js.map +1 -0
  36. package/dist/cjs/mezon-client-v1/event_manager.d.ts +7 -0
  37. package/dist/cjs/mezon-client-v1/event_manager.js +37 -0
  38. package/dist/cjs/mezon-client-v1/event_manager.js.map +1 -0
  39. package/dist/cjs/mezon-client-v1/message_manager.d.ts +16 -0
  40. package/dist/cjs/mezon-client-v1/message_manager.js +59 -0
  41. package/dist/cjs/mezon-client-v1/message_manager.js.map +1 -0
  42. package/dist/cjs/mezon-client-v1/mezon_client.d.ts +37 -0
  43. package/dist/cjs/mezon-client-v1/mezon_client.js +87 -0
  44. package/dist/cjs/mezon-client-v1/mezon_client.js.map +1 -0
  45. package/dist/cjs/mezon-client-v1/session_manager.d.ts +10 -0
  46. package/dist/cjs/mezon-client-v1/session_manager.js +35 -0
  47. package/dist/cjs/mezon-client-v1/session_manager.js.map +1 -0
  48. package/dist/cjs/mezon-client-v1/socket_manager.d.ts +31 -0
  49. package/dist/cjs/mezon-client-v1/socket_manager.js +99 -0
  50. package/dist/cjs/mezon-client-v1/socket_manager.js.map +1 -0
  51. package/dist/cjs/mezon-client-v2/client/MezonClient.d.ts +74 -0
  52. package/dist/cjs/mezon-client-v2/client/MezonClient.js +301 -0
  53. package/dist/cjs/mezon-client-v2/client/MezonClient.js.map +1 -0
  54. package/dist/cjs/mezon-client-v2/manager/channel_manager.d.ts +16 -0
  55. package/dist/cjs/mezon-client-v2/manager/channel_manager.js +60 -0
  56. package/dist/cjs/mezon-client-v2/manager/channel_manager.js.map +1 -0
  57. package/dist/cjs/mezon-client-v2/manager/event_manager.d.ts +7 -0
  58. package/dist/cjs/mezon-client-v2/manager/event_manager.js +37 -0
  59. package/dist/cjs/mezon-client-v2/manager/event_manager.js.map +1 -0
  60. package/dist/cjs/mezon-client-v2/manager/session_manager.d.ts +10 -0
  61. package/dist/cjs/mezon-client-v2/manager/session_manager.js +35 -0
  62. package/dist/cjs/mezon-client-v2/manager/session_manager.js.map +1 -0
  63. package/dist/cjs/mezon-client-v2/manager/socket_manager.d.ts +40 -0
  64. package/dist/cjs/mezon-client-v2/manager/socket_manager.js +154 -0
  65. package/dist/cjs/mezon-client-v2/manager/socket_manager.js.map +1 -0
  66. package/dist/cjs/mezon-client-v2/structures/Clan.d.ts +29 -0
  67. package/dist/cjs/mezon-client-v2/structures/Clan.js +77 -0
  68. package/dist/cjs/mezon-client-v2/structures/Clan.js.map +1 -0
  69. package/dist/cjs/mezon-client-v2/structures/Message.d.ts +34 -0
  70. package/dist/cjs/mezon-client-v2/structures/Message.js +90 -0
  71. package/dist/cjs/mezon-client-v2/structures/Message.js.map +1 -0
  72. package/dist/cjs/mezon-client-v2/structures/TextChannel.d.ts +22 -0
  73. package/dist/cjs/mezon-client-v2/structures/TextChannel.js +65 -0
  74. package/dist/cjs/mezon-client-v2/structures/TextChannel.js.map +1 -0
  75. package/dist/cjs/mezon-client-v2/structures/User.d.ts +26 -0
  76. package/dist/cjs/mezon-client-v2/structures/User.js +32 -0
  77. package/dist/cjs/mezon-client-v2/structures/User.js.map +1 -0
  78. package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.d.ts +8 -0
  79. package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.js +40 -0
  80. package/dist/cjs/mezon-client-v2/utils/AsyncThrottleQueue.js.map +1 -0
  81. package/dist/cjs/mezon-client-v2/utils/CacheManager.d.ts +16 -0
  82. package/dist/cjs/mezon-client-v2/utils/CacheManager.js +53 -0
  83. package/dist/cjs/mezon-client-v2/utils/CacheManager.js.map +1 -0
  84. package/dist/cjs/mezon-client-v2/utils/Collection.d.ts +23 -0
  85. package/dist/cjs/mezon-client-v2/utils/Collection.js +100 -0
  86. package/dist/cjs/mezon-client-v2/utils/Collection.js.map +1 -0
  87. package/dist/cjs/rtapi/realtime.d.ts +69 -17
  88. package/dist/cjs/rtapi/realtime.js +512 -119
  89. package/dist/cjs/rtapi/realtime.js.map +1 -1
  90. package/dist/cjs/socket.d.ts +1 -1
  91. package/dist/cjs/socket.js +100 -24
  92. package/dist/cjs/socket.js.map +1 -1
  93. package/dist/cjs/sqlite/MessageDatabase.js +20 -20
  94. package/dist/cjs/utils/generate_reply_message.js +1 -1
  95. package/dist/esm/api/api.d.ts +579 -10
  96. package/dist/esm/api/api.js +3719 -36
  97. package/dist/esm/api/api.js.map +1 -1
  98. package/dist/esm/client.d.ts +86 -0
  99. package/dist/esm/client.js +356 -0
  100. package/dist/esm/client.js.map +1 -0
  101. package/dist/esm/constants/enum.d.ts +4 -1
  102. package/dist/esm/constants/enum.js +3 -0
  103. package/dist/esm/constants/enum.js.map +1 -1
  104. package/dist/esm/interfaces/client.d.ts +4 -4
  105. package/dist/esm/interfaces/client.js.map +1 -1
  106. package/dist/esm/mezon-client/channel_manager.d.ts +15 -0
  107. package/dist/esm/mezon-client/channel_manager.js +69 -0
  108. package/dist/esm/mezon-client/channel_manager.js.map +1 -0
  109. package/dist/esm/mezon-client/event_manager.d.ts +7 -0
  110. package/dist/esm/mezon-client/event_manager.js +31 -0
  111. package/dist/esm/mezon-client/event_manager.js.map +1 -0
  112. package/dist/esm/mezon-client/message_manager.d.ts +16 -0
  113. package/dist/esm/mezon-client/message_manager.js +56 -0
  114. package/dist/esm/mezon-client/message_manager.js.map +1 -0
  115. package/dist/esm/mezon-client/mezon_client.d.ts +37 -0
  116. package/dist/esm/mezon-client/mezon_client.js +94 -0
  117. package/dist/esm/mezon-client/mezon_client.js.map +1 -0
  118. package/dist/esm/mezon-client/session_manager.d.ts +10 -0
  119. package/dist/esm/mezon-client/session_manager.js +33 -0
  120. package/dist/esm/mezon-client/session_manager.js.map +1 -0
  121. package/dist/esm/mezon-client/socket_manager.d.ts +31 -0
  122. package/dist/esm/mezon-client/socket_manager.js +104 -0
  123. package/dist/esm/mezon-client/socket_manager.js.map +1 -0
  124. package/dist/esm/mezon-client/structures/Message.js +1 -1
  125. package/dist/esm/mezon-client/structures/TextChannel.js +1 -1
  126. package/dist/esm/mezon-client-v1/channel_manager.d.ts +15 -0
  127. package/dist/esm/mezon-client-v1/channel_manager.js +69 -0
  128. package/dist/esm/mezon-client-v1/channel_manager.js.map +1 -0
  129. package/dist/esm/mezon-client-v1/event_manager.d.ts +7 -0
  130. package/dist/esm/mezon-client-v1/event_manager.js +31 -0
  131. package/dist/esm/mezon-client-v1/event_manager.js.map +1 -0
  132. package/dist/esm/mezon-client-v1/message_manager.d.ts +16 -0
  133. package/dist/esm/mezon-client-v1/message_manager.js +56 -0
  134. package/dist/esm/mezon-client-v1/message_manager.js.map +1 -0
  135. package/dist/esm/mezon-client-v1/mezon_client.d.ts +37 -0
  136. package/dist/esm/mezon-client-v1/mezon_client.js +94 -0
  137. package/dist/esm/mezon-client-v1/mezon_client.js.map +1 -0
  138. package/dist/esm/mezon-client-v1/session_manager.d.ts +10 -0
  139. package/dist/esm/mezon-client-v1/session_manager.js +33 -0
  140. package/dist/esm/mezon-client-v1/session_manager.js.map +1 -0
  141. package/dist/esm/mezon-client-v1/socket_manager.d.ts +31 -0
  142. package/dist/esm/mezon-client-v1/socket_manager.js +104 -0
  143. package/dist/esm/mezon-client-v1/socket_manager.js.map +1 -0
  144. package/dist/esm/mezon-client-v2/client/MezonClient.d.ts +74 -0
  145. package/dist/esm/mezon-client-v2/client/MezonClient.js +311 -0
  146. package/dist/esm/mezon-client-v2/client/MezonClient.js.map +1 -0
  147. package/dist/esm/mezon-client-v2/manager/channel_manager.d.ts +16 -0
  148. package/dist/esm/mezon-client-v2/manager/channel_manager.js +62 -0
  149. package/dist/esm/mezon-client-v2/manager/channel_manager.js.map +1 -0
  150. package/dist/esm/mezon-client-v2/manager/event_manager.d.ts +7 -0
  151. package/dist/esm/mezon-client-v2/manager/event_manager.js +31 -0
  152. package/dist/esm/mezon-client-v2/manager/event_manager.js.map +1 -0
  153. package/dist/esm/mezon-client-v2/manager/session_manager.d.ts +10 -0
  154. package/dist/esm/mezon-client-v2/manager/session_manager.js +33 -0
  155. package/dist/esm/mezon-client-v2/manager/session_manager.js.map +1 -0
  156. package/dist/esm/mezon-client-v2/manager/socket_manager.d.ts +40 -0
  157. package/dist/esm/mezon-client-v2/manager/socket_manager.js +157 -0
  158. package/dist/esm/mezon-client-v2/manager/socket_manager.js.map +1 -0
  159. package/dist/esm/mezon-client-v2/structures/Clan.d.ts +29 -0
  160. package/dist/esm/mezon-client-v2/structures/Clan.js +82 -0
  161. package/dist/esm/mezon-client-v2/structures/Clan.js.map +1 -0
  162. package/dist/esm/mezon-client-v2/structures/Message.d.ts +34 -0
  163. package/dist/esm/mezon-client-v2/structures/Message.js +96 -0
  164. package/dist/esm/mezon-client-v2/structures/Message.js.map +1 -0
  165. package/dist/esm/mezon-client-v2/structures/TextChannel.d.ts +22 -0
  166. package/dist/esm/mezon-client-v2/structures/TextChannel.js +70 -0
  167. package/dist/esm/mezon-client-v2/structures/TextChannel.js.map +1 -0
  168. package/dist/esm/mezon-client-v2/structures/User.d.ts +26 -0
  169. package/dist/esm/mezon-client-v2/structures/User.js +36 -0
  170. package/dist/esm/mezon-client-v2/structures/User.js.map +1 -0
  171. package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.d.ts +8 -0
  172. package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.js +37 -0
  173. package/dist/esm/mezon-client-v2/utils/AsyncThrottleQueue.js.map +1 -0
  174. package/dist/esm/mezon-client-v2/utils/CacheManager.d.ts +16 -0
  175. package/dist/esm/mezon-client-v2/utils/CacheManager.js +49 -0
  176. package/dist/esm/mezon-client-v2/utils/CacheManager.js.map +1 -0
  177. package/dist/esm/mezon-client-v2/utils/Collection.d.ts +23 -0
  178. package/dist/esm/mezon-client-v2/utils/Collection.js +97 -0
  179. package/dist/esm/mezon-client-v2/utils/Collection.js.map +1 -0
  180. package/dist/esm/rtapi/realtime.d.ts +69 -17
  181. package/dist/esm/rtapi/realtime.js +504 -115
  182. package/dist/esm/rtapi/realtime.js.map +1 -1
  183. package/dist/esm/socket.d.ts +1 -1
  184. package/dist/esm/socket.js +101 -25
  185. package/dist/esm/socket.js.map +1 -1
  186. package/dist/esm/sqlite/MessageDatabase.js +20 -20
  187. package/dist/esm/utils/generate_reply_message.js +1 -1
  188. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  189. package/dist/tsconfig.tsbuildinfo +1 -1
  190. package/package.json +59 -59
  191. package/dist/cjs/api/api.d.ts.map +0 -1
  192. package/dist/cjs/api.d.ts.map +0 -1
  193. package/dist/cjs/constants/enum.d.ts.map +0 -1
  194. package/dist/cjs/constants/index.d.ts.map +0 -1
  195. package/dist/cjs/google/protobuf/struct.d.ts.map +0 -1
  196. package/dist/cjs/google/protobuf/timestamp.d.ts.map +0 -1
  197. package/dist/cjs/google/protobuf/wrappers.d.ts.map +0 -1
  198. package/dist/cjs/index.d.ts.map +0 -1
  199. package/dist/cjs/interfaces/api.d.ts.map +0 -1
  200. package/dist/cjs/interfaces/client.d.ts.map +0 -1
  201. package/dist/cjs/interfaces/index.d.ts.map +0 -1
  202. package/dist/cjs/interfaces/socket.d.ts.map +0 -1
  203. package/dist/cjs/message-socket-events/base_event.d.ts.map +0 -1
  204. package/dist/cjs/message-socket-events/index.d.ts.map +0 -1
  205. package/dist/cjs/message-socket-events/user_channel_added.d.ts.map +0 -1
  206. package/dist/cjs/message-socket-events/user_channel_updated.d.ts.map +0 -1
  207. package/dist/cjs/mezon-client/client/MezonClient.d.ts.map +0 -1
  208. package/dist/cjs/mezon-client/client/MezonClientCore.d.ts.map +0 -1
  209. package/dist/cjs/mezon-client/manager/channel_manager.d.ts.map +0 -1
  210. package/dist/cjs/mezon-client/manager/event_manager.d.ts.map +0 -1
  211. package/dist/cjs/mezon-client/manager/rate-limit_manager.d.ts.map +0 -1
  212. package/dist/cjs/mezon-client/manager/session_manager.d.ts.map +0 -1
  213. package/dist/cjs/mezon-client/manager/socket_manager.d.ts.map +0 -1
  214. package/dist/cjs/mezon-client/structures/ButtonBuilder.d.ts.map +0 -1
  215. package/dist/cjs/mezon-client/structures/Clan.d.ts.map +0 -1
  216. package/dist/cjs/mezon-client/structures/InteractiveMessage.d.ts.map +0 -1
  217. package/dist/cjs/mezon-client/structures/Message.d.ts.map +0 -1
  218. package/dist/cjs/mezon-client/structures/TextChannel.d.ts.map +0 -1
  219. package/dist/cjs/mezon-client/structures/User.d.ts.map +0 -1
  220. package/dist/cjs/mezon-client/utils/AsyncThrottleQueue.d.ts.map +0 -1
  221. package/dist/cjs/mezon-client/utils/CacheManager.d.ts.map +0 -1
  222. package/dist/cjs/mezon-client/utils/Collection.d.ts.map +0 -1
  223. package/dist/cjs/mezon-client/utils/helper.d.ts.map +0 -1
  224. package/dist/cjs/rtapi/realtime.d.ts.map +0 -1
  225. package/dist/cjs/session.d.ts.map +0 -1
  226. package/dist/cjs/socket.d.ts.map +0 -1
  227. package/dist/cjs/sqlite/MessageDatabase.d.ts.map +0 -1
  228. package/dist/cjs/utils/format_message_input.d.ts.map +0 -1
  229. package/dist/cjs/utils/generate_reply_message.d.ts.map +0 -1
  230. package/dist/cjs/utils/helper.d.ts.map +0 -1
  231. package/dist/cjs/utils/stack.d.ts.map +0 -1
  232. package/dist/cjs/utils.d.ts.map +0 -1
  233. package/dist/cjs/web_socket_adapter.d.ts.map +0 -1
  234. package/dist/cjs/web_socket_adapter_pb.d.ts.map +0 -1
  235. package/dist/esm/api/api.d.ts.map +0 -1
  236. package/dist/esm/api.d.ts.map +0 -1
  237. package/dist/esm/constants/enum.d.ts.map +0 -1
  238. package/dist/esm/constants/index.d.ts.map +0 -1
  239. package/dist/esm/google/protobuf/struct.d.ts.map +0 -1
  240. package/dist/esm/google/protobuf/timestamp.d.ts.map +0 -1
  241. package/dist/esm/google/protobuf/wrappers.d.ts.map +0 -1
  242. package/dist/esm/index.d.ts.map +0 -1
  243. package/dist/esm/interfaces/api.d.ts.map +0 -1
  244. package/dist/esm/interfaces/client.d.ts.map +0 -1
  245. package/dist/esm/interfaces/index.d.ts.map +0 -1
  246. package/dist/esm/interfaces/socket.d.ts.map +0 -1
  247. package/dist/esm/message-socket-events/base_event.d.ts.map +0 -1
  248. package/dist/esm/message-socket-events/index.d.ts.map +0 -1
  249. package/dist/esm/message-socket-events/user_channel_added.d.ts.map +0 -1
  250. package/dist/esm/message-socket-events/user_channel_updated.d.ts.map +0 -1
  251. package/dist/esm/mezon-client/client/MezonClient.d.ts.map +0 -1
  252. package/dist/esm/mezon-client/client/MezonClientCore.d.ts.map +0 -1
  253. package/dist/esm/mezon-client/manager/channel_manager.d.ts.map +0 -1
  254. package/dist/esm/mezon-client/manager/event_manager.d.ts.map +0 -1
  255. package/dist/esm/mezon-client/manager/rate-limit_manager.d.ts.map +0 -1
  256. package/dist/esm/mezon-client/manager/session_manager.d.ts.map +0 -1
  257. package/dist/esm/mezon-client/manager/socket_manager.d.ts.map +0 -1
  258. package/dist/esm/mezon-client/structures/ButtonBuilder.d.ts.map +0 -1
  259. package/dist/esm/mezon-client/structures/Clan.d.ts.map +0 -1
  260. package/dist/esm/mezon-client/structures/InteractiveMessage.d.ts.map +0 -1
  261. package/dist/esm/mezon-client/structures/Message.d.ts.map +0 -1
  262. package/dist/esm/mezon-client/structures/TextChannel.d.ts.map +0 -1
  263. package/dist/esm/mezon-client/structures/User.d.ts.map +0 -1
  264. package/dist/esm/mezon-client/utils/AsyncThrottleQueue.d.ts.map +0 -1
  265. package/dist/esm/mezon-client/utils/CacheManager.d.ts.map +0 -1
  266. package/dist/esm/mezon-client/utils/Collection.d.ts.map +0 -1
  267. package/dist/esm/mezon-client/utils/helper.d.ts.map +0 -1
  268. package/dist/esm/rtapi/realtime.d.ts.map +0 -1
  269. package/dist/esm/session.d.ts.map +0 -1
  270. package/dist/esm/socket.d.ts.map +0 -1
  271. package/dist/esm/sqlite/MessageDatabase.d.ts.map +0 -1
  272. package/dist/esm/utils/format_message_input.d.ts.map +0 -1
  273. package/dist/esm/utils/generate_reply_message.d.ts.map +0 -1
  274. package/dist/esm/utils/helper.d.ts.map +0 -1
  275. package/dist/esm/utils/stack.d.ts.map +0 -1
  276. package/dist/esm/utils.d.ts.map +0 -1
  277. package/dist/esm/web_socket_adapter.d.ts.map +0 -1
  278. package/dist/esm/web_socket_adapter_pb.d.ts.map +0 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventManager = void 0;
4
+ class EventManager {
5
+ constructor() {
6
+ this.events = {};
7
+ }
8
+ on(event, func, context = null) {
9
+ if (!this.events[event]) {
10
+ this.events[event] = [];
11
+ }
12
+ if (typeof func !== "function") {
13
+ throw new Error("Please add a function to the event");
14
+ }
15
+ this.events[event].push(context ? func.bind(context) : func);
16
+ }
17
+ remove(event, func) {
18
+ if (!this.events[event]) {
19
+ throw new Error("Event not supported");
20
+ }
21
+ this.events[event] = this.events[event].filter((f) => f !== func);
22
+ }
23
+ emit(event, ...args) {
24
+ if (this.events[event]) {
25
+ this.events[event].forEach((func) => {
26
+ try {
27
+ func(...args);
28
+ }
29
+ catch (err) {
30
+ console.error(`Error executing event handler for ${event}:`, err);
31
+ }
32
+ });
33
+ }
34
+ }
35
+ }
36
+ exports.EventManager = EventManager;
37
+ //# sourceMappingURL=event_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event_manager.js","sourceRoot":"","sources":["../../../src/mezon-client/event_manager.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAAzB;QACU,WAAM,GAAkC,EAAE,CAAC;IAiCrD,CAAC;IA/BC,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,UAAe,IAAI;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACzB;QAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,IAAc;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,IAAI;oBACF,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;iBACf;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;iBACnE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AAlCD,oCAkCC"}
@@ -0,0 +1,16 @@
1
+ import { SocketManager } from "./socket_manager";
2
+ import { ApiMessageAttachment, ApiMessageMention, ApiMessageRef, ChannelMessageContent } from "../interfaces";
3
+ export declare class MessageManager {
4
+ private socketManager;
5
+ constructor(socketManager: SocketManager);
6
+ /** Send message in channel/thread */
7
+ 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>;
8
+ /** Send DM message */
9
+ sendDMChannelMessage(channelDmId: string, msg: string, messOptions?: {
10
+ [x: string]: any;
11
+ }, attachments?: Array<any>, refs?: Array<any>, code?: number): Promise<import("../interfaces").ChannelMessageAck>;
12
+ /** Update message */
13
+ 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>;
14
+ /** React message */
15
+ 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>;
16
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageManager = void 0;
4
+ const enum_1 = require("../constants/enum");
5
+ const generate_reply_message_1 = require("../utils/generate_reply_message");
6
+ const helper_1 = require("../utils/helper");
7
+ class MessageManager {
8
+ constructor(socketManager) {
9
+ this.socketManager = socketManager;
10
+ }
11
+ /** Send message in channel/thread */
12
+ async sendMessage(clan_id, channel_id, mode, is_public, msg, mentions, attachments, ref, anonymous_message, mention_everyone, avatar, code, topic_id) {
13
+ const socket = this.socketManager.getSocket();
14
+ const messageLength = JSON.stringify(msg).length;
15
+ if (messageLength > 4096 * 2)
16
+ throw "Message exceeds allowed characters";
17
+ const msgACK = await socket.writeChatMessage(clan_id, channel_id, mode, is_public, msg, mentions, attachments, ref, anonymous_message, mention_everyone, avatar, code, topic_id);
18
+ return msgACK;
19
+ }
20
+ /** Send DM message */
21
+ async sendDMChannelMessage(channelDmId, msg, messOptions = {}, attachments = [], refs = [], code) {
22
+ const messageLength = JSON.stringify(msg).length + JSON.stringify(messOptions).length;
23
+ if (messageLength > 4096 * 2)
24
+ throw "Message exceeds allowed characters";
25
+ try {
26
+ const message = {
27
+ clan_id: "",
28
+ channel_id: channelDmId,
29
+ is_public: false,
30
+ mode: (0, helper_1.convertChanneltypeToChannelMode)(enum_1.ChannelType.CHANNEL_TYPE_DM),
31
+ mentions: [],
32
+ attachments: attachments,
33
+ ref: [],
34
+ };
35
+ const mess = (0, generate_reply_message_1.replyMessageGenerate)(Object.assign(Object.assign({ messageContent: msg }, messOptions), { attachments, refs }), message);
36
+ return await this.sendMessage(mess.clan_id, mess.channel_id, mess.mode, mess.is_public, mess.msg, [], mess.attachments, refs, false, false, '', code);
37
+ }
38
+ catch (error) {
39
+ throw new Error("Can't send message channel DM");
40
+ }
41
+ }
42
+ /** Update message */
43
+ async updateChatMessage(clan_id, channel_id, mode, is_public, message_id, content, mentions, attachments, hideEditted) {
44
+ const messageLength = JSON.stringify(content).length;
45
+ if (messageLength > 4096 * 2)
46
+ throw "Message exceeds allowed characters";
47
+ const socket = this.socketManager.getSocket();
48
+ const msgUpdated = await socket.updateChatMessage(clan_id, channel_id, mode, is_public, message_id, content, mentions, attachments, hideEditted);
49
+ return msgUpdated;
50
+ }
51
+ /** React message */
52
+ async reactionMessage(id, clan_id, channel_id, mode, is_public, message_id, emoji_id, emoji, count, message_sender_id, action_delete) {
53
+ const socket = this.socketManager.getSocket();
54
+ const msgReaction = await socket.writeMessageReaction(id, clan_id, channel_id, mode, is_public, message_id, emoji_id, emoji, count, message_sender_id, action_delete);
55
+ return msgReaction;
56
+ }
57
+ }
58
+ exports.MessageManager = MessageManager;
59
+ //# sourceMappingURL=message_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_manager.js","sourceRoot":"","sources":["../../../src/mezon-client/message_manager.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAChD,4EAAuE;AACvE,4CAAkE;AAQlE,MAAa,cAAc;IACzB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,qCAAqC;IACrC,KAAK,CAAC,WAAW,CACf,OAAe,EACf,UAAkB,EAClB,IAAY,EACZ,SAAkB,EAClB,GAA0B,EAC1B,QAAmC,EACnC,WAAyC,EACzC,GAA0B,EAC1B,iBAA2B,EAC3B,gBAA0B,EAC1B,MAAe,EACf,IAAa,EACb,QAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACjD,IAAI,aAAa,GAAG,IAAI,GAAG,CAAC;YAAE,MAAM,oCAAoC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC1C,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,EACT,GAAG,EACH,QAAQ,EACR,WAAW,EACX,GAAG,EACH,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,QAAQ,CACT,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,oBAAoB,CACxB,WAAmB,EACnB,GAAW,EACX,cAAoC,EAAE,EACtC,cAA0B,EAAE,EAC5B,OAAmB,EAAE,EACrB,IAAa;QAEb,MAAM,aAAa,GACjB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;QAClE,IAAI,aAAa,GAAG,IAAI,GAAG,CAAC;YAAE,MAAM,oCAAoC,CAAC;QACzE,IAAI;YACF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,WAAW;gBACvB,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,IAAA,wCAA+B,EAAC,kBAAW,CAAC,eAAe,CAAC;gBAClE,QAAQ,EAAE,EAAE;gBACZ,WAAW,EAAE,WAAW;gBACxB,GAAG,EAAE,EAAE;aACR,CAAC;YACF,MAAM,IAAI,GAAG,IAAA,6CAAoB,gCAC7B,cAAc,EAAE,GAAG,IAAK,WAAW,KAAE,WAAW,EAAE,IAAI,KACxD,OAAO,CACR,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,WAAW,CAC3B,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,GAAG,EACR,EAAE,EACF,IAAI,CAAC,WAAW,EAChB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,EAAE,EACF,IAAI,CACL,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;IACH,CAAC;IAED,qBAAqB;IACrB,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,UAAkB,EAClB,IAAY,EACZ,SAAkB,EAClB,UAAkB,EAClB,OAAY,EACZ,QAAmC,EACnC,WAAyC,EACzC,WAAqB;QAErB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACrD,IAAI,aAAa,GAAG,IAAI,GAAG,CAAC;YAAE,MAAM,oCAAoC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAC/C,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,WAAW,EACX,WAAW,CACZ,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,KAAK,CAAC,eAAe,CACnB,EAAU,EACV,OAAe,EACf,UAAkB,EAClB,IAAY,EACZ,SAAkB,EAClB,UAAkB,EAClB,QAAgB,EAChB,KAAa,EACb,KAAa,EACb,iBAAyB,EACzB,aAAsB;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,CACnD,EAAE,EACF,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,aAAa,CACd,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAhJD,wCAgJC"}
@@ -0,0 +1,37 @@
1
+ import { Events } from "../constants/enum";
2
+ import { ApiMessageAttachment, ApiMessageMention, ApiMessageRef, ChannelMessageContent, Client, TokenSentEvent } from "../interfaces";
3
+ export declare class MezonClient implements Client {
4
+ readonly apiKey: string;
5
+ readonly host: string;
6
+ readonly port: string;
7
+ readonly useSSL: boolean;
8
+ readonly timeout: number;
9
+ private readonly apiClient;
10
+ private socketManager;
11
+ private messageManager;
12
+ private channelManager;
13
+ private sessionManager;
14
+ private eventManager;
15
+ constructor(apiKey?: string, host?: string, port?: string, useSSL?: boolean, timeout?: number);
16
+ authenticate(): Promise<string>;
17
+ on(event: Events, func: Function, context?: any): void;
18
+ remove(event: string, func: Function): void;
19
+ closeSocket(): void;
20
+ logout(): Promise<boolean>;
21
+ /** Send message in channel/thread */
22
+ 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>;
23
+ /** Send DM message */
24
+ sendDMChannelMessage(channelDmId: string, msg: string, messOptions?: {
25
+ [x: string]: any;
26
+ }, attachments?: Array<any>, refs?: Array<any>, code?: number): Promise<import("../interfaces").ChannelMessageAck>;
27
+ /** Update message */
28
+ 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>;
29
+ /** Create DM channel */
30
+ createDMchannel(userId: string): Promise<import("../interfaces").ApiChannelDescription | null>;
31
+ /** List current user in channel voice */
32
+ listChannelVoiceUsers(clanId: string, channelId: string, channelType: number, limit?: number, state?: number, cursor?: string): Promise<import("../interfaces").ApiVoiceChannelUserList>;
33
+ /** Send token to user */
34
+ sendToken(sendTokenData: TokenSentEvent): Promise<any>;
35
+ /** React message */
36
+ 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>;
37
+ }
@@ -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/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/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/socket_manager.ts"],"names":[],"mappings":";;;AAGA,sCAA0C;AAG1C,4CAAsC;AAGtC,oEAA8D;AAE9D,MAAa,aAAa;IAIxB,YACU,IAAY,EACZ,IAAY,EACZ,MAAe,EACf,OAAyB,EACzB,cAA8B,EAC9B,SAAmB,EACnB,MAAc,EACd,YAA0B;QAP1B,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAkB;QACzB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,cAAS,GAAT,SAAS,CAAU;QACnB,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAc;QAElC,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAa,CAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,IAAI,0CAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAa,CAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAoB;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAe;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACxB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;SAC7B;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,CAAa;QACxB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAM;QACjC,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAAoB;;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAA,KAAK,CAAC,QAAQ,0CAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC,cAAc,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAI,IAAI,CAAC,KAAmB,CAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,kBAAM,EAAE;YAC1B,MAAM,GAAG,GAAG,kBAAM,CAAC,KAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;gBAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACtC,IAAI;gBACF,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxE,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACzD,IAAI,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,EAAE;oBAC3B,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAClD;gBACD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBACvC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;gBACrC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC;gBAC9D,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,CAAC;aACxD;QACH,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;CACF;AApHD,sCAoHC"}
@@ -27,7 +27,7 @@ class Message {
27
27
  message_ref_id: this.id,
28
28
  message_sender_id: this.sender_id,
29
29
  message_sender_username: user.clan_nick || user.display_name || user.username,
30
- mesages_sender_avatar: user.clan_avatar || user.avartar,
30
+ message_sender_avatar: user.clan_avatar || user.avartar,
31
31
  content: JSON.stringify(this.content),
32
32
  },
33
33
  ];
@@ -59,7 +59,7 @@ class TextChannel {
59
59
  message_ref_id: messageRef.id,
60
60
  message_sender_id: messageRef.sender_id,
61
61
  message_sender_username: user.clan_nick || user.display_name || user.username,
62
- mesages_sender_avatar: user.clan_avatar || user.avartar,
62
+ message_sender_avatar: user.clan_avatar || user.avartar,
63
63
  content: JSON.stringify(messageRef.content),
64
64
  },
65
65
  ];
@@ -0,0 +1,15 @@
1
+ import { MezonApi } from "../api";
2
+ import { ApiChannelDescription, ApiVoiceChannelUserList } from "../interfaces";
3
+ import { SessionManager } from "./session_manager";
4
+ import { SocketManager } from "./socket_manager";
5
+ export declare class ChannelManager {
6
+ private apiClient;
7
+ private socketManager;
8
+ private sessionManager;
9
+ constructor(apiClient: MezonApi, socketManager: SocketManager, sessionManager: SessionManager);
10
+ /** Create DM channel with user */
11
+ createDMchannel(userId: string): Promise<null | ApiChannelDescription>;
12
+ /** List current user in channel voice */
13
+ listChannelVoiceUsers(clanId: string, channelId: string, channelType: number, limit?: number, state?: number, cursor?: string): Promise<ApiVoiceChannelUserList>;
14
+ private sleep;
15
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChannelManager = void 0;
4
+ const enum_1 = require("../constants/enum");
5
+ const helper_1 = require("../utils/helper");
6
+ class ChannelManager {
7
+ constructor(apiClient, socketManager, sessionManager) {
8
+ this.apiClient = apiClient;
9
+ this.socketManager = socketManager;
10
+ this.sessionManager = sessionManager;
11
+ }
12
+ /** Create DM channel with user */
13
+ async createDMchannel(userId) {
14
+ try {
15
+ if (!(0, helper_1.isValidUserId)(userId))
16
+ return null;
17
+ const socket = this.socketManager.getSocket();
18
+ const request = {
19
+ clan_id: "",
20
+ channel_id: "0",
21
+ category_id: "0",
22
+ type: enum_1.ChannelType.CHANNEL_TYPE_DM,
23
+ user_ids: [userId],
24
+ channel_private: 1,
25
+ };
26
+ const channelDM = await this.apiClient.createChannelDesc(this.sessionManager.getSession().token, request);
27
+ if (channelDM) {
28
+ await this.sleep(100);
29
+ await socket.joinChat(channelDM.clan_id, channelDM.channel_id, channelDM.type, false);
30
+ return channelDM;
31
+ }
32
+ return null;
33
+ }
34
+ catch (e) {
35
+ console.log(e);
36
+ return null;
37
+ }
38
+ }
39
+ /** List current user in channel voice */
40
+ async listChannelVoiceUsers(clanId, channelId, channelType, limit = 500, state, cursor) {
41
+ if (limit <= 0 || limit > 500) {
42
+ console.log("0 < limit <= 500");
43
+ throw new Error("0 < limit <= 500");
44
+ }
45
+ return this.apiClient
46
+ .listChannelVoiceUsers(this.sessionManager.getSession().token, clanId, channelId, channelType, limit, state, cursor)
47
+ .then((response) => {
48
+ var result = {
49
+ voice_channel_users: [],
50
+ };
51
+ if (response.voice_channel_users == null) {
52
+ return Promise.resolve(result);
53
+ }
54
+ response.voice_channel_users.forEach((gu) => {
55
+ result.voice_channel_users.push({
56
+ id: gu.id,
57
+ channel_id: gu.channel_id,
58
+ user_id: gu.user_id,
59
+ participant: gu.participant,
60
+ });
61
+ });
62
+ return Promise.resolve(result);
63
+ });
64
+ }
65
+ sleep(ms) {
66
+ return new Promise((resolve) => setTimeout(resolve, ms));
67
+ }
68
+ }
69
+ exports.ChannelManager = ChannelManager;
70
+ //# sourceMappingURL=channel_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel_manager.js","sourceRoot":"","sources":["../../../src/mezon-client-v1/channel_manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Events } from "../constants";
2
+ export declare class EventManager {
3
+ private events;
4
+ on(event: Events, func: Function, context?: any): void;
5
+ remove(event: string, func: Function): void;
6
+ emit(event: string, ...args: any[]): void;
7
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventManager = void 0;
4
+ class EventManager {
5
+ constructor() {
6
+ this.events = {};
7
+ }
8
+ on(event, func, context = null) {
9
+ if (!this.events[event]) {
10
+ this.events[event] = [];
11
+ }
12
+ if (typeof func !== "function") {
13
+ throw new Error("Please add a function to the event");
14
+ }
15
+ this.events[event].push(context ? func.bind(context) : func);
16
+ }
17
+ remove(event, func) {
18
+ if (!this.events[event]) {
19
+ throw new Error("Event not supported");
20
+ }
21
+ this.events[event] = this.events[event].filter((f) => f !== func);
22
+ }
23
+ emit(event, ...args) {
24
+ if (this.events[event]) {
25
+ this.events[event].forEach((func) => {
26
+ try {
27
+ func(...args);
28
+ }
29
+ catch (err) {
30
+ console.error(`Error executing event handler for ${event}:`, err);
31
+ }
32
+ });
33
+ }
34
+ }
35
+ }
36
+ exports.EventManager = EventManager;
37
+ //# sourceMappingURL=event_manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event_manager.js","sourceRoot":"","sources":["../../../src/mezon-client-v1/event_manager.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAAzB;QACU,WAAM,GAAkC,EAAE,CAAC;IAiCrD,CAAC;IA/BC,EAAE,CAAC,KAAa,EAAE,IAAc,EAAE,UAAe,IAAI;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACzB;QAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACvD;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAa,EAAE,IAAc;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,IAAI;oBACF,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;iBACf;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,qCAAqC,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;iBACnE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AAlCD,oCAkCC"}
@@ -0,0 +1,16 @@
1
+ import { SocketManager } from "./socket_manager";
2
+ import { ApiMessageAttachment, ApiMessageMention, ApiMessageRef, ChannelMessageContent } from "../interfaces";
3
+ export declare class MessageManager {
4
+ private socketManager;
5
+ constructor(socketManager: SocketManager);
6
+ /** Send message in channel/thread */
7
+ 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>;
8
+ /** Send DM message */
9
+ sendDMChannelMessage(channelDmId: string, msg: string, messOptions?: {
10
+ [x: string]: any;
11
+ }, attachments?: Array<any>, refs?: Array<any>, code?: number): Promise<import("../interfaces").ChannelMessageAck>;
12
+ /** Update message */
13
+ 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>;
14
+ /** React message */
15
+ 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>;
16
+ }