@imessaging/core 0.8.4 → 0.8.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imessaging/core",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "description": "Core messaging transport contracts and Telegram peer storage",
5
5
  "keywords": [
6
6
  "messaging",
package/src/index.ts CHANGED
@@ -15,6 +15,7 @@ export { MemoryPeerStore } from "./memory-peer-store";
15
15
  export { createPeerKey } from "./peer-key";
16
16
  export {
17
17
  canEdit,
18
+ canFindByPhone,
18
19
  canMarkRead,
19
20
  canReact,
20
21
  canReceive,
@@ -43,6 +44,8 @@ export type {
43
44
  EditedMessageTransport,
44
45
  MessageDraft,
45
46
  OutgoingObserverTransport,
47
+ PhoneLookupTransport,
48
+ PhoneMatch,
46
49
  EditResult,
47
50
  EmailRecipient,
48
51
  HeadhunterRecipient,
package/src/types.ts CHANGED
@@ -409,6 +409,22 @@ export function canObserveOutgoing(
409
409
  );
410
410
  }
411
411
 
412
+ /** Учётка, найденная по номеру телефона. */
413
+ export type PhoneMatch = { userId: string; username?: string; firstName?: string };
414
+
415
+ /**
416
+ * Поиск учётки по номеру телефона — когда о человеке известен только номер. Найденный пир транспорт
417
+ * запоминает: следующий send по `{ type: "user", id: userId }` уходит без повторного поиска.
418
+ */
419
+ export interface PhoneLookupTransport extends MessageTransport {
420
+ /** Номер — E.164 (`+79991234567`). Не найден — `null`; прочие отказы канала — исключением с его текстом. */
421
+ findByPhone(phone: string): Promise<PhoneMatch | null>;
422
+ }
423
+
424
+ export function canFindByPhone(transport: MessageTransport): transport is PhoneLookupTransport {
425
+ return typeof (transport as PhoneLookupTransport).findByPhone === "function";
426
+ }
427
+
412
428
  /** Пункт меню команд канала: `/menu` и подпись рядом с ним. */
413
429
  export type ChannelCommand = {
414
430
  /** Без ведущей косой черты. */