refactor: replace ffi with koffi
This commit is contained in:
BIN
assets/libopenimsdk.dll → assets/win_x64/libopenimsdk.dll
Executable file → Normal file
BIN
assets/libopenimsdk.dll → assets/win_x64/libopenimsdk.dll
Executable file → Normal file
Binary file not shown.
109
package-lock.json
generated
109
package-lock.json
generated
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "open-im-sdk-node",
|
"name": "@openim/node-client-sdk",
|
||||||
"version": "1.0.0",
|
"version": "1.0.6",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "open-im-sdk-node",
|
"name": "@openim/node-client-sdk",
|
||||||
"version": "1.0.0",
|
"version": "1.0.6",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@openim/ffi-napi": "^4.0.14",
|
"koffi": "^2.8.0",
|
||||||
"uuid": "^9.0.0"
|
"uuid": "^9.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
"husky": "^6.0.0",
|
"husky": "^6.0.0",
|
||||||
"jest": "^27.2.0",
|
"jest": "^27.2.0",
|
||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^10.5.4",
|
||||||
|
"open-im-sdk-wasm": "^3.5.3-alpha.2",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1",
|
||||||
"rollup": "^2.79.1",
|
"rollup": "^2.79.1",
|
||||||
"rollup-plugin-typescript2": "^0.36.0",
|
"rollup-plugin-typescript2": "^0.36.0",
|
||||||
@@ -39,6 +40,9 @@
|
|||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.0"
|
"node": ">=12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"open-im-sdk-wasm": "^3.5.3-alpha.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aashutoshrathi/word-wrap": {
|
"node_modules/@aashutoshrathi/word-wrap": {
|
||||||
@@ -1813,38 +1817,6 @@
|
|||||||
"@octokit/openapi-types": "^18.0.0"
|
"@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": {
|
"node_modules/@pnpm/config.env-replace": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
|
||||||
@@ -3451,6 +3423,7 @@
|
|||||||
"version": "4.3.4",
|
"version": "4.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ms": "2.1.2"
|
"ms": "2.1.2"
|
||||||
},
|
},
|
||||||
@@ -4537,19 +4510,6 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/get-symbol-from-current-process-h": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-symbol-from-current-process-h/-/get-symbol-from-current-process-h-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-syloC6fsCt62ELLrr1VKBM1ggOpMdetX9hTrdW77UQdcApPHLmf7CI7OKcN1c9kYuNxKcDe4iJ4FY9sX3aw2xw=="
|
|
||||||
},
|
|
||||||
"node_modules/get-uv-event-loop-napi-h": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz",
|
|
||||||
"integrity": "sha512-t5c9VNR84nRoF+eLiz6wFrEp1SE2Acg0wS+Ysa2zF0eROes+LzOfuTaVHxGy8AbS8rq7FHEJzjnCZo1BupwdJg==",
|
|
||||||
"dependencies": {
|
|
||||||
"get-symbol-from-current-process-h": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/git-log-parser": {
|
"node_modules/git-log-parser": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz",
|
||||||
@@ -6249,6 +6209,12 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/koffi": {
|
||||||
|
"version": "2.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/koffi/-/koffi-2.8.0.tgz",
|
||||||
|
"integrity": "sha512-EXhiH9Ya4f+o4+24+uV4vFAMyPEskARVUaY8VHbIYWqkQVPTDyYJCBNfxp0Kxw6WdhaMwXeR8xIUyz8R2H8Rew==",
|
||||||
|
"hasInstallScript": true
|
||||||
|
},
|
||||||
"node_modules/leven": {
|
"node_modules/leven": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
||||||
@@ -6869,7 +6835,8 @@
|
|||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/mylas": {
|
"node_modules/mylas": {
|
||||||
"version": "2.1.13",
|
"version": "2.1.13",
|
||||||
@@ -6902,11 +6869,6 @@
|
|||||||
"integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
|
"integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/node-addon-api": {
|
|
||||||
"version": "3.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
|
|
||||||
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
|
|
||||||
},
|
|
||||||
"node_modules/node-emoji": {
|
"node_modules/node-emoji": {
|
||||||
"version": "1.11.0",
|
"version": "1.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
|
||||||
@@ -6958,16 +6920,6 @@
|
|||||||
"webidl-conversions": "^3.0.0"
|
"webidl-conversions": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-gyp-build": {
|
|
||||||
"version": "4.7.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz",
|
|
||||||
"integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==",
|
|
||||||
"bin": {
|
|
||||||
"node-gyp-build": "bin.js",
|
|
||||||
"node-gyp-build-optional": "optional.js",
|
|
||||||
"node-gyp-build-test": "build-test.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/node-int64": {
|
"node_modules/node-int64": {
|
||||||
"version": "0.4.0",
|
"version": "0.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
|
||||||
@@ -9624,6 +9576,15 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/open-im-sdk-wasm": {
|
||||||
|
"version": "3.5.3-alpha.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/open-im-sdk-wasm/-/open-im-sdk-wasm-3.5.3-alpha.2.tgz",
|
||||||
|
"integrity": "sha512-UEDq0rjMB7nFjYKFgkPaLaOlj41jjXbVTSZpIdiewlxzWTuXJmGBRyXhJyK8YFbCjpgndVxl882t62KIUsIU1w==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/optionator": {
|
"node_modules/optionator": {
|
||||||
"version": "0.9.3",
|
"version": "0.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
|
||||||
@@ -10417,22 +10378,6 @@
|
|||||||
"esprima": "~4.0.0"
|
"esprima": "~4.0.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",
|
|
||||||
"integrity": "sha512-2Xyn/0Qgz89VT+++WP0sTosdm9oeowLP23wRJYhG4BFdMUrLj3jhwHZNEytYNYgtPKLNTP3KJX4HEgBvM1/Y2g==",
|
|
||||||
"dependencies": {
|
|
||||||
"debug": "^3.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/ref-struct-di/node_modules/debug": {
|
|
||||||
"version": "3.2.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
|
|
||||||
"integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"ms": "^2.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/regexpp": {
|
"node_modules/regexpp": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
|
||||||
|
|||||||
10
package.json
10
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "open-im-sdk-node",
|
"name": "@openim/node-client-sdk",
|
||||||
"version": "1.0.0",
|
"version": "1.0.6",
|
||||||
"description": "open im sdk for node",
|
"description": "open im sdk for node",
|
||||||
"source": "src/index.ts",
|
"source": "src/index.ts",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
@@ -58,6 +58,7 @@
|
|||||||
"husky": "^6.0.0",
|
"husky": "^6.0.0",
|
||||||
"jest": "^27.2.0",
|
"jest": "^27.2.0",
|
||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^10.5.4",
|
||||||
|
"open-im-sdk-wasm": "^3.5.3-alpha.2",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1",
|
||||||
"rollup": "^2.79.1",
|
"rollup": "^2.79.1",
|
||||||
"rollup-plugin-typescript2": "^0.36.0",
|
"rollup-plugin-typescript2": "^0.36.0",
|
||||||
@@ -74,7 +75,10 @@
|
|||||||
"*.ts": "eslint --cache --cache-location .eslintcache --fix"
|
"*.ts": "eslint --cache --cache-location .eslintcache --fix"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@openim/ffi-napi": "^4.0.14",
|
"koffi": "^2.8.0",
|
||||||
"uuid": "^9.0.0"
|
"uuid": "^9.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"open-im-sdk-wasm": "^3.5.3-alpha.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,5 +21,24 @@ export default [
|
|||||||
alias(),
|
alias(),
|
||||||
typescript(),
|
typescript(),
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
input: 'src/render.ts',
|
||||||
|
output: [
|
||||||
|
{
|
||||||
|
file: 'lib/render.js',
|
||||||
|
format: 'cjs',
|
||||||
|
exports: 'auto',
|
||||||
|
sourcemap: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: 'lib/render.es.js',
|
||||||
|
format: 'esm',
|
||||||
|
sourcemap: false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
plugins: [
|
||||||
|
typescript(),
|
||||||
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { CbEvents } from 'open-im-sdk-wasm';
|
||||||
export enum NativeEvent {
|
export enum NativeEvent {
|
||||||
CONNECTING,
|
CONNECTING,
|
||||||
CONNECT_SUCCESS,
|
CONNECT_SUCCESS,
|
||||||
@@ -56,69 +57,6 @@ export enum NativeEvent {
|
|||||||
UPLOAD_FILE_CALLBACK_COMPLETE,
|
UPLOAD_FILE_CALLBACK_COMPLETE,
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum CbEvents {
|
|
||||||
OnConnectFailed = 'OnConnectFailed',
|
|
||||||
OnConnectSuccess = 'OnConnectSuccess',
|
|
||||||
OnConnecting = 'OnConnecting',
|
|
||||||
OnKickedOffline = 'OnKickedOffline',
|
|
||||||
OnSelfInfoUpdated = 'OnSelfInfoUpdated',
|
|
||||||
OnUserTokenExpired = 'OnUserTokenExpired',
|
|
||||||
OnProgress = 'OnProgress',
|
|
||||||
OnRecvNewMessage = 'OnRecvNewMessage',
|
|
||||||
OnRecvNewMessages = 'OnRecvNewMessages',
|
|
||||||
OnRecvMessageRevoked = 'OnRecvMessageRevoked',
|
|
||||||
OnNewRecvMessageRevoked = 'OnNewRecvMessageRevoked',
|
|
||||||
OnRecvC2CReadReceipt = 'OnRecvC2CReadReceipt',
|
|
||||||
OnRecvGroupReadReceipt = 'OnRecvGroupReadReceipt',
|
|
||||||
OnConversationChanged = 'OnConversationChanged',
|
|
||||||
OnNewConversation = 'OnNewConversation',
|
|
||||||
OnSyncServerFailed = 'OnSyncServerFailed',
|
|
||||||
OnSyncServerFinish = 'OnSyncServerFinish',
|
|
||||||
OnSyncServerStart = 'OnSyncServerStart',
|
|
||||||
OnTotalUnreadMessageCountChanged = 'OnTotalUnreadMessageCountChanged',
|
|
||||||
OnBlackAdded = 'OnBlackAdded',
|
|
||||||
OnBlackDeleted = 'OnBlackDeleted',
|
|
||||||
OnFriendApplicationAccepted = 'OnFriendApplicationAccepted',
|
|
||||||
OnFriendApplicationAdded = 'OnFriendApplicationAdded',
|
|
||||||
OnFriendApplicationDeleted = 'OnFriendApplicationDeleted',
|
|
||||||
OnFriendApplicationRejected = 'OnFriendApplicationRejected',
|
|
||||||
OnFriendInfoChanged = 'OnFriendInfoChanged',
|
|
||||||
OnFriendAdded = 'OnFriendAdded',
|
|
||||||
OnFriendDeleted = 'OnFriendDeleted',
|
|
||||||
OnJoinedGroupAdded = 'OnJoinedGroupAdded',
|
|
||||||
OnJoinedGroupDeleted = 'OnJoinedGroupDeleted',
|
|
||||||
OnGroupDismissed = 'OnGroupDismissed',
|
|
||||||
OnGroupMemberAdded = 'OnGroupMemberAdded',
|
|
||||||
OnGroupMemberDeleted = 'OnGroupMemberDeleted',
|
|
||||||
OnGroupApplicationAdded = 'OnGroupApplicationAdded',
|
|
||||||
OnGroupApplicationDeleted = 'OnGroupApplicationDeleted',
|
|
||||||
OnGroupInfoChanged = 'OnGroupInfoChanged',
|
|
||||||
OnGroupMemberInfoChanged = 'OnGroupMemberInfoChanged',
|
|
||||||
OnGroupApplicationAccepted = 'OnGroupApplicationAccepted',
|
|
||||||
OnGroupApplicationRejected = 'OnGroupApplicationRejected',
|
|
||||||
|
|
||||||
UploadComplete = 'UploadComplete',
|
|
||||||
OnRecvCustomBusinessMessage = 'OnRecvCustomBusinessMessage',
|
|
||||||
OnUserStatusChanged = 'OnUserStatusChanged',
|
|
||||||
UnUsedEvent = 'UnUsedEvent',
|
|
||||||
|
|
||||||
// rtc
|
|
||||||
OnReceiveNewInvitation = 'OnReceiveNewInvitation',
|
|
||||||
OnInviteeAccepted = 'OnInviteeAccepted',
|
|
||||||
OnInviteeRejected = 'OnInviteeRejected',
|
|
||||||
OnInvitationCancelled = 'OnInvitationCancelled',
|
|
||||||
OnHangUp = 'OnHangUp',
|
|
||||||
OnInvitationTimeout = 'OnInvitationTimeout',
|
|
||||||
OnInviteeAcceptedByOtherDevice = 'OnInviteeAcceptedByOtherDevice',
|
|
||||||
OnInviteeRejectedByOtherDevice = 'OnInviteeRejectedByOtherDevice',
|
|
||||||
|
|
||||||
// meeting
|
|
||||||
OnStreamChange = 'OnStreamChange',
|
|
||||||
OnRoomParticipantConnected = 'OnRoomParticipantConnected',
|
|
||||||
OnRoomParticipantDisconnected = 'OnRoomParticipantDisconnected',
|
|
||||||
OnReceiveCustomSignal = 'OnReceiveCustomSignal',
|
|
||||||
}
|
|
||||||
|
|
||||||
export const eventMapping: Record<NativeEvent, CbEvents> = {
|
export const eventMapping: Record<NativeEvent, CbEvents> = {
|
||||||
[NativeEvent.CONNECTING]: CbEvents.OnConnecting,
|
[NativeEvent.CONNECTING]: CbEvents.OnConnecting,
|
||||||
[NativeEvent.CONNECT_SUCCESS]: CbEvents.OnConnectSuccess,
|
[NativeEvent.CONNECT_SUCCESS]: CbEvents.OnConnectSuccess,
|
||||||
|
|||||||
1161
src/core/index.ts
1161
src/core/index.ts
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,17 @@
|
|||||||
import { v4 as uuidV4 } from 'uuid';
|
import { v4 as uuidV4 } from 'uuid';
|
||||||
import { BaseResponse, ConversationItem } from '@/types/entity';
|
import { BaseResponse } from '@/types/entity';
|
||||||
import OpenIMSDK from '..';
|
import OpenIMSDK from '..';
|
||||||
import {
|
import {
|
||||||
SplitConversationParams,
|
SplitConversationParams,
|
||||||
GetOneConversationParams,
|
GetOneConversationParams,
|
||||||
SetConversationDraftParams,
|
SetConversationDraftParams,
|
||||||
PinConversationParams,
|
SetConversationPinParams,
|
||||||
SetConversationRecvOptParams,
|
SetConversationRecvOptParams,
|
||||||
SetConversationPrivateParams,
|
SetConversationPrivateStateParams,
|
||||||
SetBurnDurationParams,
|
SetBurnDurationParams,
|
||||||
} from '@/types/params';
|
SetConversationExParams,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/params';
|
||||||
|
import { ConversationItem } from 'open-im-sdk-wasm/lib/types/entity';
|
||||||
|
|
||||||
export function setupConversationModule(openIMSDK: OpenIMSDK) {
|
export function setupConversationModule(openIMSDK: OpenIMSDK) {
|
||||||
return {
|
return {
|
||||||
@@ -41,6 +43,15 @@ export function setupConversationModule(openIMSDK: OpenIMSDK) {
|
|||||||
params.sourceID
|
params.sourceID
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
setConversationEx: (params: SetConversationExParams, opid = uuidV4()) =>
|
||||||
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
|
openIMSDK.libOpenIMSDK.set_conversation_ex(
|
||||||
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
|
opid,
|
||||||
|
params.conversationID,
|
||||||
|
params.ex
|
||||||
|
);
|
||||||
|
}),
|
||||||
getMultipleConversation: (conversationIDList: string, opid = uuidV4()) =>
|
getMultipleConversation: (conversationIDList: string, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
new Promise<BaseResponse<ConversationItem[]>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.get_multiple_conversation(
|
openIMSDK.libOpenIMSDK.get_multiple_conversation(
|
||||||
@@ -88,7 +99,7 @@ export function setupConversationModule(openIMSDK: OpenIMSDK) {
|
|||||||
params.draftText
|
params.draftText
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
pinConversation: (params: PinConversationParams, opid = uuidV4()) =>
|
pinConversation: (params: SetConversationPinParams, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.pin_conversation(
|
openIMSDK.libOpenIMSDK.pin_conversation(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -110,7 +121,7 @@ export function setupConversationModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
setConversationPrivateChat: (
|
setConversationPrivateChat: (
|
||||||
params: SetConversationPrivateParams,
|
params: SetConversationPrivateStateParams,
|
||||||
opid = uuidV4()
|
opid = uuidV4()
|
||||||
) =>
|
) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
@@ -193,6 +204,10 @@ export interface ConversationModuleApi {
|
|||||||
params: GetOneConversationParams,
|
params: GetOneConversationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<ConversationItem>>;
|
) => Promise<BaseResponse<ConversationItem>>;
|
||||||
|
setConversationEx: (
|
||||||
|
params: SetConversationExParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<BaseResponse<void>>;
|
||||||
getMultipleConversation: (
|
getMultipleConversation: (
|
||||||
conversationIDList: string,
|
conversationIDList: string,
|
||||||
opid?: string
|
opid?: string
|
||||||
@@ -207,11 +222,11 @@ export interface ConversationModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
setConversationDraft: (
|
setConversationDraft: (
|
||||||
params: SetConversationDraftParams,
|
params: SplitConversationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
pinConversation: (
|
pinConversation: (
|
||||||
params: PinConversationParams,
|
params: SplitConversationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
setConversationRecvMessageOpt: (
|
setConversationRecvMessageOpt: (
|
||||||
@@ -219,7 +234,7 @@ export interface ConversationModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
setConversationPrivateChat: (
|
setConversationPrivateChat: (
|
||||||
params: SetConversationPrivateParams,
|
params: SetConversationPrivateStateParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
setConversationBurnDuration: (
|
setConversationBurnDuration: (
|
||||||
|
|||||||
@@ -1,24 +1,29 @@
|
|||||||
import { v4 as uuidV4 } from 'uuid';
|
import { v4 as uuidV4 } from 'uuid';
|
||||||
import OpenIMSDK from '..';
|
import OpenIMSDK from '..';
|
||||||
import {
|
|
||||||
AccessFriendParams,
|
|
||||||
SearchFriendParams,
|
|
||||||
RemarkFriendParams,
|
|
||||||
AddFriendParams,
|
|
||||||
} from '@/types/params';
|
|
||||||
|
|
||||||
|
import { BaseResponse } from '@/types/entity';
|
||||||
import {
|
import {
|
||||||
BaseResponse,
|
AccessFriendApplicationParams,
|
||||||
|
AddBlackParams,
|
||||||
|
AddFriendParams,
|
||||||
|
RemarkFriendParams,
|
||||||
|
SearchFriendParams,
|
||||||
|
SetFriendExParams,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/params';
|
||||||
|
import {
|
||||||
|
FriendshipInfo,
|
||||||
BlackUserItem,
|
BlackUserItem,
|
||||||
FriendApplicationItem,
|
FriendApplicationItem,
|
||||||
FriendshipInfo,
|
|
||||||
FullUserItem,
|
FullUserItem,
|
||||||
SearchedFriendsInfo,
|
SearchedFriendsInfo,
|
||||||
} from '@/types/entity';
|
} from 'open-im-sdk-wasm/lib/types/entity';
|
||||||
|
|
||||||
export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
||||||
return {
|
return {
|
||||||
acceptFriendApplication: (params: AccessFriendParams, opid = uuidV4()) =>
|
acceptFriendApplication: (
|
||||||
|
params: AccessFriendApplicationParams,
|
||||||
|
opid = uuidV4()
|
||||||
|
) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.accept_friend_application(
|
openIMSDK.libOpenIMSDK.accept_friend_application(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -27,12 +32,13 @@ export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
addBlack: (userID: string, opid = uuidV4()) =>
|
addBlack: (params: AddBlackParams, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.add_black(
|
openIMSDK.libOpenIMSDK.add_black(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
opid,
|
opid,
|
||||||
userID
|
params.toUserID,
|
||||||
|
params.ex ?? ''
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -63,6 +69,16 @@ export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
setFriendsEx: (params: SetFriendExParams, opid = uuidV4()) =>
|
||||||
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
|
openIMSDK.libOpenIMSDK.set_friends_ex(
|
||||||
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
|
opid,
|
||||||
|
JSON.stringify(params),
|
||||||
|
params.ex ?? ''
|
||||||
|
);
|
||||||
|
}),
|
||||||
|
|
||||||
getBlackList: (opid = uuidV4()) =>
|
getBlackList: (opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<BlackUserItem[]>>((resolve, reject) => {
|
new Promise<BaseResponse<BlackUserItem[]>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.get_black_list(
|
openIMSDK.libOpenIMSDK.get_black_list(
|
||||||
@@ -104,7 +120,10 @@ export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
refuseFriendApplication: (params: AccessFriendParams, opid = uuidV4()) =>
|
refuseFriendApplication: (
|
||||||
|
params: AccessFriendApplicationParams,
|
||||||
|
opid = uuidV4()
|
||||||
|
) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.refuse_friend_application(
|
openIMSDK.libOpenIMSDK.refuse_friend_application(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -144,7 +163,7 @@ export function setupFriendModule(openIMSDK: OpenIMSDK) {
|
|||||||
|
|
||||||
export interface FriendModuleApi {
|
export interface FriendModuleApi {
|
||||||
acceptFriendApplication: (
|
acceptFriendApplication: (
|
||||||
params: AccessFriendParams,
|
params: AccessFriendApplicationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
addBlack: (userID: string, opid?: string) => Promise<BaseResponse<void>>;
|
addBlack: (userID: string, opid?: string) => Promise<BaseResponse<void>>;
|
||||||
@@ -154,6 +173,10 @@ export interface FriendModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<FriendshipInfo[]>>;
|
) => Promise<BaseResponse<FriendshipInfo[]>>;
|
||||||
deleteFriend: (userID: string, opid?: string) => Promise<BaseResponse<void>>;
|
deleteFriend: (userID: string, opid?: string) => Promise<BaseResponse<void>>;
|
||||||
|
setFriendsEx: (
|
||||||
|
params: SetFriendExParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<BaseResponse<void>>;
|
||||||
getBlackList: (opid?: string) => Promise<BaseResponse<BlackUserItem[]>>;
|
getBlackList: (opid?: string) => Promise<BaseResponse<BlackUserItem[]>>;
|
||||||
getFriendApplicationListAsApplicant: (
|
getFriendApplicationListAsApplicant: (
|
||||||
opid?: string
|
opid?: string
|
||||||
@@ -167,7 +190,7 @@ export interface FriendModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<FullUserItem[]>>;
|
) => Promise<BaseResponse<FullUserItem[]>>;
|
||||||
refuseFriendApplication: (
|
refuseFriendApplication: (
|
||||||
params: AccessFriendParams,
|
params: AccessFriendApplicationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
removeBlack: (userID: string, opid?: string) => Promise<BaseResponse<void>>;
|
removeBlack: (userID: string, opid?: string) => Promise<BaseResponse<void>>;
|
||||||
|
|||||||
@@ -1,27 +1,25 @@
|
|||||||
import { v4 as uuidV4 } from 'uuid';
|
import { v4 as uuidV4 } from 'uuid';
|
||||||
import {
|
import { BaseResponse } from '@/types/entity';
|
||||||
BaseResponse,
|
|
||||||
GroupApplicationItem,
|
|
||||||
GroupItem,
|
|
||||||
GroupMemberItem,
|
|
||||||
} from '@/types/entity';
|
|
||||||
import OpenIMSDK from '..';
|
import OpenIMSDK from '..';
|
||||||
|
import {
|
||||||
|
GroupItem,
|
||||||
|
GroupApplicationItem,
|
||||||
|
GroupMemberItem,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/entity';
|
||||||
import {
|
import {
|
||||||
CreateGroupParams,
|
CreateGroupParams,
|
||||||
JoinGroupParams,
|
JoinGroupParams,
|
||||||
OpreateGroupParams,
|
|
||||||
SearchGroupParams,
|
SearchGroupParams,
|
||||||
SetGroupinfoParams,
|
AccessGroupApplicationParams,
|
||||||
AccessGroupParams,
|
|
||||||
GetGroupMemberParams,
|
GetGroupMemberParams,
|
||||||
getGroupMembersInfoParams,
|
|
||||||
SearchGroupMemberParams,
|
SearchGroupMemberParams,
|
||||||
UpdateMemberInfoParams,
|
UpdateMemberInfoParams,
|
||||||
GetGroupMemberByTimeParams,
|
GetGroupMemberByTimeParams,
|
||||||
ChangeGroupMemberMuteParams,
|
ChangeGroupMemberMuteParams,
|
||||||
ChangeGroupMuteParams,
|
ChangeGroupMuteParams,
|
||||||
TransferGroupParams,
|
TransferGroupParams,
|
||||||
} from '@/types/params';
|
AccessToGroupParams,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/params';
|
||||||
|
|
||||||
export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
||||||
return {
|
return {
|
||||||
@@ -41,11 +39,12 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
|||||||
opid,
|
opid,
|
||||||
params.groupID,
|
params.groupID,
|
||||||
params.reqMsg,
|
params.reqMsg,
|
||||||
params.joinSource
|
params.joinSource,
|
||||||
|
params.ex ?? ''
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
inviteUserToGroup: (params: OpreateGroupParams, opid = uuidV4()) =>
|
inviteUserToGroup: (params: AccessToGroupParams, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.invite_user_to_group(
|
openIMSDK.libOpenIMSDK.invite_user_to_group(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -82,7 +81,7 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
setGroupInfo: (params: SetGroupinfoParams, opid = uuidV4()) =>
|
setGroupInfo: (params: Partial<GroupItem>, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.set_group_info(
|
openIMSDK.libOpenIMSDK.set_group_info(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -107,7 +106,10 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
acceptGroupApplication: (params: AccessGroupParams, opid = uuidV4()) =>
|
acceptGroupApplication: (
|
||||||
|
params: AccessGroupApplicationParams,
|
||||||
|
opid = uuidV4()
|
||||||
|
) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.accept_group_application(
|
openIMSDK.libOpenIMSDK.accept_group_application(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -118,7 +120,10 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
refuseGroupApplication: (params: AccessGroupParams, opid = uuidV4()) =>
|
refuseGroupApplication: (
|
||||||
|
params: AccessGroupApplicationParams,
|
||||||
|
opid = uuidV4()
|
||||||
|
) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.refuse_group_application(
|
openIMSDK.libOpenIMSDK.refuse_group_application(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -142,7 +147,7 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
getSpecifiedGroupMembersInfo: (
|
getSpecifiedGroupMembersInfo: (
|
||||||
params: getGroupMembersInfoParams,
|
params: Omit<AccessToGroupParams, 'reason'>,
|
||||||
opid = uuidV4()
|
opid = uuidV4()
|
||||||
) =>
|
) =>
|
||||||
new Promise<BaseResponse<GroupMemberItem[]>>((resolve, reject) => {
|
new Promise<BaseResponse<GroupMemberItem[]>>((resolve, reject) => {
|
||||||
@@ -198,7 +203,7 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
kickGroupMember: (params: OpreateGroupParams, opid = uuidV4()) =>
|
kickGroupMember: (params: AccessToGroupParams, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.kick_group_member(
|
openIMSDK.libOpenIMSDK.kick_group_member(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -273,7 +278,7 @@ export interface GroupModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
inviteUserToGroup: (
|
inviteUserToGroup: (
|
||||||
params: OpreateGroupParams,
|
params: AccessToGroupParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
getJoinedGroupList: (opid?: string) => Promise<BaseResponse<GroupItem[]>>;
|
getJoinedGroupList: (opid?: string) => Promise<BaseResponse<GroupItem[]>>;
|
||||||
@@ -286,7 +291,7 @@ export interface GroupModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<GroupItem[]>>;
|
) => Promise<BaseResponse<GroupItem[]>>;
|
||||||
setGroupInfo: (
|
setGroupInfo: (
|
||||||
params: SetGroupinfoParams,
|
params: Partial<GroupItem>,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
getGroupApplicationListAsRecipient: (
|
getGroupApplicationListAsRecipient: (
|
||||||
@@ -296,11 +301,11 @@ export interface GroupModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<GroupApplicationItem[]>>;
|
) => Promise<BaseResponse<GroupApplicationItem[]>>;
|
||||||
acceptGroupApplication: (
|
acceptGroupApplication: (
|
||||||
params: AccessGroupParams,
|
params: AccessGroupApplicationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
refuseGroupApplication: (
|
refuseGroupApplication: (
|
||||||
params: AccessGroupParams,
|
params: AccessGroupApplicationParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
getGroupMemberList: (
|
getGroupMemberList: (
|
||||||
@@ -308,7 +313,7 @@ export interface GroupModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<GroupMemberItem[]>>;
|
) => Promise<BaseResponse<GroupMemberItem[]>>;
|
||||||
getSpecifiedGroupMembersInfo: (
|
getSpecifiedGroupMembersInfo: (
|
||||||
params: getGroupMembersInfoParams,
|
params: Omit<AccessToGroupParams, 'reason'>,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<GroupMemberItem[]>>;
|
) => Promise<BaseResponse<GroupMemberItem[]>>;
|
||||||
searchGroupMembers: (
|
searchGroupMembers: (
|
||||||
@@ -328,7 +333,7 @@ export interface GroupModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<GroupMemberItem[]>>;
|
) => Promise<BaseResponse<GroupMemberItem[]>>;
|
||||||
kickGroupMember: (
|
kickGroupMember: (
|
||||||
params: OpreateGroupParams,
|
params: AccessToGroupParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
changeGroupMemberMute: (
|
changeGroupMemberMute: (
|
||||||
|
|||||||
@@ -1,34 +1,36 @@
|
|||||||
import { v4 as uuidV4 } from 'uuid';
|
import { v4 as uuidV4 } from 'uuid';
|
||||||
import OpenIMSDK from '..';
|
import OpenIMSDK from '..';
|
||||||
|
import { BaseResponse } from '@/types/entity';
|
||||||
import {
|
import {
|
||||||
AdvancedGetMessageResult,
|
|
||||||
BaseResponse,
|
|
||||||
CardElem,
|
|
||||||
MessageItem,
|
MessageItem,
|
||||||
} from '@/types/entity';
|
CardElem,
|
||||||
|
AdvancedGetMessageResult,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/entity';
|
||||||
import {
|
import {
|
||||||
AtMsgParams,
|
AtMsgParams,
|
||||||
|
LocationMsgParams,
|
||||||
CustomMsgParams,
|
CustomMsgParams,
|
||||||
|
QuoteMsgParams,
|
||||||
|
MergerMsgParams,
|
||||||
FaceMessageParams,
|
FaceMessageParams,
|
||||||
FileMsgByPathParams,
|
SendMsgParams,
|
||||||
FileMsgByUrlParams,
|
TypingUpdateParams,
|
||||||
FindMessageParams,
|
SearchLocalParams,
|
||||||
GetAdvancedHistoryMsgParams,
|
GetAdvancedHistoryMsgParams,
|
||||||
ImageMsgByUrlParams,
|
FindMessageParams,
|
||||||
InsertGroupMsgParams,
|
InsertGroupMsgParams,
|
||||||
InsertSingleMsgParams,
|
InsertSingleMsgParams,
|
||||||
LocationMsgParams,
|
|
||||||
MergerMsgParams,
|
|
||||||
OpreateMessageParams,
|
|
||||||
QuoteMsgParams,
|
|
||||||
SearchLocalParams,
|
|
||||||
SendMsgParams,
|
|
||||||
SetMessageLocalExParams,
|
SetMessageLocalExParams,
|
||||||
SoundMsgByPathParams,
|
AccessMessageParams,
|
||||||
SoundMsgByUrlParams,
|
ImageMsgParamsByURL,
|
||||||
TypingUpdateParams,
|
VideoMsgParamsByURL,
|
||||||
|
FileMsgParamsByURL,
|
||||||
|
SoundMsgParamsByURL,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/params';
|
||||||
|
import {
|
||||||
VideoMsgByPathParams,
|
VideoMsgByPathParams,
|
||||||
VideoMsgByUrlParams,
|
SoundMsgByPathParams,
|
||||||
|
FileMsgByPathParams,
|
||||||
} from '@/types/params';
|
} from '@/types/params';
|
||||||
|
|
||||||
export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
||||||
@@ -134,7 +136,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
createImageMessageByUrl: (params: ImageMsgByUrlParams, opid = uuidV4()) =>
|
createImageMessageByUrl: (params: ImageMsgParamsByURL, opid = uuidV4()) =>
|
||||||
openIMSDK.asyncRetunWrap<MessageItem>(
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
||||||
opid,
|
opid,
|
||||||
openIMSDK.libOpenIMSDK.create_image_message_by_url(
|
openIMSDK.libOpenIMSDK.create_image_message_by_url(
|
||||||
@@ -173,7 +175,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
createVideoMessageByUrl: (params: VideoMsgByUrlParams, opid = uuidV4()) =>
|
createVideoMessageByUrl: (params: VideoMsgParamsByURL, opid = uuidV4()) =>
|
||||||
openIMSDK.asyncRetunWrap<MessageItem>(
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
||||||
opid,
|
opid,
|
||||||
openIMSDK.libOpenIMSDK.create_video_message_by_url(
|
openIMSDK.libOpenIMSDK.create_video_message_by_url(
|
||||||
@@ -205,7 +207,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
createSoundMessageByUrl: (params: SoundMsgByUrlParams, opid = uuidV4()) =>
|
createSoundMessageByUrl: (params: SoundMsgParamsByURL, opid = uuidV4()) =>
|
||||||
openIMSDK.asyncRetunWrap<MessageItem>(
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
||||||
opid,
|
opid,
|
||||||
openIMSDK.libOpenIMSDK.create_sound_message_by_url(
|
openIMSDK.libOpenIMSDK.create_sound_message_by_url(
|
||||||
@@ -237,7 +239,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
createFileMessageByUrl: (params: FileMsgByUrlParams, opid = uuidV4()) =>
|
createFileMessageByUrl: (params: FileMsgParamsByURL, opid = uuidV4()) =>
|
||||||
openIMSDK.asyncRetunWrap<MessageItem>(
|
openIMSDK.asyncRetunWrap<MessageItem>(
|
||||||
opid,
|
opid,
|
||||||
openIMSDK.libOpenIMSDK.create_file_message_by_url(
|
openIMSDK.libOpenIMSDK.create_file_message_by_url(
|
||||||
@@ -256,12 +258,13 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
iOSBadgeCount: true,
|
iOSBadgeCount: true,
|
||||||
};
|
};
|
||||||
openIMSDK.libOpenIMSDK.send_message(
|
openIMSDK.libOpenIMSDK.send_message(
|
||||||
openIMSDK.baseCallbackWrap<MessageItem>(resolve, reject),
|
openIMSDK.sendMessageCallbackWrap<MessageItem>(resolve, reject),
|
||||||
opid,
|
opid,
|
||||||
JSON.stringify(params.message),
|
JSON.stringify(params.message),
|
||||||
params.recvID,
|
params.recvID,
|
||||||
params.groupID,
|
params.groupID,
|
||||||
JSON.stringify(offlinePushInfo)
|
JSON.stringify(offlinePushInfo),
|
||||||
|
params.isOnlineOnly ?? false
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -275,12 +278,13 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
iOSBadgeCount: true,
|
iOSBadgeCount: true,
|
||||||
};
|
};
|
||||||
openIMSDK.libOpenIMSDK.send_message_not_oss(
|
openIMSDK.libOpenIMSDK.send_message_not_oss(
|
||||||
openIMSDK.baseCallbackWrap<MessageItem>(resolve, reject),
|
openIMSDK.sendMessageCallbackWrap<MessageItem>(resolve, reject),
|
||||||
opid,
|
opid,
|
||||||
JSON.stringify(params.message),
|
JSON.stringify(params.message),
|
||||||
params.recvID,
|
params.recvID,
|
||||||
params.groupID,
|
params.groupID,
|
||||||
JSON.stringify(offlinePushInfo)
|
JSON.stringify(offlinePushInfo),
|
||||||
|
params.isOnlineOnly ?? false
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -294,7 +298,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
revokeMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
revokeMessage: (params: AccessMessageParams, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.revoke_message(
|
openIMSDK.libOpenIMSDK.revoke_message(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -304,7 +308,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
deleteMessage: (params: OpreateMessageParams, opid = uuidV4()) =>
|
deleteMessage: (params: AccessMessageParams, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.delete_message(
|
openIMSDK.libOpenIMSDK.delete_message(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -315,7 +319,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
deleteMessageFromLocalStorage: (
|
deleteMessageFromLocalStorage: (
|
||||||
params: OpreateMessageParams,
|
params: AccessMessageParams,
|
||||||
opid = uuidV4()
|
opid = uuidV4()
|
||||||
) =>
|
) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
@@ -468,7 +472,7 @@ export interface MessageModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createImageMessageByUrl: (
|
createImageMessageByUrl: (
|
||||||
params: ImageMsgByUrlParams,
|
params: ImageMsgParamsByURL,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createVideoMessage: (
|
createVideoMessage: (
|
||||||
@@ -480,7 +484,7 @@ export interface MessageModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createVideoMessageByUrl: (
|
createVideoMessageByUrl: (
|
||||||
params: VideoMsgByUrlParams,
|
params: VideoMsgParamsByURL,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createSoundMessage: (
|
createSoundMessage: (
|
||||||
@@ -492,7 +496,7 @@ export interface MessageModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createSoundMessageByUrl: (
|
createSoundMessageByUrl: (
|
||||||
params: SoundMsgByUrlParams,
|
params: SoundMsgParamsByURL,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createFileMessage: (
|
createFileMessage: (
|
||||||
@@ -504,7 +508,7 @@ export interface MessageModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
createFileMessageByUrl: (
|
createFileMessageByUrl: (
|
||||||
params: FileMsgByUrlParams,
|
params: FileMsgParamsByURL,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<MessageItem>>;
|
) => Promise<BaseResponse<MessageItem>>;
|
||||||
sendMessage: (
|
sendMessage: (
|
||||||
@@ -520,15 +524,15 @@ export interface MessageModuleApi {
|
|||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
revokeMessage: (
|
revokeMessage: (
|
||||||
params: OpreateMessageParams,
|
params: AccessMessageParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
deleteMessage: (
|
deleteMessage: (
|
||||||
params: OpreateMessageParams,
|
params: AccessMessageParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
deleteMessageFromLocalStorage: (
|
deleteMessageFromLocalStorage: (
|
||||||
params: OpreateMessageParams,
|
params: AccessMessageParams,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
deleteAllMsgFromLocal: (opid?: string) => Promise<BaseResponse<void>>;
|
deleteAllMsgFromLocal: (opid?: string) => Promise<BaseResponse<void>>;
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
import { v4 as uuidV4 } from 'uuid';
|
import { v4 as uuidV4 } from 'uuid';
|
||||||
import {
|
import { BaseResponse } from '@/types/entity';
|
||||||
BaseResponse,
|
|
||||||
FullUserItemWithCache,
|
|
||||||
SelfUserInfo,
|
|
||||||
UserOnlineState,
|
|
||||||
} from '@/types/entity';
|
|
||||||
import OpenIMSDK from '..';
|
import OpenIMSDK from '..';
|
||||||
import { GetUserInfoWithCacheParams, SetSelfInfoParams } from '@/types/params';
|
import { MessageReceiveOptType } from 'open-im-sdk-wasm';
|
||||||
import { MessageReceiveOptType } from '@/types/enum';
|
import {
|
||||||
|
SelfUserInfo,
|
||||||
|
FullUserItemWithCache,
|
||||||
|
UserOnlineState,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/entity';
|
||||||
|
import {
|
||||||
|
GetUserInfoWithCacheParams,
|
||||||
|
PartialUserItem,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/params';
|
||||||
|
|
||||||
export function setupUserModule(openIMSDK: OpenIMSDK) {
|
export function setupUserModule(openIMSDK: OpenIMSDK) {
|
||||||
return {
|
return {
|
||||||
@@ -19,7 +22,7 @@ export function setupUserModule(openIMSDK: OpenIMSDK) {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|
||||||
setSelfInfo: (params: SetSelfInfoParams, opid = uuidV4()) =>
|
setSelfInfo: (params: PartialUserItem, opid = uuidV4()) =>
|
||||||
new Promise<BaseResponse<void>>((resolve, reject) => {
|
new Promise<BaseResponse<void>>((resolve, reject) => {
|
||||||
openIMSDK.libOpenIMSDK.set_self_info(
|
openIMSDK.libOpenIMSDK.set_self_info(
|
||||||
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
openIMSDK.baseCallbackWrap<void>(resolve, reject),
|
||||||
@@ -84,7 +87,7 @@ export function setupUserModule(openIMSDK: OpenIMSDK) {
|
|||||||
export interface UserModuleApi {
|
export interface UserModuleApi {
|
||||||
getSelfUserInfo: (opid?: string) => Promise<BaseResponse<SelfUserInfo>>;
|
getSelfUserInfo: (opid?: string) => Promise<BaseResponse<SelfUserInfo>>;
|
||||||
setSelfInfo: (
|
setSelfInfo: (
|
||||||
params: SetSelfInfoParams,
|
params: PartialUserItem,
|
||||||
opid?: string
|
opid?: string
|
||||||
) => Promise<BaseResponse<void>>;
|
) => Promise<BaseResponse<void>>;
|
||||||
getUsersInfoWithCache: (
|
getUsersInfoWithCache: (
|
||||||
|
|||||||
159
src/render.ts
Normal file
159
src/render.ts
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
import { CbEvents, getSDK as WasmGetSDK } from 'open-im-sdk-wasm';
|
||||||
|
import { MessageItem, WsResponse } from 'open-im-sdk-wasm/lib/types/entity';
|
||||||
|
import {
|
||||||
|
WasmPathConfig,
|
||||||
|
InitAndLoginConfig,
|
||||||
|
} from 'open-im-sdk-wasm/lib/types/params';
|
||||||
|
import Emitter from './utils/emitter';
|
||||||
|
import {
|
||||||
|
InitConfig,
|
||||||
|
FileMsgByPathParams,
|
||||||
|
SoundMsgByPathParams,
|
||||||
|
VideoMsgByPathParams,
|
||||||
|
} from './types/params';
|
||||||
|
|
||||||
|
type EmitterEvents = {
|
||||||
|
[key in CbEvents]: any;
|
||||||
|
};
|
||||||
|
|
||||||
|
type WasmInterface = ReturnType<typeof WasmGetSDK>;
|
||||||
|
|
||||||
|
type IMSDKInterface = Omit<WasmInterface, 'login'> & {
|
||||||
|
login: (
|
||||||
|
params: Partial<InitAndLoginConfig>,
|
||||||
|
operationID?: string
|
||||||
|
) => Promise<WsResponse>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
initSDK: (param: InitConfig, opid?: string) => Promise<boolean>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createImageMessage: (
|
||||||
|
imagePath: string,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createImageMessageFromFullPath: (
|
||||||
|
imagePath: string,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createVideoMessage: (
|
||||||
|
params: VideoMsgByPathParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createVideoMessageFromFullPath: (
|
||||||
|
params: VideoMsgByPathParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createSoundMessage: (
|
||||||
|
params: SoundMsgByPathParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createSoundMessageFromFullPath: (
|
||||||
|
params: SoundMsgByPathParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createFileMessage: (
|
||||||
|
params: FileMsgByPathParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
/**
|
||||||
|
* @access only for electron
|
||||||
|
*/
|
||||||
|
createFileMessageFromFullPath: (
|
||||||
|
params: FileMsgByPathParams,
|
||||||
|
opid?: string
|
||||||
|
) => Promise<WsResponse<MessageItem>>;
|
||||||
|
};
|
||||||
|
|
||||||
|
type ElectronInvoke = (method: string, ...args: any[]) => Promise<WsResponse>;
|
||||||
|
|
||||||
|
type CreateElectronOptions = {
|
||||||
|
wasmConfig?: WasmPathConfig;
|
||||||
|
invoke?: ElectronInvoke;
|
||||||
|
};
|
||||||
|
|
||||||
|
let wasmSDK: IMSDKInterface | undefined;
|
||||||
|
const sdkEmitter = new Emitter();
|
||||||
|
|
||||||
|
// eslint-disable-next-line
|
||||||
|
const methodCache = new WeakMap<Function, any>();
|
||||||
|
|
||||||
|
async function createWasmSDK(wasmConfig?: WasmPathConfig): Promise<void> {
|
||||||
|
if (!wasmSDK) {
|
||||||
|
const { getSDK } = await import('open-im-sdk-wasm');
|
||||||
|
wasmSDK = getSDK(wasmConfig) as unknown as IMSDKInterface;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getWithRenderProcess({
|
||||||
|
wasmConfig,
|
||||||
|
invoke,
|
||||||
|
}: CreateElectronOptions) {
|
||||||
|
const subscribeCallback = (event: keyof EmitterEvents, data: any) =>
|
||||||
|
sdkEmitter.emit(event, data);
|
||||||
|
|
||||||
|
const sdkProxyHandler: ProxyHandler<IMSDKInterface> = {
|
||||||
|
get(_, prop: keyof IMSDKInterface) {
|
||||||
|
return async (...args: any[]) => {
|
||||||
|
try {
|
||||||
|
if (!invoke) {
|
||||||
|
await createWasmSDK(wasmConfig);
|
||||||
|
if (!wasmSDK) throw new Error('WASM SDK is not available');
|
||||||
|
const cachedMethod = methodCache.get(wasmSDK[prop]);
|
||||||
|
if (cachedMethod) {
|
||||||
|
// eslint-disable-next-line
|
||||||
|
return cachedMethod(...args);
|
||||||
|
}
|
||||||
|
// @ts-ignore
|
||||||
|
const method = async (...args: any[]) => wasmSDK;
|
||||||
|
methodCache.set(wasmSDK[prop], method);
|
||||||
|
return method(...args);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!subscribeCallback) {
|
||||||
|
console.warn('No subscribeCallback method provided');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prop === 'on' || prop === 'off') {
|
||||||
|
// @ts-ignore
|
||||||
|
return sdkEmitter[prop](...args);
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = await invoke(prop, ...args);
|
||||||
|
if (result?.errCode) {
|
||||||
|
throw result;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Error invoking ${prop}:`, error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
subscribeCallback,
|
||||||
|
proxy: new Proxy({} as IMSDKInterface, sdkProxyHandler),
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,21 +1,4 @@
|
|||||||
import { CbEvents } from '@/constant/callback';
|
import { CbEvents } from 'open-im-sdk-wasm';
|
||||||
import {
|
|
||||||
GroupType,
|
|
||||||
ApplicationHandleResult,
|
|
||||||
GroupJoinSource,
|
|
||||||
GroupStatus,
|
|
||||||
MessageReceiveOptType,
|
|
||||||
Relationship,
|
|
||||||
GroupVerificationType,
|
|
||||||
AllowType,
|
|
||||||
GroupMemberRole,
|
|
||||||
SessionType,
|
|
||||||
GroupAtType,
|
|
||||||
MessageType,
|
|
||||||
Platform,
|
|
||||||
MessageStatus,
|
|
||||||
OnlineState,
|
|
||||||
} from './enum';
|
|
||||||
|
|
||||||
export type EmitProxy = (event: CbEvents, ...args: any[]) => void;
|
export type EmitProxy = (event: CbEvents, ...args: any[]) => void;
|
||||||
|
|
||||||
@@ -35,425 +18,3 @@ export interface BaseResponse<T = unknown> {
|
|||||||
data: T;
|
data: T;
|
||||||
operationID: string;
|
operationID: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type MessageEntity = {
|
|
||||||
type: string;
|
|
||||||
offset: number;
|
|
||||||
length: number;
|
|
||||||
url?: string;
|
|
||||||
info?: string;
|
|
||||||
};
|
|
||||||
export type PicBaseInfo = {
|
|
||||||
uuid: string;
|
|
||||||
type: string;
|
|
||||||
size: number;
|
|
||||||
width: number;
|
|
||||||
height: number;
|
|
||||||
url: string;
|
|
||||||
};
|
|
||||||
export type AtUsersInfoItem = {
|
|
||||||
atUserID: string;
|
|
||||||
groupNickname: string;
|
|
||||||
};
|
|
||||||
export type GroupApplicationItem = {
|
|
||||||
createTime: number;
|
|
||||||
creatorUserID: string;
|
|
||||||
ex: string;
|
|
||||||
groupFaceURL: string;
|
|
||||||
groupID: string;
|
|
||||||
groupName: string;
|
|
||||||
groupType: GroupType;
|
|
||||||
handleResult: ApplicationHandleResult;
|
|
||||||
handleUserID: string;
|
|
||||||
handledMsg: string;
|
|
||||||
handledTime: number;
|
|
||||||
introduction: string;
|
|
||||||
memberCount: number;
|
|
||||||
nickname: string;
|
|
||||||
notification: string;
|
|
||||||
ownerUserID: string;
|
|
||||||
reqMsg: string;
|
|
||||||
reqTime: number;
|
|
||||||
joinSource: GroupJoinSource;
|
|
||||||
status: GroupStatus;
|
|
||||||
userFaceURL: string;
|
|
||||||
userID: string;
|
|
||||||
};
|
|
||||||
export type FriendApplicationItem = {
|
|
||||||
createTime: number;
|
|
||||||
ex: string;
|
|
||||||
fromFaceURL: string;
|
|
||||||
fromNickname: string;
|
|
||||||
fromUserID: string;
|
|
||||||
handleMsg: string;
|
|
||||||
handleResult: ApplicationHandleResult;
|
|
||||||
handleTime: number;
|
|
||||||
handlerUserID: string;
|
|
||||||
reqMsg: string;
|
|
||||||
toFaceURL: string;
|
|
||||||
toNickname: string;
|
|
||||||
toUserID: string;
|
|
||||||
};
|
|
||||||
export type FullUserItem = {
|
|
||||||
blackInfo: BlackUserItem | null;
|
|
||||||
friendInfo: FriendUserItem | null;
|
|
||||||
publicInfo: PublicUserItem | null;
|
|
||||||
};
|
|
||||||
export type FullUserItemWithCache = {
|
|
||||||
blackInfo: BlackUserItem | null;
|
|
||||||
friendInfo: FriendUserItem | null;
|
|
||||||
publicInfo: PublicUserItem | null;
|
|
||||||
groupMemberInfo: GroupMemberItem | null;
|
|
||||||
};
|
|
||||||
export type PublicUserItem = {
|
|
||||||
nickname: string;
|
|
||||||
userID: string;
|
|
||||||
faceURL: string;
|
|
||||||
ex: string;
|
|
||||||
};
|
|
||||||
export type SelfUserInfo = {
|
|
||||||
createTime: number;
|
|
||||||
ex: string;
|
|
||||||
faceURL: string;
|
|
||||||
nickname: string;
|
|
||||||
userID: string;
|
|
||||||
globalRecvMsgOpt: MessageReceiveOptType;
|
|
||||||
};
|
|
||||||
export type PartialUserInfo = {
|
|
||||||
userID: string;
|
|
||||||
} & Partial<Omit<SelfUserInfo, 'userID'>>;
|
|
||||||
export type FriendUserItem = {
|
|
||||||
addSource: number;
|
|
||||||
createTime: number;
|
|
||||||
ex: string;
|
|
||||||
faceURL: string;
|
|
||||||
userID: string;
|
|
||||||
nickname: string;
|
|
||||||
operatorUserID: string;
|
|
||||||
ownerUserID: string;
|
|
||||||
remark: string;
|
|
||||||
attachedInfo: string;
|
|
||||||
};
|
|
||||||
export type SearchedFriendsInfo = FriendUserItem & {
|
|
||||||
relationship: Relationship;
|
|
||||||
};
|
|
||||||
export type FriendshipInfo = {
|
|
||||||
result: number;
|
|
||||||
userID: string;
|
|
||||||
};
|
|
||||||
export type BlackUserItem = {
|
|
||||||
addSource: number;
|
|
||||||
userID: string;
|
|
||||||
createTime: number;
|
|
||||||
ex: string;
|
|
||||||
faceURL: string;
|
|
||||||
nickname: string;
|
|
||||||
operatorUserID: string;
|
|
||||||
ownerUserID: string;
|
|
||||||
};
|
|
||||||
export type GroupItem = {
|
|
||||||
groupID: string;
|
|
||||||
groupName: string;
|
|
||||||
notification: string;
|
|
||||||
notificationUserID: string;
|
|
||||||
notificationUpdateTime: number;
|
|
||||||
introduction: string;
|
|
||||||
faceURL: string;
|
|
||||||
ownerUserID: string;
|
|
||||||
createTime: number;
|
|
||||||
memberCount: number;
|
|
||||||
status: GroupStatus;
|
|
||||||
creatorUserID: string;
|
|
||||||
groupType: GroupType;
|
|
||||||
needVerification: GroupVerificationType;
|
|
||||||
ex: string;
|
|
||||||
applyMemberFriend: AllowType;
|
|
||||||
lookMemberInfo: AllowType;
|
|
||||||
};
|
|
||||||
export type GroupMemberItem = {
|
|
||||||
groupID: string;
|
|
||||||
userID: string;
|
|
||||||
nickname: string;
|
|
||||||
faceURL: string;
|
|
||||||
roleLevel: GroupMemberRole;
|
|
||||||
muteEndTime: number;
|
|
||||||
joinTime: number;
|
|
||||||
joinSource: GroupJoinSource;
|
|
||||||
inviterUserID: string;
|
|
||||||
operatorUserID: string;
|
|
||||||
ex: string;
|
|
||||||
};
|
|
||||||
export type ConversationItem = {
|
|
||||||
conversationID: string;
|
|
||||||
conversationType: SessionType;
|
|
||||||
userID: string;
|
|
||||||
groupID: string;
|
|
||||||
showName: string;
|
|
||||||
faceURL: string;
|
|
||||||
recvMsgOpt: MessageReceiveOptType;
|
|
||||||
unreadCount: number;
|
|
||||||
groupAtType: GroupAtType;
|
|
||||||
latestMsg: string;
|
|
||||||
latestMsgSendTime: number;
|
|
||||||
draftText: string;
|
|
||||||
draftTextTime: number;
|
|
||||||
burnDuration: number;
|
|
||||||
msgDestructTime: number;
|
|
||||||
isPinned: boolean;
|
|
||||||
isNotInGroup: boolean;
|
|
||||||
isPrivateChat: boolean;
|
|
||||||
isMsgDestruct: boolean;
|
|
||||||
attachedInfo: string;
|
|
||||||
ex: string;
|
|
||||||
};
|
|
||||||
export type MessageItem = {
|
|
||||||
clientMsgID: string;
|
|
||||||
serverMsgID: string;
|
|
||||||
createTime: number;
|
|
||||||
sendTime: number;
|
|
||||||
sessionType: SessionType;
|
|
||||||
sendID: string;
|
|
||||||
recvID: string;
|
|
||||||
msgFrom: number;
|
|
||||||
contentType: MessageType;
|
|
||||||
senderPlatformID: Platform;
|
|
||||||
senderNickname: string;
|
|
||||||
senderFaceUrl: string;
|
|
||||||
groupID: string;
|
|
||||||
content: string;
|
|
||||||
seq: number;
|
|
||||||
isRead: boolean;
|
|
||||||
status: MessageStatus;
|
|
||||||
isReact: boolean;
|
|
||||||
isExternalExtensions: boolean;
|
|
||||||
offlinePush: OfflinePush;
|
|
||||||
attachedInfo: string;
|
|
||||||
ex: string;
|
|
||||||
localEx: string;
|
|
||||||
textElem: TextElem;
|
|
||||||
cardElem: CardElem;
|
|
||||||
pictureElem: PictureElem;
|
|
||||||
soundElem: SoundElem;
|
|
||||||
videoElem: VideoElem;
|
|
||||||
fileElem: FileElem;
|
|
||||||
mergeElem: MergeElem;
|
|
||||||
atTextElem: AtTextElem;
|
|
||||||
faceElem: FaceElem;
|
|
||||||
locationElem: LocationElem;
|
|
||||||
customElem: CustomElem;
|
|
||||||
quoteElem: QuoteElem;
|
|
||||||
notificationElem: NotificationElem;
|
|
||||||
advancedTextElem: AdvancedTextElem;
|
|
||||||
typingElem: TypingElem;
|
|
||||||
attachedInfoElem: AttachedInfoElem;
|
|
||||||
};
|
|
||||||
export type TextElem = {
|
|
||||||
content: string;
|
|
||||||
};
|
|
||||||
export type CardElem = {
|
|
||||||
userID: string;
|
|
||||||
nickname: string;
|
|
||||||
faceURL: string;
|
|
||||||
ex: string;
|
|
||||||
};
|
|
||||||
export type AtTextElem = {
|
|
||||||
text: string;
|
|
||||||
atUserList: string[];
|
|
||||||
atUsersInfo?: AtUsersInfoItem[];
|
|
||||||
quoteMessage?: MessageItem;
|
|
||||||
isAtSelf?: boolean;
|
|
||||||
};
|
|
||||||
export type NotificationElem = {
|
|
||||||
detail: string;
|
|
||||||
};
|
|
||||||
export type AdvancedTextElem = {
|
|
||||||
text: string;
|
|
||||||
messageEntityList: MessageEntity[];
|
|
||||||
};
|
|
||||||
export type TypingElem = {
|
|
||||||
msgTips: string;
|
|
||||||
};
|
|
||||||
export type CustomElem = {
|
|
||||||
data: string;
|
|
||||||
description: string;
|
|
||||||
extension: string;
|
|
||||||
};
|
|
||||||
export type FileElem = {
|
|
||||||
filePath: string;
|
|
||||||
uuid: string;
|
|
||||||
sourceUrl: string;
|
|
||||||
fileName: string;
|
|
||||||
fileSize: number;
|
|
||||||
};
|
|
||||||
export type FaceElem = {
|
|
||||||
index: number;
|
|
||||||
data: string;
|
|
||||||
};
|
|
||||||
export type LocationElem = {
|
|
||||||
description: string;
|
|
||||||
longitude: number;
|
|
||||||
latitude: number;
|
|
||||||
};
|
|
||||||
export type MergeElem = {
|
|
||||||
title: string;
|
|
||||||
abstractList: string[];
|
|
||||||
multiMessage: MessageItem[];
|
|
||||||
messageEntityList: MessageEntity[];
|
|
||||||
};
|
|
||||||
export type OfflinePush = {
|
|
||||||
title: string;
|
|
||||||
desc: string;
|
|
||||||
ex: string;
|
|
||||||
iOSPushSound: string;
|
|
||||||
iOSBadgeCount: boolean;
|
|
||||||
};
|
|
||||||
export type PictureElem = {
|
|
||||||
sourcePath: string;
|
|
||||||
sourcePicture: Picture;
|
|
||||||
bigPicture: Picture;
|
|
||||||
snapshotPicture: Picture;
|
|
||||||
};
|
|
||||||
export type AttachedInfoElem = {
|
|
||||||
groupHasReadInfo: GroupHasReadInfo;
|
|
||||||
isPrivateChat: boolean;
|
|
||||||
isEncryption: boolean;
|
|
||||||
inEncryptStatus: boolean;
|
|
||||||
burnDuration: number;
|
|
||||||
hasReadTime: number;
|
|
||||||
notSenderNotificationPush: boolean;
|
|
||||||
messageEntityList: MessageEntity[];
|
|
||||||
uploadProgress: UploadProgress;
|
|
||||||
};
|
|
||||||
export type UploadProgress = {
|
|
||||||
total: number;
|
|
||||||
save: number;
|
|
||||||
current: number;
|
|
||||||
};
|
|
||||||
export type GroupHasReadInfo = {
|
|
||||||
hasReadCount: number;
|
|
||||||
unreadCount: number;
|
|
||||||
hasReadUserIDList: string[];
|
|
||||||
groupMemberCount: number;
|
|
||||||
};
|
|
||||||
export type Picture = {
|
|
||||||
uuid: string;
|
|
||||||
type: string;
|
|
||||||
size: number;
|
|
||||||
width: number;
|
|
||||||
height: number;
|
|
||||||
url: string;
|
|
||||||
};
|
|
||||||
export type QuoteElem = {
|
|
||||||
text: string;
|
|
||||||
quoteMessage: MessageItem;
|
|
||||||
};
|
|
||||||
export type SoundElem = {
|
|
||||||
uuid: string;
|
|
||||||
soundPath: string;
|
|
||||||
sourceUrl: string;
|
|
||||||
dataSize: number;
|
|
||||||
duration: number;
|
|
||||||
};
|
|
||||||
export type VideoElem = {
|
|
||||||
videoPath: string;
|
|
||||||
videoUUID: string;
|
|
||||||
videoUrl: string;
|
|
||||||
videoType: string;
|
|
||||||
videoSize: number;
|
|
||||||
duration: number;
|
|
||||||
snapshotPath: string;
|
|
||||||
snapshotUUID: string;
|
|
||||||
snapshotSize: number;
|
|
||||||
snapshotUrl: string;
|
|
||||||
snapshotWidth: number;
|
|
||||||
snapshotHeight: number;
|
|
||||||
};
|
|
||||||
export type AdvancedRevokeContent = {
|
|
||||||
clientMsgID: string;
|
|
||||||
revokeTime: number;
|
|
||||||
revokerID: string;
|
|
||||||
revokerNickname: string;
|
|
||||||
revokerRole: number;
|
|
||||||
seq: number;
|
|
||||||
sessionType: SessionType;
|
|
||||||
sourceMessageSendID: string;
|
|
||||||
sourceMessageSendTime: number;
|
|
||||||
sourceMessageSenderNickname: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type RevokedInfo = {
|
|
||||||
revokerID: string;
|
|
||||||
revokerRole: number;
|
|
||||||
clientMsgID: string;
|
|
||||||
revokerNickname: string;
|
|
||||||
revokeTime: number;
|
|
||||||
sourceMessageSendTime: number;
|
|
||||||
sourceMessageSendID: string;
|
|
||||||
sourceMessageSenderNickname: string;
|
|
||||||
sessionType: number;
|
|
||||||
seq: number;
|
|
||||||
ex: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type ReceiptInfo = {
|
|
||||||
userID: string;
|
|
||||||
groupID: string;
|
|
||||||
msgIDList: string[];
|
|
||||||
readTime: number;
|
|
||||||
msgFrom: number;
|
|
||||||
contentType: MessageType;
|
|
||||||
sessionType: SessionType;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SearchMessageResult = {
|
|
||||||
totalCount: number;
|
|
||||||
searchResultItems: SearchMessageResultItem[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SearchMessageResultItem = {
|
|
||||||
conversationID: string;
|
|
||||||
messageCount: number;
|
|
||||||
conversationType: SessionType;
|
|
||||||
showName: string;
|
|
||||||
faceURL: string;
|
|
||||||
messageList: MessageItem[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type AdvancedGetMessageResult = {
|
|
||||||
isEnd: boolean;
|
|
||||||
lastMinSeq: number;
|
|
||||||
errCode: number;
|
|
||||||
errMsg: string;
|
|
||||||
messageList: MessageItem[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type RtcInvite = {
|
|
||||||
inviterUserID: string;
|
|
||||||
inviteeUserIDList: string[];
|
|
||||||
customData?: string;
|
|
||||||
groupID: string;
|
|
||||||
roomID: string;
|
|
||||||
timeout: number;
|
|
||||||
mediaType: string;
|
|
||||||
sessionType: number;
|
|
||||||
platformID: number;
|
|
||||||
initiateTime?: number;
|
|
||||||
busyLineUserIDList?: string[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type UserOnlineState = {
|
|
||||||
platformIDs?: Platform[];
|
|
||||||
status: OnlineState;
|
|
||||||
userID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GroupMessageReceiptInfo = {
|
|
||||||
conversationID: string;
|
|
||||||
groupMessageReadInfo: GroupMessageReadInfo[];
|
|
||||||
};
|
|
||||||
export type GroupMessageReadInfo = {
|
|
||||||
clientMsgID: string;
|
|
||||||
hasReadCount: number;
|
|
||||||
unreadCount: number;
|
|
||||||
readMembers: GroupMemberItem[];
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -1,135 +0,0 @@
|
|||||||
export enum MessageReceiveOptType {
|
|
||||||
Nomal = 0,
|
|
||||||
NotReceive = 1,
|
|
||||||
NotNotify = 2,
|
|
||||||
}
|
|
||||||
export enum AllowType {
|
|
||||||
Allowed = 0,
|
|
||||||
NotAllowed = 1,
|
|
||||||
}
|
|
||||||
export enum GroupType {
|
|
||||||
Group = 2,
|
|
||||||
WorkingGroup = 2,
|
|
||||||
}
|
|
||||||
export enum GroupJoinSource {
|
|
||||||
Invitation = 2,
|
|
||||||
Search = 3,
|
|
||||||
QrCode = 4,
|
|
||||||
}
|
|
||||||
export enum GroupMemberRole {
|
|
||||||
Nomal = 20,
|
|
||||||
Admin = 60,
|
|
||||||
Owner = 100,
|
|
||||||
}
|
|
||||||
export enum GroupVerificationType {
|
|
||||||
ApplyNeedInviteNot = 0,
|
|
||||||
AllNeed = 1,
|
|
||||||
AllNot = 2,
|
|
||||||
}
|
|
||||||
export enum MessageStatus {
|
|
||||||
Sending = 1,
|
|
||||||
Succeed = 2,
|
|
||||||
Failed = 3,
|
|
||||||
}
|
|
||||||
export enum Platform {
|
|
||||||
iOS = 1,
|
|
||||||
Android = 2,
|
|
||||||
Windows = 3,
|
|
||||||
MacOSX = 4,
|
|
||||||
Web = 5,
|
|
||||||
Linux = 7,
|
|
||||||
AndroidPad = 8,
|
|
||||||
iPad = 9,
|
|
||||||
}
|
|
||||||
export enum LogLevel {
|
|
||||||
Debug = 5,
|
|
||||||
Info = 4,
|
|
||||||
Warn = 3,
|
|
||||||
Error = 2,
|
|
||||||
Fatal = 1,
|
|
||||||
Panic = 0,
|
|
||||||
}
|
|
||||||
export enum ApplicationHandleResult {
|
|
||||||
Unprocessed = 0,
|
|
||||||
Agree = 1,
|
|
||||||
Reject = -1,
|
|
||||||
}
|
|
||||||
export enum MessageType {
|
|
||||||
TextMessage = 101,
|
|
||||||
PictureMessage = 102,
|
|
||||||
VoiceMessage = 103,
|
|
||||||
VideoMessage = 104,
|
|
||||||
FileMessage = 105,
|
|
||||||
AtTextMessage = 106,
|
|
||||||
MergeMessage = 107,
|
|
||||||
CardMessage = 108,
|
|
||||||
LocationMessage = 109,
|
|
||||||
CustomMessage = 110,
|
|
||||||
TypingMessage = 113,
|
|
||||||
QuoteMessage = 114,
|
|
||||||
FaceMessage = 115,
|
|
||||||
FriendAdded = 1201,
|
|
||||||
OANotification = 1400,
|
|
||||||
|
|
||||||
GroupCreated = 1501,
|
|
||||||
MemberQuit = 1504,
|
|
||||||
GroupOwnerTransferred = 1507,
|
|
||||||
MemberKicked = 1508,
|
|
||||||
MemberInvited = 1509,
|
|
||||||
MemberEnter = 1510,
|
|
||||||
GroupDismissed = 1511,
|
|
||||||
GroupMemberMuted = 1512,
|
|
||||||
GroupMemberCancelMuted = 1513,
|
|
||||||
GroupMuted = 1514,
|
|
||||||
GroupCancelMuted = 1515,
|
|
||||||
GroupAnnouncementUpdated = 1519,
|
|
||||||
GroupNameUpdated = 1520,
|
|
||||||
BurnMessageChange = 1701,
|
|
||||||
|
|
||||||
// notification
|
|
||||||
RevokeMessage = 2101,
|
|
||||||
}
|
|
||||||
export enum SessionType {
|
|
||||||
Single = 1,
|
|
||||||
Group = 3,
|
|
||||||
WorkingGroup = 3,
|
|
||||||
Notification = 4,
|
|
||||||
}
|
|
||||||
export enum GroupStatus {
|
|
||||||
Nomal = 0,
|
|
||||||
Baned = 1,
|
|
||||||
Dismissed = 2,
|
|
||||||
Muted = 3,
|
|
||||||
}
|
|
||||||
export enum GroupAtType {
|
|
||||||
AtNormal = 0,
|
|
||||||
AtMe = 1,
|
|
||||||
AtAll = 2,
|
|
||||||
AtAllAtMe = 3,
|
|
||||||
AtGroupNotice = 4,
|
|
||||||
}
|
|
||||||
export enum GroupMemberFilter {
|
|
||||||
All = 0,
|
|
||||||
Owner = 1,
|
|
||||||
Admin = 2,
|
|
||||||
Nomal = 3,
|
|
||||||
AdminAndNomal = 4,
|
|
||||||
AdminAndOwner = 5,
|
|
||||||
}
|
|
||||||
export enum Relationship {
|
|
||||||
isBlack = 0,
|
|
||||||
isFriend = 1,
|
|
||||||
}
|
|
||||||
export enum LoginStatus {
|
|
||||||
Logout = 1,
|
|
||||||
Logging = 2,
|
|
||||||
Logged = 3,
|
|
||||||
}
|
|
||||||
export enum OnlineState {
|
|
||||||
Online = 1,
|
|
||||||
Offline = 0,
|
|
||||||
}
|
|
||||||
export enum GroupMessageReaderFilter {
|
|
||||||
Readed = 0,
|
|
||||||
UnRead = 1,
|
|
||||||
}
|
|
||||||
792
src/types/ffi-napi.d.ts
vendored
792
src/types/ffi-napi.d.ts
vendored
@@ -1,792 +0,0 @@
|
|||||||
/* 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;
|
|
||||||
}
|
|
||||||
49
src/types/libOpenIMSDK.d.ts
vendored
49
src/types/libOpenIMSDK.d.ts
vendored
@@ -1,24 +1,11 @@
|
|||||||
// libOpenIMSDK.d.ts
|
// libOpenIMSDK.d.ts
|
||||||
declare module 'libOpenIMSDK' {
|
declare module 'libOpenIMSDK' {
|
||||||
export type CB_S = Buffer | ((data: string) => void);
|
import { IKoffiRegisteredCallback } from 'koffi';
|
||||||
export type CB_I_S = Buffer | ((event: number, data: string) => void);
|
|
||||||
export type CB_S_I_S_S =
|
export type CB_S = IKoffiRegisteredCallback;
|
||||||
| Buffer
|
export type CB_I_S = IKoffiRegisteredCallback;
|
||||||
| ((
|
export type CB_S_I_S_S = IKoffiRegisteredCallback;
|
||||||
operationID: string,
|
export type CB_S_I_S_S_I = IKoffiRegisteredCallback;
|
||||||
errCode: number,
|
|
||||||
errMsg: string,
|
|
||||||
data: string
|
|
||||||
) => void);
|
|
||||||
export type CB_S_I_S_S_I =
|
|
||||||
| Buffer
|
|
||||||
| ((
|
|
||||||
operationID: string,
|
|
||||||
errCode: number,
|
|
||||||
errMsg: string,
|
|
||||||
data: string,
|
|
||||||
progress: number
|
|
||||||
) => void);
|
|
||||||
|
|
||||||
export interface LibOpenIMSDK {
|
export interface LibOpenIMSDK {
|
||||||
set_group_listener(cCallback: CB_I_S): void;
|
set_group_listener(cCallback: CB_I_S): void;
|
||||||
@@ -232,6 +219,12 @@ declare module 'libOpenIMSDK' {
|
|||||||
operationID: string
|
operationID: string
|
||||||
): void;
|
): void;
|
||||||
get_at_all_tag(operationID: string): string;
|
get_at_all_tag(operationID: string): string;
|
||||||
|
set_conversation_ex(
|
||||||
|
cCallback: CB_S_I_S_S,
|
||||||
|
operationID: string,
|
||||||
|
conversationID: string,
|
||||||
|
ex: string
|
||||||
|
): void;
|
||||||
get_conversation_id_by_session_type(
|
get_conversation_id_by_session_type(
|
||||||
operationID: string,
|
operationID: string,
|
||||||
sourceID: string,
|
sourceID: string,
|
||||||
@@ -243,7 +236,8 @@ declare module 'libOpenIMSDK' {
|
|||||||
message: string,
|
message: string,
|
||||||
recvID: string,
|
recvID: string,
|
||||||
groupID: string,
|
groupID: string,
|
||||||
offlinePushInfo: string
|
offlinePushInfo: string,
|
||||||
|
isOnlineOnly: boolean
|
||||||
): void;
|
): void;
|
||||||
send_message_not_oss(
|
send_message_not_oss(
|
||||||
cCallback: CB_S_I_S_S_I,
|
cCallback: CB_S_I_S_S_I,
|
||||||
@@ -251,7 +245,8 @@ declare module 'libOpenIMSDK' {
|
|||||||
message: string,
|
message: string,
|
||||||
recvID: string,
|
recvID: string,
|
||||||
groupID: string,
|
groupID: string,
|
||||||
offlinePushInfo: string
|
offlinePushInfo: string,
|
||||||
|
isOnlineOnly: boolean
|
||||||
): void;
|
): void;
|
||||||
find_message_list(
|
find_message_list(
|
||||||
cCallback: CB_S_I_S_S,
|
cCallback: CB_S_I_S_S,
|
||||||
@@ -409,6 +404,12 @@ declare module 'libOpenIMSDK' {
|
|||||||
operationID: string,
|
operationID: string,
|
||||||
searchParam: string
|
searchParam: string
|
||||||
): void;
|
): void;
|
||||||
|
set_friends_ex(
|
||||||
|
cCallback: CB_S_I_S_S,
|
||||||
|
operationID: string,
|
||||||
|
toUserIDs: string,
|
||||||
|
ex: string
|
||||||
|
): void;
|
||||||
check_friend(
|
check_friend(
|
||||||
cCallback: CB_S_I_S_S,
|
cCallback: CB_S_I_S_S,
|
||||||
operationID: string,
|
operationID: string,
|
||||||
@@ -450,7 +451,8 @@ declare module 'libOpenIMSDK' {
|
|||||||
add_black(
|
add_black(
|
||||||
cCallback: CB_S_I_S_S,
|
cCallback: CB_S_I_S_S,
|
||||||
operationID: string,
|
operationID: string,
|
||||||
blackUserID: string
|
blackUserID: string,
|
||||||
|
ex: string
|
||||||
): void;
|
): void;
|
||||||
get_black_list(cCallback: CB_S_I_S_S, operationID: string): void;
|
get_black_list(cCallback: CB_S_I_S_S, operationID: string): void;
|
||||||
remove_black(
|
remove_black(
|
||||||
@@ -469,7 +471,8 @@ declare module 'libOpenIMSDK' {
|
|||||||
operationID: string,
|
operationID: string,
|
||||||
cGroupID: string,
|
cGroupID: string,
|
||||||
cReqMsg: string,
|
cReqMsg: string,
|
||||||
cJoinSource: number
|
cJoinSource: number,
|
||||||
|
ex: string
|
||||||
): void;
|
): void;
|
||||||
quit_group(
|
quit_group(
|
||||||
cCallback: CB_S_I_S_S,
|
cCallback: CB_S_I_S_S,
|
||||||
|
|||||||
@@ -1,25 +1,11 @@
|
|||||||
import {
|
import { LogLevel } from 'open-im-sdk-wasm';
|
||||||
AtUsersInfoItem,
|
|
||||||
GroupItem,
|
|
||||||
MessageItem,
|
|
||||||
OfflinePush,
|
|
||||||
PicBaseInfo,
|
|
||||||
SelfUserInfo,
|
|
||||||
} from './entity';
|
|
||||||
import {
|
|
||||||
MessageReceiveOptType,
|
|
||||||
GroupJoinSource,
|
|
||||||
GroupMemberFilter,
|
|
||||||
GroupMemberRole,
|
|
||||||
MessageType,
|
|
||||||
LogLevel,
|
|
||||||
} from './enum';
|
|
||||||
|
|
||||||
export interface InitConfig {
|
export interface InitConfig {
|
||||||
apiAddr: string;
|
apiAddr: string;
|
||||||
wsAddr: string;
|
wsAddr: string;
|
||||||
logLevel?: LogLevel;
|
logLevel?: LogLevel;
|
||||||
platformID: number;
|
platformID: number;
|
||||||
|
dataDir: string;
|
||||||
|
logFilePath?: string;
|
||||||
isLogStandardOutput?: boolean;
|
isLogStandardOutput?: boolean;
|
||||||
isExternalExtensions?: boolean;
|
isExternalExtensions?: boolean;
|
||||||
}
|
}
|
||||||
@@ -29,201 +15,11 @@ export interface LoginParams {
|
|||||||
token: string;
|
token: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type SetSelfInfoParams = Partial<SelfUserInfo>;
|
|
||||||
|
|
||||||
export type GetUserInfoWithCacheParams = {
|
|
||||||
userIDList: string[];
|
|
||||||
groupID?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SplitConversationParams = {
|
|
||||||
offset: number;
|
|
||||||
count: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetOneConversationParams = {
|
|
||||||
sourceID: string;
|
|
||||||
sessionType: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SetConversationDraftParams = {
|
|
||||||
conversationID: string;
|
|
||||||
draftText: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type PinConversationParams = {
|
|
||||||
conversationID: string;
|
|
||||||
isPinned: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SetConversationRecvOptParams = {
|
|
||||||
conversationID: string;
|
|
||||||
opt: MessageReceiveOptType;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SetConversationPrivateParams = {
|
|
||||||
conversationID: string;
|
|
||||||
isPrivate: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SetBurnDurationParams = {
|
|
||||||
conversationID: string;
|
|
||||||
burnDuration: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type AccessFriendParams = {
|
|
||||||
toUserID: string;
|
|
||||||
handleMsg: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type AddFriendParams = {
|
|
||||||
toUserID: string;
|
|
||||||
reqMsg: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SearchFriendParams = {
|
|
||||||
keywordList: string[];
|
|
||||||
isSearchUserID: boolean;
|
|
||||||
isSearchNickname: boolean;
|
|
||||||
isSearchRemark: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type RemarkFriendParams = {
|
|
||||||
toUserID: string;
|
|
||||||
remark: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type CreateGroupParams = {
|
|
||||||
memberUserIDs: string[];
|
|
||||||
groupInfo: Partial<GroupItem>;
|
|
||||||
adminUserIDs?: string[];
|
|
||||||
ownerUserID?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type JoinGroupParams = {
|
|
||||||
groupID: string;
|
|
||||||
reqMsg: string;
|
|
||||||
joinSource: GroupJoinSource;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type OpreateGroupParams = {
|
|
||||||
groupID: string;
|
|
||||||
reason: string;
|
|
||||||
userIDList: string[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SearchGroupParams = {
|
|
||||||
keywordList: string[];
|
|
||||||
isSearchGroupID: boolean;
|
|
||||||
isSearchGroupName: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SetGroupinfoParams = Partial<GroupItem> & { groupID: string };
|
|
||||||
|
|
||||||
export type AccessGroupParams = {
|
|
||||||
groupID: string;
|
|
||||||
fromUserID: string;
|
|
||||||
handleMsg: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export declare type GetGroupMemberParams = {
|
|
||||||
groupID: string;
|
|
||||||
filter: GroupMemberFilter;
|
|
||||||
offset: number;
|
|
||||||
count: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type getGroupMembersInfoParams = {
|
|
||||||
groupID: string;
|
|
||||||
userIDList: string[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SearchGroupMemberParams = {
|
|
||||||
groupID: string;
|
|
||||||
keywordList: string[];
|
|
||||||
isSearchUserID: boolean;
|
|
||||||
isSearchMemberNickname: boolean;
|
|
||||||
offset: number;
|
|
||||||
count: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type UpdateMemberInfoParams = {
|
|
||||||
groupID: string;
|
|
||||||
userID: string;
|
|
||||||
nickname?: string;
|
|
||||||
faceURL?: string;
|
|
||||||
roleLevel?: GroupMemberRole;
|
|
||||||
ex?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetGroupMemberByTimeParams = {
|
|
||||||
groupID: string;
|
|
||||||
filterUserIDList: string[];
|
|
||||||
offset: number;
|
|
||||||
count: number;
|
|
||||||
joinTimeBegin: number;
|
|
||||||
joinTimeEnd: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type ChangeGroupMemberMuteParams = {
|
|
||||||
groupID: string;
|
|
||||||
userID: string;
|
|
||||||
mutedSeconds: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type ChangeGroupMuteParams = {
|
|
||||||
groupID: string;
|
|
||||||
isMute: boolean;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type TransferGroupParams = {
|
|
||||||
groupID: string;
|
|
||||||
newOwnerUserID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type AtMsgParams = {
|
|
||||||
text: string;
|
|
||||||
atUserIDList: string[];
|
|
||||||
atUsersInfo?: AtUsersInfoItem[];
|
|
||||||
message?: MessageItem;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type ImageMsgByUrlParams = {
|
|
||||||
sourcePicture: PicBaseInfo;
|
|
||||||
bigPicture: PicBaseInfo;
|
|
||||||
snapshotPicture: PicBaseInfo;
|
|
||||||
sourcePath: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SoundMsgByUrlParams = {
|
|
||||||
uuid: string;
|
|
||||||
soundPath: string;
|
|
||||||
sourceUrl: string;
|
|
||||||
dataSize: number;
|
|
||||||
duration: number;
|
|
||||||
soundType?: string;
|
|
||||||
};
|
|
||||||
export type SoundMsgByPathParams = {
|
export type SoundMsgByPathParams = {
|
||||||
soundPath: string;
|
soundPath: string;
|
||||||
duration: number;
|
duration: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type VideoMsgByUrlParams = {
|
|
||||||
videoPath: string;
|
|
||||||
duration: number;
|
|
||||||
videoType: string;
|
|
||||||
snapshotPath: string;
|
|
||||||
videoUUID: string;
|
|
||||||
videoUrl: string;
|
|
||||||
videoSize: number;
|
|
||||||
snapshotUUID: string;
|
|
||||||
snapshotSize: number;
|
|
||||||
snapshotUrl: string;
|
|
||||||
snapshotWidth: number;
|
|
||||||
snapshotHeight: number;
|
|
||||||
snapShotType?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type VideoMsgByPathParams = {
|
export type VideoMsgByPathParams = {
|
||||||
videoPath: string;
|
videoPath: string;
|
||||||
videoType: string;
|
videoType: string;
|
||||||
@@ -235,101 +31,3 @@ export type FileMsgByPathParams = {
|
|||||||
filePath: string;
|
filePath: string;
|
||||||
fileName: string;
|
fileName: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type FileMsgByUrlParams = {
|
|
||||||
filePath: string;
|
|
||||||
fileName: string;
|
|
||||||
uuid: string;
|
|
||||||
sourceUrl: string;
|
|
||||||
fileSize: number;
|
|
||||||
fileType?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type MergerMsgParams = {
|
|
||||||
messageList: MessageItem[];
|
|
||||||
title: string;
|
|
||||||
summaryList: string[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type LocationMsgParams = {
|
|
||||||
description: string;
|
|
||||||
longitude: number;
|
|
||||||
latitude: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type QuoteMsgParams = {
|
|
||||||
text: string;
|
|
||||||
message: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type CustomMsgParams = {
|
|
||||||
data: string;
|
|
||||||
extension: string;
|
|
||||||
description: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type FaceMessageParams = {
|
|
||||||
index: number;
|
|
||||||
data: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SendMsgParams = {
|
|
||||||
recvID: string;
|
|
||||||
groupID: string;
|
|
||||||
offlinePushInfo?: OfflinePush;
|
|
||||||
message: MessageItem;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type TypingUpdateParams = {
|
|
||||||
recvID: string;
|
|
||||||
msgTip: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type OpreateMessageParams = {
|
|
||||||
conversationID: string;
|
|
||||||
clientMsgID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SearchLocalParams = {
|
|
||||||
conversationID: string;
|
|
||||||
keywordList: string[];
|
|
||||||
keywordListMatchType?: number;
|
|
||||||
senderUserIDList?: string[];
|
|
||||||
messageTypeList?: MessageType[];
|
|
||||||
searchTimePosition?: number;
|
|
||||||
searchTimePeriod?: number;
|
|
||||||
pageIndex?: number;
|
|
||||||
count?: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type GetAdvancedHistoryMsgParams = {
|
|
||||||
userID?: string;
|
|
||||||
groupID?: string;
|
|
||||||
lastMinSeq: number;
|
|
||||||
count: number;
|
|
||||||
startClientMsgID: string;
|
|
||||||
conversationID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type FindMessageParams = {
|
|
||||||
conversationID: string;
|
|
||||||
clientMsgIDList: string[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export type InsertGroupMsgParams = {
|
|
||||||
message: MessageItem;
|
|
||||||
groupID: string;
|
|
||||||
sendID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type InsertSingleMsgParams = {
|
|
||||||
message: MessageItem;
|
|
||||||
recvID: string;
|
|
||||||
sendID: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export type SetMessageLocalExParams = {
|
|
||||||
conversationID: string;
|
|
||||||
clientMsgID: string;
|
|
||||||
localEx: string;
|
|
||||||
};
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { CbEvents } from '@/constant/callback';
|
import { CbEvents } from 'open-im-sdk-wasm';
|
||||||
|
|
||||||
interface Events {
|
interface Events {
|
||||||
[key: string]: Cbfn[];
|
[key: string]: Cbfn[];
|
||||||
|
|||||||
Reference in New Issue
Block a user