@mtkruto/node 0.1.132 → 0.1.133

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.
Files changed (69) hide show
  1. package/esm/3_types.d.ts +3 -0
  2. package/esm/3_types.js +3 -0
  3. package/esm/4_constants.d.ts +2 -2
  4. package/esm/4_constants.js +2 -2
  5. package/esm/client/0_utilities.d.ts +2 -2
  6. package/esm/client/0_utilities.js +3 -5
  7. package/esm/client/3_types.d.ts +10 -5
  8. package/esm/client/4_composer.d.ts +4 -4
  9. package/esm/client/4_composer.js +13 -1
  10. package/esm/client/5_client.d.ts +36 -36
  11. package/esm/client/5_client.js +181 -177
  12. package/esm/tl/2_types.d.ts +313 -24
  13. package/esm/tl/2_types.js +982 -46
  14. package/esm/tl/3_functions.d.ts +95 -32
  15. package/esm/tl/3_functions.js +227 -66
  16. package/esm/types/0_chat_photo.d.ts +22 -21
  17. package/esm/types/0_giveaway_parameters.d.ts +9 -0
  18. package/esm/types/0_giveaway_parameters.js +9 -0
  19. package/esm/types/0_message_entity.d.ts +93 -74
  20. package/esm/types/0_reaction.d.ts +13 -10
  21. package/esm/types/0_reaction.js +16 -1
  22. package/esm/types/1_bot_command_scope.d.ts +32 -27
  23. package/esm/types/1_chat_p.d.ts +76 -68
  24. package/esm/types/1_giveaway.d.ts +8 -0
  25. package/esm/types/1_giveaway.js +7 -0
  26. package/esm/types/1_keyboard_button.d.ts +62 -56
  27. package/esm/types/1_keyboard_button.js +3 -0
  28. package/esm/types/1_message_reaction.d.ts +14 -0
  29. package/esm/types/1_message_reaction.js +22 -0
  30. package/esm/types/1_user.d.ts +2 -2
  31. package/esm/types/2_inline_keyboard_button.d.ts +44 -37
  32. package/esm/types/3_message.d.ts +170 -113
  33. package/esm/types/3_message.js +218 -121
  34. package/esm/types/4_chat.d.ts +32 -29
  35. package/package.json +1 -1
  36. package/script/3_types.d.ts +3 -0
  37. package/script/3_types.js +3 -0
  38. package/script/4_constants.d.ts +2 -2
  39. package/script/4_constants.js +2 -2
  40. package/script/client/0_utilities.d.ts +2 -2
  41. package/script/client/0_utilities.js +3 -5
  42. package/script/client/3_types.d.ts +10 -5
  43. package/script/client/4_composer.d.ts +4 -4
  44. package/script/client/4_composer.js +13 -1
  45. package/script/client/5_client.d.ts +36 -36
  46. package/script/client/5_client.js +180 -176
  47. package/script/tl/2_types.d.ts +313 -24
  48. package/script/tl/2_types.js +1169 -217
  49. package/script/tl/3_functions.d.ts +95 -32
  50. package/script/tl/3_functions.js +241 -77
  51. package/script/types/0_chat_photo.d.ts +22 -21
  52. package/script/types/0_giveaway_parameters.d.ts +9 -0
  53. package/script/types/0_giveaway_parameters.js +13 -0
  54. package/script/types/0_message_entity.d.ts +93 -74
  55. package/script/types/0_reaction.d.ts +13 -10
  56. package/script/types/0_reaction.js +19 -0
  57. package/script/types/1_bot_command_scope.d.ts +32 -27
  58. package/script/types/1_chat_p.d.ts +76 -68
  59. package/script/types/1_giveaway.d.ts +8 -0
  60. package/script/types/1_giveaway.js +11 -0
  61. package/script/types/1_keyboard_button.d.ts +62 -56
  62. package/script/types/1_keyboard_button.js +3 -0
  63. package/script/types/1_message_reaction.d.ts +14 -0
  64. package/script/types/1_message_reaction.js +26 -0
  65. package/script/types/1_user.d.ts +2 -2
  66. package/script/types/2_inline_keyboard_button.d.ts +44 -37
  67. package/script/types/3_message.d.ts +170 -113
  68. package/script/types/3_message.js +220 -122
  69. package/script/types/4_chat.d.ts +32 -29
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.constructMessage = void 0;
3
+ exports.constructMessage = exports.assertMessageType = void 0;
4
4
  const _0_deps_js_1 = require("../0_deps.js");
