simplex-chat 0.1.0 → 0.2.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
@@ -1,23 +1,43 @@
1
1
  # SimpleX Chat JavaScript client
2
2
 
3
+ This is a TypeScript library that defines WebSocket API client for [SimpleX Chat terminal CLI](https://github.com/simplex-chat/simplex-chat/blob/stable/docs/CLI.md) that should be run as a WebSockets server on any port:
4
+
5
+ ```bash
6
+ simplex-chat -p 5225
7
+ ```
8
+
9
+ Client API provides types and functions to:
10
+
11
+ - create and change user profile (although, in most cases you can do it manually, via SimpleX Chat terminal app).
12
+ - create and accept invitations or connect with the contacts.
13
+ - create and manage long-term user address, accepting connection requests automatically.
14
+ - create, join and manage group.
15
+ - send and receive files.
16
+
17
+ ## Use cases
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.
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
+
22
+ Please share your use cases and implementations.
23
+
3
24
  ## Quick start
4
25
 
5
26
  ```
6
27
  npm i simplex-chat
28
+ npm run build
7
29
  ```
8
30
 
9
- See example of chat bot in [squaring-bot.js](./examples/squaring-bot.js)
31
+ See the example of a simple chat bot in [squaring-bot.js](./examples/squaring-bot.js):
10
32
 
11
- ## Documentation
33
+ - start `simplex-chat` as a server on port 5225: `simplex-chat -p 5225 -d test_db`
34
+ - run chatbot: `node examples/squaring-bot`
35
+ - connect to chatbot via SimpleX Chat client using the address of the chat bot
12
36
 
13
- Please refer to:
14
-
15
- - available client API - [client.ts](./src/client.ts).
16
- - available commands - `ChatCommand` type in [command.ts](./src/command.ts) - if some command is not created as a ChatClient method, you can pass any command object to `sendChatCommand` method, or if the type for some command is not available you can pass command string (same strings as supported in terminal/mobile API) to `sendChatCmdStr` method.
17
- - available chat messages - `ChatResponse` type in [response.ts](./src/command.ts).
37
+ ## Documentation
18
38
 
19
- **Please note**: you should NOT use local display names that are supported in terminal app, as they can change when contact profile is updated and you can have race conditions - use commands that use chat IDs.
39
+ Please refer to the available client API in [client.ts](./src/client.ts).
20
40
 
21
- ## Lisense
41
+ ## License
22
42
 
23
43
  [AGPL v3](./LICENSE)
package/dist/client.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ABQueue } from "./queue";
2
2
  import { ChatServer, ChatResponseError } from "./transport";
3
- import { ChatCommand, ChatType } from "./command";
4
- import { ChatResponse } from "./response";
3
+ import { ChatCommand, ChatType, Profile } from "./command";
4
+ import { ChatResponse, ChatInfo } from "./response";
5
5
  import * as CC from "./command";
6
6
  import * as CR from "./response";
