chore: release 1.0.5

This commit is contained in:
Bloomingg
2024-07-30 16:17:56 +08:00
parent 4bfbce6727
commit 5601f935f0
6 changed files with 116 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@openim/electron-client-sdk", "name": "@openim/electron-client-sdk",
"version": "1.0.2", "version": "1.0.5",
"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",
@@ -59,7 +59,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.3", "open-im-sdk-wasm": "^3.5.3-alpha.6",
"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",
@@ -81,6 +81,6 @@
}, },
"peerDependencies": { "peerDependencies": {
"electron": ">=12.0.0", "electron": ">=12.0.0",
"open-im-sdk-wasm": "^3.5.3-alpha.5" "open-im-sdk-wasm": "^3.8.0-rc.6"
} }
} }

View File

@@ -47,16 +47,17 @@ export enum NativeEvent {
USER_STATUS_CHANGED, USER_STATUS_CHANGED,
RECV_CUSTOM_BUSINESS_MESSAGE, RECV_CUSTOM_BUSINESS_MESSAGE,
MESSAGE_KV_INFO_CHANGED, MESSAGE_KV_INFO_CHANGED,
UPLOAD_FILE_CALLBACK_OPEN, OPEN,
UPLOAD_FILE_CALLBACK_PART_SIZE, PART_SIZE,
UPLOAD_FILE_CALLBACK_HASH_PART_PROGRESS, HASH_PART_PROGRESS,
UPLOAD_FILE_CALLBACK_HASH_PART_COMPLETE, HASH_PART_COMPLETE,
UPLOAD_FILE_CALLBACK_UPLOAD_ID, UPLOAD_ID,
UPLOAD_FILE_CALLBACK_UPLOAD_PART_COMPLETE, UPLOAD_PART_COMPLETE,
UPLOAD_FILE_CALLBACK_UPLOAD_COMPLETE, UPLOAD_COMPLETE,
UPLOAD_FILE_CALLBACK_COMPLETE, COMPLETE,
CONVERSATION_USER_INPUT_STATUS_CHANGED, CONVERSATION_USER_INPUT_STATUS_CHANGED,
RECV_ONLINE_ONLY_MESSAGE, RECV_ONLINE_ONLY_MESSAGE,
USER_TOKEN_INVALID,
RECV_NEW_INVITATION, RECV_NEW_INVITATION,
INVITEE_ACCEPTED, INVITEE_ACCEPTED,
INVITEE_ACCEPTED_BY_OTHER_DEVICE, INVITEE_ACCEPTED_BY_OTHER_DEVICE,
@@ -77,6 +78,7 @@ export const eventMapping: Record<NativeEvent, CbEvents> = {
[NativeEvent.CONNECT_FAILED]: CbEvents.OnConnectFailed, [NativeEvent.CONNECT_FAILED]: CbEvents.OnConnectFailed,
[NativeEvent.KICKED_OFFLINE]: CbEvents.OnKickedOffline, [NativeEvent.KICKED_OFFLINE]: CbEvents.OnKickedOffline,
[NativeEvent.USER_TOKEN_EXPIRED]: CbEvents.OnUserTokenExpired, [NativeEvent.USER_TOKEN_EXPIRED]: CbEvents.OnUserTokenExpired,
[NativeEvent.USER_TOKEN_INVALID]: CbEvents.OnUserTokenInvalid,
[NativeEvent.JOINED_GROUP_ADDED]: CbEvents.OnJoinedGroupAdded, [NativeEvent.JOINED_GROUP_ADDED]: CbEvents.OnJoinedGroupAdded,
[NativeEvent.JOINED_GROUP_DELETED]: CbEvents.OnJoinedGroupDeleted, [NativeEvent.JOINED_GROUP_DELETED]: CbEvents.OnJoinedGroupDeleted,
[NativeEvent.GROUP_MEMBER_ADDED]: CbEvents.OnGroupMemberAdded, [NativeEvent.GROUP_MEMBER_ADDED]: CbEvents.OnGroupMemberAdded,
@@ -101,7 +103,7 @@ export const eventMapping: Record<NativeEvent, CbEvents> = {
[NativeEvent.BLACK_DELETED]: CbEvents.OnBlackDeleted, [NativeEvent.BLACK_DELETED]: CbEvents.OnBlackDeleted,
[NativeEvent.SYNC_SERVER_START]: CbEvents.OnSyncServerStart, [NativeEvent.SYNC_SERVER_START]: CbEvents.OnSyncServerStart,
[NativeEvent.SYNC_SERVER_FINISH]: CbEvents.OnSyncServerFinish, [NativeEvent.SYNC_SERVER_FINISH]: CbEvents.OnSyncServerFinish,
[NativeEvent.SYNC_SERVER_PROGRESS]: CbEvents.OnProgress, [NativeEvent.SYNC_SERVER_PROGRESS]: CbEvents.OnSyncServerProgress,
[NativeEvent.SYNC_SERVER_FAILED]: CbEvents.OnSyncServerFailed, [NativeEvent.SYNC_SERVER_FAILED]: CbEvents.OnSyncServerFailed,
[NativeEvent.NEW_CONVERSATION]: CbEvents.OnNewConversation, [NativeEvent.NEW_CONVERSATION]: CbEvents.OnNewConversation,
[NativeEvent.CONVERSATION_CHANGED]: CbEvents.OnConversationChanged, [NativeEvent.CONVERSATION_CHANGED]: CbEvents.OnConversationChanged,
@@ -116,7 +118,14 @@ export const eventMapping: Record<NativeEvent, CbEvents> = {
[NativeEvent.USER_STATUS_CHANGED]: CbEvents.OnUserStatusChanged, [NativeEvent.USER_STATUS_CHANGED]: CbEvents.OnUserStatusChanged,
[NativeEvent.RECV_CUSTOM_BUSINESS_MESSAGE]: [NativeEvent.RECV_CUSTOM_BUSINESS_MESSAGE]:
CbEvents.OnRecvCustomBusinessMessage, CbEvents.OnRecvCustomBusinessMessage,
[NativeEvent.UPLOAD_FILE_CALLBACK_COMPLETE]: CbEvents.UploadComplete, [NativeEvent.UPLOAD_COMPLETE]: CbEvents.UploadComplete,
[NativeEvent.OPEN]: CbEvents.UnUsedEvent,
[NativeEvent.PART_SIZE]: CbEvents.UnUsedEvent,
[NativeEvent.HASH_PART_PROGRESS]: CbEvents.UnUsedEvent,
[NativeEvent.HASH_PART_COMPLETE]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_ID]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_PART_COMPLETE]: CbEvents.UnUsedEvent,
[NativeEvent.COMPLETE]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_MESSAGE_EXTENSIONS_CHANGED]: CbEvents.UnUsedEvent, [NativeEvent.RECV_MESSAGE_EXTENSIONS_CHANGED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_MESSAGE_EXTENSIONS_DELETED]: CbEvents.UnUsedEvent, [NativeEvent.RECV_MESSAGE_EXTENSIONS_DELETED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_MESSAGE_EXTENSIONS_ADDED]: CbEvents.UnUsedEvent, [NativeEvent.RECV_MESSAGE_EXTENSIONS_ADDED]: CbEvents.UnUsedEvent,
@@ -124,13 +133,6 @@ export const eventMapping: Record<NativeEvent, CbEvents> = {
[NativeEvent.MSG_DELETED]: CbEvents.UnUsedEvent, [NativeEvent.MSG_DELETED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_OFFLINE_NEW_MESSAGES]: CbEvents.UnUsedEvent, [NativeEvent.RECV_OFFLINE_NEW_MESSAGES]: CbEvents.UnUsedEvent,
[NativeEvent.MESSAGE_KV_INFO_CHANGED]: CbEvents.UnUsedEvent, [NativeEvent.MESSAGE_KV_INFO_CHANGED]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_OPEN]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_PART_SIZE]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_HASH_PART_PROGRESS]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_HASH_PART_COMPLETE]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_UPLOAD_ID]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_UPLOAD_PART_COMPLETE]: CbEvents.UnUsedEvent,
[NativeEvent.UPLOAD_FILE_CALLBACK_UPLOAD_COMPLETE]: CbEvents.UnUsedEvent,
[NativeEvent.CONVERSATION_USER_INPUT_STATUS_CHANGED]: CbEvents.UnUsedEvent, [NativeEvent.CONVERSATION_USER_INPUT_STATUS_CHANGED]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_ONLINE_ONLY_MESSAGE]: CbEvents.UnUsedEvent, [NativeEvent.RECV_ONLINE_ONLY_MESSAGE]: CbEvents.UnUsedEvent,
[NativeEvent.RECV_NEW_INVITATION]: CbEvents.OnReceiveNewInvitation, [NativeEvent.RECV_NEW_INVITATION]: CbEvents.OnReceiveNewInvitation,