5
5
  const _1_utilities_js_1 = require("../1_utilities.js");
6
6
  const _2_tl_js_1 = require("../2_tl.js");
@@ -15,19 +15,69 @@ const _0_reply_keyboard_remove_js_1 = require("./0_reply_keyboard_remove.js");
15
15
  const _0_venue_js_1 = require("./0_venue.js");
16
16
  const _0_voice_js_1 = require("./0_voice.js");
17
17
  const _1_animation_js_1 = require("./1_animation.js");
18
- const _1_reply_quote_js_1 = require("./1_reply_quote.js");
19
18
  const _1_chat_p_js_1 = require("./1_chat_p.js");
20
19
  const _1_document_js_1 = require("./1_document.js");
20
+ const _1_reply_quote_js_1 = require("./1_reply_quote.js");
21
21
  const _1_photo_js_1 = require("./1_photo.js");
22
22
  const _1_poll_js_1 = require("./1_poll.js");
23
23
  const _1_sticker_js_1 = require("./1_sticker.js");
24
24
  const _1_user_js_1 = require("./1_user.js");
25
25
  const _1_video_note_js_1 = require("./1_video_note.js");
26
26
  const _1_video_js_1 = require("./1_video.js");
27
+ const _1_message_reaction_js_1 = require("./1_message_reaction.js");
28
+ const _1_giveaway_js_1 = require("./1_giveaway.js");
27
29
  const _2_game_js_1 = require("./2_game.js");
28
30
  const _2_reply_keyboard_markup_js_1 = require("./2_reply_keyboard_markup.js");
29
31
  const _3_inline_keyboard_markup_js_1 = require("./3_inline_keyboard_markup.js");
30
32
  const d = (0, _0_deps_js_1.debug)("types/Message");
33
+ const keys = {
34
+ text: ["text"],
35
+ photo: ["photo"],
36
+ document: ["document"],
37
+ video: ["video"],
38
+ sticker: ["sticker"],
39
+ animation: ["animation"],
40
+ voice: ["voice"],
41
+ audio: ["audio"],
42
+ dice: ["dice"],
43
+ videoNote: ["videoNote"],
44
+ contact: ["contact"],
45
+ game: ["game"],
46
+ poll: ["poll"],
47
+ venue: ["venue"],
48
+ location: ["location"],
49
+ newChatMembers: ["newChatMembers"],
50
+ leftChatMember: ["leftChatMember"],
51
+ newChatTitle: ["newChatTitle"],
52
+ newChatPhoto: ["newChatPhoto"],
53
+ deletedChatPhoto: ["deletedChatPhoto"],
54
+ groupCreated: ["groupCreated", "newChatMembers"],
55
+ supergroupCreated: ["supergroupCreated"],
56
+ channelCreated: ["channelCreated"],
57
+ newAutoDeleteTime: ["newAutoDeleteTime"],
58
+ chatMigratedTo: ["chatMigratedTo"],
59
+ chatMigratedFrom: ["chatMigratedFrom"],
60
+ pinnedMessage: ["pinnedMessage"],
61
+ userShared: ["userShared"],
62
+ writeAccessAllowed: ["writeAccessAllowed"],
63
+ forumTopicCreated: ["forumTopicCreated"],
64
+ forumTopicEdited: ["forumTopicEdited"],
65
+ forumTopicClosed: ["forumTopicClosed"],
66
+ forumTopicReopened: ["forumTopicReopened"],
67
+ videoChatScheduled: ["videoChatScheduled"],
68
+ videoChatStarted: ["videoChatStarted"],
69
+ videoChatEnded: ["videoChatEnded"],
70
+ giveaway: ["giveaway"],
71
+ };
72
+ function assertMessageType(message, type) {
73
+ for (const key of keys[type]) {
74
+ if (!(key in message) || message[key] === undefined) {
75
+ (0, _1_utilities_js_1.UNREACHABLE)();
76
+ }
77
+ }
78
+ return message;
79
+ }
80
+ exports.assertMessageType = assertMessageType;
31
81
  async function getSender(message_, getEntity) {
32
82
  if (message_.from_id instanceof _2_tl_js_1.types.PeerUser) {
33
83
  const entity = await getEntity(message_.from_id);
@@ -74,116 +124,142 @@ async function constructServiceMessage(message_, chat, getEntity, getMessage) {
74
124
  };
75
125
  Object.assign(message, await getSender(message_, getEntity));
76
126
  if (message_.action instanceof _2_tl_js_1.types.MessageActionChatAddUser) {
77
- message.newChatMembers = [];
127
+ const newChatMembers = new Array();
78
128
  for (const user_ of message_.action.users) {
79
129
  const entity = await getEntity(new _2_tl_js_1.types.PeerUser({ user_id: user_ }));
80
130
  if (entity) {
81
131
  const user = (0, _1_user_js_1.constructUser)(entity);
82
- message.newChatMembers.push(user);
132
+ newChatMembers.push(user);
83
133
  }
84
134
  else {
85
135
  (0, _1_utilities_js_1.UNREACHABLE)();
86
136
  }
87
137
  }
138
+ return { ...message, newChatMembers };
88
139
  }
89
140
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChatDeleteUser) {
90
141
  const entity = await getEntity(new _2_tl_js_1.types.PeerUser({ user_id: message_.action.user_id }));
91
142
  if (entity) {
92
143
  const user = (0, _1_user_js_1.constructUser)(entity);
93
- message.leftChatMember = user;
144
+ const leftChatMember = user;
145
+ return { ...message, leftChatMember };
94
146
  }
95
147
  else {
96
148
  (0, _1_utilities_js_1.UNREACHABLE)();
97
149
  }
98
150
  }
99
151
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChatEditTitle) {
100
- message.newChatTitle = message_.action.title;
152
+ const newChatTitle = message_.action.title;
153
+ return { ...message, newChatTitle };
101
154
  }
