@mtkruto/node 0.161.0 → 0.171.0

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 (185) hide show
  1. package/esm/0_deps.d.ts +1 -1
  2. package/esm/0_deps.d.ts.map +1 -1
  3. package/esm/0_deps.js +1 -1
  4. package/esm/2_tl.d.ts +1 -0
  5. package/esm/2_tl.d.ts.map +1 -1
  6. package/esm/2_tl.js +1 -0
  7. package/esm/3_types.d.ts +3 -0
  8. package/esm/3_types.d.ts.map +1 -1
  9. package/esm/3_types.js +3 -0
  10. package/esm/client/0_markdown.d.ts.map +1 -1
  11. package/esm/client/0_params.d.ts +39 -5
  12. package/esm/client/0_params.d.ts.map +1 -1
  13. package/esm/client/0_secret_chat_state.d.ts +86 -0
  14. package/esm/client/0_secret_chat_state.d.ts.map +1 -0
  15. package/esm/client/0_secret_chat_state.js +129 -0
  16. package/esm/client/0_storage_operations.d.ts +1 -0
  17. package/esm/client/0_storage_operations.d.ts.map +1 -1
  18. package/esm/client/0_storage_operations.js +3 -0
  19. package/esm/client/0_utilities.d.ts +2 -2
  20. package/esm/client/0_utilities.js +2 -2
  21. package/esm/client/1_client_generic.d.ts +87 -16
  22. package/esm/client/1_client_generic.d.ts.map +1 -1
  23. package/esm/client/2_client_encrypted.js +6 -6
  24. package/esm/client/2_file_manager.d.ts.map +1 -1
  25. package/esm/client/2_file_manager.js +26 -3
  26. package/esm/client/3_account_manager.js +3 -3
  27. package/esm/client/3_filters.d.ts +22 -7
  28. package/esm/client/3_filters.d.ts.map +1 -1
  29. package/esm/client/3_message_manager.d.ts +59 -20
  30. package/esm/client/3_message_manager.d.ts.map +1 -1
  31. package/esm/client/3_message_manager.js +6 -0
  32. package/esm/client/3_secret_chat_manager.d.ts +26 -0
  33. package/esm/client/3_secret_chat_manager.d.ts.map +1 -0
  34. package/esm/client/3_secret_chat_manager.js +770 -0
  35. package/esm/client/4_chat_manager.d.ts +2 -0
  36. package/esm/client/4_chat_manager.d.ts.map +1 -1
  37. package/esm/client/4_chat_manager.js +12 -0
  38. package/esm/client/4_context.d.ts +18 -3
  39. package/esm/client/4_context.d.ts.map +1 -1
  40. package/esm/client/4_context.js +65 -10
  41. package/esm/client/4_poll_manager.js +2 -2
  42. package/esm/client/6_client.d.ts +88 -17
  43. package/esm/client/6_client.d.ts.map +1 -1
  44. package/esm/client/6_client.js +119 -19
  45. package/esm/client/6_client_dispatcher.d.ts +87 -16
  46. package/esm/client/6_client_dispatcher.d.ts.map +1 -1
  47. package/esm/client/6_client_dispatcher.js +108 -16
  48. package/esm/session/2_session_encrypted.js +5 -5
  49. package/esm/tl/1_secret_chats_api.d.ts +637 -0
  50. package/esm/tl/1_secret_chats_api.d.ts.map +1 -0
  51. package/esm/tl/1_secret_chats_api.js +849 -0
  52. package/esm/tl/1_tl_reader.js +3 -3
  53. package/esm/tl/2_secret_chats.d.ts +33 -0
  54. package/esm/tl/2_secret_chats.d.ts.map +1 -0
  55. package/esm/tl/2_secret_chats.js +53 -0
  56. package/esm/types/0_secret_chat.d.ts +66 -0
  57. package/esm/types/0_secret_chat.d.ts.map +1 -0
  58. package/esm/types/0_secret_chat.js +30 -0
  59. package/esm/types/0_secret_message_entity.d.ts +115 -0
  60. package/esm/types/0_secret_message_entity.d.ts.map +1 -0
  61. package/esm/types/0_secret_message_entity.js +174 -0
  62. package/esm/types/1_chat_p.d.ts +3 -3
  63. package/esm/types/1_chat_p.d.ts.map +1 -1
  64. package/esm/types/1_input_poll_media.d.ts +2 -2
  65. package/esm/types/1_photo.d.ts +3 -2
  66. package/esm/types/1_photo.d.ts.map +1 -1
  67. package/esm/types/1_sticker.d.ts +5 -4
  68. package/esm/types/1_sticker.d.ts.map +1 -1
  69. package/esm/types/1_sticker.js +23 -1
  70. package/esm/types/1_video.d.ts +2 -2
  71. package/esm/types/1_video.d.ts.map +1 -1
  72. package/esm/types/1_video_note.d.ts +1 -1
  73. package/esm/types/1_video_note.d.ts.map +1 -1
  74. package/esm/types/2_inactive_chat.d.ts +1 -1
  75. package/esm/types/2_inactive_chat.d.ts.map +1 -1
  76. package/esm/types/2_left_channel_list.d.ts +1 -1
  77. package/esm/types/2_left_channel_list.d.ts.map +1 -1
  78. package/esm/types/2_message_entity.d.ts +0 -3
  79. package/esm/types/2_message_entity.d.ts.map +1 -1
  80. package/esm/types/2_secret_message.d.ts +184 -0
  81. package/esm/types/2_secret_message.d.ts.map +1 -0
  82. package/esm/types/2_secret_message.js +341 -0
  83. package/esm/types/2_user.d.ts +2 -2
  84. package/esm/types/2_user.d.ts.map +1 -1
  85. package/esm/types/3_input_media.d.ts +2 -2
  86. package/esm/types/4_gift.d.ts +2 -2
  87. package/esm/types/4_gift.d.ts.map +1 -1
  88. package/esm/types/9_message.d.ts +9 -61
  89. package/esm/types/9_message.d.ts.map +1 -1
  90. package/esm/types/9_message.js +1 -0
  91. package/esm/types/B_update.d.ts +33 -42
  92. package/esm/types/B_update.d.ts.map +1 -1
  93. package/package.json +1 -1
  94. package/script/0_deps.d.ts +1 -1
  95. package/script/0_deps.d.ts.map +1 -1
  96. package/script/0_deps.js +2 -1
  97. package/script/2_tl.d.ts +1 -0
  98. package/script/2_tl.d.ts.map +1 -1
  99. package/script/2_tl.js +2 -1
  100. package/script/3_types.d.ts +3 -0
  101. package/script/3_types.d.ts.map +1 -1
  102. package/script/3_types.js +3 -0
  103. package/script/client/0_markdown.d.ts.map +1 -1
  104. package/script/client/0_params.d.ts +39 -5
  105. package/script/client/0_params.d.ts.map +1 -1
  106. package/script/client/0_secret_chat_state.d.ts +86 -0
  107. package/script/client/0_secret_chat_state.d.ts.map +1 -0
  108. package/script/client/0_secret_chat_state.js +133 -0
  109. package/script/client/0_storage_operations.d.ts +1 -0
  110. package/script/client/0_storage_operations.d.ts.map +1 -1
  111. package/script/client/0_storage_operations.js +3 -0
  112. package/script/client/0_utilities.d.ts +2 -2
  113. package/script/client/0_utilities.js +2 -2
  114. package/script/client/1_client_generic.d.ts +87 -16
  115. package/script/client/1_client_generic.d.ts.map +1 -1
  116. package/script/client/2_client_encrypted.js +6 -6
  117. package/script/client/2_file_manager.d.ts.map +1 -1
  118. package/script/client/2_file_manager.js +25 -2
  119. package/script/client/3_account_manager.js +3 -3
  120. package/script/client/3_filters.d.ts +22 -7
  121. package/script/client/3_filters.d.ts.map +1 -1
  122. package/script/client/3_message_manager.d.ts +59 -20
  123. package/script/client/3_message_manager.d.ts.map +1 -1
  124. package/script/client/3_message_manager.js +6 -0
  125. package/script/client/3_secret_chat_manager.d.ts +26 -0
  126. package/script/client/3_secret_chat_manager.d.ts.map +1 -0
  127. package/script/client/3_secret_chat_manager.js +807 -0
  128. package/script/client/4_chat_manager.d.ts +2 -0
  129. package/script/client/4_chat_manager.d.ts.map +1 -1
  130. package/script/client/4_chat_manager.js +12 -0
  131. package/script/client/4_context.d.ts +18 -3
  132. package/script/client/4_context.d.ts.map +1 -1
  133. package/script/client/4_context.js +65 -10
  134. package/script/client/4_poll_manager.js +2 -2
  135. package/script/client/6_client.d.ts +88 -17
  136. package/script/client/6_client.d.ts.map +1 -1
  137. package/script/client/6_client.js +119 -19
  138. package/script/client/6_client_dispatcher.d.ts +87 -16
  139. package/script/client/6_client_dispatcher.d.ts.map +1 -1
  140. package/script/client/6_client_dispatcher.js +108 -16
  141. package/script/session/2_session_encrypted.js +5 -5
  142. package/script/tl/1_secret_chats_api.d.ts +637 -0
  143. package/script/tl/1_secret_chats_api.d.ts.map +1 -0
  144. package/script/tl/1_secret_chats_api.js +852 -0
  145. package/script/tl/1_tl_reader.js +3 -3
  146. package/script/tl/2_secret_chats.d.ts +33 -0
  147. package/script/tl/2_secret_chats.d.ts.map +1 -0
  148. package/script/tl/2_secret_chats.js +78 -0
  149. package/script/types/0_secret_chat.d.ts +66 -0
  150. package/script/types/0_secret_chat.d.ts.map +1 -0
  151. package/script/types/0_secret_chat.js +33 -0
  152. package/script/types/0_secret_message_entity.d.ts +115 -0
  153. package/script/types/0_secret_message_entity.d.ts.map +1 -0
  154. package/script/types/0_secret_message_entity.js +179 -0
  155. package/script/types/1_chat_p.d.ts +3 -3
  156. package/script/types/1_chat_p.d.ts.map +1 -1
  157. package/script/types/1_input_poll_media.d.ts +2 -2
  158. package/script/types/1_photo.d.ts +3 -2
  159. package/script/types/1_photo.d.ts.map +1 -1
  160. package/script/types/1_sticker.d.ts +5 -4
  161. package/script/types/1_sticker.d.ts.map +1 -1
  162. package/script/types/1_sticker.js +23 -0
  163. package/script/types/1_video.d.ts +2 -2
  164. package/script/types/1_video.d.ts.map +1 -1
  165. package/script/types/1_video_note.d.ts +1 -1
  166. package/script/types/1_video_note.d.ts.map +1 -1
  167. package/script/types/2_inactive_chat.d.ts +1 -1
  168. package/script/types/2_inactive_chat.d.ts.map +1 -1
  169. package/script/types/2_left_channel_list.d.ts +1 -1
  170. package/script/types/2_left_channel_list.d.ts.map +1 -1
  171. package/script/types/2_message_entity.d.ts +0 -3
  172. package/script/types/2_message_entity.d.ts.map +1 -1
  173. package/script/types/2_secret_message.d.ts +184 -0
  174. package/script/types/2_secret_message.d.ts.map +1 -0
  175. package/script/types/2_secret_message.js +344 -0
  176. package/script/types/2_user.d.ts +2 -2
  177. package/script/types/2_user.d.ts.map +1 -1
  178. package/script/types/3_input_media.d.ts +2 -2
  179. package/script/types/4_gift.d.ts +2 -2
  180. package/script/types/4_gift.d.ts.map +1 -1
  181. package/script/types/9_message.d.ts +9 -61
  182. package/script/types/9_message.d.ts.map +1 -1
  183. package/script/types/9_message.js +1 -0
  184. package/script/types/B_update.d.ts +33 -42
  185. package/script/types/B_update.d.ts.map +1 -1
