@imessaging/core 0.8.10 → 0.8.11
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/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/types.ts +24 -0
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -16,6 +16,7 @@ export { createPeerKey } from "./peer-key";
|
|
|
16
16
|
export {
|
|
17
17
|
canEdit,
|
|
18
18
|
canFindByPhone,
|
|
19
|
+
canGetPeerInfo,
|
|
19
20
|
canSaveContact,
|
|
20
21
|
canMarkRead,
|
|
21
22
|
canObserveOutgoingRead,
|
|
@@ -53,6 +54,8 @@ export type {
|
|
|
53
54
|
PhoneLookupOptions,
|
|
54
55
|
PhoneLookupTransport,
|
|
55
56
|
PhoneMatch,
|
|
57
|
+
PeerInfo,
|
|
58
|
+
PeerInfoTransport,
|
|
56
59
|
EditResult,
|
|
57
60
|
EmailRecipient,
|
|
58
61
|
HeadhunterRecipient,
|
package/src/types.ts
CHANGED
|
@@ -104,6 +104,8 @@ export type SendResult = {
|
|
|
104
104
|
transportId: string;
|
|
105
105
|
messageId: string;
|
|
106
106
|
recipientId: string;
|
|
107
|
+
/** Получатель — взаимный контакт учётки. Нет — канал не прислал пользователя в ответе на отправку. */
|
|
108
|
+
mutualContact?: boolean;
|
|
107
109
|
};
|
|
108
110
|
|
|
109
111
|
/**
|
|
@@ -288,6 +290,8 @@ export type IncomingMessage = {
|
|
|
288
290
|
senderUsername?: string;
|
|
289
291
|
/** Как отправитель назван в канале: «Имя Фамилия» человека или название чата. */
|
|
290
292
|
senderName?: string;
|
|
293
|
+
/** Отправитель — взаимный контакт учётки. Нет — канал не сообщает или отправитель не человек. */
|
|
294
|
+
senderMutualContact?: boolean;
|
|
291
295
|
/**
|
|
292
296
|
* Как назван САМ ЧАТ: название группы или канала, в личке — имя собеседника. По нему человек
|
|
293
297
|
* выбирает чат из списка; номер `-100…` ему ничего не говорит. Нет — канал имени не прислал.
|
|
@@ -446,6 +450,26 @@ export function canFindByPhone(transport: MessageTransport): transport is PhoneL
|
|
|
446
450
|
return typeof (transport as PhoneLookupTransport).findByPhone === "function";
|
|
447
451
|
}
|
|
448
452
|
|
|
453
|
+
/** Что учётка знает о собеседнике: есть ли он в её контактах и взаимно ли. */
|
|
454
|
+
export type PeerInfo = {
|
|
455
|
+
id: string;
|
|
456
|
+
username?: string;
|
|
457
|
+
/** Собеседник в адресной книге учётки. */
|
|
458
|
+
contact: boolean;
|
|
459
|
+
/** И учётка в его книге: на взаимных не действует спам-лимит PEER_FLOOD. */
|
|
460
|
+
mutualContact: boolean;
|
|
461
|
+
};
|
|
462
|
+
|
|
463
|
+
/** Сведения о собеседнике до отправки. Без поиска по телефону: только кэш пиров и @username. */
|
|
464
|
+
export interface PeerInfoTransport extends MessageTransport {
|
|
465
|
+
/** `null` — пир не известен и разрешить его не по чему, либо это не пользователь. */
|
|
466
|
+
peerInfo(recipient: MessageRecipient): Promise<PeerInfo | null>;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
export function canGetPeerInfo(transport: MessageTransport): transport is PeerInfoTransport {
|
|
470
|
+
return typeof (transport as PeerInfoTransport).peerInfo === "function";
|
|
471
|
+
}
|
|
472
|
+
|
|
449
473
|
/** Карточка контакта в адресной книге учётки: имя и заметка о человеке, текст заметки даёт продукт. */
|
|
450
474
|
export type ContactCard = {
|
|
451
475
|
userId: string;
|