102
155
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChatEditPhoto) {
103
- message.newChatPhoto = (0, _1_photo_js_1.constructPhoto)(message_.action.photo[_2_tl_js_1.as](_2_tl_js_1.types.Photo));
156
+ const newChatPhoto = (0, _1_photo_js_1.constructPhoto)(message_.action.photo[_2_tl_js_1.as](_2_tl_js_1.types.Photo));
157
+ return { ...message, newChatPhoto };
104
158
  }
105
159
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChatDeletePhoto) {
106
- message.deletedChatPhoto = true;
160
+ const deletedChatPhoto = true;
161
+ return { ...message, deletedChatPhoto };
107
162
  }
108
163
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChatCreate) {
109
- message.groupCreated = true;
110
- message.newChatMembers = [];
164
+ const groupCreated = true;
165
+ const newChatMembers = new Array();
111
166
  for (const user_ of message_.action.users) {
112
167
  const entity = await getEntity(new _2_tl_js_1.types.PeerUser({ user_id: user_ }));
113
168
  if (entity) {
114
169
  const user = (0, _1_user_js_1.constructUser)(entity);
115
- message.newChatMembers.push(user);
170
+ newChatMembers.push(user);
116
171
  }
117
172
  else {
118
173
  (0, _1_utilities_js_1.UNREACHABLE)();
119
174
  }
120
175
  }
176
+ return { ...message, groupCreated, newChatMembers };
121
177
  }
122
178
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChannelCreate) {
123
179
  if (message.chat.type == "channel") {
124
- message.channelCreated = true;
180
+ const channelCreated = true;
181
+ return { ...message, channelCreated };
125
182
  }
126
183
  else if (message.chat.type == "supergroup") {
127
- message.supergroupCreated = true;
184
+ const supergroupCreated = true;
185
+ return { ...message, supergroupCreated };
128
186
  }
129
187
  else {
130
188
  (0, _1_utilities_js_1.UNREACHABLE)();
131
189
  }
132
190
  }
133
191
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChatMigrateTo) {
134
- message.chatMigratedTo = _1_utilities_js_1.ZERO_CHANNEL_ID + Number(-message_.action.channel_id);
192
+ const chatMigratedTo = _1_utilities_js_1.ZERO_CHANNEL_ID + Number(-message_.action.channel_id);
193
+ return { ...message, chatMigratedTo };
135
194
  }
136
195
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionChannelMigrateFrom) {
137
- message.chatMigratedFrom = Number(-message_.action.chat_id);
196
+ const chatMigratedFrom = Number(-message_.action.chat_id);
197
+ return { ...message, chatMigratedFrom };
138
198
  }
