node-nim 9.2.8-rc.1 → 9.3.0-rc.2

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 (215) hide show
  1. package/README.md +74 -39
  2. package/dist/chatroom/chatroom.js +253 -0
  3. package/dist/chatroom/chatroom.js.map +1 -0
  4. package/dist/chatroom_def/chatroom_def.js +120 -0
  5. package/dist/chatroom_def/chatroom_def.js.map +1 -0
  6. package/{js → dist}/loader.js +0 -0
  7. package/{js → dist}/loader.js.map +0 -0
  8. package/{js/api → dist/nim}/client.js +46 -8
  9. package/dist/nim/client.js.map +1 -0
  10. package/{js/api → dist/nim}/data_sync.js +2 -2
  11. package/dist/nim/data_sync.js.map +1 -0
  12. package/{js/api → dist/nim}/friend.js +62 -12
  13. package/dist/nim/friend.js.map +1 -0
  14. package/{js/api → dist/nim}/global.js +50 -8
  15. package/dist/nim/global.js.map +1 -0
  16. package/{js/api → dist/nim}/msglog.js +271 -52
  17. package/dist/nim/msglog.js.map +1 -0
  18. package/{js/api → dist/nim}/nos.js +54 -13
  19. package/dist/nim/nos.js.map +1 -0
  20. package/{js/api → dist/nim}/online_session.js +34 -6
  21. package/dist/nim/online_session.js.map +1 -0
  22. package/{js/api → dist/nim}/pass_through_proxy.js +10 -3
  23. package/dist/nim/pass_through_proxy.js.map +1 -0
  24. package/{js/api → dist/nim}/plugin.js +18 -4
  25. package/dist/nim/plugin.js.map +1 -0
  26. package/{js/api → dist/nim}/session.js +171 -28
  27. package/dist/nim/session.js.map +1 -0
  28. package/{js/api → dist/nim}/subscribe_event.js +53 -12
  29. package/dist/nim/subscribe_event.js.map +1 -0
  30. package/{js/api → dist/nim}/super_team.js +253 -47
  31. package/dist/nim/super_team.js.map +1 -0
  32. package/{js/api → dist/nim}/sysmsg.js +80 -12
  33. package/dist/nim/sysmsg.js.map +1 -0
  34. package/{js/api → dist/nim}/talk.js +10 -3
  35. package/dist/nim/talk.js.map +1 -0
  36. package/dist/nim/talkex.js +192 -0
  37. package/dist/nim/talkex.js.map +1 -0
  38. package/{js/api → dist/nim}/team.js +363 -87
  39. package/dist/nim/team.js.map +1 -0
  40. package/{js/api → dist/nim}/tool.js +21 -5
  41. package/dist/nim/tool.js.map +1 -0
  42. package/{js/api → dist/nim}/user.js +84 -16
  43. package/dist/nim/user.js.map +1 -0
  44. package/{js/def → dist/nim_def}/client_def.js +0 -0
  45. package/dist/nim_def/client_def.js.map +1 -0
  46. package/{js/def → dist/nim_def}/data_sync_def.js +0 -0
  47. package/dist/nim_def/data_sync_def.js.map +1 -0
  48. package/{js/def → dist/nim_def}/doc_trans_def.js +0 -0
  49. package/dist/nim_def/doc_trans_def.js.map +1 -0
  50. package/{js/def → dist/nim_def}/friend_def.js +0 -0
  51. package/dist/nim_def/friend_def.js.map +1 -0
  52. package/{js/def → dist/nim_def}/global_def.js +0 -0
  53. package/dist/nim_def/global_def.js.map +1 -0
  54. package/{js/def → dist/nim_def}/msglog_def.js +1 -1
  55. package/dist/nim_def/msglog_def.js.map +1 -0
  56. package/{js/def → dist/nim_def}/nos_def.js +0 -0
  57. package/dist/nim_def/nos_def.js.map +1 -0
  58. package/{js/def → dist/nim_def}/online_session_def.js +0 -0
  59. package/dist/nim_def/online_session_def.js.map +1 -0
  60. package/{js/def → dist/nim_def}/pass_through_proxy_def.js +0 -0
  61. package/dist/nim_def/pass_through_proxy_def.js.map +1 -0
  62. package/{js/def → dist/nim_def}/plugin_def.js +0 -0
  63. package/{js/def → dist/nim_def}/plugin_def.js.map +1 -1
  64. package/{js/def → dist/nim_def}/session_def.js +0 -0
  65. package/dist/nim_def/session_def.js.map +1 -0
  66. package/{js/def → dist/nim_def}/subscribe_event_def.js +0 -0
  67. package/dist/nim_def/subscribe_event_def.js.map +1 -0
  68. package/{js/def → dist/nim_def}/super_team_def.js +0 -0
  69. package/dist/nim_def/super_team_def.js.map +1 -0
  70. package/{js/def → dist/nim_def}/sysmsg_def.js +0 -0
  71. package/dist/nim_def/sysmsg_def.js.map +1 -0
  72. package/{js/def → dist/nim_def}/talk_def.js +0 -0
  73. package/{js/def → dist/nim_def}/talk_def.js.map +1 -1
  74. package/{js/def → dist/nim_def}/talkex_def.js +0 -0
  75. package/{js/def → dist/nim_def}/talkex_def.js.map +1 -1
  76. package/{js/def → dist/nim_def}/team_def.js +0 -0
  77. package/dist/nim_def/team_def.js.map +1 -0
  78. package/{js/def → dist/nim_def}/tool_def.js +0 -0
  79. package/dist/nim_def/tool_def.js.map +1 -0
  80. package/{js/def → dist/nim_def}/user_def.js +0 -0
  81. package/dist/nim_def/user_def.js.map +1 -0
  82. package/dist/node-nim.js +98 -0
  83. package/dist/node-nim.js.map +1 -0
  84. package/dist/qchat/attachment.js +75 -0
  85. package/dist/qchat/attachment.js.map +1 -0
  86. package/dist/qchat/channel.js +402 -0
  87. package/dist/qchat/channel.js.map +1 -0
  88. package/dist/qchat/channel_category.js +249 -0
  89. package/dist/qchat/channel_category.js.map +1 -0
  90. package/dist/qchat/instance.js +94 -0
  91. package/dist/qchat/instance.js.map +1 -0
  92. package/dist/qchat/message.js +325 -0
  93. package/dist/qchat/message.js.map +1 -0
  94. package/dist/qchat/role.js +562 -0
  95. package/dist/qchat/role.js.map +1 -0
  96. package/dist/qchat/server.js +515 -0
  97. package/dist/qchat/server.js.map +1 -0
  98. package/dist/qchat/system_notification.js +96 -0
  99. package/dist/qchat/system_notification.js.map +1 -0
  100. package/dist/qchat_def/attachment_def.js +3 -0
  101. package/dist/qchat_def/attachment_def.js.map +1 -0
  102. package/dist/qchat_def/channel_def.js +3 -0
  103. package/dist/qchat_def/channel_def.js.map +1 -0
  104. package/dist/qchat_def/instance_def.js +3 -0
  105. package/dist/qchat_def/instance_def.js.map +1 -0
  106. package/dist/qchat_def/message_def.js +3 -0
  107. package/dist/qchat_def/message_def.js.map +1 -0
  108. package/dist/qchat_def/public_def.js +584 -0
  109. package/dist/qchat_def/public_def.js.map +1 -0
  110. package/dist/qchat_def/role_def.js +3 -0
  111. package/dist/qchat_def/role_def.js.map +1 -0
  112. package/dist/qchat_def/server_def.js +3 -0
  113. package/dist/qchat_def/server_def.js.map +1 -0
  114. package/dist/qchat_def/system_notification_def.js +3 -0
  115. package/dist/qchat_def/system_notification_def.js.map +1 -0
  116. package/package.json +7 -6
  117. package/script/download-sdk.mjs +17 -16
  118. package/types/chatroom/chatroom.d.ts +54 -0
  119. package/types/chatroom_def/chatroom_def.d.ts +419 -0
  120. package/types/{api → nim}/client.d.ts +22 -23
  121. package/types/nim/data_sync.d.ts +12 -0
  122. package/types/{api → nim}/friend.d.ts +17 -17
  123. package/types/{api → nim}/global.d.ts +13 -13
  124. package/types/{api → nim}/msglog.d.ts +62 -62
  125. package/types/{api → nim}/nos.d.ts +21 -21
  126. package/types/{api → nim}/online_session.d.ts +12 -12
  127. package/types/{api → nim}/pass_through_proxy.d.ts +8 -8
  128. package/types/{api → nim}/plugin.d.ts +8 -6
  129. package/types/{api → nim}/session.d.ts +40 -40
  130. package/types/{api → nim}/subscribe_event.d.ts +19 -19
  131. package/types/{api → nim}/super_team.d.ts +51 -52
  132. package/types/{api → nim}/sysmsg.d.ts +20 -20
  133. package/types/{api → nim}/talk.d.ts +19 -19
  134. package/types/{api → nim}/talkex.d.ts +29 -27
  135. package/types/{api → nim}/team.d.ts +89 -88
  136. package/types/{api → nim}/tool.d.ts +9 -7
  137. package/types/{api → nim}/user.d.ts +23 -23
  138. package/types/{def → nim_def}/client_def.d.ts +86 -86
  139. package/types/{def → nim_def}/data_sync_def.d.ts +0 -0
  140. package/types/{def → nim_def}/doc_trans_def.d.ts +0 -0
  141. package/types/{def → nim_def}/friend_def.d.ts +17 -16
  142. package/types/{def → nim_def}/global_def.d.ts +14 -13
  143. package/types/{def → nim_def}/msglog_def.d.ts +152 -141
  144. package/types/nim_def/nos_def.d.ts +72 -0
  145. package/types/{def → nim_def}/online_session_def.d.ts +15 -15
  146. package/types/{def → nim_def}/pass_through_proxy_def.d.ts +2 -1
  147. package/types/{def → nim_def}/plugin_def.d.ts +3 -2
  148. package/types/{def → nim_def}/session_def.d.ts +49 -48
  149. package/types/nim_def/subscribe_event_def.d.ts +83 -0
  150. package/types/{def → nim_def}/super_team_def.d.ts +34 -34
  151. package/types/{def → nim_def}/sysmsg_def.d.ts +25 -25
  152. package/types/{def → nim_def}/talk_def.d.ts +24 -24
  153. package/types/nim_def/talkex_def.d.ts +112 -0
  154. package/types/{def → nim_def}/team_def.d.ts +37 -37
  155. package/types/{def → nim_def}/tool_def.d.ts +7 -6
  156. package/types/{def → nim_def}/user_def.d.ts +22 -21
  157. package/types/node-nim.d.ts +53 -0
  158. package/types/qchat/attachment.d.ts +40 -0
  159. package/types/qchat/channel.d.ts +133 -0
  160. package/types/qchat/channel_category.d.ts +82 -0
  161. package/types/qchat/instance.d.ts +46 -0
  162. package/types/qchat/message.d.ts +110 -0
  163. package/types/qchat/role.d.ts +161 -0
  164. package/types/qchat/server.d.ts +168 -0
  165. package/types/qchat/system_notification.d.ts +39 -0
  166. package/types/qchat_def/attachment_def.d.ts +71 -0
  167. package/types/qchat_def/channel_def.d.ts +624 -0
  168. package/types/qchat_def/instance_def.d.ts +212 -0
  169. package/types/qchat_def/message_def.d.ts +477 -0
  170. package/types/qchat_def/public_def.d.ts +774 -0
  171. package/types/qchat_def/role_def.d.ts +430 -0
  172. package/types/qchat_def/server_def.d.ts +451 -0
  173. package/types/qchat_def/system_notification_def.d.ts +170 -0
  174. package/js/api/client.js.map +0 -1
  175. package/js/api/data_sync.js.map +0 -1
  176. package/js/api/friend.js.map +0 -1
  177. package/js/api/global.js.map +0 -1
  178. package/js/api/msglog.js.map +0 -1
  179. package/js/api/nos.js.map +0 -1
  180. package/js/api/online_session.js.map +0 -1
  181. package/js/api/pass_through_proxy.js.map +0 -1
  182. package/js/api/plugin.js.map +0 -1
  183. package/js/api/session.js.map +0 -1
  184. package/js/api/subscribe_event.js.map +0 -1
  185. package/js/api/super_team.js.map +0 -1
  186. package/js/api/sysmsg.js.map +0 -1
  187. package/js/api/talk.js.map +0 -1
  188. package/js/api/talkex.js +0 -115
  189. package/js/api/talkex.js.map +0 -1
  190. package/js/api/team.js.map +0 -1
  191. package/js/api/tool.js.map +0 -1
  192. package/js/api/user.js.map +0 -1
  193. package/js/def/client_def.js.map +0 -1
  194. package/js/def/data_sync_def.js.map +0 -1
  195. package/js/def/doc_trans_def.js.map +0 -1
  196. package/js/def/friend_def.js.map +0 -1
  197. package/js/def/global_def.js.map +0 -1
  198. package/js/def/msglog_def.js.map +0 -1
  199. package/js/def/nos_def.js.map +0 -1
  200. package/js/def/online_session_def.js.map +0 -1
  201. package/js/def/pass_through_proxy_def.js.map +0 -1
  202. package/js/def/session_def.js.map +0 -1
  203. package/js/def/subscribe_event_def.js.map +0 -1
  204. package/js/def/super_team_def.js.map +0 -1
  205. package/js/def/sysmsg_def.js.map +0 -1
  206. package/js/def/team_def.js.map +0 -1
  207. package/js/def/tool_def.js.map +0 -1
  208. package/js/def/user_def.js.map +0 -1
  209. package/js/nim.js +0 -72
  210. package/js/nim.js.map +0 -1
  211. package/types/api/data_sync.d.ts +0 -13
  212. package/types/def/nos_def.d.ts +0 -71
  213. package/types/def/subscribe_event_def.d.ts +0 -82
  214. package/types/def/talkex_def.d.ts +0 -111
  215. package/types/nim.d.ts +0 -36
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NIMMsgLog = void 0;
7
7
  const loader_1 = __importDefault(require("../loader"));
