chore: add assets & handle enterprise func

This commit is contained in:
Bloomingg
2024-05-27 20:53:14 +08:00
parent 37ca7ae07e
commit da9b1a056c
12 changed files with 187 additions and 177 deletions

Binary file not shown.

Binary file not shown.

View File

BIN
assets/mac_arm64/libopenimsdk.dylib Executable file → Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

10
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@openim/node-client-sdk",
"version": "1.0.7",
"name": "@openim/electron-client-sdk",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openim/node-client-sdk",
"version": "1.0.7",
"name": "@openim/electron-client-sdk",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"koffi": "^2.8.0",
@@ -44,7 +44,7 @@
},
"peerDependencies": {
"electron": ">=12.0.0",
"open-im-sdk-wasm": "^3.5.3-alpha.2"
"open-im-sdk-wasm": "^3.5.3-alpha.5"
}
},
"node_modules/@aashutoshrathi/word-wrap": {

View File

@@ -1,6 +1,6 @@
{
"name": "@openim/electron-client-sdk",
"version": "1.0.0",
"version": "1.0.1",
"description": "open im sdk for node",
"source": "src/index.ts",
"main": "lib/index.js",

View File

@@ -45,9 +45,11 @@ class OpenIMSDK
sendMessageCallbackProto: koffi.IKoffiCType;
listenerCallback: koffi.IKoffiRegisteredCallback;
lib: koffi.IKoffiLib;
enterprise: boolean;
constructor(libPath: string, emitProxy?: EmitProxy) {
constructor(libPath: string, emitProxy?: EmitProxy, enterprise = false) {
super();
this.enterprise = enterprise;
this.lib = koffi.load(libPath);
this.baseCallbackProto = koffi.proto('__stdcall', 'baseCallback', 'void', [
'str',
@@ -67,12 +69,6 @@ class OpenIMSDK
'void',
['int', 'str']
);
if (emitProxy) {
// @ts-ignore eslint-disable-next-line
this.emit = emitProxy;
}
this.listenerCallback = koffi.register(
(event: NativeEvent, data: string) => {
const cbEvent = eventMapping[event];
@@ -82,6 +78,22 @@ class OpenIMSDK
koffi.pointer(listenerCallbackProto)
);
if (emitProxy) {
// @ts-ignore eslint-disable-next-line
this.emit = emitProxy;
}
this.registerFunc();
Object.assign(this, setupUserModule(this));
Object.assign(this, setupFriendModule(this));
Object.assign(this, setupGroupModule(this));
Object.assign(this, setupConversationModule(this));
Object.assign(this, setupMessageModule(this));
Object.assign(this, setupSignalingModule(this));
}
registerFunc = () => {
this.libOpenIMSDK.set_group_listener = this.lib.func(
'__stdcall',
'set_group_listener',
@@ -124,12 +136,6 @@ class OpenIMSDK
'void',
['listenerCallback *']
);
this.libOpenIMSDK.set_signaling_listener = this.lib.func(
'__stdcall',
'set_signaling_listener',
'void',
['listenerCallback *']
);
this.libOpenIMSDK.init_sdk = this.lib.func(
'__stdcall',
'init_sdk',
@@ -338,30 +344,6 @@ class OpenIMSDK
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.set_conversation_msg_destruct_time = this.lib.func(
'__stdcall',
'set_conversation_msg_destruct_time',
'void',
['baseCallback *', 'str', 'str', 'long long']
);
this.libOpenIMSDK.set_conversation_is_msg_destruct = this.lib.func(
'__stdcall',
'set_conversation_is_msg_destruct',
'void',
['baseCallback *', 'str', 'str', 'int']
);
this.libOpenIMSDK.send_group_message_read_receipt = this.lib.func(
'__stdcall',
'send_group_message_read_receipt',
'void',
['baseCallback *', 'str', 'str', 'str']
);
this.libOpenIMSDK.get_group_message_reader_list = this.lib.func(
'__stdcall',
'get_group_message_reader_list',
'void',
['baseCallback *', 'str', 'str', 'str', 'int', 'int', 'int']
);
this.libOpenIMSDK.hide_conversation = this.lib.func(
'__stdcall',
'hide_conversation',
@@ -847,118 +829,6 @@ class OpenIMSDK
'int',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_invite_in_group = this.lib.func(
'__stdcall',
'signaling_invite_in_group',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_invite = this.lib.func(
'__stdcall',
'signaling_invite',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_accept = this.lib.func(
'__stdcall',
'signaling_accept',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_reject = this.lib.func(
'__stdcall',
'signaling_reject',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_cancel = this.lib.func(
'__stdcall',
'signaling_cancel',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_hung_up = this.lib.func(
'__stdcall',
'signaling_hung_up',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_get_room_by_group_id = this.lib.func(
'__stdcall',
'signaling_get_room_by_group_id',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_get_token_by_room_id = this.lib.func(
'__stdcall',
'signaling_get_token_by_room_id',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.get_signaling_invitation_info_start_app = this.lib.func(
'__stdcall',
'get_signaling_invitation_info_start_app',
'void',
['baseCallback *', 'str']
);
this.libOpenIMSDK.signaling_create_meeting = this.lib.func(
'__stdcall',
'signaling_create_meeting',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_join_meeting = this.lib.func(
'__stdcall',
'signaling_join_meeting',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_update_meeting_info = this.lib.func(
'__stdcall',
'signaling_update_meeting_info',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_close_room = this.lib.func(
'__stdcall',
'signaling_close_room',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_get_meetings = this.lib.func(
'__stdcall',
'signaling_get_meetings',
'void',
['baseCallback *', 'str']
);
this.libOpenIMSDK.signaling_operate_stream = this.lib.func(
'__stdcall',
'signaling_operate_stream',
'void',
['baseCallback *', 'str', 'str', 'str', 'str', 'int', 'int']
);
this.libOpenIMSDK.signaling_send_custom_signal = this.lib.func(
'__stdcall',
'signaling_send_custom_signal',
'void',
['baseCallback *', 'str', 'str', 'str']
);
this.libOpenIMSDK.upload_file = this.lib.func(
'__stdcall',
'upload_file',
@@ -966,13 +836,151 @@ class OpenIMSDK
['baseCallback *', 'str', 'str', 'listenerCallback *']
);
Object.assign(this, setupUserModule(this));
Object.assign(this, setupFriendModule(this));
Object.assign(this, setupGroupModule(this));
Object.assign(this, setupConversationModule(this));
Object.assign(this, setupMessageModule(this));
Object.assign(this, setupSignalingModule(this));
}
// advance
if (this.enterprise) {
this.libOpenIMSDK.set_conversation_msg_destruct_time = this.lib.func(
'__stdcall',
'set_conversation_msg_destruct_time',
'void',
['baseCallback *', 'str', 'str', 'long long']
);
this.libOpenIMSDK.set_conversation_is_msg_destruct = this.lib.func(
'__stdcall',
'set_conversation_is_msg_destruct',
'void',
['baseCallback *', 'str', 'str', 'int']
);
this.libOpenIMSDK.send_group_message_read_receipt = this.lib.func(
'__stdcall',
'send_group_message_read_receipt',
'void',
['baseCallback *', 'str', 'str', 'str']
);
this.libOpenIMSDK.get_group_message_reader_list = this.lib.func(
'__stdcall',
'get_group_message_reader_list',
'void',
['baseCallback *', 'str', 'str', 'str', 'int', 'int', 'int']
);
this.libOpenIMSDK.set_signaling_listener = this.lib.func(
'__stdcall',
'set_signaling_listener',
'void',
['listenerCallback *']
);
this.libOpenIMSDK.signaling_invite_in_group = this.lib.func(
'__stdcall',
'signaling_invite_in_group',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_invite = this.lib.func(
'__stdcall',
'signaling_invite',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_accept = this.lib.func(
'__stdcall',
'signaling_accept',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_reject = this.lib.func(
'__stdcall',
'signaling_reject',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_cancel = this.lib.func(
'__stdcall',
'signaling_cancel',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_hung_up = this.lib.func(
'__stdcall',
'signaling_hung_up',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_get_room_by_group_id = this.lib.func(
'__stdcall',
'signaling_get_room_by_group_id',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_get_token_by_room_id = this.lib.func(
'__stdcall',
'signaling_get_token_by_room_id',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.get_signaling_invitation_info_start_app = this.lib.func(
'__stdcall',
'get_signaling_invitation_info_start_app',
'void',
['baseCallback *', 'str']
);
this.libOpenIMSDK.signaling_create_meeting = this.lib.func(
'__stdcall',
'signaling_create_meeting',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_join_meeting = this.lib.func(
'__stdcall',
'signaling_join_meeting',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_update_meeting_info = this.lib.func(
'__stdcall',
'signaling_update_meeting_info',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_close_room = this.lib.func(
'__stdcall',
'signaling_close_room',
'void',
['baseCallback *', 'str', 'str']
);
this.libOpenIMSDK.signaling_get_meetings = this.lib.func(
'__stdcall',
'signaling_get_meetings',
'void',
['baseCallback *', 'str']
);
this.libOpenIMSDK.signaling_operate_stream = this.lib.func(
'__stdcall',
'signaling_operate_stream',
'void',
['baseCallback *', 'str', 'str', 'str', 'str', 'int', 'int']
);
this.libOpenIMSDK.signaling_send_custom_signal = this.lib.func(
'__stdcall',
'signaling_send_custom_signal',
'void',
['baseCallback *', 'str', 'str', 'str']
);
}
};
generateEventResponse = (data: unknown, operationID = ''): BaseResponse => {
let errCode = 0;
@@ -1111,7 +1119,9 @@ class OpenIMSDK
this.libOpenIMSDK.set_advanced_msg_listener(this.listenerCallback);
this.libOpenIMSDK.set_batch_msg_listener(this.listenerCallback);
this.libOpenIMSDK.set_custom_business_listener(this.listenerCallback);
this.libOpenIMSDK.set_signaling_listener(this.listenerCallback);
if (this.enterprise) {
this.libOpenIMSDK.set_signaling_listener(this.listenerCallback);
}
};
initSDK = (param: InitConfig, opid = uuidV4()) =>
@@ -1275,16 +1285,16 @@ class OpenIMSDK
createForwardMessage!: MessageModuleApi['createForwardMessage'];
createImageMessage!: MessageModuleApi['createImageMessage'];
createImageMessageFromFullPath!: MessageModuleApi['createImageMessageFromFullPath'];
createImageMessageByUrl!: MessageModuleApi['createImageMessageByUrl'];
createImageMessageByURL!: MessageModuleApi['createImageMessageByURL'];
createVideoMessage!: MessageModuleApi['createVideoMessage'];
createVideoMessageFromFullPath!: MessageModuleApi['createVideoMessageFromFullPath'];
createVideoMessageByUrl!: MessageModuleApi['createVideoMessageByUrl'];
createVideoMessageByURL!: MessageModuleApi['createVideoMessageByURL'];
createSoundMessage!: MessageModuleApi['createSoundMessage'];
createSoundMessageFromFullPath!: MessageModuleApi['createSoundMessageFromFullPath'];
createSoundMessageByUrl!: MessageModuleApi['createSoundMessageByUrl'];
createSoundMessageByURL!: MessageModuleApi['createSoundMessageByURL'];
createFileMessage!: MessageModuleApi['createFileMessage'];
createFileMessageFromFullPath!: MessageModuleApi['createFileMessageFromFullPath'];
createFileMessageByUrl!: MessageModuleApi['createFileMessageByUrl'];
createFileMessageByURL!: MessageModuleApi['createFileMessageByURL'];
getAdvancedHistoryMessageList!: MessageModuleApi['getAdvancedHistoryMessageList'];
getAdvancedHistoryMessageListReverse!: MessageModuleApi['getAdvancedHistoryMessageListReverse'];
sendMessage!: MessageModuleApi['sendMessage'];

View File

@@ -138,7 +138,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
)
),
createImageMessageByUrl: (params: ImageMsgParamsByURL, opid = uuidV4()) =>
createImageMessageByURL: (params: ImageMsgParamsByURL, opid = uuidV4()) =>
openIMSDK.asyncRetunWrap<MessageItem>(
opid,
openIMSDK.libOpenIMSDK.create_image_message_by_url(
@@ -177,7 +177,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
)
),
createVideoMessageByUrl: (params: VideoMsgParamsByURL, opid = uuidV4()) =>
createVideoMessageByURL: (params: VideoMsgParamsByURL, opid = uuidV4()) =>
openIMSDK.asyncRetunWrap<MessageItem>(
opid,
openIMSDK.libOpenIMSDK.create_video_message_by_url(
@@ -209,7 +209,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
)
),
createSoundMessageByUrl: (params: SoundMsgParamsByURL, opid = uuidV4()) =>
createSoundMessageByURL: (params: SoundMsgParamsByURL, opid = uuidV4()) =>
openIMSDK.asyncRetunWrap<MessageItem>(
opid,
openIMSDK.libOpenIMSDK.create_sound_message_by_url(
@@ -241,7 +241,7 @@ export function setupMessageModule(openIMSDK: OpenIMSDK) {
)
),
createFileMessageByUrl: (params: FileMsgParamsByURL, opid = uuidV4()) =>
createFileMessageByURL: (params: FileMsgParamsByURL, opid = uuidV4()) =>
openIMSDK.asyncRetunWrap<MessageItem>(
opid,
openIMSDK.libOpenIMSDK.create_file_message_by_url(
@@ -508,7 +508,7 @@ export interface MessageModuleApi {
imagePath: string,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
createImageMessageByUrl: (
createImageMessageByURL: (
params: ImageMsgParamsByURL,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
@@ -520,7 +520,7 @@ export interface MessageModuleApi {
params: VideoMsgByPathParams,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
createVideoMessageByUrl: (
createVideoMessageByURL: (
params: VideoMsgParamsByURL,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
@@ -532,7 +532,7 @@ export interface MessageModuleApi {
params: SoundMsgByPathParams,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
createSoundMessageByUrl: (
createSoundMessageByURL: (
params: SoundMsgParamsByURL,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
@@ -544,7 +544,7 @@ export interface MessageModuleApi {
params: FileMsgByPathParams,
opid?: string
) => Promise<BaseResponse<MessageItem>>;
createFileMessageByUrl: (
createFileMessageByURL: (
params: FileMsgParamsByURL,
opid?: string
) => Promise<BaseResponse<MessageItem>>;

View File

@@ -5,8 +5,8 @@ import OpenIMSDK from './core';
class OpenIMSDKMain {
private sdk: OpenIMSDK;
private webContents: WebContents[] = [];
constructor(path: string, webContent?: WebContents) {
this.sdk = new OpenIMSDK(path, this.emitProxy);
constructor(path: string, webContent?: WebContents, enterprise = false) {
this.sdk = new OpenIMSDK(path, this.emitProxy, enterprise);
if (webContent) {
this.webContents = [webContent];
}