feat: add base methods
This commit is contained in:
80
README.md
80
README.md
@@ -1,12 +1,9 @@
|
||||
# JavaScript/TypeScript Client SDK for OpenIM 👨💻💬
|
||||
# Node/Electron Client SDK for OpenIM 👨💻💬
|
||||
|
||||
Use this SDK to add instant messaging capabilities to your application. By connecting to a self-hosted [OpenIM](https://www.openim.online/) server, you can quickly integrate instant messaging capabilities into your app with just a few lines of code.
|
||||
|
||||
The underlying SDK core is implemented in [OpenIM SDK Core](https://github.com/openimsdk/openim-sdk-core). Using the [WebAssembly](https://webassembly.org/) support provided by Go language, it can be compiled into wasm for web integration. The web interacts with the [OpenIM SDK Core](https://github.com/openimsdk/openim-sdk-core) through JSON, and the SDK exposes a re-encapsulated API for easy usage. In terms of data storage, JavaScript handles the logic of the SQL layer by virtualizing SQLite and storing it in IndexedDB using [sql.js](https://sql.js.org/).
|
||||
|
||||
|
||||
|
||||
|
||||
## Documentation 📚
|
||||
|
||||
Visit [https://doc.rentsoft.cn/](https://doc.rentsoft.cn/) for detailed documentation and guides.
|
||||
@@ -18,76 +15,9 @@ For the SDK reference, see [https://doc.rentsoft.cn/sdks/quickstart/browser](htt
|
||||
### Adding Dependencies
|
||||
|
||||
```shell
|
||||
npm install open-im-sdk-wasm --save
|
||||
npm install open-im-sdk-node --save
|
||||
```
|
||||
|
||||
### Obtaining Required Static Resources for WASM
|
||||
|
||||
Follow these steps to obtain the static resources required for WebAssembly (WASM):
|
||||
|
||||
1. Locate the `open-im-sdk-wasm` subdirectory in the `node_modules` directory of your project. Copy all the files in the `assets` folder to your project's public resource directory.
|
||||
|
||||
The files to be copied are:
|
||||
|
||||
- `openIM.wasm`
|
||||
- `sql-wasm.wasm`
|
||||
- `wasm_exec.js`
|
||||
|
||||
2. After copying the files, import the `wasm_exec.js` file in your `index.html` file using a `<script>` tag.
|
||||
|
||||
### Possible Issues ❗
|
||||
|
||||
#### For Webpack 5+
|
||||
|
||||
Add the following configuration to your Webpack configuration:
|
||||
|
||||
```js
|
||||
resolve: {
|
||||
fallback: {
|
||||
fs: false,
|
||||
path: false,
|
||||
crypto: false,
|
||||
},
|
||||
},
|
||||
```
|
||||
|
||||
#### For Webpack 4 or Vite
|
||||
|
||||
**Note:**
|
||||
If you are using `Webpack 4`, you will also need to install the worker loader.
|
||||
|
||||
```shell
|
||||
npm install worker-loader worker-plugin -D
|
||||
```
|
||||
|
||||
Add the following configuration to your Webpack configuration:
|
||||
|
||||
```js
|
||||
const WorkerPlugin = require("worker-plugin");
|
||||
|
||||
// ...
|
||||
|
||||
plugins: [new WorkerPlugin()],
|
||||
|
||||
// ...
|
||||
```
|
||||
|
||||
Follow these steps:
|
||||
|
||||
1. Copy the `lib` directory from the npm package to your project (e.g., `src/utils/lib`).
|
||||
|
||||
2. Modify the import method of the web worker in the `lib/api/index.js` file.
|
||||
|
||||
```js
|
||||
// For Webpack 4:
|
||||
+ import IMWorker from 'worker-loader!./worker.js';
|
||||
// For Vite:
|
||||
+ import IMWorker from './worker?worker';
|
||||
|
||||
- worker = new Worker(new URL('./worker.js', import.meta.url));
|
||||
+ worker = new IMWorker();
|
||||
```
|
||||
|
||||
## Usage 🚀
|
||||
|
||||
The following examples demonstrate how to use the SDK. TypeScript is used, providing complete type hints.
|
||||
@@ -95,11 +25,9 @@ The following examples demonstrate how to use the SDK. TypeScript is used, provi
|
||||
### Importing the SDK
|
||||
|
||||
```typescript
|
||||
import { getSDK } from 'open-im-sdk-wasm';
|
||||
// or your own path after copying
|
||||
// import { getSDK } from '@/utils/lib';
|
||||
import OpenIMSDK from 'open-im-sdk-node';
|
||||
|
||||
const OpenIM = getSDK();
|
||||
const OpenIM = new OpenIMSDK();
|
||||
```
|
||||
|
||||
### Logging In and Listening for Connection Status
|
||||
|
||||
BIN
assets/libopenimsdk.dll
Executable file
BIN
assets/libopenimsdk.dll
Executable file
Binary file not shown.
BIN
assets/libopenimsdk.dylib
Executable file
BIN
assets/libopenimsdk.dylib
Executable file
Binary file not shown.
70
package-lock.json
generated
70
package-lock.json
generated
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"name": "openim-sdk-node",
|
||||
"name": "open-im-sdk-node",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "openim-sdk-node",
|
||||
"name": "open-im-sdk-node",
|
||||
"version": "1.0.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ffi-napi": "^4.0.3",
|
||||
"@openim/ffi-napi": "^4.0.14",
|
||||
"uuid": "^9.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -1813,6 +1813,38 @@
|
||||
"@octokit/openapi-types": "^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@openim/ffi-napi": {
|
||||
"version": "4.0.14",
|
||||
"resolved": "https://registry.npmjs.org/@openim/ffi-napi/-/ffi-napi-4.0.14.tgz",
|
||||
"integrity": "sha512-LuKBOFDuV+OKnZr33zaZGKvDgNiozGVg39S++HzywyULBn8vcigW6MGZEYhkx9P5GquAu+Kh+Bkvb2FFY6XRgA==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@openim/ref-napi": "^4.0.11",
|
||||
"debug": "^4.1.1",
|
||||
"get-uv-event-loop-napi-h": "^1.0.5",
|
||||
"node-addon-api": "^3.2.1",
|
||||
"node-gyp-build": "^4.5.0",
|
||||
"ref-struct-di": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.22.12"
|
||||
}
|
||||
},
|
||||
"node_modules/@openim/ref-napi": {
|
||||
"version": "4.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@openim/ref-napi/-/ref-napi-4.0.11.tgz",
|
||||
"integrity": "sha512-Rz/7M5et4AXBwoTB1Wsm6fNZPlgSs3UB8fxBv3KNZ30W2DYio4NRS3z0rcZgigMuyp/LDGZQjJvhyXCl6QSROg==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"debug": "^4.3.4",
|
||||
"get-symbol-from-current-process-h": "^1.0.2",
|
||||
"node-addon-api": "^3.2.1",
|
||||
"node-gyp-build": "^4.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.22.12"
|
||||
}
|
||||
},
|
||||
"node_modules/@pnpm/config.env-replace": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
|
||||
@@ -4227,23 +4259,6 @@
|
||||
"bser": "2.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ffi-napi": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/ffi-napi/-/ffi-napi-4.0.3.tgz",
|
||||
"integrity": "sha512-PMdLCIvDY9mS32RxZ0XGb95sonPRal8aqRhLbeEtWKZTe2A87qRFG9HjOhvG8EX2UmQw5XNRMIOT+1MYlWmdeg==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"debug": "^4.1.1",
|
||||
"get-uv-event-loop-napi-h": "^1.0.5",
|
||||
"node-addon-api": "^3.0.0",
|
||||
"node-gyp-build": "^4.2.1",
|
||||
"ref-napi": "^2.0.1 || ^3.0.2",
|
||||
"ref-struct-di": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/figures": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
||||
@@ -10402,21 +10417,6 @@
|
||||
"esprima": "~4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ref-napi": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/ref-napi/-/ref-napi-3.0.3.tgz",
|
||||
"integrity": "sha512-LiMq/XDGcgodTYOMppikEtJelWsKQERbLQsYm0IOOnzhwE9xYZC7x8txNnFC9wJNOkPferQI4vD4ZkC0mDyrOA==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"debug": "^4.1.1",
|
||||
"get-symbol-from-current-process-h": "^1.0.2",
|
||||
"node-addon-api": "^3.0.0",
|
||||
"node-gyp-build": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ref-struct-di": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ref-struct-di/-/ref-struct-di-1.1.1.tgz",
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
"*.ts": "eslint --cache --cache-location .eslintcache --fix"
|
||||
},
|
||||
"dependencies": {
|
||||
"uuid": "^9.0.0",
|
||||
"ffi-napi": "^4.0.3"
|
||||
"@openim/ffi-napi": "^4.0.14",
|
||||
"uuid": "^9.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import typescript from 'rollup-plugin-typescript2';
|
||||
import alias from '@rollup/plugin-alias';
|
||||
import typescript from 'rollup-plugin-typescript2';
|
||||
|
||||
export default [
|
||||
{
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import ffi from 'ffi-napi';
|
||||
import ffi from '@openim/ffi-napi';
|
||||
import { v4 as uuidV4 } from 'uuid';
|
||||
import type { LibOpenIMSDK } from 'libOpenIMSDK';
|
||||
import { UserModuleApi, setupUserModule } from './modules/user';
|
||||
import { InitConfig, LoginParams } from '@/types/params';
|
||||
import { BaseResponse, SelfUserInfo } from '@/types/entity';
|
||||
import { BaseResponse, SelfUserInfo, EmitProxy } from '@/types/entity';
|
||||
import { ErrorCode } from '@/constant/api';
|
||||
import { LoginStatus } from '@/types/enum';
|
||||
import { NativeEvent, eventMapping } from '@/constant/callback';
|
||||
@@ -16,15 +16,9 @@ import {
|
||||
} from './modules/conversation';
|
||||
import { type MessageModuleApi, setupMessageModule } from './modules/message';
|
||||
|
||||
const CB_I_S = ffi.Function('void', ['int', 'string']);
|
||||
const CB_S_I_S_S = ffi.Function('void', ['string', 'int', 'string', 'string']);
|
||||
const CB_S_I_S_S_I = ffi.Function('void', [
|
||||
'string',
|
||||
'int',
|
||||
'string',
|
||||
'string',
|
||||
'int',
|
||||
]);
|
||||
function isObject(value: unknown) {
|
||||
return Object.prototype.toString.call(value) === '[object Object]';
|
||||
}
|
||||
|
||||
class OpenIMSDK
|
||||
extends Emitter
|
||||
@@ -38,21 +32,22 @@ class OpenIMSDK
|
||||
libOpenIMSDK: LibOpenIMSDK;
|
||||
listenerCallback: Buffer;
|
||||
|
||||
constructor(libPath: string) {
|
||||
constructor(libPath: string, emitProxy?: EmitProxy) {
|
||||
super();
|
||||
this.libOpenIMSDK = ffi.Library(libPath, {
|
||||
set_group_listener: ['void', [CB_I_S]],
|
||||
set_conversation_listener: ['void', [CB_I_S]],
|
||||
set_advanced_msg_listener: ['void', [CB_I_S]],
|
||||
set_batch_msg_listener: ['void', [CB_I_S]],
|
||||
set_user_listener: ['void', [CB_I_S]],
|
||||
set_friend_listener: ['void', [CB_I_S]],
|
||||
set_custom_business_listener: ['void', [CB_I_S]],
|
||||
init_sdk: ['uint8', [CB_I_S, 'string', 'string']],
|
||||
set_group_listener: ['void', ['pointer']],
|
||||
set_conversation_listener: ['void', ['pointer']],
|
||||
set_advanced_msg_listener: ['void', ['pointer']],
|
||||
set_batch_msg_listener: ['void', ['pointer']],
|
||||
set_user_listener: ['void', ['pointer']],
|
||||
set_friend_listener: ['void', ['pointer']],
|
||||
set_custom_business_listener: ['void', ['pointer']],
|
||||
init_sdk: ['uint8', ['pointer', 'string', 'string']],
|
||||
un_init_sdk: ['void', ['string']],
|
||||
login: ['void', [CB_S_I_S_S, 'string', 'string', 'string']],
|
||||
logout: ['void', [CB_S_I_S_S, 'string']],
|
||||
network_status_changed: ['void', [CB_S_I_S_S, 'string']],
|
||||
login: ['void', ['pointer', 'string', 'string', 'string']],
|
||||
logout: ['void', ['pointer', 'string']],
|
||||
set_app_background_status: ['void', ['pointer', 'string', 'int']],
|
||||
network_status_changed: ['void', ['pointer', 'string']],
|
||||
get_login_status: ['int', ['string']],
|
||||
get_login_user: ['string', []],
|
||||
create_text_message: ['string', ['string', 'string']],
|
||||
@@ -91,7 +86,7 @@ class OpenIMSDK
|
||||
create_image_message: ['string', ['string', 'string']],
|
||||
create_image_message_by_url: [
|
||||
'string',
|
||||
['string', 'string', 'string', 'string'],
|
||||
['string', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
create_sound_message_by_url: ['string', ['string', 'string']],
|
||||
create_sound_message: ['string', ['string', 'string', 'long long']],
|
||||
@@ -108,93 +103,178 @@ class OpenIMSDK
|
||||
],
|
||||
create_face_message: ['string', ['string', 'int', 'string']],
|
||||
create_forward_message: ['string', ['string', 'string']],
|
||||
get_all_conversation_list: ['void', [CB_S_I_S_S, 'string']],
|
||||
get_advanced_history_message_list: [
|
||||
get_all_conversation_list: ['void', ['pointer', 'string']],
|
||||
get_conversation_list_split: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string'],
|
||||
['pointer', 'string', 'int', 'int'],
|
||||
],
|
||||
get_one_conversation: ['void', ['pointer', 'string', 'int', 'string']],
|
||||
get_multiple_conversation: ['void', ['pointer', 'string', 'string']],
|
||||
set_conversation_msg_destruct_time: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'long long'],
|
||||
],
|
||||
set_conversation_is_msg_destruct: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'int'],
|
||||
],
|
||||
hide_conversation: ['void', ['pointer', 'string', 'string']],
|
||||
get_conversation_recv_message_opt: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
set_conversation_draft: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string'],
|
||||
],
|
||||
reset_conversation_group_at_type: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
pin_conversation: ['void', ['pointer', 'string', 'string', 'int']],
|
||||
set_conversation_private_chat: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'int'],
|
||||
],
|
||||
set_conversation_burn_duration: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'int'],
|
||||
],
|
||||
set_conversation_recv_message_opt: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'int'],
|
||||
],
|
||||
get_total_unread_msg_count: ['void', ['pointer', 'string']],
|
||||
get_at_all_tag: ['string', ['string']],
|
||||
get_conversation_id_by_session_type: [
|
||||
'string',
|
||||
['string', 'string', 'int'],
|
||||
],
|
||||
send_message: [
|
||||
'void',
|
||||
[CB_S_I_S_S_I, 'string', 'string', 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
|
||||
// User related functions
|
||||
get_users_info: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_users_info_from_srv: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
set_self_info: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_self_user_info: ['void', [CB_S_I_S_S, 'string']],
|
||||
send_message_not_oss: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
find_message_list: ['void', ['pointer', 'string', 'string']],
|
||||
get_advanced_history_message_list: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
get_advanced_history_message_list_reverse: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
revoke_message: ['void', ['pointer', 'string', 'string', 'string']],
|
||||
typing_status_update: ['void', ['pointer', 'string', 'string', 'string']],
|
||||
mark_conversation_message_as_read: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
delete_message_from_local_storage: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string'],
|
||||
],
|
||||
delete_message: ['void', ['pointer', 'string', 'string', 'string']],
|
||||
hide_all_conversations: ['void', ['pointer', 'string']],
|
||||
delete_all_msg_from_local_and_svr: ['void', ['pointer', 'string']],
|
||||
delete_all_msg_from_local: ['void', ['pointer', 'string']],
|
||||
clear_conversation_and_delete_all_msg: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
delete_conversation_and_delete_all_msg: [
|
||||
'void',
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
insert_single_message_to_local_storage: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
insert_group_message_to_local_storage: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
search_local_messages: ['void', ['pointer', 'string', 'string']],
|
||||
set_message_local_ex: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
get_users_info: ['void', ['pointer', 'string', 'string']],
|
||||
get_users_info_with_cache: [
|
||||
'void',
|
||||
['pointer', 'string', 'string', 'string'],
|
||||
],
|
||||
get_users_info_from_srv: ['void', ['pointer', 'string', 'string']],
|
||||
set_self_info: ['void', ['pointer', 'string', 'string']],
|
||||
set_global_recv_message_opt: ['void', ['pointer', 'string', 'int']],
|
||||
get_self_user_info: ['void', ['pointer', 'string']],
|
||||
update_msg_sender_info: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string'],
|
||||
],
|
||||
subscribe_users_status: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
unsubscribe_users_status: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_subscribe_users_status: ['void', [CB_S_I_S_S, 'string']],
|
||||
get_user_status: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
|
||||
// Friend related functions
|
||||
get_specified_friends_info: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_friend_list: ['void', [CB_S_I_S_S, 'string']],
|
||||
get_friend_list_page: ['void', [CB_S_I_S_S, 'string', 'int', 'int']],
|
||||
search_friends: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
check_friend: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
add_friend: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
set_friend_remark: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
delete_friend: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_friend_application_list_as_recipient: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string'],
|
||||
],
|
||||
get_friend_application_list_as_applicant: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string'],
|
||||
],
|
||||
accept_friend_application: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
refuse_friend_application: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
add_black: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_black_list: ['void', [CB_S_I_S_S, 'string']],
|
||||
remove_black: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
|
||||
// Group related functions
|
||||
create_group: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
join_group: ['void', [CB_S_I_S_S, 'string', 'string', 'string', 'int']],
|
||||
quit_group: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
dismiss_group: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
change_group_mute: ['void', [CB_S_I_S_S, 'string', 'string', 'int']],
|
||||
subscribe_users_status: ['void', ['pointer', 'string', 'string']],
|
||||
unsubscribe_users_status: ['void', ['pointer', 'string', 'string']],
|
||||
get_subscribe_users_status: ['void', ['pointer', 'string']],
|
||||
get_user_status: ['void', ['pointer', 'string', 'string']],
|
||||
// Friend functions
|
||||
get_specified_friends_info: ['void', ['pointer', 'string', 'string']],
|
||||
get_friend_list: ['void', ['pointer', 'string']],
|
||||
get_friend_list_page: ['void', ['pointer', 'string', 'int', 'int']],
|
||||
search_friends: ['void', ['pointer', 'string', 'string']],
|
||||
check_friend: ['void', ['pointer', 'string', 'string']],
|
||||
add_friend: ['void', ['pointer', 'string', 'string']],
|
||||
set_friend_remark: ['void', ['pointer', 'string', 'string']],
|
||||
delete_friend: ['void', ['pointer', 'string', 'string']],
|
||||
get_friend_application_list_as_recipient: ['void', ['pointer', 'string']],
|
||||
get_friend_application_list_as_applicant: ['void', ['pointer', 'string']],
|
||||
accept_friend_application: ['void', ['pointer', 'string', 'string']],
|
||||
refuse_friend_application: ['void', ['pointer', 'string', 'string']],
|
||||
add_black: ['void', ['pointer', 'string', 'string']],
|
||||
get_black_list: ['void', ['pointer', 'string']],
|
||||
remove_black: ['void', ['pointer', 'string', 'string']],
|
||||
// Group functions
|
||||
create_group: ['void', ['pointer', 'string', 'string']],
|
||||
join_group: ['void', ['pointer', 'string', 'string', 'string', 'int']],
|
||||
quit_group: ['void', ['pointer', 'string', 'string']],
|
||||
dismiss_group: ['void', ['pointer', 'string', 'string']],
|
||||
change_group_mute: ['void', ['pointer', 'string', 'string', 'int']],
|
||||
change_group_member_mute: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'int'],
|
||||
['pointer', 'string', 'string', 'string', 'int'],
|
||||
],
|
||||
set_group_member_role_level: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'int'],
|
||||
['pointer', 'string', 'string', 'string', 'int'],
|
||||
],
|
||||
set_group_member_info: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
get_joined_group_list: ['void', [CB_S_I_S_S, 'string']],
|
||||
get_specified_groups_info: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
search_groups: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
set_group_info: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
set_group_verification: ['void', [CB_S_I_S_S, 'string', 'string', 'int']],
|
||||
set_group_member_info: ['void', ['pointer', 'string', 'string']],
|
||||
get_joined_group_list: ['void', ['pointer', 'string']],
|
||||
get_specified_groups_info: ['void', ['pointer', 'string', 'string']],
|
||||
search_groups: ['void', ['pointer', 'string', 'string']],
|
||||
set_group_info: ['void', ['pointer', 'string', 'string']],
|
||||
set_group_verification: ['void', ['pointer', 'string', 'string', 'int']],
|
||||
set_group_look_member_info: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'int'],
|
||||
['pointer', 'string', 'string', 'int'],
|
||||
],
|
||||
set_group_apply_member_friend: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'int'],
|
||||
['pointer', 'string', 'string', 'int'],
|
||||
],
|
||||
get_group_member_list: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'int', 'int', 'int'],
|
||||
['pointer', 'string', 'string', 'int', 'int', 'int'],
|
||||
],
|
||||
get_group_member_owner_and_admin: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string'],
|
||||
['pointer', 'string', 'string'],
|
||||
],
|
||||
get_group_member_list_by_join_time_filter: [
|
||||
'void',
|
||||
[
|
||||
CB_S_I_S_S,
|
||||
'pointer',
|
||||
'string',
|
||||
'string',
|
||||
'int',
|
||||
@@ -206,44 +286,43 @@ class OpenIMSDK
|
||||
],
|
||||
get_specified_group_members_info: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string'],
|
||||
],
|
||||
kick_group_member: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
transfer_group_owner: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
transfer_group_owner: ['void', ['pointer', 'string', 'string', 'string']],
|
||||
invite_user_to_group: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
get_group_application_list_as_recipient: ['void', [CB_S_I_S_S, 'string']],
|
||||
get_group_application_list_as_applicant: ['void', [CB_S_I_S_S, 'string']],
|
||||
get_group_application_list_as_recipient: ['void', ['pointer', 'string']],
|
||||
get_group_application_list_as_applicant: ['void', ['pointer', 'string']],
|
||||
accept_group_application: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
refuse_group_application: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
set_group_member_nickname: [
|
||||
'void',
|
||||
[CB_S_I_S_S, 'string', 'string', 'string', 'string'],
|
||||
['pointer', 'string', 'string', 'string', 'string'],
|
||||
],
|
||||
search_group_members: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
is_join_group: ['void', [CB_S_I_S_S, 'string', 'string']],
|
||||
search_group_members: ['void', ['pointer', 'string', 'string']],
|
||||
is_join_group: ['void', ['pointer', 'string', 'string']],
|
||||
}) as LibOpenIMSDK;
|
||||
|
||||
// eslint-disable-next-line
|
||||
const emitFn = emitProxy ?? this.emit;
|
||||
this.listenerCallback = ffi.Callback(
|
||||
'void',
|
||||
['int', 'string'],
|
||||
(event: NativeEvent, data) => {
|
||||
const cbEvent = eventMapping[event];
|
||||
this.emit(cbEvent, data);
|
||||
emitFn(cbEvent, this.generateEventResponse(data));
|
||||
console.log(`listener callback - Event: ${cbEvent}, Data: ${data}`);
|
||||
}
|
||||
);
|
||||
@@ -255,6 +334,31 @@ class OpenIMSDK
|
||||
Object.assign(this, setupMessageModule(this));
|
||||
}
|
||||
|
||||
generateEventResponse = (data: unknown): BaseResponse => {
|
||||
let errCode = 0;
|
||||
let errMsg = '';
|
||||
try {
|
||||
data = JSON.parse(data as string);
|
||||
} catch (error) {
|
||||
// do nothing
|
||||
}
|
||||
// @ts-ignore
|
||||
if (isObject(data) && data.errCode !== undefined) {
|
||||
// @ts-ignore
|
||||
errCode = data.errCode;
|
||||
// @ts-ignore
|
||||
errMsg = data.errMsg;
|
||||
// @ts-ignore
|
||||
data = data.data;
|
||||
}
|
||||
return {
|
||||
errCode,
|
||||
errMsg,
|
||||
data,
|
||||
operationID: '',
|
||||
};
|
||||
};
|
||||
|
||||
baseCallbackWrap = <T>(
|
||||
resolve: (response: BaseResponse<T>) => void,
|
||||
reject: (response: BaseResponse<T>) => void
|
||||
@@ -358,8 +462,31 @@ class OpenIMSDK
|
||||
this.libOpenIMSDK.un_init_sdk(`unInitSDK-${opid}`)
|
||||
);
|
||||
|
||||
setAppBackgroundStatus = (isInBackground: boolean, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
this.libOpenIMSDK.set_app_background_status(
|
||||
this.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
isInBackground ? 1 : 0
|
||||
);
|
||||
});
|
||||
|
||||
networkStatusChanged = (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
this.libOpenIMSDK.network_status_changed(
|
||||
this.baseCallbackWrap<void>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
});
|
||||
|
||||
// implements user api
|
||||
getSelfUserInfo!: UserModuleApi['getSelfUserInfo'];
|
||||
setSelfInfo!: UserModuleApi['setSelfInfo'];
|
||||
getUsersInfoWithCache!: UserModuleApi['getUsersInfoWithCache'];
|
||||
subscribeUsersStatus!: UserModuleApi['subscribeUsersStatus'];
|
||||
unsubscribeUsersStatus!: UserModuleApi['unsubscribeUsersStatus'];
|
||||
getSubscribeUsersStatus!: UserModuleApi['getSubscribeUsersStatus'];
|
||||
setGlobalRecvMessageOpt!: UserModuleApi['setGlobalRecvMessageOpt'];
|
||||
|
||||
// implements friend api
|
||||
acceptFriendApplication!: FriendModuleApi['acceptFriendApplication'];
|
||||
@@ -404,6 +531,22 @@ class OpenIMSDK
|
||||
|
||||
// implements conversation api
|
||||
getAllConversationList!: ConversationModuleApi['getAllConversationList'];
|
||||
getConversationListSplit!: ConversationModuleApi['getConversationListSplit'];
|
||||
getOneConversation!: ConversationModuleApi['getOneConversation'];
|
||||
getMultipleConversation!: ConversationModuleApi['getMultipleConversation'];
|
||||
getConversationIDBySessionType!: ConversationModuleApi['getConversationIDBySessionType'];
|
||||
getTotalUnreadMsgCount!: ConversationModuleApi['getTotalUnreadMsgCount'];
|
||||
markConversationMessageAsRead!: ConversationModuleApi['markConversationMessageAsRead'];
|
||||
setConversationDraft!: ConversationModuleApi['setConversationDraft'];
|
||||
pinConversation!: ConversationModuleApi['pinConversation'];
|
||||
setConversationRecvMessageOpt!: ConversationModuleApi['setConversationRecvMessageOpt'];
|
||||
setConversationPrivateChat!: ConversationModuleApi['setConversationPrivateChat'];
|
||||
setConversationBurnDuration!: ConversationModuleApi['setConversationBurnDuration'];
|
||||
resetConversationGroupAtType!: ConversationModuleApi['resetConversationGroupAtType'];
|
||||
hideConversation!: ConversationModuleApi['hideConversation'];
|
||||
hideAllConversation!: ConversationModuleApi['hideAllConversation'];
|
||||
clearConversationAndDeleteAllMsg!: ConversationModuleApi['clearConversationAndDeleteAllMsg'];
|
||||
deleteConversationAndDeleteAllMsg!: ConversationModuleApi['deleteConversationAndDeleteAllMsg'];
|
||||
|
||||
// implements message api
|
||||
createTextMessage!: MessageModuleApi['createTextMessage'];
|
||||
@@ -428,7 +571,20 @@ class OpenIMSDK
|
||||
createFileMessageFromFullPath!: MessageModuleApi['createFileMessageFromFullPath'];
|
||||
createFileMessageByUrl!: MessageModuleApi['createFileMessageByUrl'];
|
||||
getAdvancedHistoryMessageList!: MessageModuleApi['getAdvancedHistoryMessageList'];
|
||||
getAdvancedHistoryMessageListReverse!: MessageModuleApi['getAdvancedHistoryMessageListReverse'];
|
||||
sendMessage!: MessageModuleApi['sendMessage'];
|
||||
sendMessageNotOss!: MessageModuleApi['sendMessageNotOss'];
|
||||
findMessageList!: MessageModuleApi['findMessageList'];
|
||||
revokeMessage!: MessageModuleApi['revokeMessage'];
|
||||
typingStatusUpdate!: MessageModuleApi['typingStatusUpdate'];
|
||||
deleteMessageFromLocalStorage!: MessageModuleApi['deleteMessageFromLocalStorage'];
|
||||
deleteMessage!: MessageModuleApi['deleteMessage'];
|
||||
deleteAllMsgFromLocalAndSvr!: MessageModuleApi['deleteAllMsgFromLocalAndSvr'];
|
||||
deleteAllMsgFromLocal!: MessageModuleApi['deleteAllMsgFromLocal'];
|
||||
searchLocalMessages!: MessageModuleApi['searchLocalMessages'];
|
||||
insertGroupMessageToLocalStorage!: MessageModuleApi['insertGroupMessageToLocalStorage'];
|
||||
insertSingleMessageToLocalStorage!: MessageModuleApi['insertSingleMessageToLocalStorage'];
|
||||
setMessageLocalEx!: MessageModuleApi['setMessageLocalEx'];
|
||||
}
|
||||
|
||||
export default OpenIMSDK;
|
||||
|
||||
@@ -1,174 +1,183 @@
|
||||
import { v4 as uuidV4 } from 'uuid';
|
||||
import { BaseResponse, ConversationItem } from '@/types/entity';
|
||||
import OpenIMSDK from '..';
|
||||
import {
|
||||
SplitConversationParams,
|
||||
GetOneConversationParams,
|
||||
SetConversationDraftParams,
|
||||
PinConversationParams,
|
||||
SetConversationRecvOptParams,
|
||||
SetConversationPrivateParams,
|
||||
SetBurnDurationParams,
|
||||
} from '@/types/params';
|
||||
|
||||
export function setupConversationModule(openIMSDK: OpenIMSDK) {
|
||||
return {
|
||||
// getAllConversationList: (opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_all_conversation_list(
|
||||
// openIMSDK.baseCallbackWrap<ConversationItem[]>(resolve, reject),
|
||||
// opid
|
||||
// );
|
||||
// }),
|
||||
// getConversationListSplit: (
|
||||
// params: SplitConversationParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_conversation_list_split(
|
||||
// openIMSDK.baseCallbackWrap<ConversationItem[]>(resolve, reject),
|
||||
// opid,
|
||||
// params.offset,
|
||||
// params.count
|
||||
// );
|
||||
// }),
|
||||
// getOneConversation: (params: GetOneConversationParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<ConversationItem>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_one_conversation(
|
||||
// openIMSDK.baseCallbackWrap<ConversationItem>(resolve, reject),
|
||||
// opid,
|
||||
// params.sessionType,
|
||||
// params.sourceID
|
||||
// );
|
||||
// }),
|
||||
// getMultipleConversation: (conversationIDList: string, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_multiple_conversation(
|
||||
// openIMSDK.baseCallbackWrap<ConversationItem[]>(resolve, reject),
|
||||
// opid,
|
||||
// conversationIDList
|
||||
// );
|
||||
// }),
|
||||
// getConversationIDBySessionType: (
|
||||
// params: GetOneConversationParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<ConversationItem>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_conversation_id_by_session_type(
|
||||
// openIMSDK.baseCallbackWrap<ConversationItem>(resolve, reject),
|
||||
// opid,
|
||||
// params.sourceID,
|
||||
// params.sessionType
|
||||
// );
|
||||
// }),
|
||||
// getTotalUnreadMsgCount: (opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<number>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_total_unread_msg_count(
|
||||
// openIMSDK.baseCallbackWrap<number>(resolve, reject),
|
||||
// opid
|
||||
// );
|
||||
// }),
|
||||
// markConversationMessageAsRead: (conversationID: string, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.mark_conversation_message_as_read(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// conversationID
|
||||
// );
|
||||
// }),
|
||||
// setConversationDraft: (
|
||||
// params: SetConversationDraftParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_conversation_draft(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.draftText
|
||||
// );
|
||||
// }),
|
||||
// pinConversation: (params: PinConversationParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.pin_conversation(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.isPinned ? 1 : 0
|
||||
// );
|
||||
// }),
|
||||
// setConversationRecvMessageOpt: (
|
||||
// params: SetConversationRecvOptParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_conversation_recv_message_opt(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.opt
|
||||
// );
|
||||
// }),
|
||||
// setConversationPrivateChat: (
|
||||
// params: SetConversationPrivateParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_conversation_private_chat(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.isPrivate
|
||||
// );
|
||||
// }),
|
||||
// setConversationBurnDuration: (
|
||||
// params: SetBurnDurationParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_conversation_burn_duration(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.burnDuration
|
||||
// );
|
||||
// }),
|
||||
// resetConversationGroupAtType: (groupID: string, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.reset_conversation_group_at_type(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// groupID
|
||||
// );
|
||||
// }),
|
||||
// hideConversation: (conversationID: string, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.hide_conversation(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// conversationID
|
||||
// );
|
||||
// }),
|
||||
// hideAllConversation: (opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.hide_all_conversation(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid
|
||||
// );
|
||||
// }),
|
||||
// clearConversationAndDeleteAllMsg: (
|
||||
// conversationID: string,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.clear_conversation_and_delete_all_msg(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// conversationID
|
||||
// );
|
||||
// }),
|
||||
// deleteConversationAndDeleteAllMsg: (
|
||||
// conversationID: string,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.delete_conversation_and_delete_all_msg(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// conversationID
|
||||
// );
|
||||
// }),
|
||||
getAllConversationList: (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_all_conversation_list(
|
||||
openIMSDK.baseCallbackWrap<ConversationItem[]>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
}),
|
||||
getConversationListSplit: (
|
||||
params: SplitConversationParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_conversation_list_split(
|
||||
openIMSDK.baseCallbackWrap<ConversationItem[]>(resolve, reject),
|
||||
opid,
|
||||
params.offset,
|
||||
params.count
|
||||
);
|
||||
}),
|
||||
getOneConversation: (params: GetOneConversationParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<ConversationItem>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_one_conversation(
|
||||
openIMSDK.baseCallbackWrap<ConversationItem>(resolve, reject),
|
||||
opid,
|
||||
params.sessionType,
|
||||
params.sourceID
|
||||
);
|
||||
}),
|
||||
getMultipleConversation: (conversationIDList: string, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_multiple_conversation(
|
||||
openIMSDK.baseCallbackWrap<ConversationItem[]>(resolve, reject),
|
||||
opid,
|
||||
conversationIDList
|
||||
);
|
||||
}),
|
||||
getConversationIDBySessionType: (
|
||||
params: GetOneConversationParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
openIMSDK.asyncRetunWrap<string>(
|
||||
opid,
|
||||
openIMSDK.libOpenIMSDK.get_conversation_id_by_session_type(
|
||||
opid,
|
||||
params.sourceID,
|
||||
params.sessionType
|
||||
)
|
||||
),
|
||||
getTotalUnreadMsgCount: (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<number>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_total_unread_msg_count(
|
||||
openIMSDK.baseCallbackWrap<number>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
}),
|
||||
markConversationMessageAsRead: (conversationID: string, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.mark_conversation_message_as_read(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
conversationID
|
||||
);
|
||||
}),
|
||||
setConversationDraft: (
|
||||
params: SetConversationDraftParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.set_conversation_draft(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.draftText
|
||||
);
|
||||
}),
|
||||
pinConversation: (params: PinConversationParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.pin_conversation(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.isPinned ? 1 : 0
|
||||
);
|
||||
}),
|
||||
setConversationRecvMessageOpt: (
|
||||
params: SetConversationRecvOptParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.set_conversation_recv_message_opt(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.opt
|
||||
);
|
||||
}),
|
||||
setConversationPrivateChat: (
|
||||
params: SetConversationPrivateParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.set_conversation_private_chat(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.isPrivate ? 1 : 0
|
||||
);
|
||||
}),
|
||||
setConversationBurnDuration: (
|
||||
params: SetBurnDurationParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.set_conversation_burn_duration(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.burnDuration
|
||||
);
|
||||
}),
|
||||
resetConversationGroupAtType: (groupID: string, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.reset_conversation_group_at_type(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
groupID
|
||||
);
|
||||
}),
|
||||
hideConversation: (conversationID: string, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.hide_conversation(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
conversationID
|
||||
);
|
||||
}),
|
||||
hideAllConversation: (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.hide_all_conversations(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
}),
|
||||
clearConversationAndDeleteAllMsg: (
|
||||
conversationID: string,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.clear_conversation_and_delete_all_msg(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
conversationID
|
||||
);
|
||||
}),
|
||||
deleteConversationAndDeleteAllMsg: (
|
||||
conversationID: string,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.delete_conversation_and_delete_all_msg(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
conversationID
|
||||
);
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -176,4 +185,62 @@ export interface ConversationModuleApi {
|
||||
getAllConversationList: (
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<ConversationItem[]>>;
|
||||
getConversationListSplit: (
|
||||
params: SplitConversationParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<ConversationItem[]>>;
|
||||
getOneConversation: (
|
||||
params: GetOneConversationParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<ConversationItem>>;
|
||||
getMultipleConversation: (
|
||||
conversationIDList: string,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<ConversationItem[]>>;
|
||||
getConversationIDBySessionType: (
|
||||
params: GetOneConversationParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<string>>;
|
||||
getTotalUnreadMsgCount: (opid?: string) => Promise<BaseResponse<number>>;
|
||||
markConversationMessageAsRead: (
|
||||
conversationID: string,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
setConversationDraft: (
|
||||
params: SetConversationDraftParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
pinConversation: (
|
||||
params: PinConversationParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
setConversationRecvMessageOpt: (
|
||||
params: SetConversationRecvOptParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
setConversationPrivateChat: (
|
||||
params: SetConversationPrivateParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
setConversationBurnDuration: (
|
||||
params: SetBurnDurationParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
resetConversationGroupAtType: (
|
||||
groupID: string,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
hideConversation: (
|
||||
conversationID: string,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
hideAllConversation: (opid?: string) => Promise<BaseResponse<void>>;
|
||||
clearConversationAndDeleteAllMsg: (
|
||||
conversationID: string,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
deleteConversationAndDeleteAllMsg: (
|
||||
conversationID: string,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
AccessFriendParams,
|
||||
SearchFriendParams,
|
||||
RemarkFriendParams,
|
||||
AddFriendParams,
|
||||
} from '@/types/params';
|
||||
|
||||
import {
|
||||
@@ -35,12 +36,12 @@ export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
||||
);
|
||||
}),
|
||||
|
||||
addFriend: (userID: string, opid = uuidV4()) =>
|
||||
addFriend: (params: AddFriendParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.add_friend(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
userID
|
||||
JSON.stringify(params)
|
||||
);
|
||||
}),
|
||||
|
||||
|
||||
@@ -12,14 +12,21 @@ import {
|
||||
FaceMessageParams,
|
||||
FileMsgByPathParams,
|
||||
FileMsgByUrlParams,
|
||||
FindMessageParams,
|
||||
GetAdvancedHistoryMsgParams,
|
||||
ImageMsgByUrlParams,
|
||||
InsertGroupMsgParams,
|
||||
InsertSingleMsgParams,
|
||||
LocationMsgParams,
|
||||
MergerMsgParams,
|
||||
OpreateMessageParams,
|
||||
QuoteMsgParams,
|
||||
SearchLocalParams,
|
||||
SendMsgParams,
|
||||
SetMessageLocalExParams,
|
||||
SoundMsgByPathParams,
|
||||
SoundMsgByUrlParams,
|
||||
TypingUpdateParams,
|
||||
VideoMsgByPathParams,
|
||||
VideoMsgByUrlParams,
|
||||
} from '@/types/params';
|
||||
@@ -132,6 +139,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
||||
opid,
|
||||
openIMSDK.libOpenIMSDK.create_image_message_by_url(
|
||||
opid,
|
||||
params.sourcePath,
|
||||
JSON.stringify(params.sourcePicture),
|
||||
JSON.stringify(params.bigPicture),
|
||||
JSON.stringify(params.snapshotPicture)
|
||||
@@ -257,89 +265,92 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
||||
);
|
||||
}),
|
||||
|
||||
// sendMessageNotOss: (params: SendMsgParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<MessageItem>>((resolve, reject) => {
|
||||
// const offlinePushInfo = params.offlinePushInfo ?? {
|
||||
// title: 'You has a new message.',
|
||||
// desc: 'You has a new message.',
|
||||
// ex: '',
|
||||
// iOSPushSound: '+1',
|
||||
// iOSBadgeCount: true,
|
||||
// };
|
||||
// openIMSDK.libOpenIMSDK.send_message_not_oss(
|
||||
// openIMSDK.baseCallbackWrap<MessageItem>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params.message),
|
||||
// params.recvID,
|
||||
// params.groupID,
|
||||
// JSON.stringify(offlinePushInfo)
|
||||
// );
|
||||
// }),
|
||||
sendMessageNotOss: (params: SendMsgParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<MessageItem>>((resolve, reject) => {
|
||||
const offlinePushInfo = params.offlinePushInfo ?? {
|
||||
title: 'You has a new message.',
|
||||
desc: 'You has a new message.',
|
||||
ex: '',
|
||||
iOSPushSound: '+1',
|
||||
iOSBadgeCount: true,
|
||||
};
|
||||
openIMSDK.libOpenIMSDK.send_message_not_oss(
|
||||
openIMSDK.baseCallbackWrap<MessageItem>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params.message),
|
||||
params.recvID,
|
||||
params.groupID,
|
||||
JSON.stringify(offlinePushInfo)
|
||||
);
|
||||
}),
|
||||
|
||||
// typingStatusUpdate: (params: TypingUpdateParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.typing_status_update(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.recvID,
|
||||
// params.msgTip
|
||||
// );
|
||||
// }),
|
||||
typingStatusUpdate: (params: TypingUpdateParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.typing_status_update(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.recvID,
|
||||
params.msgTip
|
||||
);
|
||||
}),
|
||||
|
||||
// revokeMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.revoke_message(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.clientMsgID
|
||||
// );
|
||||
// }),
|
||||
revokeMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.revoke_message(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.clientMsgID
|
||||
);
|
||||
}),
|
||||
|
||||
// deleteMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.delete_message(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.clientMsgID
|
||||
// );
|
||||
// }),
|
||||
deleteMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.delete_message(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.clientMsgID
|
||||
);
|
||||
}),
|
||||
|
||||
// deleteMessageFromLocalStorage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.delete_message_from_local_storage(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.clientMsgID
|
||||
// );
|
||||
// }),
|
||||
deleteMessageFromLocalStorage: (
|
||||
params: OpreateMessageParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.delete_message_from_local_storage(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.clientMsgID
|
||||
);
|
||||
}),
|
||||
|
||||
// deleteAllMsgFromLocal: (opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.delete_all_msg_from_local(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// );
|
||||
// }),
|
||||
deleteAllMsgFromLocal: (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.delete_all_msg_from_local(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
}),
|
||||
|
||||
// deleteAllMsgFromLocalAndSvr: (opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.delete_all_msg_from_local_and_svr(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// );
|
||||
// }),
|
||||
deleteAllMsgFromLocalAndSvr: (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.delete_all_msg_from_local_and_svr(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
}),
|
||||
|
||||
// searchLocalMessages: (params: SearchLocalParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<MessageItem[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.search_local_messages(
|
||||
// openIMSDK.baseCallbackWrap<MessageItem[]>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params)
|
||||
// );
|
||||
// }),
|
||||
searchLocalMessages: (params: SearchLocalParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<MessageItem[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.search_local_messages(
|
||||
openIMSDK.baseCallbackWrap<MessageItem[]>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params)
|
||||
);
|
||||
}),
|
||||
|
||||
getAdvancedHistoryMessageList: (
|
||||
params: GetAdvancedHistoryMsgParams,
|
||||
@@ -353,54 +364,61 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
||||
);
|
||||
}),
|
||||
|
||||
// getAdvancedHistoryMessageListReverse: (
|
||||
// params: GetAdvancedHistoryMsgParams, opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<AdvancedGetMessageResult>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_advanced_history_message_list_reverse(
|
||||
// openIMSDK.baseCallbackWrap<AdvancedGetMessageResult>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params)
|
||||
// );
|
||||
// }),
|
||||
// findMessageList: (params: FindMessageParams[], opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<MessageItem[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.find_message_list(
|
||||
// openIMSDK.baseCallbackWrap<MessageItem[]>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params)
|
||||
// );
|
||||
// }),
|
||||
// insertGroupMessageToLocalStorage: (params: InsertGroupMsgParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.insert_group_message_to_local_storage(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params.message),
|
||||
// params.groupID,
|
||||
// params.sendID
|
||||
// );
|
||||
// }),
|
||||
// insertSingleMessageToLocalStorage: (params: InsertSingleMsgParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.insert_single_message_to_local_storage(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params.message),
|
||||
// params.recvID,
|
||||
// params.sendID
|
||||
// );
|
||||
// }),
|
||||
// setMessageLocalEx: (params: SetMessageLocalExParams, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_message_local_ex(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// params.conversationID,
|
||||
// params.clientMsgID,
|
||||
// params.localEx
|
||||
// );
|
||||
// }),
|
||||
getAdvancedHistoryMessageListReverse: (
|
||||
params: GetAdvancedHistoryMsgParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<AdvancedGetMessageResult>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_advanced_history_message_list_reverse(
|
||||
openIMSDK.baseCallbackWrap<AdvancedGetMessageResult>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params)
|
||||
);
|
||||
}),
|
||||
findMessageList: (params: FindMessageParams[], opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<MessageItem[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.find_message_list(
|
||||
openIMSDK.baseCallbackWrap<MessageItem[]>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params)
|
||||
);
|
||||
}),
|
||||
insertGroupMessageToLocalStorage: (
|
||||
params: InsertGroupMsgParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.insert_group_message_to_local_storage(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params.message),
|
||||
params.groupID,
|
||||
params.sendID
|
||||
);
|
||||
}),
|
||||
insertSingleMessageToLocalStorage: (
|
||||
params: InsertSingleMsgParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.insert_single_message_to_local_storage(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params.message),
|
||||
params.recvID,
|
||||
params.sendID
|
||||
);
|
||||
}),
|
||||
setMessageLocalEx: (params: SetMessageLocalExParams, opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.set_message_local_ex(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
params.conversationID,
|
||||
params.clientMsgID,
|
||||
params.localEx
|
||||
);
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -489,12 +507,58 @@ export interface MessageModuleApi {
|
||||
params: FileMsgByUrlParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<MessageItem>>;
|
||||
getAdvancedHistoryMessageList: (
|
||||
params: GetAdvancedHistoryMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<AdvancedGetMessageResult>>;
|
||||
sendMessage: (
|
||||
params: SendMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<MessageItem>>;
|
||||
sendMessageNotOss: (
|
||||
params: SendMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<MessageItem>>;
|
||||
typingStatusUpdate: (
|
||||
params: TypingUpdateParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
revokeMessage: (
|
||||
params: OpreateMessageParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
deleteMessage: (
|
||||
params: OpreateMessageParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
deleteMessageFromLocalStorage: (
|
||||
params: OpreateMessageParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
deleteAllMsgFromLocal: (opid?: string) => Promise<BaseResponse<void>>;
|
||||
deleteAllMsgFromLocalAndSvr: (opid?: string) => Promise<BaseResponse<void>>;
|
||||
searchLocalMessages: (
|
||||
params: SearchLocalParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<MessageItem[]>>;
|
||||
getAdvancedHistoryMessageList: (
|
||||
params: GetAdvancedHistoryMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<AdvancedGetMessageResult>>;
|
||||
getAdvancedHistoryMessageListReverse: (
|
||||
params: GetAdvancedHistoryMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<AdvancedGetMessageResult>>;
|
||||
findMessageList: (
|
||||
params: FindMessageParams[],
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<MessageItem[]>>;
|
||||
insertGroupMessageToLocalStorage: (
|
||||
params: InsertGroupMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
insertSingleMessageToLocalStorage: (
|
||||
params: InsertSingleMsgParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
setMessageLocalEx: (
|
||||
params: SetMessageLocalExParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
import { v4 as uuidV4 } from 'uuid';
|
||||
import { BaseResponse, SelfUserInfo } from '@/types/entity';
|
||||
import {
|
||||
BaseResponse,
|
||||
FullUserItemWithCache,
|
||||
SelfUserInfo,
|
||||
UserOnlineState,
|
||||
} from '@/types/entity';
|
||||
import OpenIMSDK from '..';
|
||||
import { SetSelfInfoParams } from '@/types/params';
|
||||
import { GetUserInfoWithCacheParams, SetSelfInfoParams } from '@/types/params';
|
||||
import { MessageReceiveOptType } from '@/types/enum';
|
||||
|
||||
export function setupUserModule(openIMSDK: OpenIMSDK) {
|
||||
return {
|
||||
@@ -22,65 +28,82 @@ export function setupUserModule(openIMSDK: OpenIMSDK) {
|
||||
);
|
||||
}),
|
||||
|
||||
// getUsersInfoWithCache: (
|
||||
// params: GetUserInfoWithCacheParams,
|
||||
// opid = uuidV4()
|
||||
// ) =>
|
||||
// new Promise<BaseResponse<FullUserItemWithCache[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_users_info_with_cache(
|
||||
// openIMSDK.baseCallbackWrap<FullUserItemWithCache[]>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(params.userIDList),
|
||||
// params.groupID ?? ''
|
||||
// );
|
||||
// }),
|
||||
getUsersInfoWithCache: (
|
||||
params: GetUserInfoWithCacheParams,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<FullUserItemWithCache[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_users_info_with_cache(
|
||||
openIMSDK.baseCallbackWrap<FullUserItemWithCache[]>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(params.userIDList),
|
||||
params.groupID ?? ''
|
||||
);
|
||||
}),
|
||||
|
||||
// subscribeUsersStatus: (userIDList: string[], opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<UserOnlineState>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.subscribe_users_status(
|
||||
// openIMSDK.baseCallbackWrap<UserOnlineState>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(userIDList)
|
||||
// );
|
||||
// }),
|
||||
subscribeUsersStatus: (userIDList: string[], opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<UserOnlineState>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.subscribe_users_status(
|
||||
openIMSDK.baseCallbackWrap<UserOnlineState>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(userIDList)
|
||||
);
|
||||
}),
|
||||
|
||||
// unsubscribeUsersStatus: (userIDList: string[], opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.unsubscribe_users_status(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// JSON.stringify(userIDList)
|
||||
// );
|
||||
// }),
|
||||
unsubscribeUsersStatus: (userIDList: string[], opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.unsubscribe_users_status(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
JSON.stringify(userIDList)
|
||||
);
|
||||
}),
|
||||
|
||||
// getSubscribeUsersStatus: (opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<UserOnlineState[]>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.get_subscribe_users_status(
|
||||
// openIMSDK.baseCallbackWrap<UserOnlineState[]>(resolve, reject),
|
||||
// opid
|
||||
// );
|
||||
// }),
|
||||
getSubscribeUsersStatus: (opid = uuidV4()) =>
|
||||
new Promise<BaseResponse<UserOnlineState[]>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.get_subscribe_users_status(
|
||||
openIMSDK.baseCallbackWrap<UserOnlineState[]>(resolve, reject),
|
||||
opid
|
||||
);
|
||||
}),
|
||||
|
||||
// setAppBackgroundStatus: (isInBackground: boolean, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_app_background_status(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// isInBackground
|
||||
// );
|
||||
// }),
|
||||
|
||||
// setGlobalRecvMessageOpt: (msgReceiveOptType: MessageReceiveOptType, opid = uuidV4()) =>
|
||||
// new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
// openIMSDK.libOpenIMSDK.set_global_recv_message_opt(
|
||||
// openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
// opid,
|
||||
// msgReceiveOptType
|
||||
// );
|
||||
// }),
|
||||
setGlobalRecvMessageOpt: (
|
||||
msgReceiveOptType: MessageReceiveOptType,
|
||||
opid = uuidV4()
|
||||
) =>
|
||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||
openIMSDK.libOpenIMSDK.set_global_recv_message_opt(
|
||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||
opid,
|
||||
msgReceiveOptType
|
||||
);
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
export interface UserModuleApi {
|
||||
getSelfUserInfo: (opid?: string) => Promise<BaseResponse<SelfUserInfo>>;
|
||||
setSelfInfo: (
|
||||
params: SetSelfInfoParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
getUsersInfoWithCache: (
|
||||
params: GetUserInfoWithCacheParams,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<FullUserItemWithCache[]>>;
|
||||
subscribeUsersStatus: (
|
||||
userIDList: string[],
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<UserOnlineState>>;
|
||||
unsubscribeUsersStatus: (
|
||||
userIDList: string[],
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
getSubscribeUsersStatus: (
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<UserOnlineState[]>>;
|
||||
setGlobalRecvMessageOpt: (
|
||||
msgReceiveOptType: MessageReceiveOptType,
|
||||
opid?: string
|
||||
) => Promise<BaseResponse<void>>;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { CbEvents } from '@/constant/callback';
|
||||
import {
|
||||
GroupType,
|
||||
ApplicationHandleResult,
|
||||
@@ -16,6 +17,8 @@ import {
|
||||
OnlineState,
|
||||
} from './enum';
|
||||
|
||||
export type EmitProxy = (event: CbEvents, ...args: any[]) => void;
|
||||
|
||||
export type BaseCallbackWrap = <T>(
|
||||
resolve: (response: BaseResponse<T>) => void,
|
||||
reject: (response: BaseResponse<T>) => void
|
||||
|
||||
792
src/types/ffi-napi.d.ts
vendored
Normal file
792
src/types/ffi-napi.d.ts
vendored
Normal file
@@ -0,0 +1,792 @@
|
||||
/* eslint-disable @typescript-eslint/ban-types */
|
||||
|
||||
/// <reference types="node" />
|
||||
declare module '@openim/ffi-napi' {
|
||||
import ref = require('ref-napi');
|
||||
import ref_struct = require('ref-struct-di');
|
||||
import StructType = ref_struct.StructType;
|
||||
|
||||
/**
|
||||
* This is a marker type that causes TypeScript to use string literal inference when inferring a generic from an array of {@link ref.TypeLike}.
|
||||
*/
|
||||
export type ArgTypesInferenceMarker = ['void'];
|
||||
|
||||
export interface LibraryFunctionOptions {
|
||||
abi?: number | undefined;
|
||||
async?: boolean | undefined;
|
||||
varargs?: boolean | undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* Base constraint for an object-based library type definition.
|
||||
*/
|
||||
export type LibraryObjectDefinitionBase = Record<
|
||||
string,
|
||||
[
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
opts?: LibraryFunctionOptions
|
||||
]
|
||||
>;
|
||||
|
||||
/**
|
||||
* This is a marker type that causes TypeScript to use string literal inference when inferring a generic from {@link LibraryObjectDefinitionBase}.
|
||||
* If it is not used, `new Library(..., { x: ["int", ["int"]] })` will be inferred as `new Library<{ x: [string, string[]] }>(...)` instead of `new UnionType<{ x: ["int", ["int"]] }>(...)`.
|
||||
*/
|
||||
export type LibraryObjectDefinitionInferenceMarker = Record<
|
||||
string,
|
||||
[retType: 'void', argTypes: ArgTypesInferenceMarker]
|
||||
>;
|
||||
|
||||
/**
|
||||
* Converts a {@link LibraryObjectDefinitionBase} into a consistent subtype of {@link LibraryDefinitionBase}. If `any` is used, it is passed along
|
||||
* to be interpreted to use a fallback definition for a union.
|
||||
*/
|
||||
export type LibraryObjectDefinitionToLibraryDefinition<
|
||||
T extends LibraryObjectDefinitionBase
|
||||
> = [T] extends [never] | [0]
|
||||
? any // catches T extends never/any (since `0` doesn't overlap with our constraint)
|
||||
: {
|
||||
[P in keyof T]: [
|
||||
retType: ref.CoerceType<T[P][0]>,
|
||||
argTypes: ref.CoerceTypes<T[P][1]>,
|
||||
opts: T[P][2]
|
||||
];
|
||||
};
|
||||
|
||||
/**
|
||||
* Base constraint for a consistent library type definition.
|
||||
*/
|
||||
export type LibraryDefinitionBase = Record<
|
||||
string,
|
||||
[
|
||||
retType: ref.Type,
|
||||
argTypes: ref.Type[],
|
||||
opts: LibraryFunctionOptions | undefined
|
||||
]
|
||||
>;
|
||||
|
||||
/**
|
||||
* Represents a {@link Library} instance created from a {@link LibraryDefinitionBase}.
|
||||
*/
|
||||
export type LibraryObject<T extends LibraryDefinitionBase> = [T] extends
|
||||
| [never]
|
||||
| [0]
|
||||
? any // catches T extends never/any (since `0` doesn't overlap with our constraint)
|
||||
: {
|
||||
[P in keyof T]: T[P][2] extends undefined
|
||||
? ForeignFunction<
|
||||
ref.UnderlyingType<T[P][0]>,
|
||||
ref.UnderlyingTypes<T[P][1]>
|
||||
>
|
||||
: T[P][2] extends { varargs: true }
|
||||
? VariadicForeignFunction<T[P][0], T[P][1]>
|
||||
: T[P][2] extends { async: true }
|
||||
? ForeignFunction<
|
||||
ref.UnderlyingType<T[P][0]>,
|
||||
ref.UnderlyingTypes<T[P][1]>
|
||||
>['async']
|
||||
: ForeignFunction<
|
||||
ref.UnderlyingType<T[P][0]>,
|
||||
ref.UnderlyingTypes<T[P][1]>
|
||||
>;
|
||||
};
|
||||
|
||||
/** Provides a friendly API on-top of `DynamicLibrary` and `ForeignFunction`. */
|
||||
export interface Library {
|
||||
/** The extension to use on libraries. */
|
||||
EXT: string;
|
||||
|
||||
/**
|
||||
* @param libFile name of library
|
||||
* @param funcs hash of [retType, [...argType], opts?: {abi?, async?, varargs?}]
|
||||
* @param lib hash that will be extended
|
||||
*/
|
||||
new <
|
||||
TDefinition extends
|
||||
| LibraryObjectDefinitionBase
|
||||
| LibraryObjectDefinitionInferenceMarker,
|
||||
T
|
||||
>(
|
||||
libFile: string | null,
|
||||
funcs: TDefinition,
|
||||
lib: T
|
||||
): T &
|
||||
LibraryObject<LibraryObjectDefinitionToLibraryDefinition<TDefinition>>;
|
||||
|
||||
/**
|
||||
* @param libFile name of library
|
||||
* @param funcs hash of [retType, [...argType], opts?: {abi?, async?, varargs?}]
|
||||
* @param lib hash that will be extended
|
||||
*/
|
||||
new <
|
||||
TDefinition extends
|
||||
| LibraryObjectDefinitionBase
|
||||
| LibraryObjectDefinitionInferenceMarker
|
||||
>(
|
||||
libFile: string | null,
|
||||
funcs: TDefinition,
|
||||
lib?: object
|
||||
): LibraryObject<LibraryObjectDefinitionToLibraryDefinition<TDefinition>>;
|
||||
|
||||
/**
|
||||
* @param libFile name of library
|
||||
* @param funcs hash of [retType, [...argType], opts?: {abi?, async?, varargs?}]
|
||||
* @param lib hash that will be extended
|
||||
*/
|
||||
new (
|
||||
libFile: string | null,
|
||||
funcs?: Record<
|
||||
string,
|
||||
[
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
opts?: LibraryFunctionOptions
|
||||
]
|
||||
>,
|
||||
lib?: object
|
||||
): any;
|
||||
|
||||
/**
|
||||
* @param libFile name of library
|
||||
* @param funcs hash of [retType, [...argType], opts?: {abi?, async?, varargs?}]
|
||||
* @param lib hash that will be extended
|
||||
*/
|
||||
<
|
||||
TDefinition extends
|
||||
| LibraryObjectDefinitionBase
|
||||
| LibraryObjectDefinitionInferenceMarker,
|
||||
T
|
||||
>(
|
||||
libFile: string | null,
|
||||
funcs: TDefinition,
|
||||
lib: T
|
||||
): T &
|
||||
LibraryObject<LibraryObjectDefinitionToLibraryDefinition<TDefinition>>;
|
||||
|
||||
/**
|
||||
* @param libFile name of library
|
||||
* @param funcs hash of [retType, [...argType], opts?: {abi?, async?, varargs?}]
|
||||
* @param lib hash that will be extended
|
||||
*/
|
||||
<
|
||||
TDefinition extends
|
||||
| LibraryObjectDefinitionBase
|
||||
| LibraryObjectDefinitionInferenceMarker
|
||||
>(
|
||||
libFile: string | null,
|
||||
funcs: TDefinition,
|
||||
lib?: object
|
||||
): LibraryObject<LibraryObjectDefinitionToLibraryDefinition<TDefinition>>;
|
||||
|
||||
/**
|
||||
* @param libFile name of library
|
||||
* @param funcs hash of [retType, [...argType], opts?: {abi?, async?, varargs?}]
|
||||
* @param lib hash that will be extended
|
||||
*/
|
||||
(
|
||||
libFile: string | null,
|
||||
funcs?: Record<
|
||||
string,
|
||||
[
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
opts?: LibraryFunctionOptions
|
||||
]
|
||||
>,
|
||||
lib?: object
|
||||
): any;
|
||||
}
|
||||
export const Library: Library;
|
||||
|
||||
/** Get value of errno. */
|
||||
export function errno(): number;
|
||||
|
||||
export interface Function<
|
||||
TReturnType extends ref.Type = ref.Type,
|
||||
TArgTypes extends ref.Type[] = ref.Type[]
|
||||
> extends ref.Type<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
> {
|
||||
/** The type of return value. */
|
||||
retType: TReturnType;
|
||||
/** The type of arguments. */
|
||||
argTypes: TArgTypes;
|
||||
/** Is set for node-ffi functions. */
|
||||
ffi_type: PFFI_TYPE;
|
||||
abi: number;
|
||||
|
||||
/** Get a `Callback` pointer of this function type. */
|
||||
toPointer(
|
||||
fn: (
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
/** Get a `ForeignFunction` of this function type. */
|
||||
toFunction(
|
||||
buf: Buffer
|
||||
): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
ref.UnderlyingTypes<TArgTypes>
|
||||
>;
|
||||
}
|
||||
|
||||
/** Creates and returns a type for a C function pointer. */
|
||||
export const Function: {
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
new <
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): Function<ref.CoerceType<TReturnType>, ref.CoerceTypes<TArgTypes>>;
|
||||
new <
|
||||
TReturnType extends ref.TypeLike,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): Function<ref.CoerceType<TReturnType>, ref.CoerceTypes<TArgTypes>>;
|
||||
|
||||
new (
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
abi?: number
|
||||
): Function;
|
||||
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
<
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): Function<ref.CoerceType<TReturnType>, ref.CoerceTypes<TArgTypes>>;
|
||||
<
|
||||
TReturnType extends ref.TypeLike,
|
||||
TArgTypes extends ref.Type[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): Function<ref.CoerceType<TReturnType>, ref.CoerceTypes<TArgTypes>>;
|
||||
|
||||
(retType: ref.TypeLike, argTypes: ref.TypeLike[], abi?: number): Function;
|
||||
};
|
||||
|
||||
export interface ForeignFunction<TReturn = any, TArgs extends any[] = any[]> {
|
||||
(...args: TArgs): TReturn;
|
||||
async(...args: [...TArgs, (err: any, value: TReturn) => void]): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a foreign function in another library. Manages all of the aspects
|
||||
* of function execution, including marshalling the data parameters for the
|
||||
* function into native types and also unmarshalling the return from function
|
||||
* execution.
|
||||
*/
|
||||
export const ForeignFunction: {
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
new <
|
||||
TReturnType extends ref.NamedType,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
ref.UnderlyingTypes<TArgTypes>
|
||||
>;
|
||||
new <
|
||||
TReturnType extends ref.TypeLike,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
ref.UnderlyingTypes<TArgTypes>
|
||||
>;
|
||||
|
||||
new (
|
||||
ptr: Buffer,
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
abi?: number
|
||||
): ForeignFunction;
|
||||
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
<
|
||||
TReturnType extends ref.NamedType,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
ref.UnderlyingTypes<TArgTypes>
|
||||
>;
|
||||
<
|
||||
TReturnType extends ref.TypeLike,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi?: number
|
||||
): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
ref.UnderlyingTypes<TArgTypes>
|
||||
>;
|
||||
|
||||
(
|
||||
ptr: Buffer,
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
abi?: number
|
||||
): ForeignFunction;
|
||||
};
|
||||
|
||||
export interface VariadicForeignFunction<
|
||||
TReturnType extends ref.Type = ref.Type,
|
||||
TArgTypes extends ref.Type[] = ref.Type[]
|
||||
> {
|
||||
/**
|
||||
* What gets returned is another function that needs to be invoked with the rest
|
||||
* of the variadic types that are being invoked from the function.
|
||||
*/
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
<A extends ref.NamedTypeLike[]>(...args: A): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
[...ref.UnderlyingTypes<TArgTypes>, ...ref.UnderlyingTypes<A>]
|
||||
>;
|
||||
/**
|
||||
* What gets returned is another function that needs to be invoked with the rest
|
||||
* of the variadic types that are being invoked from the function.
|
||||
*/
|
||||
<A extends ref.TypeLike[]>(...args: A): ForeignFunction<
|
||||
ref.UnderlyingType<TReturnType>,
|
||||
[...ref.UnderlyingTypes<TArgTypes>, ...ref.UnderlyingTypes<A>]
|
||||
>;
|
||||
|
||||
/**
|
||||
* Return type as a property of the function generator to
|
||||
* allow for monkey patching the return value in the very rare case where the
|
||||
* return type is variadic as well
|
||||
*/
|
||||
returnType: TReturnType;
|
||||
}
|
||||
|
||||
/**
|
||||
* For when you want to call to a C function with variable amount of arguments.
|
||||
* i.e. `printf`.
|
||||
*
|
||||
* This function takes care of caching and reusing `ForeignFunction` instances that
|
||||
* contain the same ffi_type argument signature.
|
||||
*/
|
||||
export const VariadicForeignFunction: {
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
new <
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
ret: TReturnType,
|
||||
fixedArgs: TArgTypes,
|
||||
abi?: number
|
||||
): VariadicForeignFunction<
|
||||
ref.CoerceType<TReturnType>,
|
||||
ref.CoerceTypes<TArgTypes>
|
||||
>;
|
||||
new <
|
||||
TReturnType extends ref.TypeLike,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
ret: TReturnType,
|
||||
fixedArgs: TArgTypes,
|
||||
abi?: number
|
||||
): VariadicForeignFunction<
|
||||
ref.CoerceType<TReturnType>,
|
||||
ref.CoerceTypes<TArgTypes>
|
||||
>;
|
||||
|
||||
new (
|
||||
ptr: Buffer,
|
||||
ret: ref.TypeLike,
|
||||
fixedArgs: ref.TypeLike[],
|
||||
abi?: number
|
||||
): VariadicForeignFunction;
|
||||
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
<
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
ret: TReturnType,
|
||||
fixedArgs: TArgTypes,
|
||||
abi?: number
|
||||
): VariadicForeignFunction<
|
||||
ref.CoerceType<TReturnType>,
|
||||
ref.CoerceTypes<TArgTypes>
|
||||
>;
|
||||
<
|
||||
TReturnType extends ref.TypeLike,
|
||||
TArgTypes extends ref.TypeLike[] | ArgTypesInferenceMarker
|
||||
>(
|
||||
ptr: Buffer,
|
||||
ret: TReturnType,
|
||||
fixedArgs: TArgTypes,
|
||||
abi?: number
|
||||
): VariadicForeignFunction<
|
||||
ref.CoerceType<TReturnType>,
|
||||
ref.CoerceTypes<TArgTypes>
|
||||
>;
|
||||
|
||||
(
|
||||
ptr: Buffer,
|
||||
ret: ref.TypeLike,
|
||||
fixedArgs: ref.TypeLike[],
|
||||
abi?: number
|
||||
): VariadicForeignFunction;
|
||||
};
|
||||
|
||||
/**
|
||||
* This class loads and fetches function pointers for dynamic libraries
|
||||
* (`.so`, `.dylib`, `etc`). After the libray's function pointer is acquired, then you
|
||||
* call {@link DynamicLibrary.get} to retreive a pointer to an exported symbol. You need to
|
||||
* call `get___` on the pointer to dereference it into its actual value, or
|
||||
* turn the pointer into a callable function with {@link ForeignFunction}.
|
||||
*/
|
||||
export class DynamicLibrary {
|
||||
/**
|
||||
* @param mode One of the numeric {@link DynamicLibrary.FLAGS} values.
|
||||
*/
|
||||
constructor(path?: string, mode?: number);
|
||||
|
||||
/**
|
||||
* Close library, returns the result of the `dlclose` system function.
|
||||
*/
|
||||
close(): number;
|
||||
|
||||
/**
|
||||
* Get a symbol from this library.
|
||||
*/
|
||||
get(symbol: string): Buffer;
|
||||
|
||||
/**
|
||||
* Get the result of the `dlerror` system function.
|
||||
*/
|
||||
error(): string;
|
||||
|
||||
/**
|
||||
* Returns the path originally passed to the constructor.
|
||||
*/
|
||||
path(): string;
|
||||
}
|
||||
|
||||
/**
|
||||
* This class loads and fetches function pointers for dynamic libraries
|
||||
* (`.so`, `.dylib`, etc). After the libray's function pointer is acquired, then you
|
||||
* call {@link DynamicLibrary.get} to retreive a pointer to an exported symbol. You need to
|
||||
* call `get___` on the pointer to dereference it into its actual value, or
|
||||
* turn the pointer into a callable function with {@link ForeignFunction}.
|
||||
*
|
||||
* @param mode One of the numeric {@link DynamicLibrary.FLAGS} values.
|
||||
*/
|
||||
export function DynamicLibrary(path?: string, mode?: number): DynamicLibrary;
|
||||
export namespace DynamicLibrary {
|
||||
/**
|
||||
* Exported flags from "dlfcn.h"
|
||||
*/
|
||||
namespace FLAGS {
|
||||
// flags for dlopen()
|
||||
const RTLD_LAZY: number;
|
||||
const RTLD_NOW: number;
|
||||
const RTLD_LOCAL: number;
|
||||
const RTLD_GLOBAL: number;
|
||||
const RTLD_NOLOAD: number | undefined; // not defined on Windows
|
||||
const RTLD_NODELETE: number | undefined; // not defined on Windows
|
||||
const RTLD_FIRST: number | undefined; // not defined on Windows
|
||||
|
||||
// flags for dlsym()
|
||||
const RTLD_NEXT: ref.Pointer<unknown>;
|
||||
const RTLD_DEFAULT: ref.Pointer<unknown>;
|
||||
const RTLD_SELF: ref.Pointer<unknown> | undefined; // not defined on Windows
|
||||
const RTLD_MAIN_ONLY: ref.Pointer<unknown> | undefined; // not defined on Windows
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns a JavaScript function into a C function pointer.
|
||||
* The function pointer may be used in other C functions that
|
||||
* accept C callback functions.
|
||||
*/
|
||||
export interface Callback {
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
new <
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[]
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi: number,
|
||||
fn: (
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
new <TReturnType extends ref.TypeLike, TArgTypes extends ref.TypeLike[]>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi: number,
|
||||
fn: (
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
new <
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[]
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
fn: (
|
||||
...ags: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
new <TReturnType extends ref.TypeLike, TArgTypes extends ref.TypeLike[]>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
fn: (
|
||||
...ags: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
|
||||
new (
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
abi: number,
|
||||
fn: (...args: any[]) => any
|
||||
): Buffer;
|
||||
new (
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
fn: (...args: any[]) => any
|
||||
): Buffer;
|
||||
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
<
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[]
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi: number,
|
||||
fn: (
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
<TReturnType extends ref.TypeLike, TArgTypes extends ref.TypeLike[]>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
abi: number,
|
||||
fn: (
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
|
||||
// NOTE: This overload is a subtype of the next overload, but provides better completions.
|
||||
<
|
||||
TReturnType extends ref.NamedTypeLike,
|
||||
TArgTypes extends ref.NamedTypeLike[]
|
||||
>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
fn: (
|
||||
...ags: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
<TReturnType extends ref.TypeLike, TArgTypes extends ref.TypeLike[]>(
|
||||
retType: TReturnType,
|
||||
argTypes: TArgTypes,
|
||||
fn: (
|
||||
...ags: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
): ref.Pointer<
|
||||
(
|
||||
...args: ref.UnderlyingTypes<TArgTypes>
|
||||
) => ref.UnderlyingType<TReturnType>
|
||||
>;
|
||||
|
||||
(
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
abi: number,
|
||||
fn: (...args: any[]) => any
|
||||
): Buffer;
|
||||
(
|
||||
retType: ref.TypeLike,
|
||||
argTypes: ref.TypeLike[],
|
||||
fn: (...args: any[]) => any
|
||||
): Buffer;
|
||||
}
|
||||
export const Callback: Callback;
|
||||
|
||||
/** Get a `ffi_type *` Buffer appropriate for the given type. */
|
||||
export function ffiType(type: ref.TypeLike): ref.Pointer<FFI_TYPE>;
|
||||
export namespace ffiType {
|
||||
/**
|
||||
* Define the `ffi_type` struct (see deps/libffi/include/ffi.h) for use in JS.
|
||||
* This struct type is used internally to define custom struct ret/arg types.
|
||||
*/
|
||||
const FFI_TYPE: StructType<{
|
||||
size: typeof ref.types.size_t;
|
||||
alignment: typeof ref.types.ushort;
|
||||
type: typeof ref.types.ushort;
|
||||
elements: ref.Type<ref.Pointer<PFFI_TYPE>>;
|
||||
}>;
|
||||
|
||||
type FFI_TYPE = ReturnType<typeof FFI_TYPE>;
|
||||
}
|
||||
|
||||
export function CIF(
|
||||
retType: ref.TypeLike,
|
||||
types: ref.TypeLike[],
|
||||
abi?: number
|
||||
): Buffer;
|
||||
export function CIF_var(
|
||||
retType: ref.TypeLike,
|
||||
types: ref.TypeLike[],
|
||||
numFixedArgs: number,
|
||||
abi?: number
|
||||
): Buffer;
|
||||
|
||||
export const HAS_OBJC: boolean;
|
||||
|
||||
/**
|
||||
* Represents an opaque pointer to an {@link FFI_TYPE} struct used for marshalling types to native code.
|
||||
*/
|
||||
export type PFFI_TYPE = ref.Pointer<FFI_TYPE>;
|
||||
|
||||
// declare module 'ref-napi' {
|
||||
// interface Type {
|
||||
// /**
|
||||
// * Determines the FFI_TYPE set for a type.
|
||||
// */
|
||||
// ffi_type?: PFFI_TYPE | undefined;
|
||||
// }
|
||||
// }
|
||||
|
||||
export interface FfiTypesRegistry {
|
||||
void: PFFI_TYPE;
|
||||
uint8: PFFI_TYPE;
|
||||
int8: PFFI_TYPE;
|
||||
uint16: PFFI_TYPE;
|
||||
int16: PFFI_TYPE;
|
||||
uint32: PFFI_TYPE;
|
||||
int32: PFFI_TYPE;
|
||||
uint64: PFFI_TYPE;
|
||||
int64: PFFI_TYPE;
|
||||
uchar: PFFI_TYPE;
|
||||
char: PFFI_TYPE;
|
||||
ushort: PFFI_TYPE;
|
||||
short: PFFI_TYPE;
|
||||
uint: PFFI_TYPE;
|
||||
int: PFFI_TYPE;
|
||||
float: PFFI_TYPE;
|
||||
double: PFFI_TYPE;
|
||||
pointer: PFFI_TYPE;
|
||||
ulonglong: PFFI_TYPE;
|
||||
longlong: PFFI_TYPE;
|
||||
ulong: PFFI_TYPE;
|
||||
long: PFFI_TYPE;
|
||||
}
|
||||
|
||||
export const FFI_TYPES: FfiTypesRegistry;
|
||||
export const FFI_OK: number;
|
||||
export const FFI_BAD_TYPEDEF: number;
|
||||
export const FFI_BAD_ABI: number;
|
||||
export const FFI_DEFAULT_ABI: number;
|
||||
export const FFI_FIRST_ABI: number;
|
||||
export const FFI_LAST_ABI: number;
|
||||
|
||||
// NOTE: These are defined depending on the platform ffi-napi was compiled on:
|
||||
export const FFI_SYSV: number | undefined; // __arm__, Intel x86 Win32, __aarch64__, Intel x86 and AMD x86/x64
|
||||
export const FFI_VFP: number | undefined; // __arm__
|
||||
export const FFI_UNIX64: number | undefined; // All unix variants
|
||||
export const FFI_STDCALL: number | undefined; // Intel x86 Win32
|
||||
export const FFI_THISCALL: number | undefined; // Intel x86 Win32
|
||||
export const FFI_FASTCALL: number | undefined; // Intel x86 Win32
|
||||
export const FFI_MS_CDECL: number | undefined; // Intel x86 Win32
|
||||
export const FFI_WIN64: number | undefined; // Intel x86 Win64
|
||||
|
||||
export import RTLD_LAZY = DynamicLibrary.FLAGS.RTLD_LAZY;
|
||||
export import RTLD_NOW = DynamicLibrary.FLAGS.RTLD_NOW;
|
||||
export import RTLD_LOCAL = DynamicLibrary.FLAGS.RTLD_LOCAL;
|
||||
export import RTLD_GLOBAL = DynamicLibrary.FLAGS.RTLD_GLOBAL;
|
||||
export import RTLD_NOLOAD = DynamicLibrary.FLAGS.RTLD_NOLOAD;
|
||||
export import RTLD_NODELETE = DynamicLibrary.FLAGS.RTLD_NODELETE;
|
||||
export import RTLD_FIRST = DynamicLibrary.FLAGS.RTLD_FIRST;
|
||||
export import RTLD_NEXT = DynamicLibrary.FLAGS.RTLD_NEXT;
|
||||
export import RTLD_DEFAULT = DynamicLibrary.FLAGS.RTLD_DEFAULT;
|
||||
export import RTLD_SELF = DynamicLibrary.FLAGS.RTLD_SELF;
|
||||
export import RTLD_MAIN_ONLY = DynamicLibrary.FLAGS.RTLD_MAIN_ONLY;
|
||||
|
||||
export const FFI_ARG_SIZE: number;
|
||||
export const FFI_SARG_SIZE: number;
|
||||
export const FFI_TYPE_SIZE: number;
|
||||
export const FFI_CIF_SIZE: number;
|
||||
|
||||
export const LIB_EXT: string;
|
||||
|
||||
export import FFI_TYPE = ffiType.FFI_TYPE;
|
||||
|
||||
/** Default types. */
|
||||
export import types = ref.types;
|
||||
}
|
||||
229
src/types/libOpenIMSDK.d.ts
vendored
229
src/types/libOpenIMSDK.d.ts
vendored
@@ -33,15 +33,18 @@ declare module 'libOpenIMSDK' {
|
||||
login(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userID: string,
|
||||
uid: string,
|
||||
token: string
|
||||
): void;
|
||||
logout(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
set_app_background_status(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
isBackground: number
|
||||
): void;
|
||||
network_status_changed(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
get_login_status(operationID: string): number;
|
||||
get_login_user(): string;
|
||||
|
||||
// message related functions
|
||||
create_text_message(operationID: string, text: string): string;
|
||||
create_advanced_text_message(
|
||||
operationID: string,
|
||||
@@ -103,6 +106,7 @@ declare module 'libOpenIMSDK' {
|
||||
create_image_message(operationID: string, imagePath: string): string;
|
||||
create_image_message_by_url(
|
||||
operationID: string,
|
||||
sourcePath: string,
|
||||
sourcePicture: string,
|
||||
bigPicture: string,
|
||||
snapshotPicture: string
|
||||
@@ -148,11 +152,91 @@ declare module 'libOpenIMSDK' {
|
||||
data: string
|
||||
): string;
|
||||
create_forward_message(operationID: string, m: string): string;
|
||||
get_advanced_history_message_list(
|
||||
get_all_conversation_list(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
get_conversation_list_split(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
getMessageOptions: string
|
||||
offset: number,
|
||||
count: number
|
||||
): void;
|
||||
get_one_conversation(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
sessionType: number,
|
||||
sourceID: string
|
||||
): void;
|
||||
get_multiple_conversation(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationIDList: string
|
||||
): void;
|
||||
set_conversation_msg_destruct_time(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
msgDestructTime: number
|
||||
): void;
|
||||
set_conversation_is_msg_destruct(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
isMsgDestruct: number
|
||||
): void;
|
||||
hide_conversation(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string
|
||||
): void;
|
||||
get_conversation_recv_message_opt(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationIDList: string
|
||||
): void;
|
||||
set_conversation_draft(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
draftText: string
|
||||
): void;
|
||||
reset_conversation_group_at_type(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string
|
||||
): void;
|
||||
pin_conversation(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
isPinned: number
|
||||
): void;
|
||||
set_conversation_private_chat(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
isPrivate: number
|
||||
): void;
|
||||
set_conversation_burn_duration(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
duration: number
|
||||
): void;
|
||||
set_conversation_recv_message_opt(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
opt: number
|
||||
): void;
|
||||
get_total_unread_msg_count(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string
|
||||
): void;
|
||||
get_at_all_tag(operationID: string): string;
|
||||
get_conversation_id_by_session_type(
|
||||
operationID: string,
|
||||
sourceID: string,
|
||||
sessionType: number
|
||||
): string;
|
||||
send_message(
|
||||
cCallback: CB_S_I_S_S_I,
|
||||
operationID: string,
|
||||
@@ -161,31 +245,142 @@ declare module 'libOpenIMSDK' {
|
||||
groupID: string,
|
||||
offlinePushInfo: string
|
||||
): void;
|
||||
|
||||
// Conversation related functions
|
||||
get_all_conversation_list(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
|
||||
// User related functions
|
||||
send_message_not_oss(
|
||||
cCallback: CB_S_I_S_S_I,
|
||||
operationID: string,
|
||||
message: string,
|
||||
recvID: string,
|
||||
groupID: string,
|
||||
offlinePushInfo: string
|
||||
): void;
|
||||
find_message_list(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
findMessageOptions: string
|
||||
): void;
|
||||
get_advanced_history_message_list(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
getMessageOptions: string
|
||||
): void;
|
||||
get_advanced_history_message_list_reverse(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
getMessageOptions: string
|
||||
): void;
|
||||
revoke_message(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
clientMsgID: string
|
||||
): void;
|
||||
typing_status_update(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
recvID: string,
|
||||
msgTip: string
|
||||
): void;
|
||||
mark_conversation_message_as_read(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string
|
||||
): void;
|
||||
delete_message_from_local_storage(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
clientMsgID: string
|
||||
): void;
|
||||
delete_message(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
clientMsgID: string
|
||||
): void;
|
||||
hide_all_conversations(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
delete_all_msg_from_local_and_svr(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string
|
||||
): void;
|
||||
delete_all_msg_from_local(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
clear_conversation_and_delete_all_msg(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string
|
||||
): void;
|
||||
delete_conversation_and_delete_all_msg(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string
|
||||
): void;
|
||||
insert_single_message_to_local_storage(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
message: string,
|
||||
recvID: string,
|
||||
sendID: string
|
||||
): void;
|
||||
insert_group_message_to_local_storage(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
message: string,
|
||||
groupID: string,
|
||||
sendID: string
|
||||
): void;
|
||||
search_local_messages(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
searchParam: string
|
||||
): void;
|
||||
set_message_local_ex(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
conversationID: string,
|
||||
clientMsgID: string,
|
||||
localEx: string
|
||||
): void;
|
||||
get_users_info(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userIDList: string
|
||||
userIDs: string
|
||||
): void;
|
||||
get_users_info_with_cache(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userIDs: string,
|
||||
groupID: string
|
||||
): void;
|
||||
get_users_info_from_srv(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userIDs: string
|
||||
): void;
|
||||
set_self_info(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userInfo: string
|
||||
): void;
|
||||
set_global_recv_message_opt(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
opt: number
|
||||
): void;
|
||||
get_self_user_info(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||
update_msg_sender_info(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
nickname: string,
|
||||
faceURL: string
|
||||
): void;
|
||||
subscribe_users_status(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userIDList: string
|
||||
userIDs: string
|
||||
): void;
|
||||
unsubscribe_users_status(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userIDList: string
|
||||
userIDs: string
|
||||
): void;
|
||||
get_subscribe_users_status(
|
||||
cCallback: CB_S_I_S_S,
|
||||
@@ -194,10 +389,9 @@ declare module 'libOpenIMSDK' {
|
||||
get_user_status(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
userIDList: string
|
||||
userIDs: string
|
||||
): void;
|
||||
|
||||
// Friend related functions
|
||||
// Friend functions
|
||||
get_specified_friends_info(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
@@ -264,8 +458,7 @@ declare module 'libOpenIMSDK' {
|
||||
operationID: string,
|
||||
removeUserID: string
|
||||
): void;
|
||||
|
||||
// Group related functions
|
||||
// Group functions
|
||||
create_group(
|
||||
cCallback: CB_S_I_S_S,
|
||||
operationID: string,
|
||||
|
||||
@@ -76,6 +76,11 @@ export type AccessFriendParams = {
|
||||
handleMsg: string;
|
||||
};
|
||||
|
||||
export type AddFriendParams = {
|
||||
toUserID: string;
|
||||
reqMsg: string;
|
||||
};
|
||||
|
||||
export type SearchFriendParams = {
|
||||
keywordList: string[];
|
||||
isSearchUserID: boolean;
|
||||
|
||||
Reference in New Issue
Block a user