@smart-link/im-base 1.0.1

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 (185) hide show
  1. package/REMAD.md +2 -0
  2. package/dist/DBAdapter.d.ts +60 -0
  3. package/dist/DBAdapter.js +151 -0
  4. package/dist/DBAdapter.js.map +1 -0
  5. package/dist/ImManager.d.ts +116 -0
  6. package/dist/ImManager.js +400 -0
  7. package/dist/ImManager.js.map +1 -0
  8. package/dist/api/api.config.d.ts +35 -0
  9. package/dist/api/api.config.js +40 -0
  10. package/dist/api/api.config.js.map +1 -0
  11. package/dist/api/index.d.ts +32 -0
  12. package/dist/api/index.js +29 -0
  13. package/dist/api/index.js.map +1 -0
  14. package/dist/constants.d.ts +192 -0
  15. package/dist/constants.js +181 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/db/indexdb/index.d.ts +82 -0
  18. package/dist/db/indexdb/index.js +591 -0
  19. package/dist/db/indexdb/index.js.map +1 -0
  20. package/dist/db/indexdb/indexdb.config.d.ts +18 -0
  21. package/dist/db/indexdb/indexdb.config.js +117 -0
  22. package/dist/db/indexdb/indexdb.config.js.map +1 -0
  23. package/dist/db/sqlite/index.d.ts +65 -0
  24. package/dist/db/sqlite/index.js +687 -0
  25. package/dist/db/sqlite/index.js.map +1 -0
  26. package/dist/db/sqlite/scripts/db-script-1.0.0.d.ts +2 -0
  27. package/dist/db/sqlite/scripts/db-script-1.0.0.js +77 -0
  28. package/dist/db/sqlite/scripts/db-script-1.0.0.js.map +1 -0
  29. package/dist/db/sqlite/scripts/db-script-1.0.1.d.ts +2 -0
  30. package/dist/db/sqlite/scripts/db-script-1.0.1.js +7 -0
  31. package/dist/db/sqlite/scripts/db-script-1.0.1.js.map +1 -0
  32. package/dist/db/sqlite/sqlite.config.d.ts +11 -0
  33. package/dist/db/sqlite/sqlite.config.js +24 -0
  34. package/dist/db/sqlite/sqlite.config.js.map +1 -0
  35. package/dist/index.d.ts +13 -0
  36. package/dist/index.js +39 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/interface.d.ts +386 -0
  39. package/dist/interface.js +3 -0
  40. package/dist/interface.js.map +1 -0
  41. package/dist/locales/en/im.d.ts +3 -0
  42. package/dist/locales/en/im.js +305 -0
  43. package/dist/locales/en/im.js.map +1 -0
  44. package/dist/locales/index.d.ts +4 -0
  45. package/dist/locales/index.js +28 -0
  46. package/dist/locales/index.js.map +1 -0
  47. package/dist/locales/lao/im.d.ts +3 -0
  48. package/dist/locales/lao/im.js +305 -0
  49. package/dist/locales/lao/im.js.map +1 -0
  50. package/dist/locales/zh/im.d.ts +303 -0
  51. package/dist/locales/zh/im.js +307 -0
  52. package/dist/locales/zh/im.js.map +1 -0
  53. package/dist/slice/call/call.action.d.ts +1 -0
  54. package/dist/slice/call/call.action.js +518 -0
  55. package/dist/slice/call/call.action.js.map +1 -0
  56. package/dist/slice/call/call.slice.d.ts +29 -0
  57. package/dist/slice/call/call.slice.js +107 -0
  58. package/dist/slice/call/call.slice.js.map +1 -0
  59. package/dist/slice/collection/collection.action.d.ts +4 -0
  60. package/dist/slice/collection/collection.action.js +28 -0
  61. package/dist/slice/collection/collection.action.js.map +1 -0
  62. package/dist/slice/collection/collection.slice.d.ts +10 -0
  63. package/dist/slice/collection/collection.slice.js +33 -0
  64. package/dist/slice/collection/collection.slice.js.map +1 -0
  65. package/dist/slice/collection/index.d.ts +8 -0
  66. package/dist/slice/collection/index.js +30 -0
  67. package/dist/slice/collection/index.js.map +1 -0
  68. package/dist/slice/conversation/conversation.action.d.ts +47 -0
  69. package/dist/slice/conversation/conversation.action.js +507 -0
  70. package/dist/slice/conversation/conversation.action.js.map +1 -0
  71. package/dist/slice/conversation/conversation.slice.d.ts +39 -0
  72. package/dist/slice/conversation/conversation.slice.js +79 -0
  73. package/dist/slice/conversation/conversation.slice.js.map +1 -0
  74. package/dist/slice/conversation/index.d.ts +60 -0
  75. package/dist/slice/conversation/index.js +30 -0
  76. package/dist/slice/conversation/index.js.map +1 -0
  77. package/dist/slice/forward/forward.action.d.ts +8 -0
  78. package/dist/slice/forward/forward.action.js +100 -0
  79. package/dist/slice/forward/forward.action.js.map +1 -0
  80. package/dist/slice/forward/forward.slice.d.ts +17 -0
  81. package/dist/slice/forward/forward.slice.js +29 -0
  82. package/dist/slice/forward/forward.slice.js.map +1 -0
  83. package/dist/slice/forward/index.d.ts +11 -0
  84. package/dist/slice/forward/index.js +30 -0
  85. package/dist/slice/forward/index.js.map +1 -0
  86. package/dist/slice/getState.d.ts +8 -0
  87. package/dist/slice/getState.js +12 -0
  88. package/dist/slice/getState.js.map +1 -0
  89. package/dist/slice/group/group.action.d.ts +2 -0
  90. package/dist/slice/group/group.action.js +24 -0
  91. package/dist/slice/group/group.action.js.map +1 -0
  92. package/dist/slice/group/group.slice.d.ts +10 -0
  93. package/dist/slice/group/group.slice.js +33 -0
  94. package/dist/slice/group/group.slice.js.map +1 -0
  95. package/dist/slice/group/index.d.ts +8 -0
  96. package/dist/slice/group/index.js +32 -0
  97. package/dist/slice/group/index.js.map +1 -0
  98. package/dist/slice/index.d.ts +28 -0
  99. package/dist/slice/index.js +60 -0
  100. package/dist/slice/index.js.map +1 -0
  101. package/dist/slice/message/index.d.ts +47 -0
  102. package/dist/slice/message/index.js +31 -0
  103. package/dist/slice/message/index.js.map +1 -0
  104. package/dist/slice/message/message.action.d.ts +16 -0
  105. package/dist/slice/message/message.action.js +269 -0
  106. package/dist/slice/message/message.action.js.map +1 -0
  107. package/dist/slice/message/message.panel.action.d.ts +23 -0
  108. package/dist/slice/message/message.panel.action.js +234 -0
  109. package/dist/slice/message/message.panel.action.js.map +1 -0
  110. package/dist/slice/message/message.slice.d.ts +66 -0
  111. package/dist/slice/message/message.slice.js +119 -0
  112. package/dist/slice/message/message.slice.js.map +1 -0
  113. package/dist/slice/setting/index.d.ts +20 -0
  114. package/dist/slice/setting/index.js +31 -0
  115. package/dist/slice/setting/index.js.map +1 -0
  116. package/dist/slice/setting/setting.action.d.ts +8 -0
  117. package/dist/slice/setting/setting.action.js +94 -0
  118. package/dist/slice/setting/setting.action.js.map +1 -0
  119. package/dist/slice/setting/setting.slice.d.ts +18 -0
  120. package/dist/slice/setting/setting.slice.js +64 -0
  121. package/dist/slice/setting/setting.slice.js.map +1 -0
  122. package/dist/socket/emitter-call.d.ts +1 -0
  123. package/dist/socket/emitter-call.js +290 -0
  124. package/dist/socket/emitter-call.js.map +1 -0
  125. package/dist/socket/emitter-message.d.ts +15 -0
  126. package/dist/socket/emitter-message.js +341 -0
  127. package/dist/socket/emitter-message.js.map +1 -0
  128. package/dist/socket/listener/busi-notify.d.ts +3 -0
  129. package/dist/socket/listener/busi-notify.js +49 -0
  130. package/dist/socket/listener/busi-notify.js.map +1 -0
  131. package/dist/socket/listener/c2c.d.ts +5 -0
  132. package/dist/socket/listener/c2c.js +95 -0
  133. package/dist/socket/listener/c2c.js.map +1 -0
  134. package/dist/socket/listener/c2g.d.ts +4 -0
  135. package/dist/socket/listener/c2g.js +35 -0
  136. package/dist/socket/listener/c2g.js.map +1 -0
  137. package/dist/socket/listener/conversation.d.ts +3 -0
  138. package/dist/socket/listener/conversation.js +83 -0
  139. package/dist/socket/listener/conversation.js.map +1 -0
  140. package/dist/socket/listener/group-operate.d.ts +13 -0
  141. package/dist/socket/listener/group-operate.js +102 -0
  142. package/dist/socket/listener/group-operate.js.map +1 -0
  143. package/dist/socket/listener/index.d.ts +33 -0
  144. package/dist/socket/listener/index.js +33 -0
  145. package/dist/socket/listener/index.js.map +1 -0
  146. package/dist/socket/listener/one-2-one-call.d.ts +1 -0
  147. package/dist/socket/listener/one-2-one-call.js +200 -0
  148. package/dist/socket/listener/one-2-one-call.js.map +1 -0
  149. package/dist/socket/listener/session.d.ts +8 -0
  150. package/dist/socket/listener/session.js +91 -0
  151. package/dist/socket/listener/session.js.map +1 -0
  152. package/dist/socket/message-handler.d.ts +27 -0
  153. package/dist/socket/message-handler.js +436 -0
  154. package/dist/socket/message-handler.js.map +1 -0
  155. package/dist/socket/sync-subscribe.d.ts +8 -0
  156. package/dist/socket/sync-subscribe.js +408 -0
  157. package/dist/socket/sync-subscribe.js.map +1 -0
  158. package/dist/utils/carousel-lock.d.ts +7 -0
  159. package/dist/utils/carousel-lock.js +35 -0
  160. package/dist/utils/carousel-lock.js.map +1 -0
  161. package/dist/utils/conversation.d.ts +9 -0
  162. package/dist/utils/conversation.js +58 -0
  163. package/dist/utils/conversation.js.map +1 -0
  164. package/dist/utils/file.d.ts +3 -0
  165. package/dist/utils/file.js +53 -0
  166. package/dist/utils/file.js.map +1 -0
  167. package/dist/utils/guid.d.ts +1 -0
  168. package/dist/utils/guid.js +15 -0
  169. package/dist/utils/guid.js.map +1 -0
  170. package/dist/utils/message.d.ts +14 -0
  171. package/dist/utils/message.js +242 -0
  172. package/dist/utils/message.js.map +1 -0
  173. package/dist/utils/request.d.ts +41 -0
  174. package/dist/utils/request.js +72 -0
  175. package/dist/utils/request.js.map +1 -0
  176. package/dist/utils/time.d.ts +6 -0
  177. package/dist/utils/time.js +45 -0
  178. package/dist/utils/time.js.map +1 -0
  179. package/dist/utils/url.d.ts +1 -0
  180. package/dist/utils/url.js +22 -0
  181. package/dist/utils/url.js.map +1 -0
  182. package/dist/utils/version.d.ts +1 -0
  183. package/dist/utils/version.js +15 -0
  184. package/dist/utils/version.js.map +1 -0
  185. package/package.json +35 -0