139
199
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionPinMessage) {
140
200
  const { replyToMessage } = await getReply(message_, chat, getMessage);
141
- message.pinnedMessage = replyToMessage;
201
+ if (!replyToMessage) {
202
+ (0, _1_utilities_js_1.UNREACHABLE)();
203
+ }
204
+ const pinnedMessage = replyToMessage;
205
+ return { ...message, pinnedMessage };
142
206
  }
143
207
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionRequestedPeer) {
144
- const user = message_.action.peer[_2_tl_js_1.as](_2_tl_js_1.types.PeerUser);
145
- message.userShared = { requestId: message_.action.button_id, userId: Number(user.user_id) };
208
+ const user = message_.action.peers[0][_2_tl_js_1.as](_2_tl_js_1.types.PeerUser);
209
+ const userShared = { requestId: message_.action.button_id, userId: Number(user.user_id) };
210
+ return { ...message, userShared };
146
211
  }
147
212
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionBotAllowed) {
148
213
  const webAppName = message_.action.app ? message_.action.app[_2_tl_js_1.as](_2_tl_js_1.types.BotApp).title : undefined;
149
- message.writeAccessAllowed = { webAppName };
214
+ const writeAccessAllowed = { webAppName };
215
+ return { ...message, writeAccessAllowed };
150
216
  }
151
217
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionTopicCreate) {
152
- message.forumTopicCreated = {
218
+ const forumTopicCreated = {
153
219
  name: message_.action.title,
154
220
  iconColor: "#" + message_.action.icon_color.toString(16).padStart(6, "0"),
155
221
  iconCutsomEmojiId: message_.action.icon_emoji_id ? String(message_.action.icon_emoji_id) : undefined,
156
222
  };
223
+ return { ...message, forumTopicCreated };
157
224
  }
158
225
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionTopicEdit) {
159
226
  if (message_.action.closed) {
160
- message.forumTopicClosed = {};
227
+ const forumTopicClosed = true;
228
+ return { ...message, forumTopicClosed };
161
229
  }
162
230
  else if (message_.action.title || message_.action.icon_emoji_id) {
163
- message.forumTopicEdited = {
164
- name: message_.action.title,
231
+ const forumTopicEdited = {
232
+ name: message_.action.title ?? "",
165
233
  iconCutsomEmojiId: message_.action.icon_emoji_id ? String(message_.action.icon_emoji_id) : undefined,
166
234
  };
235
+ return { ...message, forumTopicEdited };
167
236
  }
168
237
  else {
169
- message.forumTopicReopened = {};
238
+ const forumTopicReopened = true;
239
+ return { ...message, forumTopicReopened };
170
240
  }
171
241
  }
172
242
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionGroupCallScheduled) {
173
- message.videoChatScheduled = { startDate: new Date(message_.action.schedule_date * 1000) };
243
+ const videoChatScheduled = { startDate: new Date(message_.action.schedule_date * 1000) };
244
+ return { ...message, videoChatScheduled };
174
245
  }
175
246
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionGroupCall) {
176
247
  if (message_.action.duration) {
177
- message.videoChatEnded = { duration: message_.action.duration };
248
+ const videoChatEnded = { duration: message_.action.duration };
249
+ return { ...message, videoChatEnded };
178
250
  }
179
251
  else {
180
- message.videoChatStarted = {};
252
+ const videoChatStarted = true;
253
+ return { ...message, videoChatStarted };
181
254
  }
182
255
  }
183
256
  else if (message_.action instanceof _2_tl_js_1.types.MessageActionSetMessagesTTL) {
184
- message.messageAutoDeleteTimerChanged = { messageAutoDeleteTime: message_.action.period || 0 };
257
+ const newAutoDeleteTime = message_.action.period || 0;
258
+ return { ...message, newAutoDeleteTime };
259
+ }
260
+ else {
261
+ (0, _1_utilities_js_1.UNREACHABLE)();
185
262
  }
186
- return (0, _1_utilities_js_1.cleanObject)(message);
187
263
  }
