@mtkruto/node 0.1.132 → 0.1.134

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