Merge branch 'master' into ab/wallet

This commit is contained in:
Evgeny @ SimpleX Chat committed 2026-10-11 10:17:45 +00:00
commit 1c296bf552
41 files changed
+1569 -50

No files matched your search

@@ -266,6 +266,23 @@ export namespace APIAddMember {
}
}
// Add member of another group to group. Requires bot to have Admin role in the group, and direct messages allowed for its role in another group.
// Network usage: interactive.
export interface APIAddMemberViaGroup {
groupId: number // int64
viaGroupId: number // int64
groupMemberId: number // int64
memberRole: T.GroupMemberRole
}
export namespace APIAddMemberViaGroup {
export type Response = CR.SentGroupInvitationViaGroup | CR.ChatCmdError
export function cmdString(self: APIAddMemberViaGroup): string {
return '/_add #' + self.groupId + ' #' + self.viaGroupId + ' ' + self.groupMemberId + ' ' + self.memberRole
}
}
// Join group.
// Network usage: interactive.
export interface APIJoinGroup {
@@ -17,6 +17,7 @@ export type ChatEvent =
| CEvt.GroupChatItemsDeleted
| CEvt.ChatItemsStatusesUpdated
| CEvt.ReceivedGroupInvitation
| CEvt.ReceivedGroupInvitationViaGroup
| CEvt.UserJoinedGroup
| CEvt.GroupUpdated
| CEvt.JoinedGroupMember
@@ -73,6 +74,7 @@ export namespace CEvt {
| "groupChatItemsDeleted"
| "chatItemsStatusesUpdated"
| "receivedGroupInvitation"
| "receivedGroupInvitationViaGroup"
| "userJoinedGroup"
| "groupUpdated"
| "joinedGroupMember"
@@ -210,6 +212,16 @@ export namespace CEvt {
memberRole: T.GroupMemberRole
}
export interface ReceivedGroupInvitationViaGroup extends Interface {
type: "receivedGroupInvitationViaGroup"
user: T.User
groupInfo: T.GroupInfo
viaGroupInfo: T.GroupInfo
viaMember: T.GroupMember
fromMemberRole: T.GroupMemberRole
memberRole: T.GroupMemberRole
}
export interface UserJoinedGroup extends Interface {
type: "userJoinedGroup"
user: T.User
@@ -51,6 +51,7 @@ export type ChatResponse =
| CR.RemoteCtrlConnecting
| CR.SentConfirmation
| CR.SentGroupInvitation
| CR.SentGroupInvitationViaGroup
| CR.SentInvitation
| CR.SentInvitationToContact
| CR.ServiceReplyAccepted
@@ -117,6 +118,7 @@ export namespace CR {
| "remoteCtrlConnecting"
| "sentConfirmation"
| "sentGroupInvitation"
| "sentGroupInvitationViaGroup"
| "sentInvitation"
| "sentInvitationToContact"
| "serviceReplyAccepted"
@@ -445,6 +447,15 @@ export namespace CR {
member: T.GroupMember
}
export interface SentGroupInvitationViaGroup extends Interface {
type: "sentGroupInvitationViaGroup"
user: T.User
groupInfo: T.GroupInfo
member: T.GroupMember
viaGroupInfo: T.GroupInfo
viaMember: T.GroupMember
}
export interface SentInvitation extends Interface {
type: "sentInvitation"
user: T.User
@@ -261,6 +261,12 @@ export class ChatClient {
throw new ChatCommandError("error adding member", r)
}
async apiAddMemberViaGroup(groupId: number, viaGroupId: number, groupMemberId: number, memberRole: T.GroupMemberRole): Promise<T.GroupMember> {
const r = await this.sendChatCmd(CC.APIAddMemberViaGroup.cmdString({groupId, viaGroupId, groupMemberId, memberRole}))
if (r.type === "sentGroupInvitationViaGroup") return r.member
throw new ChatCommandError("error adding member", r)
}
async apiJoinGroup(groupId: number): Promise<T.GroupInfo> {
const r = await this.sendChatCmd(CC.APIJoinGroup.cmdString({groupId}))
if (r.type === "userAcceptedGroupSent") return r.groupInfo