8
- const events_1 = __importDefault(require("events"));
9
- class NIMMsgLog extends events_1.default.EventEmitter {
8
+ const eventemitter3_1 = require("eventemitter3");
9
+ class NIMMsgLog extends eventemitter3_1.EventEmitter {
10
10
  constructor() {
11
11
  super();
12
12
  this.msglog = new loader_1.default.NIMMsgLog({ emit: this.emit.bind(this) });
@@ -19,14 +19,23 @@ class NIMMsgLog extends events_1.default.EventEmitter {
19
19
  * @param clientMsgId 客户端消息ID
20
20
  * @param jsonExtension json扩展参数(备用,目前不需要)
21
21
  * @param cb 查询本地消息的回调函数
22
- * @return bool 检查参数如果不符合要求则返回失败
22
+ * @return boolean 检查参数如果不符合要求则返回失败
23
23
  * @note
24
24
  * <pre>
25
25
  * 200:成功
26
26
  * </pre>
27
27
  */
28
28
  queryMsgByIDAysnc(clientMsgId, cb, jsonExtension) {
29
- return this.msglog.QueryMsgByIDAysnc(clientMsgId, cb, jsonExtension);
29
+ return new Promise((resolve) => {
30
+ if (!this.msglog.QueryMsgByIDAysnc(clientMsgId, (rescode, id, msg) => {
31
+ if (cb) {
32
+ cb(rescode, id, msg);
33
+ }
34
+ resolve([rescode, id, msg]);
35
+ }, jsonExtension)) {
36
+ resolve(null);
37
+ }
38
+ });
30
39
  }
31
40
  /** 查询本地消息
32
41
  * @param accid 查询id,account_id/uid或者tid
@@ -36,19 +45,28 @@ class NIMMsgLog extends events_1.default.EventEmitter {
36
45
  * 作为此次查询的定位点的消息历史的消息时间戳(上次查询最后一条消息的时间戳,按指定的时间的顺序起查,默认为逆序,2.4.0之前命名为last_name)
37
46
  * @param jsonExtension json扩展参数(备用,目前不需要)
38
47
  * @param cb 查询本地消息的回调函数
39
- * @return bool 检查参数如果不符合要求则返回失败
48
+ * @return boolean 检查参数如果不符合要求则返回失败
40
49
  * @note
41
50
  * <pre>
42
51
  * 200:成功
43
52
  * </pre>
44
53
  */
45
54
  queryMsgAsync(accid, to_type, limit_count, anchor_msg_time, cb, jsonExtension) {
46
- return this.msglog.QueryMsgAsync(accid, to_type, limit_count, anchor_msg_time, cb, jsonExtension);
55
+ return new Promise((resolve) => {
56
+ if (!this.msglog.QueryMsgAsync(accid, to_type, limit_count, anchor_msg_time, (rescode, id, to_type, result) => {
57
+ if (cb) {
58
+ cb(rescode, id, to_type, result);
59
+ }
60
+ resolve([rescode, id, to_type, result]);
61
+ }, jsonExtension)) {
62
+ resolve(null);
63
+ }
64
+ });
47
65
  }
48
66
  /** 在线查询消息(不包括系统消息)
49
67
  * @param param 查询参数
50
68
  * @param cb 在线查询消息的回调函数
51
- * @return bool 检查参数如果不符合要求则返回失败
69
+ * @return boolean 检查参数如果不符合要求则返回失败
52
70
  * @note
53
71
  * <pre>
54
72
  * 200:成功
@@ -57,12 +75,21 @@ class NIMMsgLog extends events_1.default.EventEmitter {
57
75
  * </pre>
58
76
  */
59
77
  queryMsgOnlineAsync(param, cb) {
60
- return this.msglog.QueryMsgOnlineAsync(param, cb);
78
+ return new Promise((resolve) => {
79
+ if (!this.msglog.QueryMsgOnlineAsync(param, (rescode, id, to_type, result) => {
80
+ if (cb) {
81
+ cb(rescode, id, to_type, result);
82
+ }
83
+ resolve([rescode, id, to_type, result]);
84
+ })) {
85
+ resolve(null);
86
+ }
87
+ });
61
88
  }
62
89
  /** 在线查询消息(不包括系统消息)
63
90
  * @param param 查询参数
64
91
  * @param cb 在线查询消息的回调函数
65
- * @return bool 检查参数如果不符合要求则返回失败
92
+ * @return boolean 检查参数如果不符合要求则返回失败
66
93
  * @note
67
94
  * <pre>
68
95
  * 200:成功
@@ -71,7 +98,16 @@ class NIMMsgLog extends events_1.default.EventEmitter {
71
98
  * </pre>
72
99
  */
73
100
  queryMsgByKeywordOnlineAsync(param, cb) {
74
- return this.msglog.QueryMsgByKeywordOnlineAsync(param, cb);
101
+ return new Promise((resolve) => {
102
+ if (!this.msglog.QueryMsgByKeywordOnlineAsync(param, (rescode, id, to_type, result) => {
103
+ if (cb) {
104
+ cb(rescode, id, to_type, result);
105
+ }
106
+ resolve([rescode, id, to_type, result]);
107
+ })) {
108
+ resolve(null);
109
+ }
110
+ });
75
111
  }
76
112
  /** 根据指定条件在一个会话中查询指定单个或多个类型的本地消息
77
113
  * @param to_type 会话类型,双人0,群组1 (nim_msglog_def.h)
@@ -84,40 +120,67 @@ class NIMMsgLog extends events_1.default.EventEmitter {
84
120
  * @param msgType 检索的消息类型
85
121
  * @param jsonExtension json扩展参数(备用,目前不需要)
86
122
  * @param cb 在线查询消息的回调函数
87
- * @return bool 检查参数如果不符合要求则返回失败
123
+ * @return boolean 检查参数如果不符合要求则返回失败
88
124
  * @note
89
125
  * <pre>
90
126
  * 200:成功
91
127
  * </pre>
92
128
  */
93
129
  queryMsgOfSpecifiedTypeInASessionAsync(to_type, id, limit_count, fromTime, endTime, endClientMsgId, reverse, msgType, cb, jsonExtension) {
94
- return this.msglog.QueryMsgOfSpecifiedTypeInASessionAsync(to_type, id, limit_count, fromTime, endTime, endClientMsgId, reverse, msgType, cb, jsonExtension);
130
+ return new Promise((resolve) => {
131
+ if (!this.msglog.QueryMsgOfSpecifiedTypeInASessionAsync(to_type, id, limit_count, fromTime, endTime, endClientMsgId, reverse, msgType, (rescode, id, to_type, result) => {
132
+ if (cb) {
133
+ cb(rescode, id, to_type, result);
134
+ }
135
+ resolve([rescode, id, to_type, result]);
136
+ }, jsonExtension)) {
137
+ resolve(null);
138
+ }
139
+ });
95
140
  }
96
141
  /** 根据指定条件查询本地消息,使用此接口可以完成全局搜索等功能,具体请参阅开发手册
97
142
  * @param param 查询参数
98
143
  * @param cb 在线查询消息的回调函数
99
- * @return bool 检查参数如果不符合要求则返回失败
144
+ * @return boolean 检查参数如果不符合要求则返回失败
100
145
  * @note
101
146
  * <pre>
102
147
  * 200:成功
103
148
  * </pre>
104
149
  */
105
150
  queryMsgByOptionsAsync(param, cb) {
106
- return this.msglog.QueryMsgByOptionsAsync(param, cb);
151
+ return new Promise((resolve) => {
152
+ if (!this.msglog.QueryMsgByOptionsAsync(param, (rescode, id, to_type, result) => {
153
+ if (cb) {
154
+ cb(rescode, id, to_type, result);
155
+ }
156
+ resolve([rescode, id, to_type, result]);
157
+ })) {
158
+ resolve(null);
159
+ }
160
+ });
107
161
  }
108
162
  /** 批量设置已读状态
109
163
  * @param accid 查询id,account_id/uid或者tid
110
164
  * @param to_type 会话类型,双人0,群组1 (见nim_msglog_def.h)
111
165
  * @param jsonExtension json扩展参数(备用,目前不需要)
112
166
  * @param cb 操作结果的回调函数
113
- * @return bool 检查参数如果不符合要求则返回失败
167
+ * @return boolean 检查参数如果不符合要求则返回失败
114
168
  * @note
115
169
  * <pre>
116
170
  * 200:成功
117
171
  * </pre>
118
172
  */
119
173
  batchStatusReadAsync(accid, to_type, cb, jsonExtension) {
120
- return this.msglog.BatchStatusReadAsync(accid, to_type, cb, jsonExtension);
174
+ return new Promise((resolve) => {
175
+ if (!this.msglog.BatchStatusReadAsync(accid, to_type, (rescode, uid, to_type) => {
176
+ if (cb) {
177
+ cb(rescode, uid, to_type);
178
+ }
179
+ resolve([rescode, uid, to_type]);
180
+ }, jsonExtension)) {
181
+ resolve(null);
182
+ }
183
+ });
121
184
  }
122
185
  /** 删除某个会话的全部聊天记录
123
186
  * @param accid 要删除会话的id,account_id/uid或者tid
@@ -125,42 +188,69 @@ class NIMMsgLog extends events_1.default.EventEmitter {
125
188
  * @param revert_by_query_online 是否可以通过服务端查询消息记录(含入库选项)进行恢复,true:是,false:否
126
189
  * @param cb 操作结果的回调函数
127
190
  * @param jsonExtension json扩展参数(备用,目前不需要)
128
- * @return bool 检查参数如果不符合要求则返回失败
191
+ * @return boolean 检查参数如果不符合要求则返回失败
129
192
  * @note
130
193
  * <pre>
131
194
  * 200:成功
132
195
  * </pre>
133
196
  */
134
197
  batchStatusDeleteAsync(accid, to_type, revert_by_query_online, cb, jsonExtension) {
135
- return this.msglog.BatchStatusDeleteAsync(accid, to_type, revert_by_query_online, cb, jsonExtension);
198
+ return new Promise((resolve) => {
199
+ if (!this.msglog.BatchStatusDeleteAsync(accid, to_type, revert_by_query_online, (rescode, uid, to_type) => {
200
+ if (cb) {
201
+ cb(rescode, uid, to_type);
202
+ }
203
+ resolve([rescode, uid, to_type]);
204
+ }, jsonExtension)) {
205
+ resolve(null);
206
+ }
207
+ });
136
208
  }
137
209
  /** 设置消息状态
138
210
  * @param msg_id 消息id
139
211
  * @param status 消息状态枚举值
140
212
  * @param jsonExtension json扩展参数(备用,目前不需要)
141
213
  * @param cb 操作结果的回调函数
142
- * @return bool 检查参数如果不符合要求则返回失败
214
+ * @return boolean 检查参数如果不符合要求则返回失败
143
215
  * @note
144
216
  * <pre>
145
217
  * 200:成功
146
218
  * </pre>
147
219
  */
148
220
  setStatusAsync(msg_id, status, cb, jsonExtension) {
149
- return this.msglog.SetStatusAsync(msg_id, status, cb, jsonExtension);
221
+ return new Promise((resolve) => {
222
+ if (!this.msglog.SetStatusAsync(msg_id, status, (rescode, msg_id) => {
223
+ if (cb) {
224
+ cb(rescode, msg_id);
225
+ }
226
+ resolve([rescode, msg_id]);
227
+ }, jsonExtension)) {
228
+ resolve(null);
229
+ }
230
+ });
150
231
  }
151
232
  /** 设置消息子状态
152
233
  * @param msg_id 消息id
153
234
  * @param status 消息子状态枚举值
154
235
  * @param jsonExtension json扩展参数(备用,目前不需要)
155
236
  * @param cb 操作结果的回调函数
156
- * @return bool 检查参数如果不符合要求则返回失败
237
+ * @return boolean 检查参数如果不符合要求则返回失败
157
238
  * @note
158
239
  * <pre>
159
240
  * 200:成功
160
241
  * </pre>
161
242
  */
162
243
  setSubStatusAsync(msg_id, status, cb, jsonExtension) {
163
- return this.msglog.SetSubStatusAsync(msg_id, status, cb, jsonExtension);
244
+ return new Promise((resolve) => {
245
+ if (!this.msglog.SetSubStatusAsync(msg_id, status, (rescode, msg_id) => {
246
+ if (cb) {
247
+ cb(rescode, msg_id);
248
+ }
249
+ resolve([rescode, msg_id]);
250
+ }, jsonExtension)) {
251
+ resolve(null);
252
+ }
253
+ });
164
254
  }
165
255
  /** 只往本地消息历史数据库里写入一条消息(如果已存在这条消息,则更新。通常是APP的本地自定义消息,并不会发给服务器)
166
256
  * @param talkId 会话id,对方的account id或者群组tid
@@ -169,14 +259,23 @@ class NIMMsgLog extends events_1.default.EventEmitter {
169
259
  * @param composeLastMsg 如果消息历史中有该会话的消息,是否将该会话最后一条消息随会话变更上报,true 为携带,否则不携带
170
260
  * @param excludeMsgType 如果 compose_last_msg = true,则可根据需要排除指定最后一条消息的类型
171
261
  * @param cb 操作结果的回调函数
172
- * @return bool 检查参数如果不符合要求则返回失败
262
+ * @return boolean 检查参数如果不符合要求则返回失败
173
263
  * @note
174
264
  * <pre>
175
265
  * 200:成功
176
266
  * </pre>
177
267
  */
178
268
  writeMsglogToLocalAsync(talkId, msg, needUpdateSession, composeLastMsg, excludeMsgType, cb) {
179
- return this.msglog.WriteMsglogToLocalAsync(talkId, msg, needUpdateSession, composeLastMsg, excludeMsgType, cb);
269
+ return new Promise((resolve) => {
270
+ if (!this.msglog.WriteMsglogToLocalAsync(talkId, msg, needUpdateSession, composeLastMsg, excludeMsgType, (rescode, msg_id) => {
271
+ if (cb) {
272
+ cb(rescode, msg_id);
273
+ }
274
+ resolve([rescode, msg_id]);
275
+ })) {
276
+ resolve(null);
277
+ }
278
+ });
180
279
  }
181
280
  /** 删除指定会话类型的所有消息
182
281
  * @param delSessions 是否删除会话
@@ -184,14 +283,23 @@ class NIMMsgLog extends events_1.default.EventEmitter {
184
283
  * @param revert_by_query_online 是否可以通过服务端查询消息记录(含入库选项)进行恢复,true:是,false:否
185
284
  * @param jsonExtension json扩展参数(备用,目前不需要)
186
285
  * @param cb 操作结果的回调函数
187
- * @return bool 检查参数如果不符合要求则返回失败
286
+ * @return boolean 检查参数如果不符合要求则返回失败
188
287
  * @note
189
288
  * <pre>
190
289
  * 200:成功
191
290
  * </pre>
192
291
  */
193
292
  deleteBySessionTypeAsync(delSessions, to_type, revert_by_query_online, cb, jsonExtension) {
194
- return this.msglog.DeleteBySessionTypeAsync(delSessions, to_type, revert_by_query_online, cb, jsonExtension);
293
+ return new Promise((resolve) => {
294
+ if (!this.msglog.DeleteBySessionTypeAsync(delSessions, to_type, revert_by_query_online, (rescode, msg_id, to_type) => {
295
+ if (cb) {
296
+ cb(rescode, msg_id, to_type);
297
+ }
298
+ resolve([rescode, msg_id, to_type]);
299
+ }, jsonExtension)) {
300
+ resolve(null);
301
+ }
302
+ });
195
303
  }
196
304
  /** 删除指定一条消息
197
305
  * @param session_id 会话id,对方的account id或者群组tid
@@ -199,14 +307,23 @@ class NIMMsgLog extends events_1.default.EventEmitter {
199
307
  * @param msg_id 消息id
200
308
  * @param jsonExtension json扩展参数(备用,目前不需要)
201
309
  * @param cb 操作结果的回调函数
202
- * @return bool 检查参数如果不符合要求则返回失败
310
+ * @return boolean 检查参数如果不符合要求则返回失败
203
311
  * @note
204
312
  * <pre>
205
313
  * 200:成功
206
314
  * </pre>
207
315
  */
208
316
  deleteAsync(session_id, to_type, msg_id, cb, jsonExtension) {
209
- return this.msglog.DeleteAsync(session_id, to_type, msg_id, cb, jsonExtension);
317
+ return new Promise((resolve) => {
318
+ if (!this.msglog.DeleteAsync(session_id, to_type, msg_id, (rescode, msg_id) => {
319
+ if (cb) {
320
+ cb(rescode, msg_id);
321
+ }
322
+ resolve([rescode, msg_id]);
323
+ }, jsonExtension)) {
324
+ resolve(null);
325
+ }
326
+ });
210
327
  }
211
328
  /** 删除全部消息历史
212
329
  * @param del_session 是否删除所有会话列表项(即全部最近联系人)。
@@ -216,14 +333,23 @@ class NIMMsgLog extends events_1.default.EventEmitter {
216
333
  * @param revert_by_query_online 是否可以通过服务端查询消息记录(含入库选项)进行恢复,true:是,false:否
217
334
  * @param jsonExtension json扩展参数(备用,目前不需要)
218
335
  * @param cb 操作结果的回调函数
219
- * @return bool 检查参数如果不符合要求则返回失败
336
+ * @return boolean 检查参数如果不符合要求则返回失败
220
337
  * @note
221
338
  * <pre>
222
339
  * 200:成功
223
340
  * </pre>
224
341
  */
225
342
  deleteAllAsync(del_session, revert_by_query_online, cb, jsonExtension) {
226
- return this.msglog.DeleteAllAsync(del_session, revert_by_query_online, cb, jsonExtension);
343
+ return new Promise((resolve) => {
344
+ if (!this.msglog.DeleteAllAsync(del_session, revert_by_query_online, (rescode) => {
345
+ if (cb) {
346
+ cb(rescode);
347
+ }
348
+ resolve([rescode]);
349
+ }, jsonExtension)) {
350
+ resolve(null);
351
+ }
352
+ });
227
353
  }
228
354
  /** 根据时间段删除部分会话的历史消息
229
355
  * @param session_id 要删除消息的会话ID
@@ -233,34 +359,50 @@ class NIMMsgLog extends events_1.default.EventEmitter {
233
359
  * @param timestamp2 单位ms timestamp2 与 timestamp1 组成一个时间段,SDK 内部会判断大小调整入参顺序
234
360
  * @param jsonExtension json扩展参数(备用,目前不需要)
235
361
  * @param cb 操作结果的回调函数
236
- * @return bool 检查参数如果不符合要求则返回失败
362
+ * @return boolean 检查参数如果不符合要求则返回失败
237
363
  * @note
238
364
  * <pre>
239
365
  * 200:成功
240
366
  * </pre>
241
367
  */
242
368
  deleteMsgByTimeAsync(session_id, to_type, revert_by_query_online, timestamp1, timestamp2, cb, jsonExtension) {
243
- return this.msglog.DeleteMsgByTimeAsync(session_id, to_type, revert_by_query_online, timestamp1, timestamp2, cb, jsonExtension);
369
+ return new Promise((resolve) => {
370
+ if (!this.msglog.DeleteMsgByTimeAsync(session_id, to_type, revert_by_query_online, timestamp1, timestamp2, (rescode) => {
371
+ if (cb) {
372
+ cb(rescode);
373
+ }
374
+ resolve([rescode]);
375
+ }, jsonExtension)) {
376
+ resolve(null);
377
+ }
378
+ });
244
379
  }
245
380
  /** 导出整个消息历史DB文件(不包括系统消息历史)
246
381
  * @param dst_path 导出时保存的目标全路径(UTF-8编码)。
247
382
  * @param jsonExtension json扩展参数(备用,目前不需要)
248
383
  * @param cb 操作结果的回调函数
249
- * @return bool 检查参数如果不符合要求则返回失败
384
+ * @return boolean 检查参数如果不符合要求则返回失败
250
385
  * @note
251
386
  * <pre>
252
387
  * 200:成功
253
388
  * </pre>
254
389
  */
255
390
  exportDbAsync(dst_path, cb, jsonExtension) {
256
- return this.msglog.ExportDbAsync(dst_path, cb, jsonExtension);
391
+ return new Promise((resolve) => {
392
+ this.msglog.ExportDbAsync(dst_path, (rescode) => {
393
+ if (cb) {
394
+ cb(rescode);
395
+ }
396
+ resolve([rescode]);
397
+ }, jsonExtension);
398
+ });
257
399
  }
258
400
  /** 导入消息历史DB文件(不包括系统消息历史)。先验证是否自己的消息历史文件和DB加密密钥(见nim_client_def.h里的kNIMDataBaseEncryptKey),如果验证不通过,则不导入。
259
401
  * @param src_path 导入源文件的全路径(UTF-8编码)。
260
402
  * @param jsonExtension json扩展参数(备用,目前不需要)
261
403
  * @param cb 操作结果的回调函数
262
404
  * @param prg_cb 导入进度的回调函数
263
- * @return bool 检查参数如果不符合要求则返回失败
405
+ * @return boolean 检查参数如果不符合要求则返回失败
264
406
  * @note
265
407
  * <pre>
266
408
  * 200:成功
@@ -269,7 +411,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
269
411
  * </pre>
270
412
  */
271
413
  importDbAsync(src_path, cb, prg_cb, jsonExtension) {
272
- return this.msglog.ImportDbAsync(src_path, cb, prg_cb, jsonExtension);
414
+ return new Promise((resolve) => {
415
+ this.msglog.ImportDbAsync(src_path, (rescode) => {
416
+ if (cb) {
417
+ cb(rescode);
418
+ }
419
+ resolve([rescode]);
420
+ }, prg_cb, jsonExtension);
421
+ });
273
422
  }
274
423
  /** 发送消息已读回执
275
424
  * @param msg 已读消息
@@ -284,18 +433,25 @@ class NIMMsgLog extends events_1.default.EventEmitter {
284
433
  * </pre>
285
434
  */
286
435
  sendReceiptAsync(msg, cb) {
287
- return this.msglog.SendReceiptAsync(msg, cb);
436
+ return new Promise((resolve) => {
437
+ this.msglog.SendReceiptAsync(msg, (result) => {
438
+ if (cb) {
439
+ cb(result);
440
+ }
441
+ resolve([result]);
442
+ });
443
+ });
288
444
  }
289
445
  /** 查询自己发送的消息是否被对方已读
290
446
  * @param msg 消息。
291
- * @return bool 是否被已读
447
+ * @return boolean 是否被已读
292
448
  */
293
449
  querySentMessageBeReaded(msg) {
294
450
  return this.msglog.QuerySentMessageBeReaded(msg);
295
451
  }
296
452
  /** 查询收到的消息是否已经发送过已读回执
297
453
  * @param msg 消息。
298
- * @return bool 是否已发送过
454
+ * @return boolean 是否已发送过
299
455
  */
300
456
  queryReceivedMsgReceiptSent(msg) {
301
457
  return this.msglog.QueryReceivedMsgReceiptSent(msg);
@@ -305,37 +461,51 @@ class NIMMsgLog extends events_1.default.EventEmitter {
305
461
  * @param local_ext 本地扩展字段内容
306
462
  * @param jsonExtension json扩展参数(备用,目前不需要)
307
463
  * @param cb 操作结果的回调函数
308
- * @return bool 检查参数如果不符合要求则返回失败
464
+ * @return boolean 检查参数如果不符合要求则返回失败
309
465
  * @note
310
466
  * <pre>
311
467
  * 200:成功
312
468
  * </pre>
313
469
  */
314
470
  updateLocalExtAsync(msg_id, local_ext, cb, jsonExtension) {
315
- return this.msglog.UpdateLocalExtAsync(msg_id, local_ext, cb, jsonExtension);
471
+ return new Promise((resolve) => {
472
+ this.msglog.UpdateLocalExtAsync(msg_id, local_ext, (rescode, local_ext) => {
473
+ if (cb) {
474
+ cb(rescode, local_ext);
475
+ }
476
+ resolve([rescode, local_ext]);
477
+ }, jsonExtension);
478
+ });
316
479
  }
317
480
  /** 全部未读消息历史标记为已读
318
481
  * @param jsonExtension json扩展参数(备用,目前不需要)
319
482
  * @param cb 操作结果的回调函数
320
- * @return bool 检查参数如果不符合要求则返回失败
483
+ * @return boolean 检查参数如果不符合要求则返回失败
321
484
  * @note
322
485
  * <pre>
323
486
  * 200:成功
324
487
  * </pre>
325
488
  */
326
489
  readAllAsync(cb, jsonExtension) {
327
- return this.msglog.ReadAllAsync(cb, jsonExtension);
490
+ return new Promise((resolve) => {
491
+ this.msglog.ReadAllAsync((rescode) => {
492
+ if (cb) {
493
+ cb(rescode);
494
+ }
495
+ resolve([rescode]);
496
+ }, jsonExtension);
497
+ });
328
498
  }
329
499
  /** 导出本地消息记录到云端
330
500
  * @param export_info 导出需要的参数参考LogsBackupExportInfo定义
331
- * @return bool false : 当前有导入/导出操作正在进行中
501
+ * @return boolean false : 当前有导入/导出操作正在进行中
332
502
  */
333
503
  exportBackupToRemote(export_info) {
334
504
  return this.msglog.ExportBackupToRemote(export_info);
335
505
  }
336
506
  /** 导入已备份在云端的消息记录
337
507
  * @param import_info 导入需要的参数参考LogsBackupImportInfo定义
338
- * @return bool false : 当前有导入/导出操作正在进行中
508
+ * @return boolean false : 当前有导入/导出操作正在进行中
339
509
  */
340
510
  importBackupToRemote(export_info) {
341
511
  return this.msglog.ImportBackupToRemote(export_info);
@@ -364,7 +534,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
364
534
  * </pre>
365
535
  */
366
536
  deleteHistoryOnlineAsync(accid, del_remote, jsonExtension, cb) {
367
- return this.msglog.DeleteHistoryOnlineAsync(accid, del_remote, jsonExtension, cb);
537
+ return new Promise((resolve) => {
538
+ this.msglog.DeleteHistoryOnlineAsync(accid, del_remote, jsonExtension, (rescode, accid) => {
539
+ if (cb) {
540
+ cb(rescode, accid);
541
+ }
542
+ resolve([rescode, accid]);
543
+ });
544
+ });
368
545
  }
369
546
  /** 删除某一会话的云端的历史记录[v8.0.0]
370
547
  * @param accid 对方的accid(p2p:accid team:tid)
@@ -376,7 +553,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
376
553
  * @note 错误码 200:成功
377
554
  */
378
555
  deleteHistoryOnlineAsyncEx(accid, to_type, needs_notify_self, jsonExtension, cb) {
379
- return this.msglog.DeleteHistoryOnlineAsyncEx(accid, to_type, needs_notify_self, jsonExtension, cb);
556
+ return new Promise((resolve) => {
557
+ this.msglog.DeleteHistoryOnlineAsyncEx(accid, to_type, needs_notify_self, jsonExtension, (rescode, accid, to_type, timestamp, jsonExtension) => {
558
+ if (cb) {
559
+ cb(rescode, accid, to_type, timestamp, jsonExtension);
560
+ }
561
+ resolve([rescode, accid, to_type, timestamp, jsonExtension]);
562
+ });
563
+ });
380
564
  }
381
565
  /** 单向删除某条消息记录(同时删除本地与云端)
382
566
  * @param msg 要删除的消息
@@ -389,7 +573,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
389
573
  * </pre>
390
574
  */
391
575
  deleteMessageSelfAsync(msg, ext, cb) {
392
- return this.msglog.DeleteMessageSelfAsync(msg, ext, cb);
576
+ return new Promise((resolve) => {
577
+ this.msglog.DeleteMessageSelfAsync(msg, ext, (rescode) => {
578
+ if (cb) {
579
+ cb(rescode);
580
+ }
581
+ resolve([rescode]);
582
+ });
583
+ });
393
584
  }
394
585
  /** 查询某条消息是否为thread聊天的根消息
395
586
  * @param client_id 要查询的消息的客户端ID
@@ -401,7 +592,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
401
592
  * </pre>
402
593
  */
403
594
  queryMessageIsThreadRoot(client_id, cb) {
404
- return this.msglog.QueryMessageIsThreadRoot(client_id, cb);
595
+ return new Promise((resolve) => {
596
+ this.msglog.QueryMessageIsThreadRoot(client_id, (rescode, client_id, is_thread_root) => {
597
+ if (cb) {
598
+ cb(rescode, client_id, is_thread_root);
599
+ }
600
+ resolve([rescode, client_id, is_thread_root]);
601
+ });
602
+ });
405
603
  }
406
604
  /** 查询某条消息的具体内容一般用在thread talk 场景中
407
605
  * @param param 要查询的消息的相关参数,可以在msglog.threadinfo中得到
@@ -413,7 +611,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
413
611
  * </pre>
414
612
  */
415
613
  queryMessageOnline(param, cb) {
416
- return this.msglog.QueryMessageOnline(param, cb);
614
+ return new Promise((resolve) => {
615
+ this.msglog.QueryMessageOnline(param, (rescode, param, msg) => {
616
+ if (cb) {
617
+ cb(rescode, param, msg);
618
+ }
619
+ resolve([rescode, param, msg]);
620
+ });
621
+ });
417
622
  }
418
623
  /** 分页查询thread talk消息历史
419
624
  * @param msg 要查询的消息
@@ -426,7 +631,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
426
631
  * </pre>
427
632
  */
428
633
  queryThreadHistoryMsg(msg, param, cb) {
429
- return this.msglog.QueryThreadHistoryMsg(msg, param, cb);
634
+ return new Promise((resolve) => {
635
+ this.msglog.QueryThreadHistoryMsg(msg, param, (rescode, root_msg, total, last_msg_time, msg_array) => {
636
+ if (cb) {
637
+ cb(rescode, root_msg, total, last_msg_time, msg_array);
638
+ }
639
+ resolve([rescode, root_msg, total, last_msg_time, msg_array]);
640
+ });
641
+ });
430
642
  }
431
643
  /** 在线全文检索
432
644
  * @param param 全文检索参数
@@ -438,7 +650,14 @@ class NIMMsgLog extends events_1.default.EventEmitter {
438
650
  * </pre>
439
651
  */
440
652
  fullTextSearchOnlineAsync(param, cb) {
441
- return this.msglog.FullTextSearchOnlineAsync(param, cb);
653
+ return new Promise((resolve) => {
654
+ this.msglog.FullTextSearchOnlineAsync(param, (rescode, result) => {
655
+ if (cb) {
656
+ cb(rescode, result);
657
+ }
658
+ resolve([rescode, result]);
659
+ });
660
+ });
442
661
  }
443
662
  }
444
663
  exports.NIMMsgLog = NIMMsgLog;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msglog.js","sourceRoot":"","sources":["../../ts/nim/msglog.ts"],"names":[],"mappings":"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"}