188
264
  async function constructMessage(message_, getEntity, getMessage, getStickerSetName, getReply_ = true) {
189
265
  if (!(message_ instanceof _2_tl_js_1.types.Message) && !(message_ instanceof _2_tl_js_1.types.MessageService)) {
@@ -235,6 +311,10 @@ async function constructMessage(message_, getEntity, getMessage, getStickerSetNa
235
311
  isTopicMessage: false,
236
312
  hasProtectedContent: message_.noforwards || false,
237
313
  };
314
+ if (message_.reactions) {
315
+ const recentReactions = message_.reactions.recent_reactions ?? [];
316
+ message.reactions = message_.reactions.results.map((v) => (0, _1_message_reaction_js_1.constructMessageReaction)(v, recentReactions));
317
+ }
238
318
  if (message_.reply_to instanceof _2_tl_js_1.types.MessageReplyHeader && message_.reply_to.reply_to_msg_id) {
239
319
  if (message_.reply_to.quote) {
240
320
  message.replyQuote = (0, _1_reply_quote_js_1.constructReplyQuote)(message_.reply_to.quote_text, message_.reply_to.quote_offset, message_.reply_to.quote_entities);
@@ -245,31 +325,6 @@ async function constructMessage(message_, getEntity, getMessage, getStickerSetNa
245
325
  Object.assign(message, await getReply(message_, chat_, getMessage));
246
326
  }
247
327
  Object.assign(message, await getSender(message_, getEntity));
248
- if (message_.media instanceof _2_tl_js_1.types.MessageMediaPhoto || message_.media instanceof _2_tl_js_1.types.MessageMediaDocument) {
249
- message.hasMediaSpoiler = message_.media.spoiler || false;
250
- }
251
- if (message_.grouped_id != undefined) {
252
- message.mediaGroupId = String(message_.grouped_id);
253
- }
254
- if (message_.message) {
255
- if (message_.media == undefined) {
256
- message.text = message_.message;
257
- }
258
- else {
259
- message.caption = message_.message;
260
- }
261
- }
262
- if (message_.entities != undefined) {
263
- if (message_.media == undefined) {
264
- message.entities = message_.entities.map(_0_message_entity_js_1.constructMessageEntity).filter((v) => v);
265
- }
266
- else {
267
- message.captionEntities = message_.entities.map(_0_message_entity_js_1.constructMessageEntity).filter((v) => v);
268
- }
269
- }
270
- if (message_.edit_date != undefined) {
271
- message.editDate = new Date(message_.edit_date * 1000);
272
- }
273
328
  if (message_.reply_markup) {
274
329
  if (message_.reply_markup instanceof _2_tl_js_1.types.ReplyKeyboardMarkup) {
275
330
  message.replyMarkup = (0, _2_reply_keyboard_markup_js_1.constructReplyKeyboardMarkup)(message_.reply_markup);
@@ -324,82 +379,125 @@ async function constructMessage(message_, getEntity, getMessage, getStickerSetNa
324
379
  }
325
380
  }
326
381
  }
327
- if (message_.media) {
328
- if (message_.media instanceof _2_tl_js_1.types.MessageMediaPhoto) {
329
- if (message_.media.photo instanceof _2_tl_js_1.types.Photo) {
330
- message.photo = (0, _1_photo_js_1.constructPhoto)(message_.media.photo);
331
- }
382
+ if (message_.grouped_id != undefined) {
383
+ message.mediaGroupId = String(message_.grouped_id);
384
+ }
385
+ if (message_.edit_date != undefined) {
386
+ message.editDate = new Date(message_.edit_date * 1000);
387
+ }
388
+ if (message_.message && message_.media === undefined) {
389
+ return {
390
+ ...message,
391
+ text: message_.message,
392
+ entities: message_.entities?.map(_0_message_entity_js_1.constructMessageEntity).filter((v) => !!v) ?? [],
393
+ };
394
+ }
395
+ const messageMedia = {
396
+ ...message,
397
+ caption: message_.message,
398
+ captionEntities: message_.entities?.map(_0_message_entity_js_1.constructMessageEntity).filter((v) => !!v) ?? [],
399
+ };
400
+ if (message_.media instanceof _2_tl_js_1.types.MessageMediaPhoto || message_.media instanceof _2_tl_js_1.types.MessageMediaDocument) {
401
+ messageMedia.hasMediaSpoiler = message_.media.spoiler || false;
402
+ }
403
+ let m = null;
404
+ if (message_.media instanceof _2_tl_js_1.types.MessageMediaPhoto) {
405
+ if (!message_.media.photo) {
406
+ (0, _1_utilities_js_1.UNREACHABLE)();
332
407
  }
333
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaDice) {
334
- message.dice = (0, _0_dice_js_1.constructDice)(message_.media);
335
- }
336
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaDocument) {
337
- const { document } = message_.media;
338
- if (document instanceof _2_tl_js_1.types.Document) {
339
- const getFileId = (type) => new _0__file_id_js_1.FileID(null, null, type, document.dc_id, {
340
- mediaId: document.id,
341
- accessHash: document.access_hash,
342
- fileReference: document.file_reference,
343
- }).encode();
344
- const fileUniqueId = new _0__file_id_js_1.FileUniqueID(_0__file_id_js_1.FileUniqueType.Document, { mediaId: document.id }).encode();
345
- const animated = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeAnimated);
346
- const audio = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeAudio);
347
- const fileName = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeFilename);
348
- const sticker = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeSticker);
349
- const video = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeVideo);
350
- if (animated) {
351
- message.animation = (0, _1_animation_js_1.constructAnimation)(document, video, fileName, getFileId(_0__file_id_js_1.FileType.Animation), fileUniqueId);
352
- }
353
- else if (video) {
354
- if (video.round_message) {
355
- message.videoNote = (0, _1_video_note_js_1.constructVideoNote)(document, video, getFileId(_0__file_id_js_1.FileType.VideoNote), fileUniqueId);
356
- }
357
- else {
358
- message.video = (0, _1_video_js_1.constructVideo)(document, video, fileName?.file_name, getFileId(_0__file_id_js_1.FileType.Video), fileUniqueId);
359
- }
360
- }
361
- else if (audio) {
362
- if (audio.voice) {
363
- message.voice = (0, _0_voice_js_1.constructVoice)(document, audio, getFileId(_0__file_id_js_1.FileType.Voice), fileUniqueId);
364
- }
365
- else {
366
- message.audio = (0, _0_audio_js_1.constructAudio)(document, audio, getFileId(_0__file_id_js_1.FileType.Audio), fileUniqueId);
367
- }
408
+ const photo = (0, _1_photo_js_1.constructPhoto)(message_.media.photo[_2_tl_js_1.as](_2_tl_js_1.types.Photo));
409
+ m = { ...messageMedia, photo };
410
+ }
411
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaDice) {
412
+ const dice = (0, _0_dice_js_1.constructDice)(message_.media);
413
+ m = { ...message, dice };
414
+ }
415
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaDocument) {
416
+ const { document } = message_.media;
417
+ if (document instanceof _2_tl_js_1.types.Document) {
418
+ const getFileId = (type) => new _0__file_id_js_1.FileID(null, null, type, document.dc_id, {
419
+ mediaId: document.id,
420
+ accessHash: document.access_hash,
421
+ fileReference: document.file_reference,
422
+ }).encode();
423
+ const fileUniqueId = new _0__file_id_js_1.FileUniqueID(_0__file_id_js_1.FileUniqueType.Document, { mediaId: document.id }).encode();
424
+ const animated = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeAnimated);
425
+ const audio = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeAudio);
426
+ const fileName = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeFilename);
427
+ const sticker = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeSticker);
428
+ const video = document.attributes.find((v) => v instanceof _2_tl_js_1.types.DocumentAttributeVideo);
429
+ if (animated) {
430
+ const animation = (0, _1_animation_js_1.constructAnimation)(document, video, fileName, getFileId(_0__file_id_js_1.FileType.Animation), fileUniqueId);
431
+ m = { ...messageMedia, animation };
432
+ }
433
+ else if (video) {
434
+ if (video.round_message) {
435
+ const videoNote = (0, _1_video_note_js_1.constructVideoNote)(document, video, getFileId(_0__file_id_js_1.FileType.VideoNote), fileUniqueId);
436
+ m = { ...message, videoNote };
368
437
  }
369
- else if (sticker) {
370
- message.sticker = await (0, _1_sticker_js_1.constructSticker)(document, getFileId(_0__file_id_js_1.FileType.Sticker), fileUniqueId, getStickerSetName);
438
+ else {
439
+ const video_ = (0, _1_video_js_1.constructVideo)(document, video, fileName?.file_name, getFileId(_0__file_id_js_1.FileType.Video), fileUniqueId);
440
+ m = { ...messageMedia, video: video_ };
371
441
  }
372
- else if (fileName) {
373
- message.document = (0, _1_document_js_1.constructDocument)(document, fileName, getFileId(_0__file_id_js_1.FileType.Document), fileUniqueId);
442
+ }
443
+ else if (audio) {
444
+ if (audio.voice) {
445
+ const voice = (0, _0_voice_js_1.constructVoice)(document, audio, getFileId(_0__file_id_js_1.FileType.Voice), fileUniqueId);
446
+ m = { ...messageMedia, voice };
374
447
  }
375
448
  else {
376
- message.document = (0, _1_document_js_1.constructDocument)(document, new _2_tl_js_1.types.DocumentAttributeFilename({ file_name: "Unknown" }), getFileId(_0__file_id_js_1.FileType.Document), fileUniqueId);
449
+ const audio_ = (0, _0_audio_js_1.constructAudio)(document, audio, getFileId(_0__file_id_js_1.FileType.Audio), fileUniqueId);
450
+ m = { ...messageMedia, audio: audio_ };
377
451
  }
378
452
  }
453
+ else if (sticker) {
454
+ const sticker = await (0, _1_sticker_js_1.constructSticker)(document, getFileId(_0__file_id_js_1.FileType.Sticker), fileUniqueId, getStickerSetName);
455
+ m = { ...message, sticker };
456
+ }
457
+ else if (fileName) {
458
+ const document_ = (0, _1_document_js_1.constructDocument)(document, fileName, getFileId(_0__file_id_js_1.FileType.Document), fileUniqueId);
459
+ m = { ...messageMedia, document: document_ };
460
+ }
461
+ else {
462
+ const document_ = (0, _1_document_js_1.constructDocument)(document, new _2_tl_js_1.types.DocumentAttributeFilename({ file_name: "Unknown" }), getFileId(_0__file_id_js_1.FileType.Document), fileUniqueId);
463
+ m = { ...messageMedia, document: document_ };
464
+ }
379
465
  }
380
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaContact) {
381
- message.contact = (0, _0_contact_js_1.constructContact)(message_.media);
382
- }
383
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaGame) {
384
- message.game = (0, _2_game_js_1.constructGame)(message_.media);
385
- }
386
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaPoll) {
387
- message.poll = (0, _1_poll_js_1.constructPoll)(message_.media);
388
- }
389
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaVenue) {
390
- message.venue = (0, _0_venue_js_1.constructVenue)(message_.media);
391
- }
392
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaGeo || message_.media instanceof _2_tl_js_1.types.MessageMediaGeoLive) {
393
- message.location = (0, _0_location_js_1.constructLocation)(message_.media);
394
- }
395
- else if (message_.media instanceof _2_tl_js_1.types.MessageMediaWebPage) {
396
- //
397
- }
398
- else {
399
- // not implemented
400
- (0, _1_utilities_js_1.UNREACHABLE)();
401
- }
402
466
  }
