simplex-chat 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,7 +16,7 @@ Client API provides types and functions to:
16
16
 
17
17
  ## Use cases
18
18
 
19
- - chat bots: you can implement any logic of connecting with and communicating with SimpleX Chat users. Using chat groups a chat bot can connect SimleX Chat users with each other.
19
+ - chat bots: you can implement any logic of connecting with and communicating with SimpleX Chat users. Using chat groups a chat bot can connect SimpleX Chat users with each other.
20
20
  - control of the equipment: e.g. servers or home automation. SimpleX Chat provides secure and authorised connections, so this is more secure than using rest APIs.
21
21
 
22
22
  Please share your use cases and implementations.
@@ -38,6 +38,8 @@ See the example of a simple chat bot in [squaring-bot.js](./examples/squaring-bo
38
38
 
39
39
  Please refer to the available client API in [client.ts](./src/client.ts).
40
40
 
41
+ This library uses [@simplex-chat/types](https://www.npmjs.com/package/@simplex-chat/types) package with auto-generated [bot API types](https://github.com/simplex-chat/simplex-chat/tree/stable/bots)
42
+
41
43
  ## License
42
44
 
43
45
  [AGPL v3](./LICENSE)
package/dist/client.d.ts CHANGED
@@ -1,16 +1,13 @@
1
1
  import { ABQueue } from "./queue";
2
2
  import { ChatServer, ChatResponseError } from "./transport";
3
- import { ChatCommand, ChatType, Profile } from "./command";
4
- import { ChatResponse, ChatInfo } from "./response";
5
- import * as CC from "./command";
6
- import * as CR from "./response";
3
+ import { ChatResponse, CR, ChatEvent, T } from "@simplex-chat/types";
7
4
  export interface ChatClientConfig {
8
5
  readonly qSize: number;
9
6
  readonly tcpTimeout: number;
10
7
  }
11
8
  export interface Request {
12
9
  readonly resolve: (resp: ChatResponse) => void;
13
- readonly reject: (err?: ChatResponseError | CR.CRChatCmdError) => void;
10
+ readonly reject: (err?: ChatResponseError | CR.ChatCmdError) => void;
14
11
  }
15
12
  export declare class ChatCommandError extends Error {
16
13
  message: string;
@@ -24,7 +21,7 @@ export declare enum ConnReqType {
24
21
  export declare class ChatClient {
25
22
  readonly server: ChatServer | string;
26
23
  readonly config: ChatClientConfig;
27
- readonly msgQ: ABQueue<ChatResponse>;
24
+ readonly msgQ: ABQueue<ChatEvent>;
28
25
  readonly client: Promise<void>;
29
26
  private readonly transport;
30
27
  private _connected;
@@ -33,44 +30,32 @@ export declare class ChatClient {
33
30
  static defaultConfig: ChatClientConfig;
34
31
  private constructor();
35
32
  static create(server?: ChatServer | string, cfg?: ChatClientConfig): Promise<ChatClient>;
36
- sendChatCmdStr(cmd: string): Promise<ChatResponse>;
37
- sendChatCommand(command: ChatCommand): Promise<ChatResponse>;
33
+ sendChatCmd(cmd: string): Promise<ChatResponse>;
38
34
  disconnect(): Promise<void>;
39
- apiGetActiveUser(): Promise<CR.User | undefined>;
40
- apiCreateActiveUser(profile?: Profile, sameServers?: boolean, pastTimestamp?: boolean): Promise<CR.User>;
41
- apiStartChat(): Promise<void>;
42
- apiStopChat(): Promise<void>;
43
- apiSetIncognito(incognito: boolean): Promise<void>;
44
- enableAddressAutoAccept(acceptIncognito?: boolean, autoReply?: CC.MsgContent): Promise<void>;
45
- disableAddressAutoAccept(): Promise<void>;
46
- apiGetChats(userId: number): Promise<CR.Chat[]>;
47
- apiGetChat(chatType: ChatType, chatId: number, pagination?: CC.ChatPagination, search?: string | undefined): Promise<CR.Chat>;
48
- apiSendMessage(chatType: ChatType, chatId: number, message: CC.ComposedMessage): Promise<CR.AChatItem>;
49
- apiSendTextMessage(chatType: ChatType, chatId: number, text: string): Promise<CR.AChatItem>;
50
- apiUpdateChatItem(chatType: ChatType, chatId: number, chatItemId: CC.ChatItemId, msgContent: CC.MsgContent): Promise<CR.ChatItem>;
51
- apiDeleteChatItem(chatType: ChatType, chatId: number, chatItemId: number, deleteMode: CC.DeleteMode): Promise<CR.ChatItem | undefined>;
52
- apiCreateLink(): Promise<string>;
53
- apiConnect(connReq: string): Promise<ConnReqType>;
54
- apiDeleteChat(chatType: ChatType, chatId: number): Promise<void>;
55
- apiClearChat(chatType: ChatType, chatId: number): Promise<ChatInfo>;
56
- apiUpdateProfile(userId: number, profile: CC.Profile): Promise<CC.Profile | undefined>;
57
- apiSetContactAlias(contactId: number, localAlias: string): Promise<CR.Contact>;
58
- apiCreateUserAddress(): Promise<string>;
59
- apiDeleteUserAddress(): Promise<void>;
60
- apiGetUserAddress(): Promise<string | undefined>;
61
- apiAcceptContactRequest(contactReqId: number): Promise<CR.Contact>;
35
+ apiGetActiveUser(): Promise<T.User | undefined>;
36
+ apiCreateActiveUser(profile?: T.Profile): Promise<T.User>;
37
+ enableAddressAutoAccept(userId: number, autoReply?: T.MsgContent, businessAddress?: boolean): Promise<void>;
38
+ disableAddressAutoAccept(userId: number, businessAddress?: boolean): Promise<void>;
39
+ apiSendMessages(chatType: T.ChatType, chatId: number, messages: T.ComposedMessage[]): Promise<T.AChatItem[]>;
40
+ apiSendTextMessage(chatType: T.ChatType, chatId: number, text: string): Promise<T.AChatItem[]>;
41
+ apiUpdateChatItem(chatType: T.ChatType, chatId: number, chatItemId: number, msgContent: T.MsgContent): Promise<T.ChatItem>;
42
+ apiDeleteChatItems(chatType: T.ChatType, chatId: number, chatItemIds: number[], deleteMode: T.CIDeleteMode): Promise<T.ChatItemDeletion[] | undefined>;
43
+ apiCreateLink(userId: number): Promise<string>;
44
+ apiConnectActiveUser(connLink: string): Promise<ConnReqType>;
45
+ apiDeleteChat(chatType: T.ChatType, chatId: number, deleteMode?: T.ChatDeleteMode): Promise<void>;
46
+ apiUpdateProfile(userId: number, profile: T.Profile): Promise<T.Profile | undefined>;
47
+ apiCreateUserAddress(userId: number): Promise<string>;
48
+ apiDeleteUserAddress(userId: number): Promise<void>;
49
+ apiGetUserAddress(userId: number): Promise<string | undefined>;
50
+ apiAcceptContactRequest(contactReqId: number): Promise<T.Contact>;
62
51
  apiRejectContactRequest(contactReqId: number): Promise<void>;
63
- apiChatRead(chatType: ChatType, chatId: number, itemRange?: CC.ItemRange): Promise<void>;
64
- apiContactInfo(contactId: number): Promise<[CR.ConnectionStats?, Profile?]>;
65
- apiGroupMemberInfo(groupId: number, memberId: number): Promise<CR.ConnectionStats | undefined>;
66
- apiReceiveFile(fileId: number): Promise<CR.AChatItem>;
67
- apiNewGroup(groupProfile: CR.GroupProfile): Promise<CR.GroupInfo>;
68
- apiAddMember(groupId: number, contactId: number, memberRole: CC.GroupMemberRole): Promise<CR.GroupMember>;
69
- apiJoinGroup(groupId: number): Promise<CR.GroupInfo>;
70
- apiRemoveMember(groupId: number, memberId: number): Promise<CR.GroupMember>;
71
- apiLeaveGroup(groupId: number): Promise<CR.GroupInfo>;
72
- apiListMembers(groupId: number): Promise<CR.GroupMember[]>;
73
- apiUpdateGroup(groupId: number, groupProfile: CR.GroupProfile): Promise<CR.GroupInfo>;
74
- private okChatCommand;
52
+ apiReceiveFile(fileId: number): Promise<T.AChatItem>;
53
+ apiNewGroup(userId: number, groupProfile: T.GroupProfile): Promise<T.GroupInfo>;
54
+ apiAddMember(groupId: number, contactId: number, memberRole: T.GroupMemberRole): Promise<T.GroupMember>;
55
+ apiJoinGroup(groupId: number): Promise<T.GroupInfo>;
56
+ apiRemoveMembers(groupId: number, memberIds: number[], withMessages?: boolean): Promise<T.GroupMember[]>;
57
+ apiLeaveGroup(groupId: number): Promise<T.GroupInfo>;
58
+ apiListMembers(groupId: number): Promise<T.GroupMember[]>;
59
+ apiUpdateGroup(groupId: number, groupProfile: T.GroupProfile): Promise<T.GroupInfo>;
75
60
  get connected(): boolean;
76
61
  }
package/dist/client.js CHANGED
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChatClient = exports.ConnReqType = exports.ChatCommandError = void 0;
4
4
  const queue_1 = require("./queue");
5
5
  const transport_1 = require("./transport");
6
- const command_1 = require("./command");
7
- const CC = require("./command");
6
+ const types_1 = require("@simplex-chat/types");
8
7
  class ChatCommandError extends Error {
9
8
  constructor(message, response) {
10
9
  super(message);
@@ -41,42 +40,38 @@ class ChatClient {
41
40
  if (apiResp instanceof transport_1.ChatResponseError) {
42
41
  console.log("chat response error: ", apiResp);
43
42
  }
44
- else {
43
+ else if ("corrId" in apiResp) {
45
44
  const { corrId, resp } = apiResp;
46
- if (corrId) {
47
- const req = c.sentCommands.get(corrId);
48
- if (req) {
49
- c.sentCommands.delete(corrId);
50
- req.resolve(resp);
51
- }
52
- else {
53
- // TODO send error to errQ?
54
- console.log("no command sent for chat response: ", apiResp);
55
- }
45
+ const req = c.sentCommands.get(corrId);
46
+ if (req) {
47
+ c.sentCommands.delete(corrId);
48
+ req.resolve(resp);
56
49
  }
57
50
  else {
58
- await msgQ.enqueue(resp);
51
+ // TODO send error to errQ?
52
+ console.log("no command sent for chat response: ", apiResp);
59
53
  }
60
54
  }
55
+ else {
56
+ await msgQ.enqueue(apiResp.resp);
57
+ }
61
58
  }
62
59
  c._connected = false;
63
60
  }
64
61
  }
65
- sendChatCmdStr(cmd) {
62
+ sendChatCmd(cmd) {
66
63
  const corrId = `${++this.clientCorrId}`;
67
64
  const t = { corrId, cmd };
65
+ const p = new Promise((resolve, reject) => this.sentCommands.set(corrId, { resolve, reject }));
68
66
  this.transport.write(t).then(transport_1.noop, transport_1.noop);
69
- return new Promise((resolve, reject) => this.sentCommands.set(corrId, { resolve, reject }));
70
- }
71
- sendChatCommand(command) {
72
- return this.sendChatCmdStr(CC.cmdString(command));
67
+ return p;
73
68
  }
74
69
  async disconnect() {
75
70
  await this.transport.close();
76
71
  await this.client;
77
72
  }
78
73
  async apiGetActiveUser() {
79
- const r = await this.sendChatCommand({ type: "showActiveUser" });
74
+ const r = await this.sendChatCmd(types_1.CC.ShowActiveUser.cmdString({}));
80
75
  switch (r.type) {
81
76
  case "activeUser":
82
77
  return r.user;
@@ -88,81 +83,60 @@ class ChatClient {
88
83
  throw new ChatCommandError("unexpected response", r);
89
84
  }
90
85
  }
91
- async apiCreateActiveUser(profile, sameServers = true, pastTimestamp = false) {
92
- const r = await this.sendChatCommand({ type: "createActiveUser", profile, sameServers, pastTimestamp });
86
+ async apiCreateActiveUser(profile) {
87
+ const r = await this.sendChatCmd(types_1.CC.CreateActiveUser.cmdString({ newUser: { profile, pastTimestamp: false } }));
93
88
  if (r.type === "activeUser")
94
89
  return r.user;
95
90
  throw new ChatCommandError("unexpected response", r);
96
91
  }
97
- async apiStartChat() {
98
- const r = await this.sendChatCommand({ type: "startChat" });
99
- if (r.type !== "chatStarted" && r.type !== "chatRunning") {
100
- throw new ChatCommandError("error starting chat", r);
101
- }
102
- }
103
- async apiStopChat() {
104
- const r = await this.sendChatCommand({ type: "apiStopChat" });
105
- if (r.type !== "chatStopped") {
106
- throw new ChatCommandError("error stopping chat", r);
107
- }
108
- }
109
- apiSetIncognito(incognito) {
110
- return this.okChatCommand({ type: "setIncognito", incognito });
111
- }
112
- async enableAddressAutoAccept(acceptIncognito = false, autoReply) {
113
- const r = await this.sendChatCommand({ type: "addressAutoAccept", autoAccept: { acceptIncognito, autoReply } });
92
+ async enableAddressAutoAccept(userId, autoReply, businessAddress = false) {
93
+ const r = await this.sendChatCmd(types_1.CC.APISetAddressSettings.cmdString({ userId, settings: { businessAddress, autoAccept: { acceptIncognito: false }, autoReply } }));
114
94
  if (r.type !== "userContactLinkUpdated") {
115
95
  throw new ChatCommandError("error changing user contact address mode", r);
116
96
  }
117
97
  }
118
- async disableAddressAutoAccept() {
119
- const r = await this.sendChatCommand({ type: "addressAutoAccept" });
98
+ async disableAddressAutoAccept(userId, businessAddress = false) {
99
+ const r = await this.sendChatCmd(types_1.CC.APISetAddressSettings.cmdString({ userId, settings: { businessAddress } }));
120
100
  if (r.type !== "userContactLinkUpdated") {
121
101
  throw new ChatCommandError("error changing user contact address mode", r);
122
102
  }
123
103
  }
124
- async apiGetChats(userId) {
125
- const r = await this.sendChatCommand({ type: "apiGetChats", userId });
126
- if (r.type === "apiChats")
127
- return r.chats;
128
- throw new ChatCommandError("error loading chats", r);
129
- }
130
- async apiGetChat(chatType, chatId, pagination = { count: 100 }, search = undefined) {
131
- const r = await this.sendChatCommand({ type: "apiGetChat", chatType, chatId, pagination, search });
132
- if (r.type === "apiChat")
133
- return r.chat;
134
- throw new ChatCommandError("error loading chat", r);
135
- }
136
- async apiSendMessage(chatType, chatId, message) {
137
- const r = await this.sendChatCommand({ type: "apiSendMessage", chatType, chatId, message });
138
- if (r.type === "newChatItem")
139
- return r.chatItem;
104
+ async apiSendMessages(chatType, chatId, messages) {
105
+ const r = await this.sendChatCmd(types_1.CC.APISendMessages.cmdString({ sendRef: { chatType, chatId }, composedMessages: messages, liveMessage: false }));
106
+ if (r.type === "newChatItems")
107
+ return r.chatItems;
140
108
  throw new ChatCommandError("unexpected response", r);
141
109
  }
142
- apiSendTextMessage(chatType, chatId, text) {
143
- return this.apiSendMessage(chatType, chatId, { msgContent: { type: "text", text } });
110
+ async apiSendTextMessage(chatType, chatId, text) {
111
+ return this.apiSendMessages(chatType, chatId, [{ msgContent: { type: "text", text }, mentions: {} }]);
144
112
  }
145
113
  async apiUpdateChatItem(chatType, chatId, chatItemId, msgContent) {
146
- const r = await this.sendChatCommand({ type: "apiUpdateChatItem", chatType, chatId, chatItemId, msgContent });
114
+ const r = await this.sendChatCmd(types_1.CC.APIUpdateChatItem.cmdString({
115
+ chatRef: { chatType, chatId },
116
+ chatItemId,
117
+ liveMessage: false,
118
+ updatedMessage: { msgContent, mentions: {} },
119
+ }));
147
120
  if (r.type === "chatItemUpdated")
148
121
  return r.chatItem.chatItem;
149
122
  throw new ChatCommandError("error updating chat item", r);
150
123
  }
151
- async apiDeleteChatItem(chatType, chatId, chatItemId, deleteMode) {
152
- var _a;
153
- const r = await this.sendChatCommand({ type: "apiDeleteChatItem", chatType, chatId, chatItemId, deleteMode });
154
- if (r.type === "chatItemDeleted")
155
- return (_a = r.toChatItem) === null || _a === void 0 ? void 0 : _a.chatItem;
124
+ async apiDeleteChatItems(chatType, chatId, chatItemIds, deleteMode) {
125
+ const r = await this.sendChatCmd(types_1.CC.APIDeleteChatItem.cmdString({ chatRef: { chatType, chatId }, chatItemIds, deleteMode }));
126
+ if (r.type === "chatItemsDeleted")
127
+ return r.chatItemDeletions;
156
128
  throw new ChatCommandError("error deleting chat item", r);
157
129
  }
158
- async apiCreateLink() {
159
- const r = await this.sendChatCommand({ type: "addContact" });
160
- if (r.type === "invitation")
161
- return r.connReqInvitation;
130
+ async apiCreateLink(userId) {
131
+ const r = await this.sendChatCmd(types_1.CC.APIAddContact.cmdString({ userId, incognito: false }));
132
+ if (r.type === "invitation") {
133
+ const link = r.connLinkInvitation;
134
+ return link.connShortLink || link.connFullLink;
135
+ }
162
136
  throw new ChatCommandError("error creating link", r);
163
137
  }
164
- async apiConnect(connReq) {
165
- const r = await this.sendChatCommand({ type: "connect", connReq });
138
+ async apiConnectActiveUser(connLink) {
139
+ const r = await this.sendChatCmd(types_1.CC.Connect.cmdString({ incognito: false, connLink_: connLink }));
166
140
  switch (r.type) {
167
141
  case "sentConfirmation":
168
142
  return ConnReqType.Invitation;
@@ -172,32 +146,22 @@ class ChatClient {
172
146
  throw new ChatCommandError("connection error", r);
173
147
  }
174
148
  }
175
- async apiDeleteChat(chatType, chatId) {
176
- const r = await this.sendChatCommand({ type: "apiDeleteChat", chatType, chatId });
149
+ async apiDeleteChat(chatType, chatId, deleteMode = { type: "full", notify: true }) {
150
+ const r = await this.sendChatCmd(types_1.CC.APIDeleteChat.cmdString({ chatRef: { chatType, chatId }, chatDeleteMode: deleteMode }));
177
151
  switch (chatType) {
178
- case command_1.ChatType.Direct:
152
+ case types_1.T.ChatType.Direct:
179
153
  if (r.type === "contactDeleted")
180
154
  return;
181
155
  break;
182
- case command_1.ChatType.Group:
156
+ case types_1.T.ChatType.Group:
183
157
  if (r.type === "groupDeletedUser")
184
158
  return;
185
159
  break;
186
- case command_1.ChatType.ContactRequest:
187
- if (r.type === "contactConnectionDeleted")
188
- return;
189
- break;
190
160
  }
191
161
  throw new ChatCommandError("error deleting chat", r);
192
162
  }
193
- async apiClearChat(chatType, chatId) {
194
- const r = await this.sendChatCommand({ type: "apiClearChat", chatType, chatId });
195
- if (r.type === "chatCleared")
196
- return r.chatInfo;
197
- throw new ChatCommandError("error clearing chat", r);
198
- }
199
163
  async apiUpdateProfile(userId, profile) {
200
- const r = await this.sendChatCommand({ type: "apiUpdateProfile", userId, profile });
164
+ const r = await this.sendChatCmd(types_1.CC.APIUpdateProfile.cmdString({ userId, profile }));
201
165
  switch (r.type) {
202
166
  case "userProfileNoChange":
203
167
  return undefined;
@@ -207,29 +171,27 @@ class ChatClient {
207
171
  throw new ChatCommandError("error updating profile", r);
208
172
  }
209
173
  }
210
- async apiSetContactAlias(contactId, localAlias) {
211
- const r = await this.sendChatCommand({ type: "apiSetContactAlias", contactId, localAlias });
212
- if (r.type === "contactAliasUpdated")
213
- return r.toContact;
214
- throw new ChatCommandError("error updating contact alias", r);
215
- }
216
- async apiCreateUserAddress() {
217
- const r = await this.sendChatCommand({ type: "createMyAddress" });
218
- if (r.type === "userContactLinkCreated")
219
- return r.connReqContact;
174
+ async apiCreateUserAddress(userId) {
175
+ const r = await this.sendChatCmd(types_1.CC.APICreateMyAddress.cmdString({ userId }));
176
+ if (r.type === "userContactLinkCreated") {
177
+ const link = r.connLinkContact;
178
+ return link.connShortLink || link.connFullLink;
179
+ }
220
180
  throw new ChatCommandError("error creating user address", r);
221
181
  }
222
- async apiDeleteUserAddress() {
223
- const r = await this.sendChatCommand({ type: "deleteMyAddress" });
182
+ async apiDeleteUserAddress(userId) {
183
+ const r = await this.sendChatCmd(types_1.CC.APIDeleteMyAddress.cmdString({ userId }));
224
184
  if (r.type === "userContactLinkDeleted")
225
185
  return;
226
186
  throw new ChatCommandError("error deleting user address", r);
227
187
  }
228
- async apiGetUserAddress() {
229
- const r = await this.sendChatCommand({ type: "showMyAddress" });
188
+ async apiGetUserAddress(userId) {
189
+ const r = await this.sendChatCmd(types_1.CC.APIShowMyAddress.cmdString({ userId }));
230
190
  switch (r.type) {
231
- case "userContactLink":
232
- return r.contactLink.connReqContact;
191
+ case "userContactLink": {
192
+ const link = r.contactLink.connLinkContact;
193
+ return link.connShortLink || link.connFullLink;
194
+ }
233
195
  default:
234
196
  if (r.type === "chatCmdError" && r.chatError.type === "errorStore" && r.chatError.storeError.type === "userContactLinkNotFound") {
235
197
  return undefined;
@@ -238,85 +200,65 @@ class ChatClient {
238
200
  }
239
201
  }
240
202
  async apiAcceptContactRequest(contactReqId) {
241
- const r = await this.sendChatCommand({ type: "apiAcceptContact", contactReqId });
203
+ const r = await this.sendChatCmd(types_1.CC.APIAcceptContact.cmdString({ contactReqId }));
242
204
  if (r.type === "acceptingContactRequest")
243
205
  return r.contact;
244
206
  throw new ChatCommandError("error accepting contact request", r);
245
207
  }
246
208
  async apiRejectContactRequest(contactReqId) {
247
- const r = await this.sendChatCommand({ type: "apiRejectContact", contactReqId });
209
+ const r = await this.sendChatCmd(types_1.CC.APIRejectContact.cmdString({ contactReqId }));
248
210
  if (r.type === "contactRequestRejected")
249
211
  return;
250
212
  throw new ChatCommandError("error rejecting contact request", r);
251
213
  }
252
- apiChatRead(chatType, chatId, itemRange) {
253
- return this.okChatCommand({ type: "apiChatRead", chatType, chatId, itemRange });
254
- }
255
- async apiContactInfo(contactId) {
256
- const r = await this.sendChatCommand({ type: "apiContactInfo", contactId });
257
- if (r.type === "contactInfo")
258
- return [r.connectionStats, r.customUserProfile];
259
- throw new ChatCommandError("error getting contact info", r);
260
- }
261
- async apiGroupMemberInfo(groupId, memberId) {
262
- const r = await this.sendChatCommand({ type: "apiGroupMemberInfo", groupId, memberId });
263
- if (r.type === "groupMemberInfo")
264
- return r.connectionStats_;
265
- throw new ChatCommandError("error getting group info", r);
266
- }
267
214
  async apiReceiveFile(fileId) {
268
- const r = await this.sendChatCommand({ type: "receiveFile", fileId });
215
+ const r = await this.sendChatCmd(types_1.CC.ReceiveFile.cmdString({ fileId, userApprovedRelays: true }));
269
216
  if (r.type === "rcvFileAccepted")
270
217
  return r.chatItem;
271
218
  throw new ChatCommandError("error receiving file", r);
272
219
  }
273
- async apiNewGroup(groupProfile) {
274
- const r = await this.sendChatCommand({ type: "newGroup", groupProfile });
220
+ async apiNewGroup(userId, groupProfile) {
221
+ const r = await this.sendChatCmd(types_1.CC.APINewGroup.cmdString({ userId, groupProfile, incognito: false }));
275
222
  if (r.type === "groupCreated")
276
223
  return r.groupInfo;
277
224
  throw new ChatCommandError("error creating group", r);
278
225
  }
279
226
  async apiAddMember(groupId, contactId, memberRole) {
280
- const r = await this.sendChatCommand({ type: "apiAddMember", groupId, contactId, memberRole });
227
+ const r = await this.sendChatCmd(types_1.CC.APIAddMember.cmdString({ groupId, contactId, memberRole }));
281
228
  if (r.type === "sentGroupInvitation")
282
229
  return r.member;
283
230
  throw new ChatCommandError("error adding member", r);
284
231
  }
285
232
  async apiJoinGroup(groupId) {
286
- const r = await this.sendChatCommand({ type: "apiJoinGroup", groupId });
233
+ const r = await this.sendChatCmd(types_1.CC.APIJoinGroup.cmdString({ groupId }));
287
234
  if (r.type === "userAcceptedGroupSent")
288
235
  return r.groupInfo;
289
236
  throw new ChatCommandError("error joining group", r);
290
237
  }
291
- async apiRemoveMember(groupId, memberId) {
292
- const r = await this.sendChatCommand({ type: "apiRemoveMember", groupId, memberId });
293
- if (r.type === "userDeletedMember")
294
- return r.member;
238
+ async apiRemoveMembers(groupId, memberIds, withMessages = false) {
239
+ const r = await this.sendChatCmd(types_1.CC.APIRemoveMembers.cmdString({ groupId, groupMemberIds: memberIds, withMessages }));
240
+ if (r.type === "userDeletedMembers")
241
+ return r.members;
295
242
  throw new ChatCommandError("error removing member", r);
296
243
  }
297
244
  async apiLeaveGroup(groupId) {
298
- const r = await this.sendChatCommand({ type: "apiLeaveGroup", groupId });
245
+ const r = await this.sendChatCmd(types_1.CC.APILeaveGroup.cmdString({ groupId }));
299
246
  if (r.type === "leftMemberUser")
300
247
  return r.groupInfo;
301
248
  throw new ChatCommandError("error leaving group", r);
302
249
  }
303
250
  async apiListMembers(groupId) {
304
- const r = await this.sendChatCommand({ type: "apiListMembers", groupId });
251
+ const r = await this.sendChatCmd(types_1.CC.APIListMembers.cmdString({ groupId }));
305
252
  if (r.type === "groupMembers")
306
253
  return r.group.members;
307
254
  throw new ChatCommandError("error getting group members", r);
308
255
  }
309
256
  async apiUpdateGroup(groupId, groupProfile) {
310
- const r = await this.sendChatCommand({ type: "apiUpdateGroupProfile", groupId, groupProfile });
257
+ const r = await this.sendChatCmd(types_1.CC.APIUpdateGroupProfile.cmdString({ groupId, groupProfile }));
311
258
  if (r.type === "groupUpdated")
312
259
  return r.toGroup;
313
260
  throw new ChatCommandError("error updating group", r);
314
261
  }
315
- async okChatCommand(command) {
316
- const r = await this.sendChatCommand(command);
317
- if (r.type !== "cmdOk")
318
- throw new ChatCommandError(`${command.type} command error`, r);
319
- }
320
262
  get connected() {
321
263
  return this._connected;
322
264
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/command.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type ChatCommand = ShowActiveUser | CreateActiveUser | ListUsers | APISetActiveUser | APIHideUser | APIUnhideUser | APIMuteUser | APIUnmuteUser | APIDeleteUser | StartChat | APIStopChat | SetTempFolder | SetFilesFolder | APISetXFTPConfig | SetIncognito | APIExportArchive | APIImportArchive | APIDeleteStorage | APIGetChats | APIGetChat | APISendMessage | APIUpdateChatItem | APIDeleteChatItem | APIDeleteMemberChatItem | APIChatRead | APIDeleteChat | APIClearChat | APIAcceptContact | APIRejectContact | APIUpdateProfile | APISetContactAlias | APIParseMarkdown | NewGroup | APIAddMember | APIJoinGroup | APIRemoveMember | APILeaveGroup | APIListMembers | APIUpdateGroupProfile | APICreateGroupLink | APIGroupLinkMemberRole | APIDeleteGroupLink | APIGetGroupLink | APIGetUserProtoServers | APISetUserProtoServers | APIContactInfo | APIGroupMemberInfo | APIGetContactCode | APIGetGroupMemberCode | APIVerifyContact | APIVerifyGroupMember | AddContact | Connect | ConnectSimplex | CreateMyAddress | DeleteMyAddress | ShowMyAddress | SetProfileAddress | AddressAutoAccept | APICreateMyAddress | APIDeleteMyAddress | APIShowMyAddress | APISetProfileAddress | APIAddressAutoAccept | ReceiveFile | CancelFile | FileStatus;
2
- type ChatCommandTag = "showActiveUser" | "createActiveUser" | "listUsers" | "apiSetActiveUser" | "setActiveUser" | "apiHideUser" | "apiUnhideUser" | "apiMuteUser" | "apiUnmuteUser" | "apiDeleteUser" | "startChat" | "apiStopChat" | "setTempFolder" | "setFilesFolder" | "apiSetXFTPConfig" | "setIncognito" | "apiExportArchive" | "apiImportArchive" | "apiDeleteStorage" | "apiGetChats" | "apiGetChat" | "apiSendMessage" | "apiUpdateChatItem" | "apiDeleteChatItem" | "apiDeleteMemberChatItem" | "apiChatRead" | "apiDeleteChat" | "apiClearChat" | "apiAcceptContact" | "apiRejectContact" | "apiUpdateProfile" | "apiSetContactAlias" | "apiParseMarkdown" | "newGroup" | "apiAddMember" | "apiJoinGroup" | "apiRemoveMember" | "apiLeaveGroup" | "apiListMembers" | "apiUpdateGroupProfile" | "apiCreateGroupLink" | "apiGroupLinkMemberRole" | "apiDeleteGroupLink" | "apiGetGroupLink" | "apiGetUserProtoServers" | "apiSetUserProtoServers" | "apiContactInfo" | "apiGroupMemberInfo" | "apiGetContactCode" | "apiGetGroupMemberCode" | "apiVerifyContact" | "apiVerifyGroupMember" | "addContact" | "connect" | "connectSimplex" | "createMyAddress" | "deleteMyAddress" | "showMyAddress" | "setProfileAddress" | "addressAutoAccept" | "apiCreateMyAddress" | "apiDeleteMyAddress" | "apiShowMyAddress" | "apiSetProfileAddress" | "apiAddressAutoAccept" | "receiveFile" | "cancelFile" | "fileStatus";
1
+ export type ChatCommand = ShowActiveUser | CreateActiveUser | ListUsers | APISetActiveUser | APIHideUser | APIUnhideUser | APIMuteUser | APIUnmuteUser | APIDeleteUser | StartChat | APIStopChat | SetTempFolder | SetFilesFolder | SetIncognito | APIExportArchive | APIImportArchive | APIDeleteStorage | APIGetChats | APIGetChat | APISendMessage | APIUpdateChatItem | APIDeleteChatItem | APIDeleteMemberChatItem | APIChatRead | APIDeleteChat | APIClearChat | APIAcceptContact | APIRejectContact | APIUpdateProfile | APISetContactAlias | NewGroup | APIAddMember | APIJoinGroup | APIRemoveMember | APILeaveGroup | APIListMembers | APIUpdateGroupProfile | APICreateGroupLink | APIGroupLinkMemberRole | APIDeleteGroupLink | APIGetGroupLink | APIGetUserProtoServers | APISetUserProtoServers | APIContactInfo | APIGroupMemberInfo | APIGetContactCode | APIGetGroupMemberCode | APIVerifyContact | APIVerifyGroupMember | AddContact | Connect | ConnectSimplex | CreateMyAddress | DeleteMyAddress | ShowMyAddress | SetProfileAddress | AddressAutoAccept | APICreateMyAddress | APIDeleteMyAddress | APIShowMyAddress | APISetProfileAddress | APIAddressAutoAccept | ReceiveFile | CancelFile | FileStatus;
2
+ type ChatCommandTag = "showActiveUser" | "createActiveUser" | "listUsers" | "apiSetActiveUser" | "setActiveUser" | "apiHideUser" | "apiUnhideUser" | "apiMuteUser" | "apiUnmuteUser" | "apiDeleteUser" | "startChat" | "apiStopChat" | "setTempFolder" | "setFilesFolder" | "setIncognito" | "apiExportArchive" | "apiImportArchive" | "apiDeleteStorage" | "apiGetChats" | "apiGetChat" | "apiSendMessage" | "apiUpdateChatItem" | "apiDeleteChatItem" | "apiDeleteMemberChatItem" | "apiChatRead" | "apiDeleteChat" | "apiClearChat" | "apiAcceptContact" | "apiRejectContact" | "apiUpdateProfile" | "apiSetContactAlias" | "newGroup" | "apiAddMember" | "apiJoinGroup" | "apiRemoveMember" | "apiLeaveGroup" | "apiListMembers" | "apiUpdateGroupProfile" | "apiCreateGroupLink" | "apiGroupLinkMemberRole" | "apiDeleteGroupLink" | "apiGetGroupLink" | "apiGetUserProtoServers" | "apiSetUserProtoServers" | "apiContactInfo" | "apiGroupMemberInfo" | "apiGetContactCode" | "apiGetGroupMemberCode" | "apiVerifyContact" | "apiVerifyGroupMember" | "addContact" | "connect" | "connectSimplex" | "createMyAddress" | "deleteMyAddress" | "showMyAddress" | "setProfileAddress" | "addressAutoAccept" | "apiCreateMyAddress" | "apiDeleteMyAddress" | "apiShowMyAddress" | "apiSetProfileAddress" | "apiAddressAutoAccept" | "receiveFile" | "cancelFile" | "fileStatus";
3
3
  interface IChatCommand {
4
4
  type: ChatCommandTag;
5
5
  }
@@ -61,13 +61,6 @@ export interface SetFilesFolder extends IChatCommand {
61
61
  type: "setFilesFolder";
62
62
  filePath: string;
63
63
  }
64
- export interface APISetXFTPConfig extends IChatCommand {
65
- type: "apiSetXFTPConfig";
66
- config?: XFTPFileConfig;
67
- }
68
- export interface XFTPFileConfig {
69
- minFileSize: number;
70
- }
71
64
  export interface SetIncognito extends IChatCommand {
72
65
  type: "setIncognito";
73
66
  incognito: boolean;
@@ -99,7 +92,7 @@ export interface APISendMessage extends IChatCommand {
99
92
  type: "apiSendMessage";
100
93
  chatType: ChatType;
101
94
  chatId: number;
102
- message: ComposedMessage;
95
+ messages: ComposedMessage[];
103
96
  }
104
97
  export interface ComposedMessage {
105
98
  filePath?: string;
@@ -164,10 +157,6 @@ export interface APISetContactAlias extends IChatCommand {
164
157
  contactId: number;
165
158
  localAlias: string;
166
159
  }
167
- export interface APIParseMarkdown extends IChatCommand {
168
- type: "apiParseMarkdown";
169
- text: string;
170
- }
171
160
  export interface NewGroup extends IChatCommand {
172
161
  type: "newGroup";
173
162
  groupProfile: GroupProfile;
package/dist/command.js CHANGED
@@ -53,8 +53,6 @@ function cmdString(cmd) {
53
53
  return `/_temp_folder ${cmd.tempFolder}`;
54
54
  case "setFilesFolder":
55
55
  return `/_files_folder ${cmd.filePath}`;
56
- case "apiSetXFTPConfig":
57
- return `/_xftp ${onOff(cmd.config)}${maybeJSON(cmd.config)}`;
58
56
  case "setIncognito":
59
57
  return `/incognito ${onOff(cmd.incognito)}`;
60
58
  case "apiExportArchive":
@@ -68,7 +66,7 @@ function cmdString(cmd) {
68
66
  case "apiGetChat":
69
67
  return `/_get chat ${cmd.chatType}${cmd.chatId}${paginationStr(cmd.pagination)}`;
70
68
  case "apiSendMessage":
71
- return `/_send ${cmd.chatType}${cmd.chatId} json ${JSON.stringify(cmd.message)}`;
69
+ return `/_send ${cmd.chatType}${cmd.chatId} json ${JSON.stringify(cmd.messages)}`;
72
70
  case "apiUpdateChatItem":
73
71
  return `/_update item ${cmd.chatType}${cmd.chatId} ${cmd.chatItemId} json ${JSON.stringify(cmd.msgContent)}`;
74
72
  case "apiDeleteChatItem":
@@ -91,8 +89,6 @@ function cmdString(cmd) {
91
89
  return `/_profile ${cmd.userId} ${JSON.stringify(cmd.profile)}`;
92
90
  case "apiSetContactAlias":
93
91
  return `/_set alias @${cmd.contactId} ${cmd.localAlias.trim()}`;
94
- case "apiParseMarkdown":
95
- return `/_parse ${cmd.text}`;
96
92
  case "newGroup":
97
93
  return `/_group ${JSON.stringify(cmd.groupProfile)}`;
98
94
  case "apiAddMember":