@imessaging/core 0.8.11 → 0.8.13
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 +33 -0
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -26,6 +26,7 @@ export {
|
|
|
26
26
|
canReceiveEdits,
|
|
27
27
|
canSaveDraft,
|
|
28
28
|
canShowTyping,
|
|
29
|
+
canTellSelf,
|
|
29
30
|
hasCommandMenu,
|
|
30
31
|
isTelegramRecipient,
|
|
31
32
|
} from "./types";
|
|
@@ -36,6 +37,7 @@ export type {
|
|
|
36
37
|
IncomingAttachment,
|
|
37
38
|
IncomingLink,
|
|
38
39
|
IncomingMessage,
|
|
40
|
+
IncomingMessageKind,
|
|
39
41
|
IncomingMessageTransport,
|
|
40
42
|
OutgoingReadReceipt,
|
|
41
43
|
OutgoingReadReceiptTransport,
|
|
@@ -68,6 +70,8 @@ export type {
|
|
|
68
70
|
OutboundMessage,
|
|
69
71
|
ReactionTransport,
|
|
70
72
|
ResolvedPeer,
|
|
73
|
+
SelfAccount,
|
|
74
|
+
SelfAwareTransport,
|
|
71
75
|
SendResult,
|
|
72
76
|
TelegramPeerStore,
|
|
73
77
|
TelegramRecipient,
|
package/src/types.ts
CHANGED
|
@@ -280,6 +280,21 @@ export type IncomingLink = {
|
|
|
280
280
|
* `transportId` и `accountId` входят В САМО сообщение, а не подставляются потребителем: один
|
|
281
281
|
* продукт слушает несколько учёток сразу, и `chatId` уникален только внутри пары «канал + учётка».
|
|
282
282
|
*/
|
|
283
|
+
/** Что лежит в сообщении. `unsupported` — клиент такой вид не знает, `other` — знает, но отдельного кода нет. */
|
|
284
|
+
export type IncomingMessageKind =
|
|
285
|
+
| "text"
|
|
286
|
+
| "voice"
|
|
287
|
+
| "video_note"
|
|
288
|
+
| "sticker"
|
|
289
|
+
| "poll"
|
|
290
|
+
| "contact"
|
|
291
|
+
| "geo"
|
|
292
|
+
| "photo"
|
|
293
|
+
| "video"
|
|
294
|
+
| "document"
|
|
295
|
+
| "unsupported"
|
|
296
|
+
| "other";
|
|
297
|
+
|
|
283
298
|
export type IncomingMessage = {
|
|
284
299
|
transportId: string;
|
|
285
300
|
accountId: string;
|
|
@@ -303,6 +318,8 @@ export type IncomingMessage = {
|
|
|
303
318
|
/** Общий у частей одного альбома: Telegram присылает его отдельными сообщениями. */
|
|
304
319
|
albumId?: string;
|
|
305
320
|
text: string;
|
|
321
|
+
/** Вид содержимого: голосовое, кружок, опрос… Нет — канал вид не сообщает. */
|
|
322
|
+
kind?: IncomingMessageKind;
|
|
306
323
|
/** Когда отправлено. Нет — канал время не сообщает. */
|
|
307
324
|
sentAt?: Date;
|
|
308
325
|
/** Когда правили последний раз. Нет — не правили. */
|
|
@@ -470,6 +487,22 @@ export function canGetPeerInfo(transport: MessageTransport): transport is PeerIn
|
|
|
470
487
|
return typeof (transport as PeerInfoTransport).peerInfo === "function";
|
|
471
488
|
}
|
|
472
489
|
|
|
490
|
+
/** Учётка, под которой работает транспорт: по ней отличают свои сообщения от чужих. */
|
|
491
|
+
export type SelfAccount = {
|
|
492
|
+
id: string;
|
|
493
|
+
username?: string;
|
|
494
|
+
isBot: boolean;
|
|
495
|
+
};
|
|
496
|
+
|
|
497
|
+
/** Транспорт знает свою учётку. Ответ кэшируется: повторный вызов не ходит в сеть. */
|
|
498
|
+
export interface SelfAwareTransport extends MessageTransport {
|
|
499
|
+
self(): Promise<SelfAccount>;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
export function canTellSelf(transport: MessageTransport): transport is SelfAwareTransport {
|
|
503
|
+
return typeof (transport as SelfAwareTransport).self === "function";
|
|
504
|
+
}
|
|
505
|
+
|
|
473
506
|
/** Карточка контакта в адресной книге учётки: имя и заметка о человеке, текст заметки даёт продукт. */
|
|
474
507
|
export type ContactCard = {
|
|
475
508
|
userId: string;
|