@imessaging/core 0.8.5 → 0.8.7
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 +4 -0
- package/src/types.ts +31 -1
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,10 +41,13 @@ 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,
|
|
46
49
|
OutgoingObserverTransport,
|
|
50
|
+
PhoneLookupOptions,
|
|
47
51
|
PhoneLookupTransport,
|
|
48
52
|
PhoneMatch,
|
|
49
53
|
EditResult,
|
package/src/types.ts
CHANGED
|
@@ -412,19 +412,49 @@ export function canObserveOutgoing(
|
|
|
412
412
|
/** Учётка, найденная по номеру телефона. */
|
|
413
413
|
export type PhoneMatch = { userId: string; username?: string; firstName?: string };
|
|
414
414
|
|
|
415
|
+
export type PhoneLookupOptions = {
|
|
416
|
+
/**
|
|
417
|
+
* Контакт, заведённый ради поиска, остаётся в адресной книге (по умолчанию): с человеком будут работать, и
|
|
418
|
+
* оператор на телефоне видит его имя, а не номер. `false` — удалить сразу, для массового перебора номеров.
|
|
419
|
+
*/
|
|
420
|
+
keepContact?: boolean;
|
|
421
|
+
/** Имя контакта; без него — сам номер. */
|
|
422
|
+
firstName?: string;
|
|
423
|
+
lastName?: string;
|
|
424
|
+
};
|
|
425
|
+
|
|
415
426
|
/**
|
|
416
427
|
* Поиск учётки по номеру телефона — когда о человеке известен только номер. Найденный пир транспорт
|
|
417
428
|
* запоминает: следующий send по `{ type: "user", id: userId }` уходит без повторного поиска.
|
|
418
429
|
*/
|
|
419
430
|
export interface PhoneLookupTransport extends MessageTransport {
|
|
420
431
|
/** Номер — E.164 (`+79991234567`). Не найден — `null`; прочие отказы канала — исключением с его текстом. */
|
|
421
|
-
findByPhone(phone: string): Promise<PhoneMatch | null>;
|
|
432
|
+
findByPhone(phone: string, options?: PhoneLookupOptions): Promise<PhoneMatch | null>;
|
|
422
433
|
}
|
|
423
434
|
|
|
424
435
|
export function canFindByPhone(transport: MessageTransport): transport is PhoneLookupTransport {
|
|
425
436
|
return typeof (transport as PhoneLookupTransport).findByPhone === "function";
|
|
426
437
|
}
|
|
427
438
|
|
|
439
|
+
/** Карточка контакта в адресной книге учётки: имя и заметка о человеке, текст заметки даёт продукт. */
|
|
440
|
+
export type ContactCard = {
|
|
441
|
+
userId: string;
|
|
442
|
+
/** E.164; нужен, только если номер ещё не известен учётке. */
|
|
443
|
+
phone?: string;
|
|
444
|
+
firstName: string;
|
|
445
|
+
lastName?: string;
|
|
446
|
+
note?: string;
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
/** Сохранить или обновить контакт — тем же вызовом: есть контакт — имя и заметка перезаписываются. */
|
|
450
|
+
export interface ContactTransport extends MessageTransport {
|
|
451
|
+
saveContact(contact: ContactCard): Promise<void>;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
export function canSaveContact(transport: MessageTransport): transport is ContactTransport {
|
|
455
|
+
return typeof (transport as ContactTransport).saveContact === "function";
|
|
456
|
+
}
|
|
457
|
+
|
|
428
458
|
/** Пункт меню команд канала: `/menu` и подпись рядом с ним. */
|
|
429
459
|
export type ChannelCommand = {
|
|
430
460
|
/** Без ведущей косой черты. */
|