View File

@@ -30,6 +30,13 @@ function isObject(value: unknown) {
return Object.prototype.toString.call(value) === '[object Object]'; return Object.prototype.toString.call(value) === '[object Object]';
} }
const forceGetDataEvents = [
CbEvents.OnSyncServerStart,
CbEvents.OnSyncServerFinish,
CbEvents.OnSyncServerFailed,
CbEvents.OnSyncServerProgress,
];
class OpenIMSDK class OpenIMSDK
extends Emitter extends Emitter
implements implements
@@ -73,7 +80,8 @@ class OpenIMSDK
(event: NativeEvent, data: string) => { (event: NativeEvent, data: string) => {
const cbEvent = eventMapping[event]; const cbEvent = eventMapping[event];
if (!cbEvent) return; if (!cbEvent) return;
this.emit(cbEvent, this.generateEventResponse(data)); const forceGetData = forceGetDataEvents.includes(cbEvent);
this.emit(cbEvent, this.generateEventResponse(data, '', forceGetData));
}, },
koffi.pointer(listenerCallbackProto) koffi.pointer(listenerCallbackProto)
); );
@@ -655,7 +663,7 @@ class OpenIMSDK
'__stdcall', '__stdcall',
'add_black', 'add_black',
'void', 'void',
['baseCallback *', 'str', 'str'] ['baseCallback *', 'str', 'str', 'str']
); );
this.libOpenIMSDK.get_black_list = this.lib.func( this.libOpenIMSDK.get_black_list = this.lib.func(
'__stdcall', '__stdcall',
@@ -680,7 +688,7 @@ class OpenIMSDK
'__stdcall', '__stdcall',
'join_group', 'join_group',
'void', 'void',
['baseCallback *', 'str', 'str', 'str', 'int'] ['baseCallback *', 'str', 'str', 'str', 'int', 'str']
); );
this.libOpenIMSDK.quit_group = this.lib.func( this.libOpenIMSDK.quit_group = this.lib.func(
'__stdcall', '__stdcall',
@@ -724,6 +732,12 @@ class OpenIMSDK
'void', 'void',
['baseCallback *', 'str'] ['baseCallback *', 'str']
); );
this.libOpenIMSDK.get_joined_group_list_page = this.lib.func(
'__stdcall',
'get_joined_group_list_page',
'void',
['baseCallback *', 'str', 'int', 'int']
);
this.libOpenIMSDK.get_specified_groups_info = this.lib.func( this.libOpenIMSDK.get_specified_groups_info = this.lib.func(
'__stdcall', '__stdcall',
'get_specified_groups_info', 'get_specified_groups_info',
@@ -826,9 +840,15 @@ class OpenIMSDK
this.libOpenIMSDK.is_join_group = this.lib.func( this.libOpenIMSDK.is_join_group = this.lib.func(
'__stdcall', '__stdcall',
'is_join_group', 'is_join_group',
'int', 'void',
['baseCallback *', 'str', 'str'] ['baseCallback *', 'str', 'str']
); );
this.libOpenIMSDK.get_users_in_group = this.lib.func(
'__stdcall',
'get_users_in_group',
'void',
['baseCallback *', 'str', 'str', 'str']
);
this.libOpenIMSDK.upload_file = this.lib.func( this.libOpenIMSDK.upload_file = this.lib.func(
'__stdcall', '__stdcall',
'upload_file', 'upload_file',
@@ -982,7 +1002,11 @@ class OpenIMSDK
} }
}; };
generateEventResponse = (data: unknown, operationID = ''): BaseResponse => { generateEventResponse = (
data: unknown,
operationID = '',
forceGetData = false
): BaseResponse => {
let errCode = 0; let errCode = 0;
let errMsg = ''; let errMsg = '';
try { try {
@@ -999,6 +1023,11 @@ class OpenIMSDK
// @ts-ignore // @ts-ignore
data = data.data; data = data.data;
} }
if (forceGetData) {
// @ts-ignore
const values = Object.values(data);
data = values[0];
}
return { return {
errCode, errCode,
errMsg, errMsg,
@@ -1216,6 +1245,7 @@ class OpenIMSDK
getFriendApplicationListAsApplicant!: FriendModuleApi['getFriendApplicationListAsApplicant']; getFriendApplicationListAsApplicant!: FriendModuleApi['getFriendApplicationListAsApplicant'];
getFriendApplicationListAsRecipient!: FriendModuleApi['getFriendApplicationListAsRecipient']; getFriendApplicationListAsRecipient!: FriendModuleApi['getFriendApplicationListAsRecipient'];
getFriendList!: FriendModuleApi['getFriendList']; getFriendList!: FriendModuleApi['getFriendList'];
getFriendListPage!: FriendModuleApi['getFriendListPage'];
getSpecifiedFriendsInfo!: FriendModuleApi['getSpecifiedFriendsInfo']; getSpecifiedFriendsInfo!: FriendModuleApi['getSpecifiedFriendsInfo'];
refuseFriendApplication!: FriendModuleApi['refuseFriendApplication']; refuseFriendApplication!: FriendModuleApi['refuseFriendApplication'];
removeBlack!: FriendModuleApi['removeBlack']; removeBlack!: FriendModuleApi['removeBlack'];
@@ -1227,6 +1257,7 @@ class OpenIMSDK
joinGroup!: GroupModuleApi['joinGroup']; joinGroup!: GroupModuleApi['joinGroup'];
inviteUserToGroup!: GroupModuleApi['inviteUserToGroup']; inviteUserToGroup!: GroupModuleApi['inviteUserToGroup'];
getJoinedGroupList!: GroupModuleApi['getJoinedGroupList']; getJoinedGroupList!: GroupModuleApi['getJoinedGroupList'];
getJoinedGroupListPage!: GroupModuleApi['getJoinedGroupListPage'];
searchGroups!: GroupModuleApi['searchGroups']; searchGroups!: GroupModuleApi['searchGroups'];
getSpecifiedGroupsInfo!: GroupModuleApi['getSpecifiedGroupsInfo']; getSpecifiedGroupsInfo!: GroupModuleApi['getSpecifiedGroupsInfo'];
setGroupInfo!: GroupModuleApi['setGroupInfo']; setGroupInfo!: GroupModuleApi['setGroupInfo'];
@@ -1247,6 +1278,7 @@ class OpenIMSDK
dismissGroup!: GroupModuleApi['dismissGroup']; dismissGroup!: GroupModuleApi['dismissGroup'];
quitGroup!: GroupModuleApi['quitGroup']; quitGroup!: GroupModuleApi['quitGroup'];
isJoinGroup!: GroupModuleApi['isJoinGroup']; isJoinGroup!: GroupModuleApi['isJoinGroup'];
getUsersInGroup!: GroupModuleApi['getUsersInGroup'];
// implements conversation api // implements conversation api
getAllConversationList!: ConversationModuleApi['getAllConversationList']; getAllConversationList!: ConversationModuleApi['getAllConversationList'];

View File

@@ -6,6 +6,7 @@ import {
AccessFriendApplicationParams, AccessFriendApplicationParams,
AddBlackParams, AddBlackParams,
AddFriendParams, AddFriendParams,
OffsetParams,
RemarkFriendParams, RemarkFriendParams,
SearchFriendParams, SearchFriendParams,
SetFriendExParams, SetFriendExParams,
@@ -110,6 +111,15 @@ export function setupFriendModule(openIMSDK: OpenIMSDK) {
opid opid
); );
}), }),
getFriendListPage: (params: OffsetParams, opid = uuidV4()) =>
new Promise<BaseResponse<FullUserItem[]>>((resolve, reject) => {
openIMSDK.libOpenIMSDK.get_friend_list_page(
openIMSDK.baseCallbackWrap<FullUserItem[]>(resolve, reject),
opid,
params.offset,
params.count
);
}),
getSpecifiedFriendsInfo: (userIDList: string[], opid = uuidV4()) => getSpecifiedFriendsInfo: (userIDList: string[], opid = uuidV4()) =>
new Promise<BaseResponse<FullUserItem[]>>((resolve, reject) => { new Promise<BaseResponse<FullUserItem[]>>((resolve, reject) => {
@@ -185,6 +195,10 @@ export interface FriendModuleApi {
opid?: string opid?: string
) => Promise<BaseResponse<FriendApplicationItem[]>>; ) => Promise<BaseResponse<FriendApplicationItem[]>>;
getFriendList: (opid?: string) => Promise<BaseResponse<FullUserItem[]>>; getFriendList: (opid?: string) => Promise<BaseResponse<FullUserItem[]>>;
getFriendListPage: (
params: OffsetParams,
opid?: string
) => Promise<BaseResponse<FullUserItem[]>>;
getSpecifiedFriendsInfo: ( getSpecifiedFriendsInfo: (
userIDList: string[], userIDList: string[],
opid?: string opid?: string

View File

@@ -19,6 +19,7 @@ import {
ChangeGroupMuteParams, ChangeGroupMuteParams,
TransferGroupParams, TransferGroupParams,
AccessToGroupParams, AccessToGroupParams,
OffsetParams,
} from 'open-im-sdk-wasm/lib/types/params'; } from 'open-im-sdk-wasm/lib/types/params';
export function setupGroupModule(openIMSDK: OpenIMSDK) { export function setupGroupModule(openIMSDK: OpenIMSDK) {
@@ -63,6 +64,16 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
); );
}), }),
getJoinedGroupListPage: (params: OffsetParams, opid = uuidV4()) =>
new Promise<BaseResponse<GroupItem[]>>((resolve, reject) => {
openIMSDK.libOpenIMSDK.get_joined_group_list_page(
openIMSDK.baseCallbackWrap<GroupItem[]>(resolve, reject),
opid,
params.offset,
params.count
);
}),
searchGroups: (params: SearchGroupParams, opid = uuidV4()) => searchGroups: (params: SearchGroupParams, opid = uuidV4()) =>
new Promise<BaseResponse<GroupItem[]>>((resolve, reject) => { new Promise<BaseResponse<GroupItem[]>>((resolve, reject) => {
openIMSDK.libOpenIMSDK.search_groups( openIMSDK.libOpenIMSDK.search_groups(
@@ -274,6 +285,18 @@ export function setupGroupModule(openIMSDK: OpenIMSDK) {
groupID groupID
); );
}), }),
getUsersInGroup: (
params: Omit<AccessToGroupParams, 'reason'>,
opid = uuidV4()
) =>
new Promise<BaseResponse<void>>((resolve, reject) => {
openIMSDK.libOpenIMSDK.get_users_in_group(
openIMSDK.baseCallbackWrap<void>(resolve, reject),
opid,
params.groupID,
JSON.stringify(params.userIDList)
);
}),
}; };
} }
@@ -291,6 +314,10 @@ export interface GroupModuleApi {
opid?: string opid?: string
) => Promise<BaseResponse<void>>; ) => Promise<BaseResponse<void>>;
getJoinedGroupList: (opid?: string) => Promise<BaseResponse<GroupItem[]>>; getJoinedGroupList: (opid?: string) => Promise<BaseResponse<GroupItem[]>>;
getJoinedGroupListPage: (
params: OffsetParams,
opid?: string
) => Promise<BaseResponse<GroupItem[]>>;
searchGroups: ( searchGroups: (
params: SearchGroupParams, params: SearchGroupParams,
opid?: string opid?: string
@@ -360,4 +387,8 @@ export interface GroupModuleApi {
dismissGroup: (groupID: string, opid?: string) => Promise<BaseResponse<void>>; dismissGroup: (groupID: string, opid?: string) => Promise<BaseResponse<void>>;
quitGroup: (groupID: string, opid?: string) => Promise<BaseResponse<void>>; quitGroup: (groupID: string, opid?: string) => Promise<BaseResponse<void>>;
isJoinGroup: (groupID: string, opid?: string) => Promise<BaseResponse<void>>; isJoinGroup: (groupID: string, opid?: string) => Promise<BaseResponse<void>>;
getUsersInGroup: (
params: Omit<AccessToGroupParams, 'reason'>,
opid?: string
) => Promise<BaseResponse<void>>;
} }

View File

@@ -526,6 +526,12 @@ declare module 'libOpenIMSDK' {
cGroupMemberInfo: string cGroupMemberInfo: string
): void; ): void;
get_joined_group_list(cCallback: CB_S_I_S_S, operationID: string): void; get_joined_group_list(cCallback: CB_S_I_S_S, operationID: string): void;
get_joined_group_list_page(
cCallback: CB_S_I_S_S,
operationID: string,
offset: number,
count: number
): void;
get_specified_groups_info( get_specified_groups_info(
cCallback: CB_S_I_S_S, cCallback: CB_S_I_S_S,
operationID: string, operationID: string,
@@ -647,6 +653,12 @@ declare module 'libOpenIMSDK' {
operationID: string, operationID: string,
cGroupID: string cGroupID: string
): void; ): void;
get_users_in_group(
cCallback: CB_S_I_S_S,
operationID: string,
cGroupID: string,
userIDList: string
): void;
signaling_invite_in_group( signaling_invite_in_group(
cCallback: CB_S_I_S_S, cCallback: CB_S_I_S_S,
operationID: string, operationID: string,