simplex-chat 7.1.0-beta.4 → 7.1.0-beta.4.2

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
@@ -24,13 +24,13 @@ Simple bot that replies with squares of numbers you send to it:
24
24
  const {bot} = await import("simplex-chat")
25
25
  // if you are running from this GitHub repo:
26
26
  // const {bot} = await import("../dist/index.js")
27
- const [chat, _user, _address] = await bot.run({
27
+ await bot.run({
28
28
  profile: {displayName: "Squaring bot example", fullName: ""},
29
29
  dbOpts: {type: "sqlite", filePrefix: "./squaring_bot"},
30
30
  options: {
31
31
  addressSettings: {welcomeMessage: "Send a number, I will square it.",
32
32
  },
33
- onMessage: async (ci, content) => {
33
+ onMessage: async (ci, content, chat) => {
34
34
  const n = +content.text
35
35
  const reply = typeof n === "number" && !isNaN(n)
36
36
  ? `${n} * ${n} = ${n * n}`
@@ -62,6 +62,8 @@ There is an example with more options in [./examples/squaring-bot.ts](./examples
62
62
 
63
63
  You can run it with: `npx ts-node ./examples/squaring-bot.ts`
64
64
 
65
+ A larger example, with a business address and commands as keys: [SimpleX Calculator](../../apps/simplex-calculator-bot/).
66
+
65
67
  ## PostgreSQL backend
66
68
 
67
69
  By default, the package uses SQLite. To use PostgreSQL instead:
package/dist/api.d.ts CHANGED
@@ -37,10 +37,31 @@ export interface BotAddressSettings {
37
37
  export declare const defaultBotAddressSettings: BotAddressSettings;
38
38
  export type EventSubscriberFunc<K extends CEvt.Tag> = (event: ChatEvent & {
39
39
  type: K;
40
- }) => void | Promise<void>;
40
+ }, chat: ChatApi) => void | Promise<void>;
41
41
  export type EventSubscribers = {
42
42
  [K in CEvt.Tag]?: EventSubscriberFunc<K>;
43
43
  };
44
+ /**
45
+ * Database configuration. The native library is built against exactly one
46
+ * backend (see `simplex_backend` / `SIMPLEX_BACKEND` at install time); this
47
+ * type makes the caller state which one they are targeting so field names
48
+ * can't lie about their meaning.
49
+ */
50
+ export type DbConfig = {
51
+ /** SQLite backend (default). */
52
+ type: "sqlite";
53
+ /** File prefix — two schema files are named `<prefix>_chat.db` and `<prefix>_agent.db`. */
54
+ filePrefix: string;
55
+ /** Optional SQLCipher encryption key. Empty/omitted = unencrypted. */
56
+ encryptionKey?: string;
57
+ } | {
58
+ /** PostgreSQL backend (Linux x86_64 only, libpq5 required). */
59
+ type: "postgres";
60
+ /** Schema prefix used to namespace tables. Defaults to `"simplex_v1"` when omitted. */
61
+ schemaPrefix?: string;
62
+ /** PostgreSQL connection string (e.g. `postgres://user:pass@host/db`). */
63
+ connectionString: string;
64
+ };
44
65
  /**
45
66
  * Main API class for interacting with the chat core library.
46
67
  */
@@ -53,26 +74,28 @@ export declare class ChatApi {
53
74
  private constructor();
54
75
  /**
55
76
  * Initializes the ChatApi.
56
- * @param {string} dbFilePrefix - File prefix for the database files.
57
- * @param {string} [dbKey=""] - Database encryption key.
77
+ * @param {DbConfig} db - Database configuration (sqlite or postgres).
58
78
  * @param {core.MigrationConfirmation} [confirm=core.MigrationConfirmation.YesUp] - Migration confirmation mode.
79
+ * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted.
59
80
  */
60
- static init(dbFilePrefix: string, dbKey?: string, confirm?: core.MigrationConfirmation): Promise<ChatApi>;
81
+ static init(db: DbConfig, confirm?: core.MigrationConfirmation, queueSize?: number): Promise<ChatApi>;
61
82
  /**
62
83
  * Start chat controller. Must be called with the existing user profile.
63
84
  */
64
85
  startChat(): Promise<void>;
65
86
  /**
66
87
  * Stop chat controller.
67
- * Must be called before closing the database.
88
+ * `close` calls it before closing the database.
68
89
  * Usually doesn't need to be called in chat bots.
69
90
  */
70
91
  stopChat(): Promise<void>;
71
92
  /**
72
- * Close chat database.
93
+ * Stop chat controller and close chat database.
94
+ * The database is not closed if stopping fails.
73
95
  * Usually doesn't need to be called in chat bots.
74
96
  */
75
97
  close(): Promise<void>;
98
+ private stopEventsLoop;
76
99
  private runEventsLoop;
77
100
  /**
78
101
  * Subscribe multiple event handlers at once.
@@ -205,7 +228,7 @@ export declare class ChatApi {
205
228
  * Add/remove message reaction.
206
229
  * Network usage: background.
207
230
  */
208
- apiChatItemReaction(chatType: T.ChatType, chatId: number, chatItemId: number, add: boolean, reaction: T.MsgReaction): Promise<T.ChatItemDeletion[]>;
231
+ apiChatItemReaction(chatType: T.ChatType, chatId: number, chatItemId: number, add: boolean, reaction: T.MsgReaction): Promise<T.ACIReaction>;
209
232
  /**
210
233
  * Receive file.
211
234
  * Network usage: no.
@@ -301,7 +324,7 @@ export declare class ChatApi {
301
324
  * Connect via prepared SimpleX link. The link can be 1-time invitation link, contact address or group link
302
325
  * Network usage: interactive.
303
326
  */
304
- apiConnect(userId: number, incognito: boolean, preparedLink?: T.CreatedConnLink): Promise<ConnReqType>;
327
+ apiConnect(userId: number, incognito: boolean, preparedLink: T.CreatedConnLink): Promise<ConnReqType>;
305
328
  /**
306
329
  * Connect via SimpleX link as string in the active user profile.
307
330
  * Network usage: interactive.
@@ -328,11 +351,40 @@ export declare class ChatApi {
328
351
  * Network usage: no.
329
352
  */
330
353
  apiListGroups(userId: number, contactId?: number, search?: string): Promise<T.GroupInfo[]>;
354
+ /**
355
+ * Get chat previews (paginated).
356
+ * Network usage: no.
357
+ *
358
+ * Prefer this over apiListContacts / apiListGroups for any scan: those
359
+ * methods load every record into memory in a single response and will fail
360
+ * on large databases.
361
+ */
362
+ apiGetChats(userId: number, pagination: T.PaginationByTime, query?: T.ChatListQuery, pendingConnections?: boolean): Promise<T.AChat[]>;
331
363
  /**
332
364
  * Delete chat.
333
365
  * Network usage: background.
334
366
  */
335
367
  apiDeleteChat(chatType: T.ChatType, chatId: number, deleteMode?: T.ChatDeleteMode): Promise<void>;
368
+ /**
369
+ * Set group custom data.
370
+ * Network usage: no.
371
+ */
372
+ apiSetGroupCustomData(groupId: number, customData?: object): Promise<void>;
373
+ /**
374
+ * Set contact custom data.
375
+ * Network usage: no.
376
+ */
377
+ apiSetContactCustomData(contactId: number, customData?: object): Promise<void>;
378
+ /**
379
+ * Set auto-accept member contacts.
380
+ * Network usage: no.
381
+ */
382
+ apiSetAutoAcceptMemberContacts(userId: number, onOff: boolean): Promise<void>;
383
+ /**
384
+ * Get chat items.
385
+ * Network usage: no.
386
+ */
387
+ apiGetChat(chatType: T.ChatType, chatId: number, count: number): Promise<any>;
336
388
  /**
337
389
  * Get active user profile
338
390
  * Network usage: no.
@@ -368,4 +420,16 @@ export declare class ChatApi {
368
420
  * Network usage: background.
369
421
  */
370
422
  apiSetContactPrefs(contactId: number, preferences: T.Preferences): Promise<void>;
423
+ /**
424
+ * Create a direct message contact with a group member.
425
+ * Returns the created contact.
426
+ * Network usage: interactive.
427
+ */
428
+ apiCreateMemberContact(groupId: number, groupMemberId: number): Promise<T.Contact>;
429
+ /**
430
+ * Send a direct message invitation to a group member contact.
431
+ * The contact must have been created with {@link apiCreateMemberContact}.
432
+ * Network usage: interactive.
433
+ */
434
+ apiSendMemberContactInvitation(contactId: number, message?: T.MsgContent | string): Promise<T.Contact>;
371
435
  }
package/dist/api.js CHANGED
@@ -26,6 +26,17 @@ exports.defaultBotAddressSettings = {
26
26
  welcomeMessage: undefined,
27
27
  businessAddress: false
28
28
  };
29
+ function dbConfigToMigrateArgs(db) {
30
+ var _a, _b;
31
+ switch (db.type) {
32
+ case "sqlite":
33
+ return [db.filePrefix, (_a = db.encryptionKey) !== null && _a !== void 0 ? _a : ""];
34
+ case "postgres":
35
+ return [(_b = db.schemaPrefix) !== null && _b !== void 0 ? _b : "", db.connectionString];
36
+ default:
37
+ throw new Error(`Invalid DbConfig: ${JSON.stringify(db)}`);
38
+ }
39
+ }
29
40
  /**
30
41
  * Main API class for interacting with the chat core library.
31
42
  */
@@ -39,50 +50,64 @@ class ChatApi {
39
50
  }
40
51
  /**
41
52
  * Initializes the ChatApi.
42
- * @param {string} dbFilePrefix - File prefix for the database files.
43
- * @param {string} [dbKey=""] - Database encryption key.
53
+ * @param {DbConfig} db - Database configuration (sqlite or postgres).
44
54
  * @param {core.MigrationConfirmation} [confirm=core.MigrationConfirmation.YesUp] - Migration confirmation mode.
55
+ * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted.
45
56
  */
46
- static async init(dbFilePrefix, dbKey = "", confirm = core.MigrationConfirmation.YesUp) {
47
- const ctrl = await core.chatMigrateInit(dbFilePrefix, dbKey, confirm);
57
+ static async init(db, confirm = core.MigrationConfirmation.YesUp, queueSize) {
58
+ const [path, key] = dbConfigToMigrateArgs(db);
59
+ const ctrl = await core.chatMigrateInit(path, key, confirm, queueSize);
48
60
  return new ChatApi(ctrl);
49
61
  }
50
62
  /**
51
63
  * Start chat controller. Must be called with the existing user profile.
52
64
  */
53
65
  async startChat() {
66
+ if (this.eventsLoop)
67
+ throw new Error("chat already started");
68
+ const ctrl = this.ctrl;
54
69
  this.receiveEvents = true;
55
70
  this.eventsLoop = this.runEventsLoop();
56
- const r = await this.sendChatCmd(types_1.CC.StartChat.cmdString({ mainApp: true, enableSndFiles: true }));
71
+ let r;
72
+ try {
73
+ r = await core.chatSendCmd(ctrl, types_1.CC.StartChat.cmdString({ mainApp: true, enableSndFiles: true, serviceRequests: false }));
74
+ }
75
+ catch (e) {
76
+ await this.stopEventsLoop();
77
+ throw e;
78
+ }
57
79
  if (r.type !== "chatStarted" && r.type !== "chatRunning") {
80
+ await this.stopEventsLoop();
58
81
  throw new ChatCommandError("error starting chat", r);
59
82
  }
60
83
  }
61
84
  /**
62
85
  * Stop chat controller.
63
- * Must be called before closing the database.
86
+ * `close` calls it before closing the database.
64
87
  * Usually doesn't need to be called in chat bots.
65
88
  */
66
89
  async stopChat() {
67
90
  const r = await this.sendChatCmd("/_stop");
68
91
  if (r.type !== "chatStopped")
69
- throw new ChatCommandError("error starting chat", r);
70
- this.receiveEvents = false;
71
- if (this.eventsLoop)
72
- await this.eventsLoop;
73
- this.eventsLoop = undefined;
92
+ throw new ChatCommandError("error stopping chat", r);
93
+ await this.stopEventsLoop();
74
94
  }
75
95
  /**
76
- * Close chat database.
96
+ * Stop chat controller and close chat database.
97
+ * The database is not closed if stopping fails.
77
98
  * Usually doesn't need to be called in chat bots.
78
99
  */
79
100
  async close() {
101
+ // a running controller keeps using the database connections that closing frees
102
+ await this.stopChat();
103
+ await core.chatCloseStore(this.ctrl);
104
+ this.ctrl_ = undefined;
105
+ }
106
+ async stopEventsLoop() {
80
107
  this.receiveEvents = false;
81
108
  if (this.eventsLoop)
82
109
  await this.eventsLoop;
83
110
  this.eventsLoop = undefined;
84
- await core.chatCloseStore(this.ctrl);
85
- this.ctrl_ = undefined;
86
111
  }
87
112
  async runEventsLoop() {
88
113
  while (this.receiveEvents) {
@@ -94,7 +119,7 @@ class ChatApi {
94
119
  if (subs) {
95
120
  for (const { subscriber, once } of [...subs]) {
96
121
  try {
97
- const p = subscriber(event);
122
+ const p = subscriber(event, this);
98
123
  if (p instanceof Promise)
99
124
  await p;
100
125
  }
@@ -107,7 +132,7 @@ class ChatApi {
107
132
  }
108
133
  for (const r of [...this.receivers]) {
109
134
  try {
110
- const p = r(event);
135
+ const p = r(event, this);
111
136
  if (p instanceof Promise)
112
137
  await p;
113
138
  }
@@ -259,7 +284,7 @@ class ChatApi {
259
284
  async sendChatCmd(cmd) {
260
285
  return await core.chatSendCmd(this.ctrl, cmd);
261
286
  }
262
- async recvChatEvent(wait = 5000000) {
287
+ async recvChatEvent(wait = 500000) {
263
288
  return await core.chatRecvMsgWait(this.ctrl, wait);
264
289
  }
265
290
  /**
@@ -311,8 +336,10 @@ class ChatApi {
311
336
  switch (r.type) {
312
337
  case "userProfileUpdated":
313
338
  return r.updateSummary;
339
+ case "userProfileNoChange":
340
+ return { updateSuccesses: 0, updateFailures: 0, changedContacts: [] };
314
341
  default:
315
- throw new ChatCommandError("error loading user address", r);
342
+ throw new ChatCommandError("error setting profile address", r);
316
343
  }
317
344
  }
318
345
  /**
@@ -346,7 +373,8 @@ class ChatApi {
346
373
  const r = await this.sendChatCmd(types_1.CC.APISendMessages.cmdString({
347
374
  sendRef,
348
375
  composedMessages: messages,
349
- liveMessage
376
+ liveMessage,
377
+ signMessages: false
350
378
  }));
351
379
  if (r.type === "newChatItems")
352
380
  return r.chatItems;
@@ -377,7 +405,7 @@ class ChatApi {
377
405
  liveMessage,
378
406
  updatedMessage: { msgContent, mentions: {} },
379
407
  }));
380
- if (r.type === "chatItemUpdated")
408
+ if (r.type === "chatItemUpdated" || r.type === "chatItemNotChanged")
381
409
  return r.chatItem.chatItem;
382
410
  throw new ChatCommandError("error updating chat item", r);
383
411
  }
@@ -407,8 +435,8 @@ class ChatApi {
407
435
  */
408
436
  async apiChatItemReaction(chatType, chatId, chatItemId, add, reaction) {
409
437
  const r = await this.sendChatCmd(types_1.CC.APIChatItemReaction.cmdString({ chatRef: { chatType, chatId }, chatItemId, add, reaction }));
410
- if (r.type === "chatItemsDeleted")
411
- return r.chatItemDeletions;
438
+ if (r.type === "chatItemReaction")
439
+ return r.reaction;
412
440
  throw new ChatCommandError("error setting item reaction", r);
413
441
  }
414
442
  /**
@@ -419,6 +447,8 @@ class ChatApi {
419
447
  const r = await this.sendChatCmd(types_1.CC.ReceiveFile.cmdString({ fileId, userApprovedRelays: true }));
420
448
  if (r.type === "rcvFileAccepted")
421
449
  return r.chatItem;
450
+ if (r.type === "rcvFileAcceptedSndCancelled")
451
+ throw new ChatCommandError("file cancelled by sender", r);
422
452
  throw new ChatCommandError("error receiving file", r);
423
453
  }
424
454
  /**
@@ -592,7 +622,7 @@ class ChatApi {
592
622
  * Network usage: interactive.
593
623
  */
594
624
  async apiConnectPlan(userId, connectionLink) {
595
- const r = await this.sendChatCmd(types_1.CC.APIConnectPlan.cmdString({ userId, connectionLink }));
625
+ const r = await this.sendChatCmd(types_1.CC.APIConnectPlan.cmdString({ userId, connectTarget: connectionLink, resolveMode: types_1.T.PlanResolveMode.Unknown }));
596
626
  if (r.type === "connectionPlan")
597
627
  return [r.connectionPlan, r.connLink];
598
628
  throw new ChatCommandError("error getting connect plan", r);
@@ -610,7 +640,7 @@ class ChatApi {
610
640
  * Network usage: interactive.
611
641
  */
612
642
  async apiConnectActiveUser(connLink) {
613
- const r = await this.sendChatCmd(types_1.CC.Connect.cmdString({ incognito: false, connLink_: connLink }));
643
+ const r = await this.sendChatCmd(types_1.CC.Connect.cmdString({ incognito: false, connTarget_: connLink }));
614
644
  return this.handleConnectResult(r);
615
645
  }
616
646
  handleConnectResult(r) {
@@ -640,7 +670,7 @@ class ChatApi {
640
670
  * Network usage: no.
641
671
  */
642
672
  async apiRejectContactRequest(contactReqId) {
643
- const r = await this.sendChatCmd(types_1.CC.APIRejectContact.cmdString({ contactReqId }));
673
+ const r = await this.sendChatCmd(types_1.CC.APIRejectContact.cmdString({ contactReqId, notify: false }));
644
674
  if (r.type === "contactRequestRejected")
645
675
  return;
646
676
  throw new ChatCommandError("error rejecting contact request", r);
@@ -665,6 +695,20 @@ class ChatApi {
665
695
  return r.groups;
666
696
  throw new ChatCommandError("error listing groups", r);
667
697
  }
698
+ /**
699
+ * Get chat previews (paginated).
700
+ * Network usage: no.
701
+ *
702
+ * Prefer this over apiListContacts / apiListGroups for any scan: those
703
+ * methods load every record into memory in a single response and will fail
704
+ * on large databases.
705
+ */
706
+ async apiGetChats(userId, pagination, query = { type: "filters", favorite: false, unread: false }, pendingConnections = false) {
707
+ const r = await this.sendChatCmd(types_1.CC.APIGetChats.cmdString({ userId, pendingConnections, pagination, query }));
708
+ if (r.type === "apiChats")
709
+ return r.chats;
710
+ throw new ChatCommandError("error getting chats", r);
711
+ }
668
712
  /**
669
713
  * Delete chat.
670
714
  * Network usage: background.
@@ -683,6 +727,47 @@ class ChatApi {
683
727
  }
684
728
  throw new ChatCommandError("error deleting chat", r);
685
729
  }
730
+ /**
731
+ * Set group custom data.
732
+ * Network usage: no.
733
+ */
734
+ async apiSetGroupCustomData(groupId, customData) {
735
+ const r = await this.sendChatCmd(types_1.CC.APISetGroupCustomData.cmdString({ groupId, customData }));
736
+ if (r.type === "cmdOk")
737
+ return;
738
+ throw new ChatCommandError("error setting group custom data", r);
739
+ }
740
+ /**
741
+ * Set contact custom data.
742
+ * Network usage: no.
743
+ */
744
+ async apiSetContactCustomData(contactId, customData) {
745
+ const r = await this.sendChatCmd(types_1.CC.APISetContactCustomData.cmdString({ contactId, customData }));
746
+ if (r.type === "cmdOk")
747
+ return;
748
+ throw new ChatCommandError("error setting contact custom data", r);
749
+ }
750
+ /**
751
+ * Set auto-accept member contacts.
752
+ * Network usage: no.
753
+ */
754
+ async apiSetAutoAcceptMemberContacts(userId, onOff) {
755
+ const r = await this.sendChatCmd(types_1.CC.APISetUserAutoAcceptMemberContacts.cmdString({ userId, onOff }));
756
+ if (r.type === "cmdOk")
757
+ return;
758
+ throw new ChatCommandError("error setting auto-accept member contacts", r);
759
+ }
760
+ /**
761
+ * Get chat items.
762
+ * Network usage: no.
763
+ */
764
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
765
+ async apiGetChat(chatType, chatId, count) {
766
+ const r = await this.sendChatCmd(`/_get chat ${types_1.T.ChatType.cmdString(chatType)}${chatId} count=${count}`);
767
+ if (r.type === "apiChat")
768
+ return r.chat;
769
+ throw new ChatCommandError("error getting chat", r);
770
+ }
686
771
  /**
687
772
  * Get active user profile
688
773
  * Network usage: no.
@@ -710,7 +795,7 @@ class ChatApi {
710
795
  * Network usage: no.
711
796
  */
712
797
  async apiCreateActiveUser(profile) {
713
- const r = await this.sendChatCmd(types_1.CC.CreateActiveUser.cmdString({ newUser: { profile, pastTimestamp: false } }));
798
+ const r = await this.sendChatCmd(types_1.CC.CreateActiveUser.cmdString({ newUser: { profile, pastTimestamp: false, userChatRelay: false, clientService: false } }));
714
799
  if (r.type === "activeUser")
715
800
  return r.user;
716
801
  throw new ChatCommandError("unexpected response", r);
@@ -769,6 +854,37 @@ class ChatApi {
769
854
  if (r.type !== "contactPrefsUpdated")
770
855
  throw new ChatCommandError("error setting contact prefs", r);
771
856
  }
857
+ /**
858
+ * Create a direct message contact with a group member.
859
+ * Returns the created contact.
860
+ * Network usage: interactive.
861
+ */
862
+ async apiCreateMemberContact(groupId, groupMemberId) {
863
+ const r = await this.sendChatCmd(`/_create member contact #${groupId} ${groupMemberId}`);
864
+ if (r.type === "newMemberContact")
865
+ return r.contact;
866
+ throw new ChatCommandError("error creating member contact", r);
867
+ }
868
+ /**
869
+ * Send a direct message invitation to a group member contact.
870
+ * The contact must have been created with {@link apiCreateMemberContact}.
871
+ * Network usage: interactive.
872
+ */
873
+ async apiSendMemberContactInvitation(contactId, message) {
874
+ let cmd = `/_invite member contact @${contactId}`;
875
+ if (message !== undefined) {
876
+ if (typeof message === "string") {
877
+ cmd += ` text ${message}`;
878
+ }
879
+ else {
880
+ cmd += ` json ${JSON.stringify(message)}`;
881
+ }
882
+ }
883
+ const r = await this.sendChatCmd(cmd);
884
+ if (r.type === "newMemberContactSentInv")
885
+ return r.contact;
886
+ throw new ChatCommandError("error sending member contact invitation", r);
887
+ }
772
888
  }
773
889
  exports.ChatApi = ChatApi;
774
890
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/bot.d.ts CHANGED
@@ -2,11 +2,10 @@ import { T } from "@simplex-chat/types";
2
2
  import * as api from "./api";
3
3
  import * as core from "./core";
4
4
  import * as util from "./util";
5
- export interface BotDbOpts {
6
- dbFilePrefix: string;
7
- dbKey?: string;
5
+ export type BotDbOpts = api.DbConfig & {
8
6
  confirmMigrations?: core.MigrationConfirmation;
9
- }
7
+ queueSize?: number;
8
+ };
10
9
  export interface BotOptions {
11
10
  createAddress?: boolean;
12
11
  updateAddress?: boolean;
@@ -22,10 +21,13 @@ export interface BotConfig {
22
21
  profile: T.Profile;
23
22
  dbOpts: BotDbOpts;
24
23
  options: BotOptions;
25
- onMessage?: (chatItem: T.AChatItem, content: T.MsgContent) => void | Promise<void>;
24
+ onMessage?: (chatItem: T.AChatItem, content: T.MsgContent, chat: api.ChatApi) => void | Promise<void>;
26
25
  onCommands?: {
27
- [K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand) => void | Promise<void>);
26
+ [K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand, chat: api.ChatApi) => void | Promise<void>);
28
27
  };
29
28
  events?: api.EventSubscribers;
30
29
  }
31
30
  export declare function run({ profile, dbOpts, options, onMessage, onCommands, events }: BotConfig): Promise<[api.ChatApi, T.User, T.UserContactLink | undefined]>;
31
+ export declare function subscribeChatItems(bot: api.ChatApi, onMessage: ((chatItem: T.AChatItem, content: T.MsgContent, chat: api.ChatApi) => void | Promise<void>) | undefined, commands: {
32
+ [K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand, chat: api.ChatApi) => void | Promise<void>);
33
+ }): void;
package/dist/bot.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.run = run;
4
+ exports.subscribeChatItems = subscribeChatItems;
4
5
  const types_1 = require("@simplex-chat/types");
5
6
  const api = require("./api");
6
7
  const core = require("./core");
@@ -18,12 +19,10 @@ const defaultOpts = {
18
19
  logNetwork: false
19
20
  };
20
21
  async function run({ profile, dbOpts, options = defaultOpts, onMessage, onCommands = {}, events = {} }) {
21
- const bot = await api.ChatApi.init(dbOpts.dbFilePrefix, dbOpts.dbKey || "", dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp);
22
+ const bot = await api.ChatApi.init(dbOpts, dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp, dbOpts.queueSize);
22
23
  const opts = fullOptions(options);
23
- if (onMessage)
24
- subscribeMessages(bot, onMessage);
25
- if (Object.keys(onCommands).length > 0)
26
- subscribeCommands(bot, onCommands);
24
+ if (onMessage || Object.keys(onCommands).length > 0)
25
+ subscribeChatItems(bot, onMessage, onCommands);
27
26
  if (Object.keys(events).length > 0)
28
27
  bot.on(events);
29
28
  subscribeLogEvents(bot, opts);
@@ -81,38 +80,22 @@ function mkBotProfile(profile, opts) {
81
80
  }
82
81
  return profile;
83
82
  }
84
- function subscribeMessages(bot, onMessage) {
83
+ function subscribeChatItems(bot, onMessage, commands) {
85
84
  bot.on("newChatItems", async ({ chatItems }) => {
86
85
  for (const ci of chatItems) {
87
- if (ci.chatItem.content.type === "rcvMsgContent") {
88
- try {
89
- const p = onMessage(ci, ci.chatItem.content.msgContent);
90
- if (p instanceof Promise)
91
- await p;
92
- }
93
- catch (e) {
94
- console.log("message processing error", e);
95
- }
96
- }
97
- }
98
- });
99
- }
100
- function subscribeCommands(bot, commands) {
101
- bot.on("newChatItems", async (evt) => {
102
- for (const ci of evt.chatItems) {
86
+ const content = ci.chatItem.content;
87
+ if (content.type !== "rcvMsgContent")
88
+ continue;
103
89
  const cmd = util.ciBotCommand(ci.chatItem);
104
- if (cmd) {
105
- const cmdFunc = commands[cmd.keyword] || commands[""];
106
- if (cmdFunc) {
107
- try {
108
- const p = cmdFunc(ci, cmd);
109
- if (p instanceof Promise)
110
- await p;
111
- }
112
- catch (e) {
113
- console.log(`${cmd} command processing error`, e);
114
- }
115
- }
90
+ const cmdFunc = cmd && (commands[cmd.keyword] || commands[""]);
91
+ try {
92
+ if (cmd && cmdFunc)
93
+ await cmdFunc(ci, cmd, bot);
94
+ else if (onMessage)
95
+ await onMessage(ci, content.msgContent, bot);
96
+ }
97
+ catch (e) {
98
+ console.log(cmd && cmdFunc ? `${cmd.keyword} command processing error` : "message processing error", e);
116
99
  }
117
100
  }
118
101
  });
package/dist/bot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { ChatEvent, ChatResponse, T } from "@simplex-chat/types";
2
2
  /**
3
3
  * Initialize chat controller
4
+ * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted.
4
5
  */
5
- export declare function chatMigrateInit(dbPath: string, dbKey: string, confirm: MigrationConfirmation): Promise<bigint>;
6
+ export declare function chatMigrateInit(dbPath: string, dbKey: string, confirm: MigrationConfirmation, queueSize?: number): Promise<bigint>;
6
7
  /**
7
8
  * Close chat store
8
9
  */
@@ -18,11 +19,11 @@ export declare function chatRecvMsgWait(ctrl: bigint, wait: number): Promise<Cha
18
19
  /**
19
20
  * Write buffer to encrypted file
20
21
  */
21
- export declare function chatWriteFile(ctrl: bigint, path: string, buffer: ArrayBuffer): Promise<CryptoArgs>;
22
+ export declare function chatWriteFile(ctrl: bigint, path: string, buffer: ArrayBuffer | Uint8Array): Promise<CryptoArgs>;
22
23
  /**
23
24
  * Read buffer from encrypted file
24
25
  */
25
- export declare function chatReadFile(path: string, { fileKey, fileNonce }: CryptoArgs): Promise<ArrayBuffer>;
26
+ export declare function chatReadFile(path: string, { fileKey, fileNonce }: CryptoArgs): Promise<Buffer>;
26
27
  /**
27
28
  * Encrypt file
28
29
  */
@@ -61,15 +62,18 @@ export declare class ChatInitError extends Error {
61
62
  dbMigrationError: DBMigrationError;
62
63
  constructor(message: string, dbMigrationError: DBMigrationError);
63
64
  }
64
- export type DBMigrationError = DBMigrationError.InvalidConfirmation | DBMigrationError.ErrorNotADatabase | DBMigrationError.ErrorMigration | DBMigrationError.ErrorSQL;
65
+ export type DBMigrationError = DBMigrationError.InvalidConfirmation | DBMigrationError.InvalidQueueSize | DBMigrationError.ErrorNotADatabase | DBMigrationError.ErrorMigration | DBMigrationError.ErrorSQL;
65
66
  export declare namespace DBMigrationError {
66
- export type Tag = "invalidConfirmation" | "errorNotADatabase" | "errorMigration" | "errorSQL";
67
+ export type Tag = "invalidConfirmation" | "invalidQueueSize" | "errorNotADatabase" | "errorMigration" | "errorSQL";
67
68
  interface Interface {
68
69
  type: Tag;
69
70
  }
70
71
  export interface InvalidConfirmation extends Interface {
71
72
  type: "invalidConfirmation";
72
73
  }
74
+ export interface InvalidQueueSize extends Interface {
75
+ type: "invalidQueueSize";
76
+ }
73
77
  export interface ErrorNotADatabase extends Interface {
74
78
  type: "errorNotADatabase";
75
79
  dbFile: string;
@@ -94,7 +98,7 @@ export declare namespace MigrationError {
94
98
  }
95
99
  export interface MEUpgrade extends Interface {
96
100
  type: "upgrade";
97
- upMigrations: UpMigration;
101
+ upMigrations: UpMigration[];
98
102
  }
99
103
  export interface MEDowngrade extends Interface {
100
104
  type: "downgrade";
@@ -118,7 +122,7 @@ export declare namespace MTRError {
118
122
  }
119
123
  export interface MTRENoDown extends Interface {
120
124
  type: "noDown";
121
- upMigrations: UpMigration;
125
+ dbMigrations: string[];
122
126
  }
123
127
  export interface MTREDifferent extends Interface {
124
128
  type: "different";
package/dist/core.js CHANGED
@@ -12,9 +12,12 @@ exports.chatDecryptFile = chatDecryptFile;
12
12
  const simplex = require("./simplex");
13
13
  /**
14
14
  * Initialize chat controller
15
+ * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted.
15
16
  */
16
- async function chatMigrateInit(dbPath, dbKey, confirm) {
17
- const [ctrl, res] = await simplex.chat_migrate_init(dbPath, dbKey, confirm);
17
+ async function chatMigrateInit(dbPath, dbKey, confirm, queueSize) {
18
+ const [ctrl, res] = queueSize === undefined
19
+ ? await simplex.chat_migrate_init(dbPath, dbKey, confirm)
20
+ : await simplex.chat_migrate_init_queue(dbPath, dbKey, confirm, queueSize);
18
21
  const json = JSON.parse(res);
19
22
  if (json.type === 'ok')
20
23
  return ctrl;
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/simplex.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  // These functions are defined in CPP add-on ../cpp/simplex.cc
2
2
 
3
3
  export function chat_migrate_init(dbPath: string, dbKey: string, confirm: string): Promise<[bigint, string]>
4
+ export function chat_migrate_init_queue(dbPath: string, dbKey: string, confirm: string, queueSize: number): Promise<[bigint, string]>
4
5
  export function chat_close_store(ctrl: bigint): Promise<string>
5
6
  export function chat_send_cmd(ctrl: bigint, cmd: string): Promise<string>
6
7
  export function chat_recv_msg_wait(ctrl: bigint, wait: number): Promise<string>
7
- export function chat_write_file(ctrl: bigint, path: string, buffer: ArrayBuffer): Promise<string>
8
- export function chat_read_file(path: string, key: string, nonce: string): Promise<ArrayBuffer>
8
+ export function chat_write_file(ctrl: bigint, path: string, buffer: ArrayBuffer | Uint8Array): Promise<string>
9
+ export function chat_read_file(path: string, key: string, nonce: string): Promise<Buffer>
9
10
  export function chat_encrypt_file(ctrl: bigint, fromPath: string, toPath: string): Promise<string>
10
11
  export function chat_decrypt_file(fromPath: string, key: string, nonce: string, toPath: string): Promise<string>
package/dist/util.js CHANGED
@@ -77,7 +77,7 @@ function ciBotCommand(chatItem) {
77
77
  var _a;
78
78
  const msg = (_a = ciContentText(chatItem)) === null || _a === void 0 ? void 0 : _a.trim();
79
79
  if (msg) {
80
- const r = msg.match(/\/([^\s]+)(.*)/);
80
+ const r = msg.match(/^\/([^\s]+)([\s\S]*)/);
81
81
  if (r && r.length >= 3) {
82
82
  return { keyword: r[1], params: r[2].trim() };
83
83
  }
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
 
7
7
  # Type Alias: EventSubscriberFunc\<K\>
8
8
 
9
- > **EventSubscriberFunc**\<`K`\> = (`event`) => `void` \| `Promise`\<`void`\>
9
+ > **EventSubscriberFunc**\<`K`\> = (`event`, `chat`) => `void` \| `Promise`\<`void`\>
10
10
 
11
11
  Defined in: [src/api.ts:50](../src/api.ts#L50)
12
12
 
@@ -22,6 +22,10 @@ Defined in: [src/api.ts:50](../src/api.ts#L50)
22
22
 
23
23
  `ChatEvent` & `object`
24
24
 
25
+ ### chat
26
+
27
+ [`ChatApi`](api.Class.ChatApi.md)
28
+
25
29
  ## Returns
26
30
 
27
31
  `void` \| `Promise`\<`void`\>
@@ -18,7 +18,7 @@ Defined in: [src/bot.ts:108](../src/bot.ts#L108)
18
18
 
19
19
  ### onMessage
20
20
 
21
- ((`chatItem`, `content`) => `void` \| `Promise`\<`void`\>) \| `undefined`
21
+ ((`chatItem`, `content`, `chat`) => `void` \| `Promise`\<`void`\>) \| `undefined`
22
22
 
23
23
  ### commands
24
24
 
@@ -34,13 +34,13 @@ Defined in: [src/bot.ts:42](../src/bot.ts#L42)
34
34
 
35
35
  #### Index Signature
36
36
 
37
- \[`key`: `string`\]: ((`chatItem`, `command`) => `void` \| `Promise`\<`void`\>) \| `undefined`
37
+ \[`key`: `string`\]: ((`chatItem`, `command`, `chat`) => `void` \| `Promise`\<`void`\>) \| `undefined`
38
38
 
39
39
  ***
40
40
 
41
41
  ### onMessage?
42
42
 
43
- > `optional` **onMessage?**: (`chatItem`, `content`) => `void` \| `Promise`\<`void`\>
43
+ > `optional` **onMessage?**: (`chatItem`, `content`, `chat`) => `void` \| `Promise`\<`void`\>
44
44
 
45
45
  Defined in: [src/bot.ts:40](../src/bot.ts#L40)
46
46
 
@@ -54,6 +54,10 @@ Defined in: [src/bot.ts:40](../src/bot.ts#L40)
54
54
 
55
55
  `MsgContent`
56
56
 
57
+ ##### chat
58
+
59
+ [`ChatApi`](api.Class.ChatApi.md)
60
+
57
61
  #### Returns
58
62
 
59
63
  `void` \| `Promise`\<`void`\>
@@ -1,12 +1,12 @@
1
1
  (async () => {
2
2
  const {bot} = await import("../dist/index.js")
3
- const [chat, _user, _address] = await bot.run({
3
+ await bot.run({
4
4
  profile: {displayName: "Squaring bot example", fullName: ""},
5
5
  dbOpts: {type: "sqlite", filePrefix: "./squaring_bot"},
6
6
  options: {
7
7
  addressSettings: {welcomeMessage: "Send a number, I will square it."},
8
8
  },
9
- onMessage: async (ci, content) => {
9
+ onMessage: async (ci, content, chat) => {
10
10
  const n = +content.text
11
11
  const reply = typeof n === "number" && !isNaN(n)
12
12
  ? `${n} * ${n} = ${n * n}`
@@ -3,7 +3,7 @@ import {bot, util} from "../dist"
3
3
 
4
4
  (async () => {
5
5
  const welcomeMessage = "Hello! I am a simple squaring bot.\n\nIf you send me a number, I will calculate its square."
6
- const [chat, _user, _address] = await bot.run({
6
+ await bot.run({
7
7
  profile: {displayName: "Squaring bot example", fullName: ""},
8
8
  dbOpts: {type: "sqlite", filePrefix: "./squaring_bot"},
9
9
  options: {
@@ -15,7 +15,7 @@ import {bot, util} from "../dist"
15
15
  logContacts: true,
16
16
  logNetwork: false
17
17
  },
18
- onMessage: async (ci, content) => {
18
+ onMessage: async (ci, content, chat) => {
19
19
  const n = +content.text
20
20
  const reply = typeof n === "number" && !isNaN(n)
21
21
  ? `${n} * ${n} = ${n * n}`
@@ -23,11 +23,11 @@ import {bot, util} from "../dist"
23
23
  await chat.apiSendTextReply(ci, reply)
24
24
  },
25
25
  onCommands: { // command handlers can be different from commands to be shown in client UI
26
- "help": async (ci: T.AChatItem, _cmd: util.BotCommand) => {
26
+ "help": async (ci: T.AChatItem, _cmd: util.BotCommand, chat) => {
27
27
  await chat.apiSendTextMessage(ci.chatInfo, welcomeMessage)
28
28
  },
29
29
  // fallback handler that will be called for all other commands
30
- "": async (ci: T.AChatItem, _cmd: util.BotCommand) => {
30
+ "": async (ci: T.AChatItem, _cmd: util.BotCommand, chat) => {
31
31
  await chat.apiSendTextReply(ci, "This command is not supported")
32
32
  }
33
33
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simplex-chat",
3
- "version": "7.1.0-beta.4",
3
+ "version": "7.1.0-beta.4.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
package/src/api.ts CHANGED
@@ -47,7 +47,7 @@ export const defaultBotAddressSettings: BotAddressSettings = {
47
47
  businessAddress: false
48
48
  }
49
49
 
50
- export type EventSubscriberFunc<K extends CEvt.Tag> = (event: ChatEvent & {type: K}) => void | Promise<void>
50
+ export type EventSubscriberFunc<K extends CEvt.Tag> = (event: ChatEvent & {type: K}, chat: ChatApi) => void | Promise<void>
51
51
 
52
52
  export type EventSubscribers = {[K in CEvt.Tag]?: EventSubscriberFunc<K>}
53
53
 
@@ -177,7 +177,7 @@ export class ChatApi {
177
177
  if (subs) {
178
178
  for (const {subscriber, once} of [...subs]) {
179
179
  try {
180
- const p = (subscriber as EventSubscriberFunc<typeof event.type>)(event)
180
+ const p = (subscriber as EventSubscriberFunc<typeof event.type>)(event, this)
181
181
  if (p instanceof Promise) await p
182
182
  } catch(e) {
183
183
  console.log(`${event.type} event processing error`, e)
@@ -187,7 +187,7 @@ export class ChatApi {
187
187
  }
188
188
  for (const r of [...this.receivers]) {
189
189
  try {
190
- const p = r(event)
190
+ const p = r(event, this)
191
191
  if (p instanceof Promise) await p
192
192
  } catch(e) {
193
193
  console.log(`${event.type} event processing error`, e)
@@ -422,7 +422,18 @@ export class ChatApi {
422
422
  const r = await this.sendChatCmd(CC.APISetAddressSettings.cmdString({userId, settings}))
423
423
  if (r.type !== "userContactLinkUpdated") {
424
424
  throw new ChatCommandError("error changing user contact address settings", r)
425
- }
425
+ }
426
+ }
427
+
428
+ async apiSetUserDomain(userId: number, simplexDomain?: string): Promise<T.User> {
429
+ const r = await this.sendChatCmd(CC.APISetUserDomain.cmdString({userId, simplexDomain}))
430
+ switch (r.type) {
431
+ case "userProfileUpdated":
432
+ case "userProfileNoChange":
433
+ return r.user
434
+ default:
435
+ throw new ChatCommandError("error setting SimpleX name", r)
436
+ }
426
437
  }
427
438
 
428
439
  /**
package/src/bot.ts CHANGED
@@ -35,17 +35,18 @@ const defaultOpts: Required<BotOptions> = {
35
35
 
36
36
  export interface BotConfig {
37
37
  profile: T.Profile,
38
+ simplexName?: string,
38
39
  dbOpts: BotDbOpts,
39
40
  options: BotOptions,
40
- onMessage?: (chatItem: T.AChatItem, content: T.MsgContent) => void | Promise<void>,
41
+ onMessage?: (chatItem: T.AChatItem, content: T.MsgContent, chat: api.ChatApi) => void | Promise<void>,
41
42
  // command handlers can be different from commands to be shown in client UI
42
- onCommands?: {[K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand) => void | Promise<void>)},
43
+ onCommands?: {[K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand, chat: api.ChatApi) => void | Promise<void>)},
43
44
  // If you use `onMessage` and to subscribe "newChatItems" event, exclude content messages from processing
44
45
  // If you use `onCommands` and to subscribe "newChatItems" event, exclude commands from processing
45
46
  events?: api.EventSubscribers
46
47
  }
47
48
 
48
- export async function run({profile, dbOpts, options = defaultOpts, onMessage, onCommands = {}, events = {}}: BotConfig): Promise<[api.ChatApi, T.User, T.UserContactLink | undefined]> {
49
+ export async function run({profile, simplexName, dbOpts, options = defaultOpts, onMessage, onCommands = {}, events = {}}: BotConfig): Promise<[api.ChatApi, T.User, T.UserContactLink | undefined]> {
49
50
  const bot = await api.ChatApi.init(dbOpts, dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp, dbOpts.queueSize)
50
51
  const opts = fullOptions(options)
51
52
  if (onMessage || Object.keys(onCommands).length > 0) subscribeChatItems(bot, onMessage, onCommands)
@@ -60,7 +61,8 @@ export async function run({profile, dbOpts, options = defaultOpts, onMessage, on
60
61
  console.log(`Bot address: ${addressLink}`)
61
62
  if (opts.useBotProfile) botProfile.contactLink = addressLink
62
63
  }
63
- await updateBotUserProfile(bot, user, botProfile, opts)
64
+ const namedUser = await updateBotSimplexName(bot, user, simplexName, opts)
65
+ await updateBotUserProfile(bot, namedUser, botProfile, opts)
64
66
  return [bot, user, address]
65
67
  }
66
68
 
@@ -107,8 +109,8 @@ function mkBotProfile(profile: T.Profile, opts: Required<BotOptions>): T.Profile
107
109
 
108
110
  export function subscribeChatItems(
109
111
  bot: api.ChatApi,
110
- onMessage: ((chatItem: T.AChatItem, content: T.MsgContent) => void | Promise<void>) | undefined,
111
- commands: {[K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand) => void | Promise<void>)}
112
+ onMessage: ((chatItem: T.AChatItem, content: T.MsgContent, chat: api.ChatApi) => void | Promise<void>) | undefined,
113
+ commands: {[K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand, chat: api.ChatApi) => void | Promise<void>)}
112
114
  ) {
113
115
  bot.on("newChatItems", async ({chatItems}) => {
114
116
  for (const ci of chatItems) {
@@ -117,8 +119,8 @@ export function subscribeChatItems(
117
119
  const cmd = util.ciBotCommand(ci.chatItem)
118
120
  const cmdFunc = cmd && (commands[cmd.keyword] || commands[""])
119
121
  try {
120
- if (cmd && cmdFunc) await cmdFunc(ci, cmd)
121
- else if (onMessage) await onMessage(ci, content.msgContent)
122
+ if (cmd && cmdFunc) await cmdFunc(ci, cmd, bot)
123
+ else if (onMessage) await onMessage(ci, content.msgContent, bot)
122
124
  } catch (e) {
123
125
  console.log(cmd && cmdFunc ? `${cmd.keyword} command processing error` : "message processing error", e)
124
126
  }
@@ -180,15 +182,32 @@ async function createOrUpdateAddress(bot: api.ChatApi, user: T.User, opts: Requi
180
182
  }
181
183
  }
182
184
 
183
- return address
185
+ return address
186
+ }
187
+
188
+ async function updateBotSimplexName(bot: api.ChatApi, user: T.User, simplexName: string | undefined, opts: Required<BotOptions>): Promise<T.User> {
189
+ const name = simplexName?.toLowerCase()
190
+ if (user.profile.contactDomain?.domain === name) return user
191
+ if (!opts.updateAddress) {
192
+ console.log("Bot SimpleX name changed")
193
+ return user
194
+ }
195
+ console.log("Bot SimpleX name changed, updating...")
196
+ try {
197
+ return await bot.apiSetUserDomain(user.userId, name)
198
+ } catch (e) {
199
+ console.log("Error updating bot SimpleX name", e)
200
+ return user
201
+ }
184
202
  }
185
203
 
186
204
  async function updateBotUserProfile(bot: api.ChatApi, user: T.User, profile: T.Profile, opts: Required<BotOptions>): Promise<void> {
187
205
  const {userId} = user
188
- if (!equal(util.fromLocalProfile(user.profile), profile)) {
206
+ const {contactDomain, ...currentProfile} = util.fromLocalProfile(user.profile)
207
+ if (!equal(currentProfile, profile)) {
189
208
  if (opts.updateProfile) {
190
209
  console.log("Bot profile changed, updating...")
191
- const summary = await bot.apiUpdateProfile(userId, profile)
210
+ const summary = await bot.apiUpdateProfile(userId, {...profile, contactDomain})
192
211
  console.log(
193
212
  summary
194
213
  ? `Bot profile updated: ${summary.updateSuccesses} updated contact(s), ${summary.updateFailures} failed contact update(s).`
package/src/util.ts CHANGED
@@ -53,8 +53,8 @@ export function botAddressSettings({addressSettings}: T.UserContactLink): BotAdd
53
53
  }
54
54
  }
55
55
 
56
- export function fromLocalProfile({displayName, fullName, shortDescr, image, contactLink, preferences, peerType}: T.LocalProfile): T.Profile {
57
- const profile = {displayName, fullName, shortDescr, image, contactLink, preferences, peerType}
56
+ export function fromLocalProfile({displayName, fullName, shortDescr, image, contactLink, preferences, peerType, contactDomain}: T.LocalProfile): T.Profile {
57
+ const profile = {displayName, fullName, shortDescr, image, contactLink, preferences, peerType, contactDomain: contactDomain && {domain: contactDomain.domain}}
58
58
  for (const key in profile) {
59
59
  if (typeof (profile as any)[key] === "undefined") delete (profile as any)[key]
60
60
  }