@imessaging/core 0.8.6 → 0.8.8
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
|
+
canSaveContact,
|
|
19
20
|
canMarkRead,
|
|
20
21
|
canReact,
|
|
21
22
|
canReceive,
|
|
@@ -40,6 +41,8 @@ export type {
|
|
|
40
41
|
export type {
|
|
41
42
|
EditableMessage,
|
|
42
43
|
EditableMessageTransport,
|
|
44
|
+
ContactCard,
|
|
45
|
+
ContactTransport,
|
|
43
46
|
DraftTransport,
|
|
44
47
|
EditedMessageTransport,
|
|
45
48
|
MessageDraft,
|
package/src/types.ts
CHANGED
|
@@ -305,6 +305,11 @@ export type IncomingMessage = {
|
|
|
305
305
|
* с другого устройства. Помечается, а не отбрасывается: иначе своя отправка выглядела бы правкой оператора.
|
|
306
306
|
*/
|
|
307
307
|
sentByTransport?: boolean;
|
|
308
|
+
/**
|
|
309
|
+
* Сообщение отправила сама учётка — есть в истории (history, messagesByIds), где свои идут вперемешку
|
|
310
|
+
* с чужими; `undefined` — канал этого не сообщает.
|
|
311
|
+
*/
|
|
312
|
+
outgoing?: boolean;
|
|
308
313
|
/**
|
|
309
314
|
* Форматирование текста в той же модели, что исходящая разметка, смещения в UTF-16;
|
|
310
315
|
* undefined = канал не сообщает форматирование, [] = сообщил, форматирования нет.
|
|
@@ -436,6 +441,25 @@ export function canFindByPhone(transport: MessageTransport): transport is PhoneL
|
|
|
436
441
|
return typeof (transport as PhoneLookupTransport).findByPhone === "function";
|
|
437
442
|
}
|
|
438
443
|
|
|
444
|
+
/** Карточка контакта в адресной книге учётки: имя и заметка о человеке, текст заметки даёт продукт. */
|
|
445
|
+
export type ContactCard = {
|
|
446
|
+
userId: string;
|
|
447
|
+
/** E.164; нужен, только если номер ещё не известен учётке. */
|
|
448
|
+
phone?: string;
|
|
449
|
+
firstName: string;
|
|
450
|
+
lastName?: string;
|
|
451
|
+
note?: string;
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
/** Сохранить или обновить контакт — тем же вызовом: есть контакт — имя и заметка перезаписываются. */
|
|
455
|
+
export interface ContactTransport extends MessageTransport {
|
|
456
|
+
saveContact(contact: ContactCard): Promise<void>;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
export function canSaveContact(transport: MessageTransport): transport is ContactTransport {
|
|
460
|
+
return typeof (transport as ContactTransport).saveContact === "function";
|
|
461
|
+
}
|
|
462
|
+
|
|
439
463
|
/** Пункт меню команд канала: `/menu` и подпись рядом с ним. */
|
|
440
464
|
export type ChannelCommand = {
|
|
441
465
|
/** Без ведущей косой черты. */
|