simplex-chat 0.1.0 → 0.1.1

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 {
@@ -39,8 +39,11 @@ export declare class ChatClient {
39
39
  apiGetActiveUser(): Promise<CR.User | undefined>;
40
40
  apiCreateActiveUser(profile: CC.Profile): Promise<CR.User>;
41
41
  apiStartChat(): Promise<void>;
42
+ apiStopChat(): Promise<void>;
43
+ apiSetIncognito(incognito: boolean): Promise<void>;
44
+ addressAutoAccept(autoAccept: boolean, autoReply: CC.MsgContent): Promise<void>;
42
45
  apiGetChats(): Promise<CR.Chat[]>;
43
- apiGetChat(chatType: ChatType, chatId: number, pagination?: CC.ChatPagination): Promise<CR.Chat>;
46
+ apiGetChat(chatType: ChatType, chatId: number, pagination?: CC.ChatPagination, search?: string | undefined): Promise<CR.Chat>;
44
47
  apiSendMessage(chatType: ChatType, chatId: number, message: CC.ComposedMessage): Promise<CR.AChatItem>;
45
48
  apiSendTextMessage(chatType: ChatType, chatId: number, text: string): Promise<CR.AChatItem>;
46
49
  apiUpdateChatItem(chatType: ChatType, chatId: number, chatItemId: CC.ChatItemId, msgContent: CC.MsgContent): Promise<CR.ChatItem>;
@@ -48,13 +51,25 @@ export declare class ChatClient {
48
51
  apiCreateLink(): Promise<string>;
49
52
  apiConnect(connReq: string): Promise<ConnReqType>;
50
53
  apiDeleteChat(chatType: ChatType, chatId: number): Promise<void>;
54
+ apiClearChat(chatType: ChatType, chatId: number): Promise<ChatInfo>;
51
55
  apiUpdateProfile(profile: CC.Profile): Promise<CC.Profile | undefined>;
56
+ apiSetContactAlias(contactId: number, localAlias: string): Promise<CR.Contact>;
52
57
  apiCreateUserAddress(): Promise<string>;
53
58
  apiDeleteUserAddress(): Promise<void>;
54
59
  apiGetUserAddress(): Promise<string | undefined>;
55
60
  apiAcceptContactRequest(contactReqId: number): Promise<CR.Contact>;
56
61
  apiRejectContactRequest(contactReqId: number): Promise<void>;
57
62
  apiChatRead(chatType: ChatType, chatId: number, itemRange?: CC.ItemRange): Promise<void>;
63
+ apiContactInfo(contactId: number): Promise<[CR.ConnectionStats?, Profile?]>;
64
+ apiGroupMemberInfo(groupId: number, memberId: number): Promise<CR.ConnectionStats | undefined>;
65
+ apiReceiveFile(fileId: number): Promise<CR.AChatItem>;
66
+ apiNewGroup(groupProfile: CR.GroupProfile): Promise<CR.GroupInfo>;
67
+ apiAddMember(groupId: number, contactId: number, memberRole: CC.GroupMemberRole): Promise<CR.GroupMember>;
68
+ apiJoinGroup(groupId: number): Promise<CR.GroupInfo>;
69
+ apiRemoveMember(groupId: number, memberId: number): Promise<CR.GroupMember>;
70
+ apiLeaveGroup(groupId: number): Promise<CR.GroupInfo>;
71
+ apiListMembers(groupId: number): Promise<CR.GroupMember[]>;
72
+ apiUpdateGroup(groupId: number, groupProfile: CR.GroupProfile): Promise<CR.GroupInfo>;
58
73
  private okChatCommand;
59
74
  get connected(): boolean;
60
75
  }
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) {
@@ -99,14 +100,29 @@ class ChatClient {
99
100
  throw new ChatCommandError("error starting chat", r);
100
101
  }
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 addressAutoAccept(autoAccept, autoReply) {
113
+ const r = await this.sendChatCommand({ type: "addressAutoAccept", autoAccept, autoReply });
114
+ if (r.type !== "userContactLinkUpdated") {
115
+ throw new ChatCommandError("error changing user contact address mode", r);
116
+ }
117
+ }
102
118
  async apiGetChats() {
103
119
  const r = await this.sendChatCommand({ type: "apiGetChats" });
104
120
  if (r.type === "apiChats")
105
121
  return r.chats;
106
122
  throw new ChatCommandError("error loading chats", r);
107
123
  }
108
- async apiGetChat(chatType, chatId, pagination = { count: 100 }) {
109
- const r = await this.sendChatCommand({ type: "apiGetChat", chatType, chatId, pagination });
124
+ async apiGetChat(chatType, chatId, pagination = { count: 100 }, search = undefined) {
125
+ const r = await this.sendChatCommand({ type: "apiGetChat", chatType, chatId, pagination, search });
110
126
  if (r.type === "apiChat")
111
127
  return r.chat;
112
128
  throw new ChatCommandError("error loading chat", r);
@@ -132,16 +148,6 @@ class ChatClient {
132
148
  return r.toChatItem.chatItem;
133
149
  throw new ChatCommandError("error deleting chat item", r);
134
150
  }
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
151
  async apiCreateLink() {
146
152
  const r = await this.sendChatCommand({ type: "addContact" });
147
153
  if (r.type === "invitation")
@@ -161,8 +167,27 @@ class ChatClient {
161
167
  }
162
168
  async apiDeleteChat(chatType, chatId) {
163
169
  const r = await this.sendChatCommand({ type: "apiDeleteChat", chatType, chatId });
164
- if (r.type !== "contactDeleted")
165
- throw new ChatCommandError("error deleting chat", r);
170
+ switch (chatType) {
171
+ case command_1.ChatType.Direct:
172
+ if (r.type === "contactDeleted")
173
+ return;
174
+ break;
175
+ case command_1.ChatType.Group:
176
+ if (r.type === "groupDeletedUser")
177
+ return;
178
+ break;
179
+ case command_1.ChatType.ContactRequest:
180
+ if (r.type === "contactConnectionDeleted")
181
+ return;
182
+ break;
183
+ }
184
+ throw new ChatCommandError("error deleting chat", r);
185
+ }
186
+ async apiClearChat(chatType, chatId) {
187
+ const r = await this.sendChatCommand({ type: "apiClearChat", chatType, chatId });
188
+ if (r.type === "chatCleared")
189
+ return r.chatInfo;
190
+ throw new ChatCommandError("error clearing chat", r);
166
191
  }
167
192
  async apiUpdateProfile(profile) {
168
193
  const r = await this.sendChatCommand({ type: "apiUpdateProfile", profile });
@@ -175,11 +200,12 @@ class ChatClient {
175
200
  throw new ChatCommandError("error updating profile", r);
176
201
  }
177
202
  }
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
- // }
203
+ async apiSetContactAlias(contactId, localAlias) {
204
+ const r = await this.sendChatCommand({ type: "apiSetContactAlias", contactId, localAlias });
205
+ if (r.type === "contactAliasUpdated")
206
+ return r.toContact;
207
+ throw new ChatCommandError("error updating contact alias", r);
208
+ }
183
209
  async apiCreateUserAddress() {
184
210
  const r = await this.sendChatCommand({ type: "createMyAddress" });
185
211
  if (r.type === "userContactLinkCreated")
@@ -196,7 +222,7 @@ class ChatClient {
196
222
  const r = await this.sendChatCommand({ type: "showMyAddress" });
197
223
  switch (r.type) {
198
224
  case "userContactLink":
199
- return r.connReqContact;
225
+ return r.contactLink.connReqContact;
200
226
  default:
201
227
  if (r.type === "chatCmdError" && r.chatError.type === "errorStore" && r.chatError.storeError.type === "userContactLinkNotFound") {
202
228
  return undefined;
@@ -219,6 +245,66 @@ class ChatClient {
219
245
  apiChatRead(chatType, chatId, itemRange) {
220
246
  return this.okChatCommand({ type: "apiChatRead", chatType, chatId, itemRange });
221
247
  }
248
+ async apiContactInfo(contactId) {
249
+ const r = await this.sendChatCommand({ type: "apiContactInfo", contactId });
250
+ if (r.type === "contactInfo")
251
+ return [r.connectionStats, r.customUserProfile];
252
+ throw new ChatCommandError("error getting contact info", r);
253
+ }
254
+ async apiGroupMemberInfo(groupId, memberId) {
255
+ const r = await this.sendChatCommand({ type: "apiGroupMemberInfo", groupId, memberId });
256
+ if (r.type === "groupMemberInfo")
257
+ return r.connectionStats_;
258
+ throw new ChatCommandError("error getting group info", r);
259
+ }
260
+ async apiReceiveFile(fileId) {
261
+ const r = await this.sendChatCommand({ type: "receiveFile", fileId });
262
+ if (r.type === "rcvFileAccepted")
263
+ return r.chatItem;
264
+ throw new ChatCommandError("error receiving file", r);
265
+ }
266
+ async apiNewGroup(groupProfile) {
267
+ const r = await this.sendChatCommand({ type: "newGroup", groupProfile });
268
+ if (r.type === "groupCreated")
269
+ return r.groupInfo;
270
+ throw new ChatCommandError("error creating group", r);
271
+ }
272
+ async apiAddMember(groupId, contactId, memberRole) {
273
+ const r = await this.sendChatCommand({ type: "apiAddMember", groupId, contactId, memberRole });
274
+ if (r.type === "sentGroupInvitation")
275
+ return r.member;
276
+ throw new ChatCommandError("error adding member", r);
277
+ }
278
+ async apiJoinGroup(groupId) {
279
+ const r = await this.sendChatCommand({ type: "apiJoinGroup", groupId });
280
+ if (r.type === "userAcceptedGroupSent")
281
+ return r.groupInfo;
282
+ throw new ChatCommandError("error joining group", r);
283
+ }
284
+ async apiRemoveMember(groupId, memberId) {
285
+ const r = await this.sendChatCommand({ type: "apiRemoveMember", groupId, memberId });
286
+ if (r.type === "userDeletedMember")
287
+ return r.member;
288
+ throw new ChatCommandError("error removing member", r);
289
+ }
290
+ async apiLeaveGroup(groupId) {
291
+ const r = await this.sendChatCommand({ type: "apiLeaveGroup", groupId });
292
+ if (r.type === "leftMemberUser")
293
+ return r.groupInfo;
294
+ throw new ChatCommandError("error leaving group", r);
295
+ }
296
+ async apiListMembers(groupId) {
297
+ const r = await this.sendChatCommand({ type: "apiListMembers", groupId });
298
+ if (r.type === "groupMembers")
299
+ return r.group.members;
300
+ throw new ChatCommandError("error getting group members", r);
301
+ }
302
+ async apiUpdateGroup(groupId, groupProfile) {
303
+ const r = await this.sendChatCommand({ type: "apiUpdateGroupProfile", groupId, groupProfile });
304
+ if (r.type === "groupUpdated")
305
+ return r.toGroup;
306
+ throw new ChatCommandError("error updating group", r);
307
+ }
222
308
  async okChatCommand(command) {
223
309
  const r = await this.sendChatCommand(command);
224
310
  if (r.type !== "cmdOk")
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAC/B,2CAA4H;AAG5H,gCAA+B;AAa/B,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAmB,OAAe,EAAS,QAAsB;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAA;QADG,YAAO,GAAP,OAAO,CAAQ;QAAS,aAAQ,GAAR,QAAQ,CAAc;IAEjE,CAAC;CACF;AAJD,4CAIC;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,kCAAmB,CAAA;AACrB,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB;AAED,MAAa,UAAU;IAUrB,YACW,MAA2B,EAC3B,MAAwB,EACxB,IAA2B,EAC3B,MAAqB,EACb,SAAwB;QAJhC,WAAM,GAAN,MAAM,CAAqB;QAC3B,WAAM,GAAN,MAAM,CAAkB;QACxB,SAAI,GAAJ,IAAI,CAAuB;QAC3B,WAAM,GAAN,MAAM,CAAe;QACb,cAAS,GAAT,SAAS,CAAe;QAdnC,eAAU,GAAG,IAAI,CAAA;QACjB,iBAAY,GAAG,CAAC,CAAA;QACP,iBAAY,GAAG,IAAI,GAAG,EAAmB,CAAA;IAavD,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAA8B,uBAAW,EAAE,MAAwB,UAAU,CAAC,aAAa;QAC7G,MAAM,SAAS,GAAG,MAAM,yBAAa,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;QAChF,MAAM,IAAI,GAAG,IAAI,eAAO,CAAe,GAAG,CAAC,KAAK,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAI,EAAE,gBAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;QAC9D,OAAO,CAAC,CAAA;QAER,KAAK,UAAU,SAAS;YACtB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE;gBAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAwC,CAAA;gBAC3F,IAAI,OAAO,YAAY,6BAAiB,EAAE;oBACxC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;iBAC9C;qBAAM;oBACL,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,OAAO,CAAA;oBAC9B,IAAI,MAAM,EAAE;wBACV,MAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;wBACtC,IAAI,GAAG,EAAE;4BACP,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;4BAC7B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;yBAClB;6BAAM;4BACL,2BAA2B;4BAC3B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAA;yBAC5D;qBACF;yBAAM;wBACL,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;qBACzB;iBACF;aACF;YACD,CAAC,CAAC,UAAU,GAAG,KAAK,CAAA;QACtB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,CAAA;QACvC,MAAM,CAAC,GAAmB,EAAC,MAAM,EAAE,GAAG,EAAC,CAAA;QACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAI,EAAE,gBAAI,CAAC,CAAA;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC,CAAA;IAC3F,CAAC;IAED,eAAe,CAAC,OAAoB;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QAC5B,MAAM,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAA;QAC9D,QAAQ,CAAC,CAAC,IAAI,EAAE;YACd,KAAK,YAAY;gBACf,OAAO,CAAC,CAAC,IAAI,CAAA;YACf,KAAK,cAAc;gBACjB,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,KAAK,cAAc;oBAAE,OAAO,SAAS,CAAA;gBACnG,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAA;YAC5D;gBACE,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;SACvD;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAmB;QAC3C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAC,CAAC,CAAA;QACzE,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,CAAC,CAAC,IAAI,CAAA;QAC1C,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAA;QACzD,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE;YACxD,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;SACrD;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAA;QAC3D,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,CAAC,CAAC,KAAK,CAAA;QACzC,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAkB,EAAE,MAAc,EAAE,aAAgC,EAAC,KAAK,EAAE,GAAG,EAAC;QAC/F,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAC,CAAC,CAAA;QACxF,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,IAAI,CAAA;QACvC,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAkB,EAAE,MAAc,EAAE,OAA2B;QAClF,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC,CAAA;QACzF,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa;YAAE,OAAO,CAAC,CAAC,QAAQ,CAAA;QAC/C,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,kBAAkB,CAAC,QAAkB,EAAE,MAAc,EAAE,IAAY;QACjE,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAC,UAAU,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,EAAC,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAkB,EAAE,MAAc,EAAE,UAAyB,EAAE,UAAyB;QAC9G,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC,CAAA;QAC3G,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAA;QAC5D,MAAM,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAkB,EAAE,MAAc,EAAE,UAAkB,EAAE,UAAyB;QACvG,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC,CAAA;QAC3G,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAA;QAC9D,MAAM,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,gDAAgD;IAChD,kDAAkD;IAClD,wEAAwE;IACxE,cAAc;IACd,IAAI;IAEJ,8DAA8D;IAC9D,4EAA4E;IAC5E,oCAAoC;IACpC,cAAc;IACd,IAAI;IAEJ,KAAK,CAAC,aAAa;QACjB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,YAAY,EAAC,CAAC,CAAA;QAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,CAAC,CAAC,iBAAiB,CAAA;QACvD,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAC,CAAC,CAAA;QAChE,QAAQ,CAAC,CAAC,IAAI,EAAE;YACd,KAAK,kBAAkB;gBACrB,OAAO,WAAW,CAAC,UAAU,CAAA;YAC/B,KAAK,gBAAgB;gBACnB,OAAO,WAAW,CAAC,OAAO,CAAA;YAC5B;gBACE,MAAM,IAAI,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;SACpD;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAkB,EAAE,MAAc;QACpD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAA;QAC/E,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB;YAAE,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAmB;QACxC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAC,CAAC,CAAA;QACzE,QAAQ,CAAC,CAAC,IAAI,EAAE;YACd,KAAK,qBAAqB;gBACxB,OAAO,SAAS,CAAA;YAClB,KAAK,oBAAoB;gBACvB,OAAO,CAAC,CAAC,SAAS,CAAA;YACpB;gBACE,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;SAC1D;IACH,CAAC;IAED,mEAAmE;IACnE,6DAA6D;IAC7D,iFAAiF;IACjF,cAAc;IACd,IAAI;IAEJ,KAAK,CAAC,oBAAoB;QACxB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAA;QAC/D,IAAI,CAAC,CAAC,IAAI,KAAK,wBAAwB;YAAE,OAAO,CAAC,CAAC,cAAc,CAAA;QAChE,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAA;QAC/D,IAAI,CAAC,CAAC,IAAI,KAAK,wBAAwB;YAAE,OAAM;QAC/C,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,eAAe,EAAC,CAAC,CAAA;QAC7D,QAAQ,CAAC,CAAC,IAAI,EAAE;YACd,KAAK,iBAAiB;gBACpB,OAAO,CAAC,CAAC,cAAc,CAAA;YACzB;gBACE,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,yBAAyB,EAAE;oBAC/H,OAAO,SAAS,CAAA;iBACjB;gBACD,MAAM,IAAI,gBAAgB,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAA;SAC9D;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,YAAoB;QAChD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAC,CAAC,CAAA;QAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,yBAAyB;YAAE,OAAO,CAAC,CAAC,OAAO,CAAA;QAC1D,MAAM,IAAI,gBAAgB,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,YAAoB;QAChD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAC,CAAC,CAAA;QAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,wBAAwB;YAAE,OAAM;QAC/C,MAAM,IAAI,gBAAgB,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,WAAW,CAAC,QAAkB,EAAE,MAAc,EAAE,SAAwB;QACtE,OAAO,IAAI,CAAC,aAAa,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC,CAAA;IAC/E,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAoB;QAC9C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,MAAM,IAAI,gBAAgB,CAAC,GAAG,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;;AAnOH,gCAoOC;AA/NQ,wBAAa,GAAqB;IACvC,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,IAAI;CACjB,CAAA"}
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 declare type ChatCommand = ShowActiveUser | CreateActiveUser | StartChat | SetFilesFolder | APIGetChats | APIGetChat | APISendMessage | APIUpdateChatItem | APIDeleteChatItem | APIChatRead | APIDeleteChat | APIAcceptContact | APIRejectContact | APIUpdateProfile | APIParseMarkdown | GetUserSMPServers | SetUserSMPServers | AddContact | Connect | ConnectSimplex | CreateMyAddress | DeleteMyAddress | ShowMyAddress | AddressAutoAccept;
2
- declare type ChatCommandTag = "showActiveUser" | "createActiveUser" | "startChat" | "setFilesFolder" | "apiGetChats" | "apiGetChat" | "apiSendMessage" | "apiUpdateChatItem" | "apiDeleteChatItem" | "apiChatRead" | "apiDeleteChat" | "apiAcceptContact" | "apiRejectContact" | "apiUpdateProfile" | "apiParseMarkdown" | "getUserSMPServers" | "setUserSMPServers" | "addContact" | "connect" | "connectSimplex" | "createMyAddress" | "deleteMyAddress" | "showMyAddress" | "addressAutoAccept";
1
+ export declare type ChatCommand = ShowActiveUser | CreateActiveUser | StartChat | APIStopChat | SetFilesFolder | SetIncognito | APIExportArchive | APIImportArchive | APIDeleteStorage | APIGetChats | APIGetChat | APISendMessage | APIUpdateChatItem | APIDeleteChatItem | APIChatRead | APIDeleteChat | APIClearChat | APIAcceptContact | APIRejectContact | APIUpdateProfile | APISetContactAlias | APIParseMarkdown | NewGroup | APIAddMember | APIJoinGroup | APIRemoveMember | APILeaveGroup | APIListMembers | APIUpdateGroupProfile | GetUserSMPServers | SetUserSMPServers | APIContactInfo | APIGroupMemberInfo | AddContact | Connect | ConnectSimplex | CreateMyAddress | DeleteMyAddress | ShowMyAddress | AddressAutoAccept | ReceiveFile | CancelFile | FileStatus;
2
+ declare type ChatCommandTag = "showActiveUser" | "createActiveUser" | "startChat" | "apiStopChat" | "setFilesFolder" | "setIncognito" | "apiExportArchive" | "apiImportArchive" | "apiDeleteStorage" | "apiGetChats" | "apiGetChat" | "apiSendMessage" | "apiUpdateChatItem" | "apiDeleteChatItem" | "apiChatRead" | "apiDeleteChat" | "apiClearChat" | "apiAcceptContact" | "apiRejectContact" | "apiUpdateProfile" | "apiSetContactAlias" | "apiParseMarkdown" | "newGroup" | "apiAddMember" | "apiJoinGroup" | "apiRemoveMember" | "apiLeaveGroup" | "apiListMembers" | "apiUpdateGroupProfile" | "getUserSMPServers" | "setUserSMPServers" | "apiContactInfo" | "apiGroupMemberInfo" | "addContact" | "connect" | "connectSimplex" | "createMyAddress" | "deleteMyAddress" | "showMyAddress" | "addressAutoAccept" | "receiveFile" | "cancelFile" | "fileStatus";
3
3
  interface IChatCommand {
4
4
  type: ChatCommandTag;
5
5
  }
@@ -12,19 +12,41 @@ export interface CreateActiveUser extends IChatCommand {
12
12
  }
13
13
  export interface StartChat extends IChatCommand {
14
14
  type: "startChat";
15
+ subscribeConnections?: boolean;
16
+ expireChatItems?: boolean;
17
+ }
18
+ export interface APIStopChat extends IChatCommand {
19
+ type: "apiStopChat";
15
20
  }
16
21
  export interface SetFilesFolder extends IChatCommand {
17
22
  type: "setFilesFolder";
18
23
  filePath: string;
19
24
  }
25
+ export interface SetIncognito extends IChatCommand {
26
+ type: "setIncognito";
27
+ incognito: boolean;
28
+ }
29
+ export interface APIExportArchive extends IChatCommand {
30
+ type: "apiExportArchive";
31
+ config: ArchiveConfig;
32
+ }
33
+ export interface APIImportArchive extends IChatCommand {
34
+ type: "apiImportArchive";
35
+ config: ArchiveConfig;
36
+ }
37
+ export interface APIDeleteStorage extends IChatCommand {
38
+ type: "apiDeleteStorage";
39
+ }
20
40
  export interface APIGetChats extends IChatCommand {
21
41
  type: "apiGetChats";
42
+ pendingConnections?: boolean;
22
43
  }
23
44
  export interface APIGetChat extends IChatCommand {
24
45
  type: "apiGetChat";
25
46
  chatType: ChatType;
26
47
  chatId: number;
27
48
  pagination: ChatPagination;
49
+ search?: string;
28
50
  }
29
51
  export interface APISendMessage extends IChatCommand {
30
52
  type: "apiSendMessage";
@@ -66,6 +88,11 @@ export interface APIDeleteChat extends IChatCommand {
66
88
  chatType: ChatType;
67
89
  chatId: number;
68
90
  }
91
+ export interface APIClearChat extends IChatCommand {
92
+ type: "apiClearChat";
93
+ chatType: ChatType;
94
+ chatId: number;
95
+ }
69
96
  export interface APIAcceptContact extends IChatCommand {
70
97
  type: "apiAcceptContact";
71
98
  contactReqId: number;
@@ -78,10 +105,47 @@ export interface APIUpdateProfile extends IChatCommand {
78
105
  type: "apiUpdateProfile";
79
106
  profile: Profile;
80
107
  }
108
+ export interface APISetContactAlias extends IChatCommand {
109
+ type: "apiSetContactAlias";
110
+ contactId: number;
111
+ localAlias: string;
112
+ }
81
113
  export interface APIParseMarkdown extends IChatCommand {
82
114
  type: "apiParseMarkdown";
83
115
  text: string;
84
116
  }
117
+ export interface NewGroup extends IChatCommand {
118
+ type: "newGroup";
119
+ groupProfile: GroupProfile;
120
+ }
121
+ export interface APIAddMember extends IChatCommand {
122
+ type: "apiAddMember";
123
+ groupId: number;
124
+ contactId: number;
125
+ memberRole: GroupMemberRole;
126
+ }
127
+ export interface APIJoinGroup extends IChatCommand {
128
+ type: "apiJoinGroup";
129
+ groupId: number;
130
+ }
131
+ export interface APIRemoveMember extends IChatCommand {
132
+ type: "apiRemoveMember";
133
+ groupId: number;
134
+ memberId: number;
135
+ }
136
+ export interface APILeaveGroup extends IChatCommand {
137
+ type: "apiLeaveGroup";
138
+ groupId: number;
139
+ }
140
+ export interface APIListMembers extends IChatCommand {
141
+ type: "apiListMembers";
142
+ groupId: number;
143
+ }
144
+ export interface APIUpdateGroupProfile extends IChatCommand {
145
+ type: "apiUpdateGroupProfile";
146
+ groupId: number;
147
+ groupProfile: GroupProfile;
148
+ }
85
149
  export interface GetUserSMPServers extends IChatCommand {
86
150
  type: "getUserSMPServers";
87
151
  }
@@ -89,6 +153,15 @@ export interface SetUserSMPServers extends IChatCommand {
89
153
  type: "setUserSMPServers";
90
154
  servers: [string];
91
155
  }
156
+ export interface APIContactInfo extends IChatCommand {
157
+ type: "apiContactInfo";
158
+ contactId: number;
159
+ }
160
+ export interface APIGroupMemberInfo extends IChatCommand {
161
+ type: "apiGroupMemberInfo";
162
+ groupId: number;
163
+ memberId: number;
164
+ }
92
165
  export interface AddContact extends IChatCommand {
93
166
  type: "addContact";
94
167
  }
@@ -110,7 +183,21 @@ export interface ShowMyAddress extends IChatCommand {
110
183
  }
111
184
  export interface AddressAutoAccept extends IChatCommand {
112
185
  type: "addressAutoAccept";
113
- enable: boolean;
186
+ autoAccept: boolean;
187
+ autoReply?: MsgContent;
188
+ }
189
+ export interface ReceiveFile extends IChatCommand {
190
+ type: "receiveFile";
191
+ fileId: number;
192
+ filePath?: string;
193
+ }
194
+ export interface CancelFile extends IChatCommand {
195
+ type: "cancelFile";
196
+ fileId: number;
197
+ }
198
+ export interface FileStatus extends IChatCommand {
199
+ type: "fileStatus";
200
+ fileId: number;
114
201
  }
115
202
  export interface Profile {
116
203
  displayName: string;
@@ -132,22 +219,57 @@ export declare type ChatPagination = {
132
219
  before: ChatItemId;
133
220
  };
134
221
  export declare type ChatItemId = number;
135
- declare type MsgContentTag = "text" | "link" | "images";
136
- export declare type MsgContent = MCText | MCUnknown;
222
+ declare type MsgContentTag = "text" | "link" | "image" | "file";
223
+ export declare type MsgContent = MCText | MCLink | MCImage | MCFile | MCUnknown;
137
224
  interface MC {
138
225
  type: MsgContentTag;
226
+ text: string;
139
227
  }
140
228
  interface MCText extends MC {
141
229
  type: "text";
142
230
  text: string;
143
231
  }
232
+ interface MCLink extends MC {
233
+ type: "link";
234
+ text: string;
235
+ preview: LinkPreview;
236
+ }
237
+ interface MCImage extends MC {
238
+ type: "image";
239
+ image: string;
240
+ }
241
+ interface MCFile extends MC {
242
+ type: "file";
243
+ text: string;
244
+ }
144
245
  interface MCUnknown {
145
246
  type: string;
146
- text?: string;
247
+ text: string;
248
+ }
249
+ interface LinkPreview {
250
+ uri: string;
251
+ title: string;
252
+ description: string;
253
+ image: string;
147
254
  }
148
255
  export declare enum DeleteMode {
149
256
  Broadcast = "broadcast",
150
257
  Internal = "internal"
151
258
  }
259
+ interface ArchiveConfig {
260
+ archivePath: string;
261
+ disableCompression?: boolean;
262
+ parentTempDirectory?: string;
263
+ }
264
+ export declare enum GroupMemberRole {
265
+ GRMember = "member",
266
+ GRAdmin = "admin",
267
+ GROwner = "owner"
268
+ }
269
+ interface GroupProfile {
270
+ displayName: string;
271
+ fullName: string;
272
+ image?: string;
273
+ }
152
274
  export declare function cmdString(cmd: ChatCommand): string;
153
275
  export {};
package/dist/command.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cmdString = exports.DeleteMode = exports.ChatType = void 0;
3
+ exports.cmdString = exports.GroupMemberRole = exports.DeleteMode = exports.ChatType = void 0;
4
4
  var ChatType;
5
5
  (function (ChatType) {
6
6
  ChatType["Direct"] = "@";
@@ -12,6 +12,12 @@ var DeleteMode;
12
12
  DeleteMode["Broadcast"] = "broadcast";
13
13
  DeleteMode["Internal"] = "internal";
14
14
  })(DeleteMode = exports.DeleteMode || (exports.DeleteMode = {}));
15
+ var GroupMemberRole;
16
+ (function (GroupMemberRole) {
17
+ GroupMemberRole["GRMember"] = "member";
18
+ GroupMemberRole["GRAdmin"] = "admin";
19
+ GroupMemberRole["GROwner"] = "owner";
20
+ })(GroupMemberRole = exports.GroupMemberRole || (exports.GroupMemberRole = {}));
15
21
  function cmdString(cmd) {
16
22
  switch (cmd.type) {
17
23
  case "showActiveUser":
@@ -19,11 +25,21 @@ function cmdString(cmd) {
19
25
  case "createActiveUser":
20
26
  return `/u ${JSON.stringify(cmd.profile)}`;
21
27
  case "startChat":
22
- return "/_start";
28
+ return `/_start subscribe=${cmd.subscribeConnections ? "on" : "off"} expire=${cmd.expireChatItems ? "on" : "off"}`;
29
+ case "apiStopChat":
30
+ return "/_stop";
23
31
  case "setFilesFolder":
24
32
  return `/_files_folder ${cmd.filePath}`;
33
+ case "setIncognito":
34
+ return `/incognito ${cmd.incognito ? "on" : "off"}`;
35
+ case "apiExportArchive":
36
+ return `/_db export ${JSON.stringify(cmd.config)}`;
37
+ case "apiImportArchive":
38
+ return `/_db import ${JSON.stringify(cmd.config)}`;
39
+ case "apiDeleteStorage":
40
+ return "/_db delete";
25
41
  case "apiGetChats":
26
- return "/_get chats";
42
+ return `/_get chats pcc=${cmd.pendingConnections ? "on" : "off"}`;
27
43
  case "apiGetChat":
28
44
  return `/_get chat ${cmd.chatType}${cmd.chatId}${paginationStr(cmd.pagination)}`;
29
45
  case "apiSendMessage":
@@ -38,18 +54,40 @@ function cmdString(cmd) {
38
54
  }
39
55
  case "apiDeleteChat":
40
56
  return `/_delete ${cmd.chatType}${cmd.chatId}`;
57
+ case "apiClearChat":
58
+ return `/_clear chat ${cmd.chatType}${cmd.chatId}`;
41
59
  case "apiAcceptContact":
42
60
  return `/_accept ${cmd.contactReqId}`;
43
61
  case "apiRejectContact":
44
62
  return `/_reject ${cmd.contactReqId}`;
45
63
  case "apiUpdateProfile":
46
64
  return `/_profile ${JSON.stringify(cmd.profile)}`;
65
+ case "apiSetContactAlias":
66
+ return `/_set alias @${cmd.contactId} ${cmd.localAlias.trim()}`;
47
67
  case "apiParseMarkdown":
48
68
  return `/_parse ${cmd.text}`;
69
+ case "newGroup":
70
+ return `/_group ${JSON.stringify(cmd.groupProfile)}`;
71
+ case "apiAddMember":
72
+ return `/_add #${cmd.groupId} ${cmd.contactId} ${cmd.memberRole}`;
73
+ case "apiJoinGroup":
74
+ return `/_join #${cmd.groupId}`;
75
+ case "apiRemoveMember":
76
+ return `/_remove #${cmd.groupId} ${cmd.memberId}`;
77
+ case "apiLeaveGroup":
78
+ return `/_leave #${cmd.groupId}`;
79
+ case "apiListMembers":
80
+ return `/_members #${cmd.groupId}`;
81
+ case "apiUpdateGroupProfile":
82
+ return `/_group_profile #${cmd.groupId} ${JSON.stringify(cmd.groupProfile)}`;
49
83
  case "getUserSMPServers":
50
84
  return "/smp_servers";
51
85
  case "setUserSMPServers":
52
86
  return `/smp_servers ${cmd.servers.join(",") || "default"}`;
87
+ case "apiContactInfo":
88
+ return `/_info @${cmd.contactId}`;
89
+ case "apiGroupMemberInfo":
90
+ return `/_info #${cmd.groupId} ${cmd.memberId}`;
53
91
  case "addContact":
54
92
  return "/connect";
55
93
  case "connect":
@@ -63,7 +101,13 @@ function cmdString(cmd) {
63
101
  case "showMyAddress":
64
102
  return "/show_address";
65
103
  case "addressAutoAccept":
66
- return `/auto_accept ${cmd.enable ? "on" : "off"}`;
104
+ return `/auto_accept ${cmd.autoAccept ? "on" : "off"}${cmd.autoReply ? " " + JSON.stringify(cmd.autoReply) : ""}`;
105
+ case "receiveFile":
106
+ return `/freceive ${cmd.fileId}${cmd.filePath ? " " + cmd.filePath : ""}`;
107
+ case "cancelFile":
108
+ return `/fcancel ${cmd.fileId}`;
109
+ case "fileStatus":
110
+ return `/fstatus ${cmd.fileId}`;
67
111
  }
68
112
  }
69
113
  exports.cmdString = cmdString;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { ChatItemId, MsgContent, DeleteMode, Profile } from "./command";
2
- export declare type ChatResponse = CRActiveUser | CRChatStarted | CRChatRunning | CRApiChats | CRApiChat | CRApiParsedMarkdown | CRUserSMPServers | CRNewChatItem | CRChatItemStatusUpdated | CRChatItemUpdated | CRChatItemDeleted | CRMsgIntegrityError | CRCmdOk | CRUserContactLink | CRUserContactLinkUpdated | CRContactRequestRejected | CRUserProfile | CRUserProfileNoChange | CRUserProfileUpdated | CRInvitation | CRSentConfirmation | CRSentInvitation | CRContactUpdated | CRContactDeleted | CRUserContactLinkCreated | CRUserContactLinkDeleted | CRReceivedContactRequest | CRAcceptingContactRequest | CRContactAlreadyExists | CRContactRequestAlreadyAccepted | CRContactConnecting | CRContactConnected | CRContactAnotherClient | CRContactDisconnected | CRContactSubscribed | CRContactSubError | CRContactSubSummary | CRGroupEmpty | CRPendingSubSummary | CRUserContactLinkSubscribed | CRUserContactLinkSubError | CRMessageError | CRChatCmdError | CRChatError;
3
- declare type ChatResponseTag = "activeUser" | "chatStarted" | "chatRunning" | "apiChats" | "apiChat" | "apiParsedMarkdown" | "userSMPServers" | "newChatItem" | "chatItemStatusUpdated" | "chatItemUpdated" | "chatItemDeleted" | "msgIntegrityError" | "cmdOk" | "userContactLink" | "userContactLinkUpdated" | "userContactLinkCreated" | "userContactLinkDeleted" | "contactRequestRejected" | "userProfile" | "userProfileNoChange" | "userProfileUpdated" | "invitation" | "sentConfirmation" | "sentInvitation" | "contactUpdated" | "contactDeleted" | "receivedContactRequest" | "acceptingContactRequest" | "contactAlreadyExists" | "contactRequestAlreadyAccepted" | "contactConnecting" | "contactConnected" | "contactAnotherClient" | "contactDisconnected" | "contactSubscribed" | "contactSubError" | "contactSubSummary" | "groupEmpty" | "pendingSubSummary" | "userContactLinkSubscribed" | "userContactLinkSubError" | "messageError" | "chatCmdError" | "chatError";
1
+ import { ChatItemId, MsgContent, DeleteMode, Profile, GroupMemberRole } from "./command";
2
+ export declare type ChatResponse = CRActiveUser | CRChatStarted | CRChatRunning | CRChatStopped | CRApiChats | CRApiChat | CRApiParsedMarkdown | CRUserSMPServers | CRContactInfo | CRGroupMemberInfo | CRNewChatItem | CRChatItemStatusUpdated | CRChatItemUpdated | CRChatItemDeleted | CRMsgIntegrityError | CRCmdOk | CRUserContactLink | CRUserContactLinkUpdated | CRContactRequestRejected | CRUserProfile | CRUserProfileNoChange | CRUserProfileUpdated | CRContactAliasUpdated | CRInvitation | CRSentConfirmation | CRSentInvitation | CRContactUpdated | CRContactsMerged | CRContactDeleted | CRChatCleared | CRUserContactLinkCreated | CRUserContactLinkDeleted | CRReceivedContactRequest | CRAcceptingContactRequest | CRContactAlreadyExists | CRContactRequestAlreadyAccepted | CRContactConnecting | CRContactConnected | CRContactAnotherClient | CRContactDisconnected | CRContactSubscribed | CRContactSubError | CRContactSubSummary | CRContactsDisconnected | CRContactsSubscribed | CRHostConnected | CRHostDisconnected | CRGroupEmpty | CRMemberSubError | CRMemberSubSummary | CRGroupSubscribed | CRRcvFileAccepted | CRRcvFileAcceptedSndCancelled | CRRcvFileStart | CRRcvFileComplete | CRRcvFileCancelled | CRRcvFileSndCancelled | CRSndFileStart | CRSndFileComplete | CRSndFileCancelled | CRSndFileRcvCancelled | CRSndGroupFileCancelled | CRSndFileSubError | CRRcvFileSubError | CRPendingSubSummary | CRGroupCreated | CRGroupMembers | CRUserAcceptedGroupSent | CRUserDeletedMember | CRSentGroupInvitation | CRLeftMemberUser | CRGroupDeletedUser | CRGroupInvitation | CRReceivedGroupInvitation | CRUserJoinedGroup | CRJoinedGroupMember | CRJoinedGroupMemberConnecting | CRConnectedToGroupMember | CRDeletedMember | CRDeletedMemberUser | CRLeftMember | CRGroupRemoved | CRGroupDeleted | CRGroupUpdated | CRUserContactLinkSubscribed | CRUserContactLinkSubError | CRNewContactConnection | CRContactConnectionDeleted | CRMessageError | CRChatCmdError | CRChatError;
3
+ declare type ChatResponseTag = "activeUser" | "chatStarted" | "chatRunning" | "chatStopped" | "apiChats" | "apiChat" | "apiParsedMarkdown" | "userSMPServers" | "contactInfo" | "groupMemberInfo" | "newChatItem" | "chatItemStatusUpdated" | "chatItemUpdated" | "chatItemDeleted" | "msgIntegrityError" | "cmdOk" | "userContactLink" | "userContactLinkUpdated" | "userContactLinkCreated" | "userContactLinkDeleted" | "contactRequestRejected" | "userProfile" | "userProfileNoChange" | "userProfileUpdated" | "contactAliasUpdated" | "invitation" | "sentConfirmation" | "sentInvitation" | "contactUpdated" | "contactsMerged" | "contactDeleted" | "chatCleared" | "receivedContactRequest" | "acceptingContactRequest" | "contactAlreadyExists" | "contactRequestAlreadyAccepted" | "contactConnecting" | "contactConnected" | "contactAnotherClient" | "contactDisconnected" | "contactSubscribed" | "contactSubError" | "contactSubSummary" | "contactsDisconnected" | "contactsSubscribed" | "hostConnected" | "hostDisconnected" | "groupEmpty" | "memberSubError" | "memberSubSummary" | "groupSubscribed" | "rcvFileAccepted" | "rcvFileAcceptedSndCancelled" | "rcvFileStart" | "rcvFileComplete" | "rcvFileCancelled" | "rcvFileSndCancelled" | "sndFileStart" | "sndFileComplete" | "sndFileCancelled" | "sndFileRcvCancelled" | "sndGroupFileCancelled" | "fileTransferStatus" | "sndFileSubError" | "rcvFileSubError" | "pendingSubSummary" | "groupCreated" | "groupMembers" | "userAcceptedGroupSent" | "userDeletedMember" | "sentGroupInvitation" | "leftMemberUser" | "groupDeletedUser" | "groupInvitation" | "receivedGroupInvitation" | "userJoinedGroup" | "joinedGroupMember" | "joinedGroupMemberConnecting" | "connectedToGroupMember" | "deletedMember" | "deletedMemberUser" | "leftMember" | "groupRemoved" | "groupDeleted" | "groupUpdated" | "userContactLinkSubscribed" | "userContactLinkSubError" | "newContactConnection" | "contactConnectionDeleted" | "messageError" | "chatCmdError" | "chatError";
4
4
  interface CR {
5
5
  type: ChatResponseTag;
6
6
  }
@@ -14,6 +14,9 @@ export interface CRChatStarted extends CR {
14
14
  export interface CRChatRunning extends CR {
15
15
  type: "chatRunning";
16
16
  }
17
+ export interface CRChatStopped extends CR {
18
+ type: "chatStopped";
19
+ }
17
20
  export interface CRApiChats extends CR {
18
21
  type: "apiChats";
19
22
  chats: Chat[];
@@ -30,6 +33,18 @@ export interface CRUserSMPServers extends CR {
30
33
  type: "userSMPServers";
31
34
  smpServers: string[];
32
35
  }
36
+ export interface CRContactInfo extends CR {
37
+ type: "contactInfo";
38
+ contact: Contact;
39
+ connectionStats: ConnectionStats;
40
+ customUserProfile?: Profile;
41
+ }
42
+ export interface CRGroupMemberInfo extends CR {
43
+ type: "groupMemberInfo";
44
+ groupInfo: GroupInfo;
45
+ member: GroupMember;
46
+ connectionStats_?: ConnectionStats;
47
+ }
33
48
  export interface CRNewChatItem extends CR {
34
49
  type: "newChatItem";
35
50
  chatItem: AChatItem;
@@ -56,13 +71,13 @@ export interface CRCmdOk extends CR {
56
71
  }
57
72
  export interface CRUserContactLink extends CR {
58
73
  type: "userContactLink";
59
- connReqContact: string;
60
- autoAccept: boolean;
74
+ contactLink: UserContactLink;
61
75
  }
62
76
  export interface CRUserContactLinkUpdated extends CR {
63
77
  type: "userContactLinkUpdated";
64
78
  connReqContact: string;
65
79
  autoAccept: boolean;
80
+ autoReply?: MsgContent;
66
81
  }
67
82
  export interface CRContactRequestRejected extends CR {
68
83
  type: "contactRequestRejected";
@@ -80,6 +95,10 @@ export interface CRUserProfileUpdated extends CR {
80
95
  fromProfile: Profile;
81
96
  toProfile: Profile;
82
97
  }
98
+ export interface CRContactAliasUpdated extends CR {
99
+ type: "contactAliasUpdated";
100
+ toContact: Contact;
101
+ }
83
102
  export interface CRInvitation extends CR {
84
103
  type: "invitation";
85
104
  connReqInvitation: string;
@@ -95,10 +114,19 @@ export interface CRContactUpdated extends CR {
95
114
  fromContact: Contact;
96
115
  toContact: Contact;
97
116
  }
117
+ export interface CRContactsMerged extends CR {
118
+ type: "contactsMerged";
119
+ intoContact: Contact;
120
+ mergedContact: Contact;
121
+ }
98
122
  export interface CRContactDeleted extends CR {
99
123
  type: "contactDeleted";
100
124
  contact: Contact;
101
125
  }
126
+ export interface CRChatCleared extends CR {
127
+ type: "chatCleared";
128
+ chatInfo: ChatInfo;
129
+ }
102
130
  export interface CRUserContactLinkCreated extends CR {
103
131
  type: "userContactLinkCreated";
104
132
  connReqContact: string;
@@ -129,6 +157,7 @@ export interface CRContactConnecting extends CR {
129
157
  export interface CRContactConnected extends CR {
130
158
  type: "contactConnected";
131
159
  contact: Contact;
160
+ userCustomProfile?: Profile;
132
161
  }
133
162
  export interface CRContactAnotherClient extends CR {
134
163
  type: "contactAnotherClient";
@@ -151,14 +180,202 @@ export interface CRContactSubSummary extends CR {
151
180
  type: "contactSubSummary";
152
181
  contactSubscriptions: ContactSubStatus[];
153
182
  }
183
+ export interface CRContactsDisconnected extends CR {
184
+ type: "contactsDisconnected";
185
+ server: string;
186
+ contactRefs: ContactRef[];
187
+ }
188
+ export interface CRContactsSubscribed extends CR {
189
+ type: "contactsSubscribed";
190
+ server: string;
191
+ contactRefs: ContactRef[];
192
+ }
193
+ export interface CRHostConnected extends CR {
194
+ type: "hostConnected";
195
+ protocol: string;
196
+ transportHost: string;
197
+ }
198
+ export interface CRHostDisconnected extends CR {
199
+ type: "hostDisconnected";
200
+ protocol: string;
201
+ transportHost: string;
202
+ }
154
203
  export interface CRGroupEmpty extends CR {
155
204
  type: "groupEmpty";
156
205
  groupInfo: GroupInfo;
157
206
  }
207
+ export interface CRMemberSubError extends CR {
208
+ type: "memberSubError";
209
+ groupInfo: GroupInfo;
210
+ member: GroupMember;
211
+ chatError: ChatError;
212
+ }
213
+ export interface CRMemberSubSummary extends CR {
214
+ type: "memberSubSummary";
215
+ memberSubscriptions: MemberSubStatus[];
216
+ }
217
+ export interface CRGroupSubscribed extends CR {
218
+ type: "groupSubscribed";
219
+ groupInfo: GroupInfo;
220
+ }
221
+ export interface CRRcvFileAccepted extends CR {
222
+ type: "rcvFileAccepted";
223
+ chatItem: AChatItem;
224
+ }
225
+ export interface CRRcvFileAcceptedSndCancelled extends CR {
226
+ type: "rcvFileAcceptedSndCancelled";
227
+ rcvFileTransfer: RcvFileTransfer;
228
+ }
229
+ export interface CRRcvFileStart extends CR {
230
+ type: "rcvFileStart";
231
+ chatItem: AChatItem;
232
+ }
233
+ export interface CRRcvFileComplete extends CR {
234
+ type: "rcvFileComplete";
235
+ chatItem: AChatItem;
236
+ }
237
+ export interface CRRcvFileCancelled extends CR {
238
+ type: "rcvFileCancelled";
239
+ rcvFileTransfer: RcvFileTransfer;
240
+ }
241
+ export interface CRRcvFileSndCancelled extends CR {
242
+ type: "rcvFileSndCancelled";
243
+ rcvFileTransfer: RcvFileTransfer;
244
+ }
245
+ export interface CRSndFileStart extends CR {
246
+ type: "sndFileStart";
247
+ chatItem: AChatItem;
248
+ sndFileTransfer: SndFileTransfer;
249
+ }
250
+ export interface CRSndFileComplete extends CR {
251
+ type: "sndFileComplete";
252
+ chatItem: AChatItem;
253
+ sndFileTransfer: SndFileTransfer;
254
+ }
255
+ export interface CRSndFileCancelled extends CR {
256
+ type: "sndFileCancelled";
257
+ chatItem: AChatItem;
258
+ sndFileTransfer: SndFileTransfer;
259
+ }
260
+ export interface CRSndFileRcvCancelled extends CR {
261
+ type: "sndFileRcvCancelled";
262
+ chatItem: AChatItem;
263
+ sndFileTransfer: SndFileTransfer;
264
+ }
265
+ export interface CRSndGroupFileCancelled extends CR {
266
+ type: "sndGroupFileCancelled";
267
+ chatItem: AChatItem;
268
+ fileTransferMeta: FileTransferMeta;
269
+ sndFileTransfers: SndFileTransfer[];
270
+ }
271
+ export interface CRSndFileSubError extends CR {
272
+ type: "sndFileSubError";
273
+ sndFileTransfer: SndFileTransfer;
274
+ chatError: ChatError;
275
+ }
276
+ export interface CRRcvFileSubError extends CR {
277
+ type: "rcvFileSubError";
278
+ rcvFileTransfer: RcvFileTransfer;
279
+ chatError: ChatError;
280
+ }
158
281
  export interface CRPendingSubSummary extends CR {
159
282
  type: "pendingSubSummary";
160
283
  pendingSubStatus: PendingSubStatus[];
161
284
  }
285
+ export interface CRGroupCreated extends CR {
286
+ type: "groupCreated";
287
+ groupInfo: GroupInfo;
288
+ }
289
+ export interface CRGroupMembers extends CR {
290
+ type: "groupMembers";
291
+ group: Group;
292
+ }
293
+ export interface CRUserAcceptedGroupSent extends CR {
294
+ type: "userAcceptedGroupSent";
295
+ groupInfo: GroupInfo;
296
+ hostContact?: Contact;
297
+ }
298
+ export interface CRUserDeletedMember extends CR {
299
+ type: "userDeletedMember";
300
+ groupInfo: GroupInfo;
301
+ member: GroupMember;
302
+ }
303
+ export interface CRSentGroupInvitation extends CR {
304
+ type: "sentGroupInvitation";
305
+ groupInfo: GroupInfo;
306
+ contact: Contact;
307
+ member: GroupMember;
308
+ }
309
+ export interface CRLeftMemberUser extends CR {
310
+ type: "leftMemberUser";
311
+ groupInfo: GroupInfo;
312
+ }
313
+ export interface CRGroupDeletedUser extends CR {
314
+ type: "groupDeletedUser";
315
+ groupInfo: GroupInfo;
316
+ }
317
+ export interface CRGroupInvitation extends CR {
318
+ type: "groupInvitation";
319
+ groupInfo: GroupInfo;
320
+ }
321
+ export interface CRReceivedGroupInvitation extends CR {
322
+ type: "receivedGroupInvitation";
323
+ groupInfo: GroupInfo;
324
+ contact: Contact;
325
+ memberRole: GroupMemberRole;
326
+ }
327
+ export interface CRUserJoinedGroup extends CR {
328
+ type: "userJoinedGroup";
329
+ groupInfo: GroupInfo;
330
+ hostMember: GroupMember;
331
+ }
332
+ export interface CRJoinedGroupMember extends CR {
333
+ type: "joinedGroupMember";
334
+ groupInfo: GroupInfo;
335
+ member: GroupMember;
336
+ }
337
+ export interface CRJoinedGroupMemberConnecting extends CR {
338
+ type: "joinedGroupMemberConnecting";
339
+ groupInfo: GroupInfo;
340
+ hostMember: GroupMember;
341
+ member: GroupMember;
342
+ }
343
+ export interface CRConnectedToGroupMember extends CR {
344
+ type: "connectedToGroupMember";
345
+ groupInfo: GroupInfo;
346
+ member: GroupMember;
347
+ }
348
+ export interface CRDeletedMember extends CR {
349
+ type: "deletedMember";
350
+ groupInfo: GroupInfo;
351
+ byMember: GroupMember;
352
+ deletedMember: GroupMember;
353
+ }
354
+ export interface CRDeletedMemberUser extends CR {
355
+ type: "deletedMemberUser";
356
+ groupInfo: GroupInfo;
357
+ member: GroupMember;
358
+ }
359
+ export interface CRLeftMember extends CR {
360
+ type: "leftMember";
361
+ groupInfo: GroupInfo;
362
+ member: GroupMember;
363
+ }
364
+ export interface CRGroupRemoved extends CR {
365
+ type: "groupRemoved";
366
+ groupInfo: GroupInfo;
367
+ }
368
+ export interface CRGroupDeleted extends CR {
369
+ type: "groupDeleted";
370
+ groupInfo: GroupInfo;
371
+ member: GroupMember;
372
+ }
373
+ export interface CRGroupUpdated extends CR {
374
+ type: "groupUpdated";
375
+ fromGroup: GroupInfo;
376
+ toGroup: GroupInfo;
377
+ member_?: GroupMember;
378
+ }
162
379
  export interface CRUserContactLinkSubscribed extends CR {
163
380
  type: "userContactLinkSubscribed";
164
381
  }
@@ -166,6 +383,14 @@ export interface CRUserContactLinkSubError extends CR {
166
383
  type: "userContactLinkSubError";
167
384
  chatError: ChatError;
168
385
  }
386
+ export interface CRNewContactConnection extends CR {
387
+ type: "newContactConnection";
388
+ connection: PendingContactConnection;
389
+ }
390
+ export interface CRContactConnectionDeleted extends CR {
391
+ type: "contactConnectionDeleted";
392
+ connection: PendingContactConnection;
393
+ }
169
394
  export interface CRMessageError extends CR {
170
395
  type: "messageError";
171
396
  severity: string;
@@ -220,6 +445,14 @@ export interface Contact {
220
445
  viaGroup?: number;
221
446
  createdAt: Date;
222
447
  }
448
+ export interface ContactRef {
449
+ contactId: number;
450
+ localDisplayName: string;
451
+ }
452
+ export interface Group {
453
+ groupInfo: GroupInfo;
454
+ members: GroupMember[];
455
+ }
223
456
  export interface GroupInfo {
224
457
  groupId: number;
225
458
  localDisplayName: string;
@@ -235,6 +468,7 @@ export interface GroupProfile {
235
468
  export interface GroupMember {
236
469
  groupMemberId: number;
237
470
  memberId: string;
471
+ memberRole: GroupMemberRole;
238
472
  localDisplayName: string;
239
473
  memberProfile: Profile;
240
474
  memberContactId?: number;
@@ -318,6 +552,36 @@ interface CIRcvFileInvitation extends ICIContent {
318
552
  }
319
553
  export declare function ciContentText(content: CIContent): string | undefined;
320
554
  interface RcvFileTransfer {
555
+ fileId: number;
556
+ senderDisplayName: string;
557
+ chunkSize: number;
558
+ cancelled: boolean;
559
+ grpMemberId?: number;
560
+ }
561
+ interface SndFileTransfer {
562
+ fileId: number;
563
+ fileName: string;
564
+ filePath: string;
565
+ fileSize: number;
566
+ chunkSize: number;
567
+ recipientDisplayName: string;
568
+ connId: number;
569
+ }
570
+ interface FileTransferMeta {
571
+ fileId: number;
572
+ fileName: string;
573
+ filePath: string;
574
+ fileSize: number;
575
+ chunkSize: number;
576
+ cancelled: boolean;
577
+ }
578
+ interface UserContactLink {
579
+ connReqContact: string;
580
+ autoAccept?: AutoAccept;
581
+ }
582
+ interface AutoAccept {
583
+ acceptIncognito: boolean;
584
+ autoReply?: MsgContent;
321
585
  }
322
586
  export interface ChatStats {
323
587
  unreadCount: number;
@@ -382,6 +646,16 @@ interface ContactSubStatus {
382
646
  }
383
647
  interface PendingSubStatus {
384
648
  }
649
+ export interface ConnectionStats {
650
+ rcvServers?: string[];
651
+ sndServers?: string[];
652
+ }
653
+ interface PendingContactConnection {
654
+ }
655
+ interface MemberSubStatus {
656
+ member: GroupMember;
657
+ memberError?: ChatError;
658
+ }
385
659
  interface AgentErrorType {
386
660
  type: string;
387
661
  [x: string]: any;
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":";;;AA6UA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,iDAAiC,CAAA;AACnC,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAwJD,SAAgB,aAAa,CAAC,OAAkB;IAC9C,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,eAAe;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA;QAChC,KAAK,eAAe;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA;QAChC;YACE,OAAO,SAAS,CAAA;KACnB;AACH,CAAC;AATD,sCASC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":";;;AAksBA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,iDAAiC,CAAA;AACnC,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAkKD,SAAgB,aAAa,CAAC,OAAkB;IAC9C,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,eAAe;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA;QAChC,KAAK,eAAe;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA;QAChC;YACE,OAAO,SAAS,CAAA;KACnB;AACH,CAAC;AATD,sCASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simplex-chat",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "SimpleX Chat client",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",