package/REMAD.md ADDED
@@ -0,0 +1,2 @@
1
+ # IM 基础包
2
+ 包含socket.io客户端消息通信,数据存储适配,支持rn移动端和web端
@@ -0,0 +1,60 @@
1
+ import { ConversationType } from './constants';
2
+ import { IAvatar, ICollection, IConversation, IDBQueryRange, IDbStorage, IMessage, IMessageQuery, IMessageRange, IMessageSubscribe, IPage, IReceiptBack, IResource } from './interface';
3
+ declare class DBAdapter {
4
+ constructor(storage: IDbStorage);
5
+ storage: IDbStorage;
6
+ createStores(userId: string): Promise<void>;
7
+ getAvatar(id: string): Promise<IAvatar | null>;
8
+ insertAvatar(avatar: IAvatar): Promise<void>;
9
+ updateAvatar(avatar: IAvatar): Promise<void>;
10
+ selectAvatar(): Promise<IAvatar[]>;
11
+ cleanConversations(): Promise<void>;
12
+ insertConversation(conversation: Partial<IConversation>): Promise<void>;
13
+ updateConversationById(conversation: Partial<IConversation>): Promise<void>;
14
+ selectConversationById(id: string): Promise<IConversation | null>;
15
+ selectConversationByType(type?: ConversationType): Promise<IConversation[]>;
16
+ selectConversations(): Promise<IConversation[]>;
17
+ deleteConversation(id: string): Promise<void>;
18
+ insertMessage(message: IMessage): Promise<void>;
19
+ updateMessage(message: Partial<IMessage>): Promise<void>;
20
+ updateMessageStatus(message: Pick<IMessage, 'messageSeq' | 'messageStatus'>): Promise<void>;
21
+ selectMessage(cond: Partial<IMessage>, map?: boolean): Promise<IMessage[]>;
22
+ selectRangeMessage(cond: IMessageRange): Promise<IMessage[]>;
23
+ selectAfterMessages(cond: IDBQueryRange & Partial<IMessage>): Promise<IMessage[]>;
24
+ selectBeforeMessages(cond: IDBQueryRange & Partial<IMessage>): Promise<IMessage[]>;
25
+ selectMessageForBackup(cond: {
26
+ messageSeq?: string;
27
+ } & IPage): Promise<{
28
+ data: string[];
29
+ lastMessageSeq: string;
30
+ }>;
31
+ countMessageAfterSeq(messageSeq?: string): Promise<number>;
32
+ existMessage(messageSeq: string): Promise<boolean>;
33
+ deleteMessageByPK(messageSeq: string): Promise<void>;
34
+ deleteMessageByPKBatch(messageSeqs: string[]): Promise<void>;
35
+ insertMessageEmitting(message: IMessage): Promise<void>;
36
+ updateMyMessageStatus(message: Partial<IMessage>): Promise<void>;
37
+ updateMessageEmitting(message: Partial<IMessage>): Promise<void>;
38
+ deleteMessageEmittingByPK(messageSeq: string): Promise<void>;
39
+ deleteMessageEmittingByPKBatch(messageSeqs: string[]): Promise<void>;
40
+ selectMessageEmitting(cond: Partial<IMessage>, map?: boolean): Promise<IMessage[]>;
41
+ selectConversationMessageCount(keyword: string): Promise<{
42
+ conversationId: string;
43
+ count: number;
44
+ }[]>;
45
+ searchMessages(cond: IMessageQuery): Promise<IMessage[]>;
46
+ addReceiptBackList(messageSeq: string, receiptBack: IReceiptBack): Promise<IMessage | undefined>;
47
+ deleteConversationMessageEmitting(conversationId: string): Promise<void>;
48
+ deleteConversationMessage(conversationId: string): Promise<void>;
49
+ isCollection(messageSeq: string): Promise<boolean>;
50
+ insertCollection(collection: ICollection): Promise<void>;
51
+ selectCollections(keyword: string): Promise<ICollection[]>;
52
+ insertResource(resource: IResource): Promise<void>;
53
+ updateResource(resource: IResource): Promise<void>;
54
+ selectResource(cond: Partial<IResource>): Promise<IResource[]>;
55
+ insertOrUpdateSubscribeMessageSeq(subscribe: IMessageSubscribe): Promise<void>;
56
+ selectSubscribeMessageSeq(cond: Partial<IMessageSubscribe>): Promise<IMessageSubscribe[]>;
57
+ deleteSubscribeMessageSeq(subscribeId: string): Promise<void>;
58
+ close(): void;
59
+ }
60
+ export default DBAdapter;
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class DBAdapter {
4
+ constructor(storage) {
5
+ this.storage = storage;
6
+ }
7
+ // 创建数据库表
8
+ createStores(userId) {
9
+ return this.storage.createStores(userId);
10
+ }
11
+ // 头像操作
12
+ getAvatar(id) {
13
+ return this.storage.getAvatar(id);
14
+ }
15
+ insertAvatar(avatar) {
16
+ return this.storage.insertAvatar(avatar);
17
+ }
18
+ updateAvatar(avatar) {
19
+ return this.storage.updateAvatar(avatar);
20
+ }
21
+ selectAvatar() {
22
+ return this.storage.selectAvatar();
23
+ }
24
+ // 会话操作
25
+ cleanConversations() {
26
+ return this.storage.cleanConversations();
27
+ }
28
+ insertConversation(conversation) {
29
+ return this.storage.insertConversation(conversation);
30
+ }
31
+ updateConversationById(conversation) {
32
+ return this.storage.updateConversationById(conversation);
33
+ }
34
+ selectConversationById(id) {
35
+ return this.storage.selectConversationById(id);
36
+ }
37
+ selectConversationByType(type) {
38
+ return this.storage.selectConversationByType(type);
39
+ }
40
+ selectConversations() {
41
+ return this.storage.selectConversations();
42
+ }
43
+ deleteConversation(id) {
44
+ return this.storage.deleteConversation(id);
45
+ }
46
+ // 消息操作
47
+ insertMessage(message) {
48
+ return this.storage.insertMessage(message);
49
+ }
50
+ updateMessage(message) {
51
+ return this.storage.updateMessage(message);
52
+ }
53
+ updateMessageStatus(message) {
54
+ return this.storage.updateMessageStatus(message);
55
+ }
56
+ selectMessage(cond, map = true) {
57
+ return this.storage.selectMessage(cond, map);
58
+ }
59
+ selectRangeMessage(cond) {
60
+ return this.storage.selectRangeMessage(cond);
61
+ }
62
+ selectAfterMessages(cond) {
63
+ return this.storage.selectBeforeMessages(cond, true);
64
+ }
65
+ selectBeforeMessages(cond) {
66
+ return this.storage.selectBeforeMessages(cond);
67
+ }
68
+ selectMessageForBackup(cond) {
69
+ return this.storage.selectMessageForBackup(cond);
70
+ }
71
+ countMessageAfterSeq(messageSeq) {
72
+ return this.storage.countMessageAfterSeq(messageSeq);
73
+ }
74
+ existMessage(messageSeq) {
75
+ return this.storage.existMessage(messageSeq);
76
+ }
77
+ deleteMessageByPK(messageSeq) {
78
+ return this.storage.deleteMessageByPK(messageSeq);
79
+ }
80
+ deleteMessageByPKBatch(messageSeqs) {
81
+ return this.storage.deleteMessageByPKBatch(messageSeqs);
82
+ }
83
+ insertMessageEmitting(message) {
84
+ return this.storage.insertMessageEmitting(message);
85
+ }
86
+ updateMyMessageStatus(message) {
87
+ return this.storage.updateMyMessageStatus(message);
88
+ }
89
+ updateMessageEmitting(message) {
90
+ return this.storage.updateMessageEmitting(message);
91
+ }
92
+ deleteMessageEmittingByPK(messageSeq) {
93
+ return this.storage.deleteMessageEmittingByPK(messageSeq);
94
+ }
95
+ deleteMessageEmittingByPKBatch(messageSeqs) {
96
+ return this.storage.deleteMessageEmittingByPKBatch(messageSeqs);
97
+ }
98
+ selectMessageEmitting(cond, map = true) {
99
+ return this.storage.selectMessageEmitting(cond, map);
100
+ }
101
+ selectConversationMessageCount(keyword) {
102
+ return this.storage.selectConversationMessageCount(keyword);
103
+ }
104
+ searchMessages(cond) {
105
+ return this.storage.searchMessages(cond);
106
+ }
107
+ addReceiptBackList(messageSeq, receiptBack) {
108
+ return this.storage.addReceiptBackList(messageSeq, receiptBack);
109
+ }
110
+ deleteConversationMessageEmitting(conversationId) {
111
+ return this.storage.deleteConversationMessageEmitting(conversationId);
112
+ }
113
+ deleteConversationMessage(conversationId) {
114
+ return this.storage.deleteConversationMessage(conversationId);
115
+ }
116
+ // 收藏操作
117
+ isCollection(messageSeq) {
118
+ return this.storage.isCollection(messageSeq);
119
+ }
120
+ insertCollection(collection) {
121
+ return this.storage.insertCollection(collection);
122
+ }
123
+ selectCollections(keyword) {
124
+ return this.storage.selectCollections(keyword);
125
+ }
126
+ // 资源操作
127
+ insertResource(resource) {
128
+ return this.storage.insertResource(resource);
129
+ }
130
+ updateResource(resource) {
131
+ return this.storage.updateResource(resource);
132
+ }
133
+ selectResource(cond) {
134
+ return this.storage.selectResource(cond);
135
+ }
136
+ // 订阅消息操作
137
+ insertOrUpdateSubscribeMessageSeq(subscribe) {
138
+ return this.storage.insertOrUpdateSubscribeMessageSeq(subscribe);
139
+ }
140
+ selectSubscribeMessageSeq(cond) {
141
+ return this.storage.selectSubscribeMessageSeq(cond);
142
+ }
143
+ deleteSubscribeMessageSeq(subscribeId) {
144
+ return this.storage.deleteSubscribeMessageSeq(subscribeId);
145
+ }
146
+ close() {
147
+ return this.storage.close();
148
+ }
149
+ }
150
+ exports.default = DBAdapter;
151
+ //# sourceMappingURL=DBAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DBAdapter.js","sourceRoot":"","sources":["../src/DBAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import { Socket } from 'socket.io-client';
2
+ import { PayloadType, Platform } from './constants';
3
+ import DBAdapter from './DBAdapter';
4
+ import { IAvatar, IConversation, IMessage, IMessageQuery, IChatGroup, IUser, IPayload, RefObject, SocketStore, Storage, SyncQueue, ICollection, IResource, IDownloadOptions } from './interface';
5
+ import { ImLocaleKey } from './locales';
6
+ type DefaultAvatars = Record<'MAN' | 'WOMAN' | 'GROUP' | 'BUSI_NOTIFY' | 'EMPTY', any>;
7
+ export interface IMSocketOptions {
8
+ user: IUser;
9
+ db: DBAdapter;
10
+ server: string;
11
+ namespace: string;
12
+ store: SocketStore;
13
+ storage: Storage;
14
+ lastSyncTime?: number;
15
+ undoLimitTime?: number;
16
+ defaultAvatars?: DefaultAvatars;
17
+ platform: Platform;
18
+ t: (key: ImLocaleKey, data?: any) => string;
19
+ uploadFile: (file: IPayload, onProgress: (o: {
20
+ loaded: number;
21
+ total: number;
22
+ }) => void) => Promise<string>;
23
+ beforeUpload?: (payload: IPayload, payloadType: PayloadType) => Promise<IPayload>;
24
+ toast?: (message: string, type: 'success' | 'fail' | 'info') => void;
25
+ download: (options: IDownloadOptions) => Promise<string>;
26
+ logout?: () => Promise<void>;
27
+ scrollToLatest: (animated?: boolean) => void;
28
+ scrollTo: (messageSeq: string, animated?: boolean) => void;
29
+ }
30
+ declare class ImManager {
31
+ db: DBAdapter;
32
+ storage: Storage;
33
+ store: SocketStore;
34
+ private network?;
35
+ socket?: Socket;
36
+ user: IUser;
37
+ server: string;
38
+ namespace: string;
39
+ defaultAvatars?: DefaultAvatars;
40
+ t: (key: ImLocaleKey, data?: any) => string;
41
+ syncQueries: SyncQueue[];
42
+ avatarsMap: Record<string, string>;
43
+ resourceMap: Record<string, string>;
44
+ platform: Platform;
45
+ LAST_SYNC_TIME_LIMIT: number;
46
+ undoLimitTime: number;
47
+ flatListRef?: RefObject;
48
+ inputRef?: RefObject;
49
+ beforeUpload?: IMSocketOptions['beforeUpload'];
50
+ uploadFile: IMSocketOptions['uploadFile'];
51
+ download: IMSocketOptions['download'];
52
+ toast: IMSocketOptions['toast'];
53
+ scrollToLatest: IMSocketOptions['scrollToLatest'];
54
+ scrollTo: IMSocketOptions['scrollTo'];
55
+ logout?: () => Promise<void>;
56
+ _destroyed: boolean;
57
+ constructor({ db, user, store, storage, lastSyncTime, undoLimitTime, defaultAvatars, platform, t, server, namespace, uploadFile, beforeUpload, download, toast, logout, scrollTo, scrollToLatest, }: IMSocketOptions);
58
+ init(): Promise<void>;
59
+ newSocket(): void;
60
+ bindSocketListener(): void;
61
+ syncMessage(): Promise<void>;
62
+ setNetwork(network: boolean): void;
63
+ getNetwork(): boolean | undefined;
64
+ emit(event: string, data?: {}, retryCount?: number): Promise<any>;
65
+ emitNoTips(event: string, data?: {}): Promise<unknown> | undefined;
66
+ disconnect(): void;
67
+ reconnect(): void;
68
+ mulClientLoginKickOut(): Promise<void>;
69
+ cleanSyncFlag(): void;
70
+ setFlatListRef(ref: RefObject): void;
71
+ setInputRef(ref: RefObject): void;
72
+ initResource(): void;
73
+ updateResource(resource: IResource): Promise<void>;
74
+ loadResourceFromCache(url: string): Promise<string | undefined>;
75
+ updateAvatar(avatar: IAvatar): Promise<void>;
76
+ loadAvatarFromCache(id: string): Promise<string | undefined>;
77
+ /**
78
+ * 会话操作 ---start
79
+ */
80
+ markRead(conversation: IConversation): void;
81
+ markUnread(conversation: IConversation): void;
82
+ deleteConversation(conversation: IConversation): void;
83
+ topOn(conversation: IConversation): void;
84
+ topOff(conversation: IConversation): void;
85
+ noDisturbOn(conversation: IConversation): void;
86
+ noDisturbOff(conversation: IConversation): void;
87
+ initConversation(conversation: IConversation): void;
88
+ initUserConversation(user: IUser): Promise<void>;
89
+ initSearchConversation(conversationId: string, messageSeq: string): Promise<void>;
90
+ initChatGroupConversation(chatGroup: IChatGroup): Promise<void>;
91
+ leaveConversation(): void;
92
+ /**
93
+ * 消息操作 ---start
94
+ */
95
+ deleteMessage(message: IMessage): Promise<void>;
96
+ replyMessage(message: IMessage): void;
97
+ loadBeforeMessages(conversationId: string, query: IMessageQuery): Promise<void>;
98
+ loadAfterMessages(conversationId: string, query: IMessageQuery): Promise<void>;
99
+ handleSend(text: string): Promise<void>;
100
+ sendTextMessage(conversation: IConversation, textInfo: Partial<IPayload>): Promise<void>;
101
+ sendPictureMessage(conversation: IConversation, picInfo: Partial<IPayload>): Promise<void>;
102
+ sendVideoMessage(conversation: IConversation, videoInfo: Partial<IPayload>): Promise<void>;
103
+ sendVoiceMessage(conversation: IConversation, voiceInfo: Partial<IPayload>): Promise<void>;
104
+ sendFileMessage(conversation: IConversation, fileInfo: Partial<IPayload>): Promise<void>;
105
+ sendCollectionMessage(collection: ICollection): void;
106
+ sendContactMessage(conversation: IConversation, contact: IUser): Promise<void>;
107
+ resendMessage(conversation: IConversation, message: IMessage): Promise<void>;
108
+ undoMessage(message: IMessage): Promise<void>;
109
+ clearMessages(conversationId: string): Promise<void>;
110
+ /** 收藏操作 */
111
+ selectCollections(keyword: string): void;
112
+ collectMessage(message: IMessage): void;
113
+ isDestroyed(): boolean;
114
+ destroy(): void;
115
+ }
116
+ export default ImManager;