403
- return (0, _1_utilities_js_1.cleanObject)(message);
467
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaContact) {
468
+ const contact = (0, _0_contact_js_1.constructContact)(message_.media);
469
+ m = { ...messageMedia, contact };
470
+ }
471
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaGame) {
472
+ const game = (0, _2_game_js_1.constructGame)(message_.media);
473
+ m = { ...message, game };
474
+ }
475
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaPoll) {
476
+ const poll = (0, _1_poll_js_1.constructPoll)(message_.media);
477
+ m = { ...message, poll };
478
+ }
479
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaVenue) {
480
+ const venue = (0, _0_venue_js_1.constructVenue)(message_.media);
481
+ m = { ...message, venue };
482
+ }
483
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaGeo || message_.media instanceof _2_tl_js_1.types.MessageMediaGeoLive) {
484
+ const location = (0, _0_location_js_1.constructLocation)(message_.media);
485
+ m = { ...message, location };
486
+ }
487
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaWebPage) {
488
+ (0, _1_utilities_js_1.UNREACHABLE)(); // TODO: implement
489
+ }
490
+ else if (message_.media instanceof _2_tl_js_1.types.MessageMediaGiveaway) {
491
+ const giveaway = (0, _1_giveaway_js_1.constructGiveaway)(message_.media);
492
+ m = { ...message, giveaway };
493
+ }
494
+ else {
495
+ // not implemented
496
+ (0, _1_utilities_js_1.UNREACHABLE)();
497
+ }
498
+ if (m == null) {
499
+ (0, _1_utilities_js_1.UNREACHABLE)();
500
+ }
501
+ return (0, _1_utilities_js_1.cleanObject)(m);
404
502
  }