@@ -18,7 +18,7 @@
18
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
19
  */
20
20
  import { cleanObject } from "../1_utilities.js";
21
- import { Api } from "../2_tl.js";
21
+ import { Api, SecretChats } from "../2_tl.js";
22
22
  import { constructMaskPosition } from "./0_mask_position.js";
23
23
  import { constructThumbnail } from "./0_thumbnail.js";
24
24
  export async function constructSticker(document, fileId, fileUniqueId, getStickerSetName, customEmojiId = "") {
@@ -49,3 +49,25 @@ export function constructSticker2(document, fileId, fileUniqueId, setName, custo
49
49
  fileSize: Number(document.size),
50
50
  });
51
51
  }
52
+ export function constructSticker3(document, fileId, fileUniqueId) {
53
+ const stickerAttribute = document.attributes.find((v) => SecretChats.is("documentAttributeSticker", v));
54
+ const imageSizeAttribute = document.attributes.find((v) => SecretChats.is("documentAttributeImageSize", v));
55
+ const videoAttribute = document.attributes.find((v) => SecretChats.is("documentAttributeVideo", v));
56
+ return cleanObject({
57
+ fileId,
58
+ fileUniqueId,
59
+ type: "regular",
60
+ width: imageSizeAttribute ? imageSizeAttribute.w : videoAttribute ? videoAttribute.w : 512,
61
+ height: imageSizeAttribute ? imageSizeAttribute.h : videoAttribute ? videoAttribute.h : 512,
62
+ isAnimated: document.mime_type === "application/x-tgsticker",
63
+ isVideo: document.mime_type === "video/webm",
64
+ thumbnails: [],
65
+ emoji: stickerAttribute.alt || undefined,
66
+ setName: Api.is("inputStickerSetShortName", stickerAttribute.stickerset) ? stickerAttribute.stickerset.short_name : undefined,
67
+ premiumAnimation: undefined, // TODO
68
+ maskPosition: undefined,
69
+ customEmojiId: undefined,
70
+ needsRepainting: undefined,
71
+ fileSize: Number(document.size),
72
+ });
73
+ }
@@ -25,9 +25,9 @@ export interface Video {
25
25
  fileId: string;
26
26
  /** A file identifier that can be used to identify this file. */
27
27
  fileUniqueId: string;
28
- /** Video width as defined by sender */
28
+ /** Video width as defined by its sender. */
29
29
  width: number;
30
- /** Video height as defined by sender */
30
+ /** Video height as defined by its sender. */
31
31
  height: number;
32
32
  /** Duration of the video in seconds as defined by sender */
33
33
  duration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"1_video.d.ts","sourceRoot":"","sources":["../../src/types/1_video.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,oBAAoB;AACpB,MAAM,WAAW,KAAK;IACpB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,sBAAsB,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,CAY5K"}
1
+ {"version":3,"file":"1_video.d.ts","sourceRoot":"","sources":["../../src/types/1_video.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,oBAAoB;AACpB,MAAM,WAAW,KAAK;IACpB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,sBAAsB,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,CAY5K"}
@@ -25,7 +25,7 @@ export interface VideoNote {
25
25
  fileId: string;
26
26
  /** A file identifier that can be used to identify this file. */
27
27
  fileUniqueId: string;
28
- /** Video width and height (diameter of the video message) as defined by sender */
28
+ /** Video width and height (diameter of the video message) as defined by its sender. */
29
29
  length: number;
30
30
  /** Duration of the video in seconds as defined by sender */
31
31
  duration: number;
@@ -1 +1 @@
1
- {"version":3,"file":"1_video_note.d.ts","sourceRoot":"","sources":["../../src/types/1_video_note.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,oBAAoB;AACpB,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,CAStJ"}
1
+ {"version":3,"file":"1_video_note.d.ts","sourceRoot":"","sources":["../../src/types/1_video_note.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEtE,oBAAoB;AACpB,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,CAStJ"}
@@ -21,7 +21,7 @@ import { Api } from "../2_tl.js";
21
21
  import { type ChatP } from "./1_chat_p.js";
22
22
  /** An inactive chat. */
23
23
  export interface InactiveChat {
24
- /** The time which the chat was last active. */
24
+ /** The time when the chat was last active. */
25
25
  lastActivity: number;
26
26
  /** The chat that has been marked as inactive. */
27
27
  chat: ChatP;
@@ -1 +1 @@
1
- {"version":3,"file":"2_inactive_chat.d.ts","sourceRoot":"","sources":["../../src/types/2_inactive_chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,EAAkB,MAAM,eAAe,CAAC;AAE3D,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;CACb;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CASzF"}
1
+ {"version":3,"file":"2_inactive_chat.d.ts","sourceRoot":"","sources":["../../src/types/2_inactive_chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,KAAK,EAAkB,MAAM,eAAe,CAAC;AAE3D,wBAAwB;AACxB,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,IAAI,EAAE,KAAK,CAAC;CACb;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,CASzF"}
@@ -23,7 +23,7 @@ import { type ChatP } from "./1_chat_p.js";
23
23
  export interface LeftChannelList {
24
24
  /** The left channels. */
25
25
  leftChannels: ChatP[];
26
- /** The total number of left channels */
26
+ /** The total number of left channels. */
27
27
  count: number;
28
28
  }
29
29
  export declare function constructLeftChannelList(result: Api.messages_Chats): LeftChannelList;
@@ -1 +1 @@
1
- {"version":3,"file":"2_left_channel_list.d.ts","sourceRoot":"","sources":["../../src/types/2_left_channel_list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,KAAK,EAAkB,MAAM,eAAe,CAAC;AAE3D,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,GAAG,eAAe,CAIpF"}
1
+ {"version":3,"file":"2_left_channel_list.d.ts","sourceRoot":"","sources":["../../src/types/2_left_channel_list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,KAAK,EAAkB,MAAM,eAAe,CAAC;AAE3D,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,GAAG,eAAe,CAIpF"}
@@ -20,10 +20,7 @@
20
20
  import { Api } from "../2_tl.js";
21
21
  import type { PeerGetter } from "./1_chat_p.js";
22
22
  /** @unlisted */
23
- export type MessageEntityType = "mention" | "hashtag" | "botCommand" | "url" | "email" | "bold" | "italic" | "code" | "pre" | "textLink" | "textMention" | "cashtag" | "phoneNumber" | "underline" | "strikethrough" | "blockquote" | "bankCard" | "spoiler" | "customEmoji" | "dateTime";
24
- /** @unlisted */
25
23
  export interface _MessageEntityBase {
26
- type: MessageEntityType;
27
24
  offset: number;
28
25
  length: number;
29
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"2_message_entity.d.ts","sourceRoot":"","sources":["../../src/types/2_message_entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,SAAS,GACT,YAAY,GACZ,KAAK,GACL,OAAO,GACP,MAAM,GACN,QAAQ,GACR,MAAM,GACN,KAAK,GACL,UAAU,GACV,aAAa,GACb,SAAS,GACT,aAAa,GACb,WAAW,GACX,eAAe,GACf,YAAY,GACZ,UAAU,GACV,SAAS,GACT,aAAa,GACb,UAAU,CAAC;AAEf,gBAAgB;AAChB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,IAAI,EAAE,KAAK,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,gBAAgB;AAChB,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,gBAAgB;AAChB,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,IAAI,EAAE,KAAK,CAAC;IACZ,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,gBAAgB;AAChB,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,IAAI,EAAE,UAAU,CAAC;IACjB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,IAAI,EAAE,aAAa,CAAC;IACpB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,gBAAgB;AAChB,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,gBAAgB;AAChB,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,gBAAgB;AAChB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE,IAAI,EAAE,aAAa,CAAC;IACpB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,gBAAgB;AAChB,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,IAAI,EAAE,UAAU,CAAC;IACjB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sDAAsD;AACtD,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,oBAAoB,GACpB,uBAAuB,GACvB,gBAAgB,GAChB,yBAAyB,GACzB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,qBAAqB,GACrB,wBAAwB,GACxB,oBAAoB,GACpB,wBAAwB,GACxB,sBAAsB,GACtB,0BAA0B,GAC1B,uBAAuB,GACvB,qBAAqB,GACrB,oBAAoB,GACpB,wBAAwB,GACxB,qBAAqB,CAAC;AAE1B,wBAAgB,uBAAuB,CAAC,GAAG,EAAE;IAC3C,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,GAAG,MAAM,CAmBT;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;IACxD,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,QAyBA;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,aAAa,GAAG,aAAa,GAAG,IAAI,CAoDnF;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,CAAC,aAAa,CAsErG;AAwBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAY9E"}
1
+ {"version":3,"file":"2_message_entity.d.ts","sourceRoot":"","sources":["../../src/types/2_message_entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * MTKruto - Cross-runtime JavaScript library for building Telegram clients
3
+ * Copyright (C) 2023-2026 Roj <https://roj.im/>
4
+ *
5
+ * This file is part of MTKruto.
6
+ *
7
+ * This program is free software: you can redistribute it and/or modify
8
+ * it under the terms of the GNU Lesser General Public License as published by
9
+ * the Free Software Foundation, either version 3 of the License, or
10
+ * (at your option) any later version.
11
+ *
12
+ * This program is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ * GNU Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public License
18
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
+ */
20
+ import { Api, SecretChats } from "../2_tl.js";
21
+ import type { Contact } from "./0_contact.js";
22
+ import type { Location } from "./0_location.js";
23
+ import { type SecretMessageEntity } from "./0_secret_message_entity.js";
24
+ import type { Voice } from "./0_voice.js";
25
+ import type { Animation } from "./1_animation.js";
26
+ import type { Audio } from "./1_audio.js";
27
+ import type { Document } from "./1_document.js";
28
+ import type { Photo } from "./1_photo.js";
29
+ import { type Sticker } from "./1_sticker.js";
30
+ import type { Venue } from "./1_venue.js";
31
+ import type { VideoNote } from "./1_video_note.js";
32
+ import type { Video } from "./1_video.js";
33
+ /** @unlisted */
34
+ export interface _SecretMessageBase {
35
+ /** The identifier of the secret chat that the message belongs to. */
36
+ chatId: number;
37
+ /** The message's identifier. */
38
+ id: string;
39
+ /** The identifier of the message that this message replies to. */
40
+ replyToMessageId?: string;
41
+ /** Whether the message was sent silently. */
42
+ isSilent: boolean;
43
+ /** The message's time-to-live. */
44
+ ttl: number;
45
+ /** The name of the inline bot that was used to send the message. */
46
+ viaBot?: string;
47
+ }
48
+ export interface _SecretMessageMediaBase extends _SecretMessageBase {
49
+ /** The message's media group ID. */
50
+ mediaGroupId?: string;
51
+ /** The message's caption. */
52
+ caption: string;
53
+ /** The entities of the message's caption. */
54
+ entities: SecretMessageEntity[];
55
+ /** Information required for downloading the file. */
56
+ fileInformation: string;
57
+ }
58
+ /**
59
+ * A secret text message.
60
+ * @unlisted
61
+ */
62
+ export interface SecretMessageText extends _SecretMessageBase {
63
+ type: "text";
64
+ /** The message's text. */
65
+ text: string;
66
+ /** The entities of the message's text. */
67
+ entities: SecretMessageEntity[];
68
+ }
69
+ /**
70
+ * A secret message sharing a location.
71
+ * @unlisted
72
+ */
73
+ export interface SecretMessageLocation extends _SecretMessageBase {
74
+ type: "location";
75
+ /** The location. */
76
+ location: Location;
77
+ }
78
+ /**
79
+ * A secret message sharing a contact.
80
+ * @unlisted
81
+ */
82
+ export interface SecretMessageContact extends _SecretMessageBase {
83
+ type: "contact";
84
+ /** The contact. */
85
+ contact: Contact;
86
+ }
87
+ /**
88
+ * A secret message sharing a venue.
89
+ * @unlisted
90
+ */
91
+ export interface SecretMessageVenue extends _SecretMessageBase {
92
+ type: "venue";
93
+ /** The venue. */
94
+ venue: Venue;
95
+ }
96
+ /**
97
+ * A secret message sharing a web page.
98
+ * @unlisted
99
+ */
100
+ export interface SecretMessageWebPage extends _SecretMessageBase {
101
+ type: "webPage";
102
+ /** The URL of the web page. */
103
+ url: string;
104
+ /** The message's caption. */
105
+ caption: string;
106
+ /** The entities of the message's caption. */
107
+ entities: SecretMessageEntity[];
108
+ }
109
+ /**
110
+ * A secret message sharing a photo.
111
+ * @unlisted
112
+ */
113
+ export interface SecretMessagePhoto extends _SecretMessageMediaBase {
114
+ type: "photo";
115
+ /** The photo included in the message. */
116
+ photo: Photo;
117
+ }
118
+ /**
119
+ * A secret message sharing a video.
120
+ * @unlisted
121
+ */
122
+ export interface SecretMessageVideo extends _SecretMessageMediaBase {
123
+ type: "video";
124
+ /** The video included in the message. */
125
+ video: Video;
126
+ }
127
+ /**
128
+ * A secret message sharing a video note.
129
+ * @unlisted
130
+ */
131
+ export interface SecretMessageVideoNote extends _SecretMessageMediaBase {
132
+ type: "videoNote";
133
+ /** The video note included in the message. */
134
+ videoNote: VideoNote;
135
+ }
136
+ /**
137
+ * A secret message sharing an audio.
138
+ * @unlisted
139
+ */
140
+ export interface SecretMessageAudio extends _SecretMessageMediaBase {
141
+ type: "audio";
142
+ /** The audio included in the message. */
143
+ audio: Audio;
144
+ }
145
+ /**
146
+ * A secret message sharing a document.
147
+ * @unlisted
148
+ */
149
+ export interface SecretMessageDocument extends _SecretMessageMediaBase {
150
+ type: "document";
151
+ /** The document included in the message. */
152
+ document: Document;
153
+ }
154
+ /**
155
+ * A secret message sharing a sticker.
156
+ * @unlisted
157
+ */
158
+ export interface SecretMessageSticker extends _SecretMessageBase {
159
+ type: "sticker";
160
+ /** The sticker included in the message. */
161
+ sticker: Sticker;
162
+ }
163
+ /**
164
+ * A secret message sharing an animation.
165
+ * @unlisted
166
+ */
167
+ export interface SecretMessageAnimation extends _SecretMessageMediaBase {
168
+ type: "animation";
169
+ /** The animation included in the message. */
170
+ animation: Animation;
171
+ }
172
+ /**
173
+ * A secret message sharing a voice.
174
+ * @unlisted
175
+ */
176
+ export interface SecretMessageVoice extends _SecretMessageMediaBase {
177
+ type: "voice";
178
+ /** The voice included in the message. */
179
+ voice: Voice;
180
+ }
181
+ /** Any type of secret message. */
182
+ export type SecretMessage = SecretMessageText | SecretMessageLocation | SecretMessageContact | SecretMessageVenue | SecretMessageWebPage | SecretMessagePhoto | SecretMessageVideo | SecretMessageVideoNote | SecretMessageAudio | SecretMessageDocument | SecretMessageSticker | SecretMessageAnimation | SecretMessageVoice;
183
+ export declare function constructSecretMessage(chatId: number, message: SecretChats.decryptedMessage, encryptedMessage: Api.EncryptedMessage): SecretMessage;
184
+ //# sourceMappingURL=2_secret_message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2_secret_message.d.ts","sourceRoot":"","sources":["../../src/types/2_secret_message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,341 @@
1
+ /**
2
+ * MTKruto - Cross-runtime JavaScript library for building Telegram clients
3
+ * Copyright (C) 2023-2026 Roj <https://roj.im/>
4
+ *
5
+ * This file is part of MTKruto.
6
+ *
7
+ * This program is free software: you can redistribute it and/or modify
8
+ * it under the terms of the GNU Lesser General Public License as published by
9
+ * the Free Software Foundation, either version 3 of the License, or
10
+ * (at your option) any later version.
11
+ *
12
+ * This program is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ * GNU Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public License
18
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
+ */
20
+ import { encodeHex } from "../0_deps.js";
21
+ import { cleanObject } from "../1_utilities.js";
22
+ import { Api, SecretChats } from "../2_tl.js";
23
+ import { FileType, PhotoSourceType, serializeFileId, toUniqueFileId } from "./_file_id.js";
24
+ import { constructSecretMessageEntity } from "./0_secret_message_entity.js";
25
+ import { constructSticker3 } from "./1_sticker.js";
26
+ export function constructSecretMessage(chatId, message, encryptedMessage) {
27
+ const isSilent = !!message.silent;
28
+ const id = String(message.random_id);
29
+ const text = message.message;
30
+ const entities = (message.entities ?? []).map(constructSecretMessageEntity).filter((v) => v !== null);
31
+ const mediaGroupId = message.grouped_id ? String(message.grouped_id) : undefined;
32
+ const replyToMessageId = message.reply_to_random_id ? String(message.reply_to_random_id) : undefined;
33
+ const ttl = message.ttl;
34
+ const viaBot = message.via_bot_name;
35
+ const messageBase = { chatId, id, isSilent, replyToMessageId, ttl, viaBot };
36
+ let fileInformation = "";
37
+ if (message.media && "key" in message.media && "iv" in message.media) {
38
+ fileInformation = `0${encodeHex(message.media.key)}${encodeHex(message.media.iv)}${message.media.size}`;
39
+ }
40
+ function getFileIds(type) {
41
+ let fileId_;
42
+ if (SecretChats.is("decryptedMessageMediaExternalDocument", message.media)) {
43
+ fileId_ = {
44
+ type,
45
+ dcId: message.media.dc_id,
46
+ location: {
47
+ type: "common",
48
+ id: message.media.id,
49
+ accessHash: message.media.access_hash,
50
+ },
51
+ };
52
+ }
53
+ else {
54
+ const file = Api.as("encryptedFile", Api.as("encryptedMessage", encryptedMessage).file);
55
+ fileId_ = {
56
+ type: FileType.Encrypted,
57
+ dcId: file.dc_id,
58
+ location: {
59
+ type: "common",
60
+ id: file.id,
61
+ accessHash: file.access_hash,
62
+ },
63
+ };
64
+ }
65
+ const fileId = serializeFileId(fileId_);
66
+ const fileUniqueId = toUniqueFileId(fileId_);
67
+ return { fileId, fileUniqueId };
68
+ }
69
+ if (message.media) {
70
+ switch (message.media._) {
71
+ case "decryptedMessageMediaGeoPoint": {
72
+ const location = { latitude: message.media.lat, longitude: message.media.long };
73
+ return cleanObject({
74
+ type: "location",
75
+ ...messageBase,
76
+ location,
77
+ });
78
+ }
79
+ case "decryptedMessageMediaContact": {
80
+ const contact = cleanObject({ firstName: message.media.first_name, lastName: message.media.last_name || undefined, phoneNumber: message.media.phone_number, userId: message.media.user_id });
81
+ return cleanObject({
82
+ type: "contact",
83
+ ...messageBase,
84
+ contact,
85
+ });
86
+ }
87
+ case "decryptedMessageMediaPhoto": {
88
+ const file = Api.as("encryptedFile", Api.as("encryptedMessage", encryptedMessage).file);
89
+ const fileId_ = {
90
+ type: FileType.Encrypted,
91
+ dcId: file.dc_id,
92
+ location: {
93
+ type: "photo",
94
+ id: file.id,
95
+ accessHash: file.access_hash,
96
+ source: {
97
+ type: PhotoSourceType.Thumbnail,
98
+ fileType: FileType.EncryptedThumbnail,
99
+ thumbnailType: "t".charCodeAt(0),
100
+ },
101
+ },
102
+ };
103
+ const fileId = serializeFileId(fileId_);
104
+ const fileUniqueId = toUniqueFileId(fileId_);
105
+ const photo = {
106
+ fileId,
107
+ fileUniqueId,
108
+ width: message.media.w,
109
+ height: message.media.h,
110
+ fileSize: message.media.size,
111
+ thumbnails: [],
112
+ };
113
+ return cleanObject({
114
+ type: "photo",
115
+ ...messageBase,
116
+ photo,
117
+ mediaGroupId,
118
+ caption: text,
119
+ entities,
120
+ fileInformation,
121
+ });
122
+ }
123
+ case "decryptedMessageMediaAudio": {
124
+ const { fileId, fileUniqueId } = getFileIds(FileType.Audio);
125
+ const audio = cleanObject({
126
+ fileId,
127
+ fileUniqueId,
128
+ duration: message.media.duration,
129
+ mimeType: message.media.mime_type,
130
+ fileSize: message.media.size,
131
+ thumbnails: [],
132
+ });
133
+ return cleanObject({
134
+ type: "audio",
135
+ ...messageBase,
136
+ audio,
137
+ mediaGroupId,
138
+ caption: text,
139
+ entities,
140
+ fileInformation,
141
+ });
142
+ }
143
+ case "decryptedMessageMediaDocument8": {
144
+ const { fileId, fileUniqueId } = getFileIds(FileType.Document);
145
+ const document = cleanObject({
146
+ fileId,
147
+ fileUniqueId,
148
+ thumbnails: [],
149
+ fileName: message.media.file_name,
150
+ mimeType: message.media.mime_type,
151
+ fileSize: message.media.size,
152
+ });
153
+ return cleanObject({
154
+ type: "document",
155
+ ...messageBase,
156
+ document,
157
+ mediaGroupId,
158
+ caption: text,
159
+ entities,
160
+ fileInformation,
161
+ });
162
+ }
163
+ case "decryptedMessageMediaExternalDocument":
164
+ case "decryptedMessageMediaDocument46":
165
+ case "decryptedMessageMediaDocument": {
166
+ const animated = message.media.attributes.find((v) => SecretChats.is("documentAttributeAnimated", v));
167
+ const audio = message.media.attributes.find((v) => SecretChats.is("documentAttributeAudio", v));
168
+ const fileName = message.media.attributes.find((v) => SecretChats.is("documentAttributeFilename", v));
169
+ const sticker = message.media.attributes.find((v) => SecretChats.is("documentAttributeSticker", v));
170
+ const video = message.media.attributes.find((v) => SecretChats.is("documentAttributeVideo", v));
171
+ if (sticker) {
172
+ const { fileId, fileUniqueId } = getFileIds(FileType.Sticker);
173
+ const sticker = constructSticker3(message.media, fileId, fileUniqueId);
174
+ return cleanObject({
175
+ type: "sticker",
176
+ ...messageBase,
177
+ sticker,
178
+ });
179
+ }
180
+ else if (animated) {
181
+ const { fileId, fileUniqueId } = getFileIds(FileType.Animation);
182
+ const animation = {
183
+ fileId,
184
+ fileUniqueId,
185
+ width: video?.w ?? 0,
186
+ height: video?.h ?? 0,
187
+ duration: video?.duration ?? 0,
188
+ thumbnails: [],
189
+ fileName: fileName?.file_name,
190
+ mimeType: message.media.mime_type,
191
+ fileSize: Number(message.media.size),
192
+ };
193
+ return cleanObject({
194
+ type: "animation",
195
+ ...messageBase,
196
+ animation,
197
+ mediaGroupId,
198
+ caption: text,
199
+ entities,
200
+ fileInformation,
201
+ });
202
+ }
203
+ else if (video) {
204
+ if (video.round_message) {
205
+ const { fileId, fileUniqueId } = getFileIds(FileType.VideoNote);
206
+ const videoNote = {
207
+ fileId,
208
+ fileUniqueId,
209
+ length: video.w,
210
+ duration: video.duration,
211
+ thumbnails: [],
212
+ fileName: fileName?.file_name,
213
+ fileSize: Number(message.media.size),
214
+ };
215
+ return cleanObject({
216
+ type: "videoNote",
217
+ ...messageBase,
218
+ videoNote,
219
+ mediaGroupId,
220
+ caption: text,
221
+ entities,
222
+ fileInformation,
223
+ });
224
+ }
225
+ else {
226
+ const { fileId, fileUniqueId } = getFileIds(FileType.Video);
227
+ const video_ = {
228
+ fileId,
229
+ fileUniqueId,
230
+ width: video.w,
231
+ height: video.h,
232
+ duration: video.duration,
233
+ thumbnails: [],
234
+ fileName: fileName?.file_name,
235
+ mimeType: message.media.mime_type,
236
+ fileSize: Number(message.media.size),
237
+ };
238
+ return cleanObject({
239
+ type: "video",
240
+ ...messageBase,
241
+ video: video_,
242
+ mediaGroupId,
243
+ caption: text,
244
+ entities,
245
+ fileInformation,
246
+ });
247
+ }
248
+ }
249
+ else if (audio) {
250
+ if (audio.voice) {
251
+ const { fileId, fileUniqueId } = getFileIds(FileType.Audio);
252
+ const voice = {
253
+ fileId,
254
+ fileUniqueId,
255
+ duration: audio.duration,
256
+ mimeType: message.media.mime_type,
257
+ fileSize: Number(message.media.size),
258
+ };
259
+ return cleanObject({
260
+ type: "voice",
261
+ ...messageBase,
262
+ voice,
263
+ mediaGroupId,
264
+ caption: text,
265
+ entities,
266
+ fileInformation,
267
+ });
268
+ }
269
+ else {
270
+ const { fileId, fileUniqueId } = getFileIds(FileType.Audio);
271
+ const audio_ = {
272
+ fileId,
273
+ fileUniqueId,
274
+ duration: audio.duration,
275
+ performer: audio.performer,
276
+ title: audio.title,
277
+ mimeType: message.media.mime_type,
278
+ fileSize: Number(message.media.size),
279
+ thumbnails: [],
280
+ };
281
+ return cleanObject({
282
+ type: "audio",
283
+ ...messageBase,
284
+ audio: audio_,
285
+ mediaGroupId,
286
+ caption: text,
287
+ entities,
288
+ fileInformation,
289
+ });
290
+ }
291
+ }
292
+ else {
293
+ const { fileId, fileUniqueId } = getFileIds(FileType.Document);
294
+ const document = {
295
+ fileId,
296
+ fileUniqueId,
297
+ thumbnails: [],
298
+ fileName: fileName?.file_name ?? "unknown",
299
+ mimeType: message.media.mime_type,
300
+ fileSize: Number(message.media.size),
301
+ };
302
+ return cleanObject({
303
+ type: "document",
304
+ ...messageBase,
305
+ document,
306
+ mediaGroupId,
307
+ caption: text,
308
+ entities,
309
+ fileInformation,
310
+ });
311
+ }
312
+ }
313
+ case "decryptedMessageMediaVideo":
314
+ break;
315
+ case "decryptedMessageMediaVenue": {
316
+ const venue = cleanObject({ title: message.media.title, address: message.media.address, location: { latitude: message.media.lat, longitude: message.media.long }, foursquareId: message.media.venue_id || undefined });
317
+ return cleanObject({
318
+ type: "venue",
319
+ ...messageBase,
320
+ venue,
321
+ });
322
+ }
323
+ case "decryptedMessageMediaWebPage": {
324
+ const url = message.media.url;
325
+ return cleanObject({
326
+ type: "webPage",
327
+ ...messageBase,
328
+ url,
329
+ caption: text,
330
+ entities,
331
+ });
332
+ }
333
+ }
334
+ }
335
+ return cleanObject({
336
+ type: "text",
337
+ ...messageBase,
338
+ text,
339
+ entities,
340
+ });
341
+ }