7
7
  export interface ChatClientConfig {
@@ -37,24 +37,40 @@ export declare class ChatClient {
37
37
  sendChatCommand(command: ChatCommand): Promise<ChatResponse>;
38
38
  disconnect(): Promise<void>;
39
39
  apiGetActiveUser(): Promise<CR.User | undefined>;
40
- apiCreateActiveUser(profile: CC.Profile): Promise<CR.User>;
40
+ apiCreateActiveUser(profile?: Profile, sameServers?: boolean, pastTimestamp?: boolean): Promise<CR.User>;
41
41
  apiStartChat(): Promise<void>;
42
- apiGetChats(): Promise<CR.Chat[]>;
43
- apiGetChat(chatType: ChatType, chatId: number, pagination?: CC.ChatPagination): Promise<CR.Chat>;
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>;
44
48
  apiSendMessage(chatType: ChatType, chatId: number, message: CC.ComposedMessage): Promise<CR.AChatItem>;
45
49
  apiSendTextMessage(chatType: ChatType, chatId: number, text: string): Promise<CR.AChatItem>;
46
50
  apiUpdateChatItem(chatType: ChatType, chatId: number, chatItemId: CC.ChatItemId, msgContent: CC.MsgContent): Promise<CR.ChatItem>;
47
- apiDeleteChatItem(chatType: ChatType, chatId: number, chatItemId: number, deleteMode: CC.DeleteMode): Promise<CR.ChatItem>;
51
+ apiDeleteChatItem(chatType: ChatType, chatId: number, chatItemId: number, deleteMode: CC.DeleteMode): Promise<CR.ChatItem | undefined>;
48
52
  apiCreateLink(): Promise<string>;
49
53
  apiConnect(connReq: string): Promise<ConnReqType>;
50
54
  apiDeleteChat(chatType: ChatType, chatId: number): Promise<void>;
51
- apiUpdateProfile(profile: CC.Profile): Promise<CC.Profile | undefined>;
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>;
52
58
  apiCreateUserAddress(): Promise<string>;
53
59
  apiDeleteUserAddress(): Promise<void>;
54
60
  apiGetUserAddress(): Promise<string | undefined>;
55
61
  apiAcceptContactRequest(contactReqId: number): Promise<CR.Contact>;
56
62
  apiRejectContactRequest(contactReqId: number): Promise<void>;
57
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>;
58
74
  private okChatCommand;
59
75
  get connected(): boolean;
60
76
  }
package/dist/client.js CHANGED
@@ -3,6 +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");
6
7
  const CC = require("./command");
7
8
  class ChatCommandError extends Error {
8
9
  constructor(message, response) {
@@ -87,8 +88,8 @@ class ChatClient {
87
88
  throw new ChatCommandError("unexpected response", r);
88
89
  }
89
90
  }
90
- async apiCreateActiveUser(profile) {
91
- const r = await this.sendChatCommand({ type: "createActiveUser", profile });
91
+ async apiCreateActiveUser(profile, sameServers = true, pastTimestamp = false) {
92
+ const r = await this.sendChatCommand({ type: "createActiveUser", profile, sameServers, pastTimestamp });
92
93
  if (r.type === "activeUser")
93
94
  return r.user;
94
95
  throw new ChatCommandError("unexpected response", r);
@@ -99,14 +100,35 @@ class ChatClient {
99
100
  throw new ChatCommandError("error starting chat", r);
100
101
  }
101
102
  }
102
- async apiGetChats() {
103
- const r = await this.sendChatCommand({ type: "apiGetChats" });
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 } });
114
+ if (r.type !== "userContactLinkUpdated") {
115
+ throw new ChatCommandError("error changing user contact address mode", r);
116
+ }
117
+ }
118
+ async disableAddressAutoAccept() {
119
+ const r = await this.sendChatCommand({ type: "addressAutoAccept" });
120
+ if (r.type !== "userContactLinkUpdated") {
121
+ throw new ChatCommandError("error changing user contact address mode", r);
122
+ }
123
+ }
124
+ async apiGetChats(userId) {
125
+ const r = await this.sendChatCommand({ type: "apiGetChats", userId });
104
126
  if (r.type === "apiChats")
105
127
  return r.chats;
106
128
  throw new ChatCommandError("error loading chats", r);
107
129
  }