405
503
  exports.constructMessage = constructMessage;
@@ -1,34 +1,37 @@
1
1
  import { enums, types } from "../2_tl.js";
2
- import { ChatP } from "./1_chat_p.js";
3
- import { ChatPhoto } from "./0_chat_photo.js";
2
+ import { ChatPChannel, ChatPGroup, ChatPPrivate, ChatPSupergroup } from "./1_chat_p.js";
3
+ import { ChatPhotoChat, ChatPhotoUser } from "./0_chat_photo.js";
4
4
  import { Message, MessageGetter } from "./3_message.js";
5
5
  import { StickerSetNameGetter } from "./1_sticker.js";
6
6
  import { EntityGetter } from "./1__getters.js";
7
- export declare namespace Chat {
8
- interface Base {
9
- order: string;
10
- lastMessage?: Message;
11
- pinned: number;
12
- }
13
- interface Channel extends Base, ChatP.Channel {
14
- also?: string[];
15
- photo?: ChatPhoto.Chat;
16
- }
17
- interface Supergroup extends Base, ChatP.Supergroup {
18
- also?: string[];
19
- photo?: ChatPhoto.Chat;
20
- }
21
- interface Group extends Base, ChatP.Group {
22
- photo?: ChatPhoto.Chat;
23
- }
24
- interface Private extends Base, ChatP.Private {
25
- also?: string[];
26
- photo?: ChatPhoto.User;
27
- }
7
+ /** @unlisted */
8
+ export interface ChatBase {
9
+ order: string;
10
+ lastMessage?: Omit<Message, "replyToMessage">;
11
+ pinned: number;
28
12
  }
29
- export type Chat = Chat.Channel | Chat.Supergroup | Chat.Group | Chat.Private;
30
- export declare function getChatOrder(lastMessage: Message | undefined, pinned: number): string;
31
- export declare function constructChat(dialog: enums.Dialog, dialogs: types.messages.Dialogs | types.messages.DialogsSlice, pinnedChats: number[], getEntity: EntityGetter, getMessage: MessageGetter<"replyToMessage">, getStickerSetName: StickerSetNameGetter): Promise<Chat>;
32
- export declare function constructChat2(entity: types.User | types.Chat | types.ChatForbidden | types.Channel | types.ChannelForbidden, pinned: number, lastMessage: Message | undefined): Chat;
33
- export declare function constructChat3(chatId: number, pinned: number, lastMessage: Message | undefined, getEntity: EntityGetter): Promise<Chat | null>;
34
- export declare function constructChat4(chatId: number, pinned: number, lastMessageId: number, getEntity: EntityGetter, getMessage: MessageGetter<"replyToMessage">): Promise<Chat | null>;
13
+ /** @unlisted */
14
+ export interface ChatChannel extends ChatBase, ChatPChannel {
15
+ also?: string[];
16
+ photo?: ChatPhotoChat;
17
+ }
18
+ /** @unlisted */
19
+ export interface ChatSupergroup extends ChatBase, ChatPSupergroup {
20
+ also?: string[];
21
+ photo?: ChatPhotoChat;
22
+ }
23
+ /** @unlisted */
24
+ export interface ChatGroup extends ChatBase, ChatPGroup {
25
+ photo?: ChatPhotoChat;
26
+ }
27
+ /** @unlisted */
28
+ export interface ChatPrivate extends ChatBase, ChatPPrivate {
29
+ also?: string[];
30
+ photo?: ChatPhotoUser;
31
+ }
32
+ export type Chat = ChatChannel | ChatSupergroup | ChatGroup | ChatPrivate;
33
+ export declare function getChatOrder(lastMessage: Omit<Message, "replyToMessage"> | undefined, pinned: number): string;
34
+ export declare function constructChat(dialog: enums.Dialog, dialogs: types.messages.Dialogs | types.messages.DialogsSlice, pinnedChats: number[], getEntity: EntityGetter, getMessage: MessageGetter, getStickerSetName: StickerSetNameGetter): Promise<Chat>;
35
+ export declare function constructChat2(entity: types.User | types.Chat | types.ChatForbidden | types.Channel | types.ChannelForbidden, pinned: number, lastMessage: Omit<Message, "replyToMessage"> | undefined): Chat;
36
+ export declare function constructChat3(chatId: number, pinned: number, lastMessage: Omit<Message, "replyToMessage"> | undefined, getEntity: EntityGetter): Promise<Chat | null>;
37
+ export declare function constructChat4(chatId: number, pinned: number, lastMessageId: number, getEntity: EntityGetter, getMessage: MessageGetter): Promise<Chat | null>;