108
- async apiGetChat(chatType, chatId, pagination = { count: 100 }) {
109
- const r = await this.sendChatCommand({ type: "apiGetChat", chatType, chatId, pagination });
130
+ async apiGetChat(chatType, chatId, pagination = { count: 100 }, search = undefined) {
131
+ const r = await this.sendChatCommand({ type: "apiGetChat", chatType, chatId, pagination, search });
110
132
  if (r.type === "apiChat")
111
133
  return r.chat;
112
134
  throw new ChatCommandError("error loading chat", r);
@@ -127,21 +149,12 @@ class ChatClient {
127
149
  throw new ChatCommandError("error updating chat item", r);
128
150
  }
129
151
  async apiDeleteChatItem(chatType, chatId, chatItemId, deleteMode) {
152
+ var _a;
130
153
  const r = await this.sendChatCommand({ type: "apiDeleteChatItem", chatType, chatId, chatItemId, deleteMode });
131
154
  if (r.type === "chatItemDeleted")
132
- return r.toChatItem.chatItem;
155
+ return (_a = r.toChatItem) === null || _a === void 0 ? void 0 : _a.chatItem;
133
156
  throw new ChatCommandError("error deleting chat item", r);
134
157
  }
135
- // func getUserSMPServers() throws -> [String] {
136
- // let r = chatSendCmdSync(.getUserSMPServers)
137
- // if case let .userSMPServers(smpServers) = r { return smpServers }
138
- // throw r
139
- // }
140
- // func setUserSMPServers(smpServers: [String]) async throws {
141
- // let r = await chatSendCmd(.setUserSMPServers(smpServers: smpServers))
142
- // if case .cmdOk = r { return }
143
- // throw r
144
- // }
145
158
  async apiCreateLink() {
146
159
  const r = await this.sendChatCommand({ type: "addContact" });
147
160
  if (r.type === "invitation")
@@ -161,11 +174,30 @@ class ChatClient {
161
174
  }
162
175
  async apiDeleteChat(chatType, chatId) {
163
176
  const r = await this.sendChatCommand({ type: "apiDeleteChat", chatType, chatId });
164
- if (r.type !== "contactDeleted")
165
- throw new ChatCommandError("error deleting chat", r);
177
+ switch (chatType) {
178
+ case command_1.ChatType.Direct:
179
+ if (r.type === "contactDeleted")
180
+ return;
181
+ break;
182
+ case command_1.ChatType.Group:
183
+ if (r.type === "groupDeletedUser")
184
+ return;
185
+ break;
186
+ case command_1.ChatType.ContactRequest:
187
+ if (r.type === "contactConnectionDeleted")
188
+ return;
189
+ break;
190
+ }
191
+ throw new ChatCommandError("error deleting chat", r);
192
+ }
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);
166
198
  }
167
- async apiUpdateProfile(profile) {
168
- const r = await this.sendChatCommand({ type: "apiUpdateProfile", profile });
199
+ async apiUpdateProfile(userId, profile) {
200
+ const r = await this.sendChatCommand({ type: "apiUpdateProfile", userId, profile });
169
201
  switch (r.type) {
170
202
  case "userProfileNoChange":
171
203
  return undefined;
@@ -175,11 +207,12 @@ class ChatClient {
175
207
  throw new ChatCommandError("error updating profile", r);
176
208
  }
177
209
  }
178
- // func apiParseMarkdown(text: String) throws -> [FormattedText]? {
179
- // let r = chatSendCmdSync(.apiParseMarkdown(text: text))
180
- // if case let .apiParsedMarkdown(formattedText) = r { return formattedText }
181
- // throw r
182
- // }
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
+ }
183
216
  async apiCreateUserAddress() {
184
217
  const r = await this.sendChatCommand({ type: "createMyAddress" });
185
218
  if (r.type === "userContactLinkCreated")
@@ -196,7 +229,7 @@ class ChatClient {
196
229
  const r = await this.sendChatCommand({ type: "showMyAddress" });
197
230
  switch (r.type) {
198
231
  case "userContactLink":
199
- return r.connReqContact;
232
+ return r.contactLink.connReqContact;
200
233
  default:
201
234
  if (r.type === "chatCmdError" && r.chatError.type === "errorStore" && r.chatError.storeError.type === "userContactLinkNotFound") {
202
235
  return undefined;
@@ -219,6 +252,66 @@ class ChatClient {
219
252
  apiChatRead(chatType, chatId, itemRange) {
220
253
  return this.okChatCommand({ type: "apiChatRead", chatType, chatId, itemRange });
221
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
+ async apiReceiveFile(fileId) {
268
+ const r = await this.sendChatCommand({ type: "receiveFile", fileId });
269
+ if (r.type === "rcvFileAccepted")
270
+ return r.chatItem;
271
+ throw new ChatCommandError("error receiving file", r);
272
+ }
273
+ async apiNewGroup(groupProfile) {
274
+ const r = await this.sendChatCommand({ type: "newGroup", groupProfile });
275
+ if (r.type === "groupCreated")
276
+ return r.groupInfo;
277
+ throw new ChatCommandError("error creating group", r);
278
+ }
279
+ async apiAddMember(groupId, contactId, memberRole) {
280
+ const r = await this.sendChatCommand({ type: "apiAddMember", groupId, contactId, memberRole });
281
+ if (r.type === "sentGroupInvitation")
282
+ return r.member;
283
+ throw new ChatCommandError("error adding member", r);
284
+ }
285
+ async apiJoinGroup(groupId) {
286
+ const r = await this.sendChatCommand({ type: "apiJoinGroup", groupId });
287
+ if (r.type === "userAcceptedGroupSent")
288
+ return r.groupInfo;
289
+ throw new ChatCommandError("error joining group", r);
290
+ }
291
+ async apiRemoveMember(groupId, memberId) {
292
+ const r = await this.sendChatCommand({ type: "apiRemoveMember", groupId, memberId });
293
+ if (r.type === "userDeletedMember")
294
+ return r.member;
295
+ throw new ChatCommandError("error removing member", r);
296
+ }
297
+ async apiLeaveGroup(groupId) {
298
+ const r = await this.sendChatCommand({ type: "apiLeaveGroup", groupId });
299
+ if (r.type === "leftMemberUser")
300
+ return r.groupInfo;
301
+ throw new ChatCommandError("error leaving group", r);
302
+ }
303
+ async apiListMembers(groupId) {
304
+ const r = await this.sendChatCommand({ type: "apiListMembers", groupId });
305
+ if (r.type === "groupMembers")
306
+ return r.group.members;
307
+ throw new ChatCommandError("error getting group members", r);
308
+ }
309
+ async apiUpdateGroup(groupId, groupProfile) {
310
+ const r = await this.sendChatCommand({ type: "apiUpdateGroupProfile", groupId, groupProfile });
311
+ if (r.type === "groupUpdated")
312
+ return r.toGroup;
313
+ throw new ChatCommandError("error updating group", r);
314
+ }
222
315
  async okChatCommand(command) {
223
316
  const r = await this.sendChatCommand(command);
224
317
  if (r.type !== "cmdOk")
@@ -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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"}