@mtcute/core 0.11.0 → 0.12.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 (467) hide show
  1. package/cjs/highlevel/client.d.ts +198 -18
  2. package/cjs/highlevel/client.js +53 -0
  3. package/cjs/highlevel/client.js.map +1 -1
  4. package/cjs/highlevel/methods/_imports.js.map +1 -1
  5. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  6. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  7. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  8. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  9. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  10. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  11. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  12. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  13. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  14. package/cjs/highlevel/methods/files/normalize-input-media.js +11 -10
  15. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  16. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  17. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  18. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  19. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  20. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  21. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  22. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  23. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  24. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  25. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  26. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  27. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  28. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  29. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  30. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  31. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  32. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  33. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  34. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  35. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  36. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  37. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  38. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  39. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  40. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  41. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  42. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  43. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  44. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  45. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  46. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  47. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  48. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  49. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  50. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  51. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  52. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  53. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  54. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  55. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  56. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  57. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  58. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  59. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  60. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  61. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  62. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  63. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  64. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  65. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  66. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  67. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  68. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  69. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  70. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  71. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  72. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  73. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  74. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  75. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  76. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  77. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  78. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  79. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  80. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  81. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  82. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  83. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  84. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  85. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  86. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  87. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  88. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  89. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  90. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  91. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  92. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  93. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  94. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  95. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  96. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  97. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  98. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  99. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  100. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  101. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  102. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  103. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  104. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  105. package/cjs/highlevel/methods.d.ts +12 -0
  106. package/cjs/highlevel/methods.js +33 -3
  107. package/cjs/highlevel/methods.js.map +1 -1
  108. package/cjs/highlevel/storage/storage.d.ts +7 -2
  109. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  110. package/cjs/highlevel/types/auth/sent-code.js +14 -0
  111. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  112. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  113. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  114. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  115. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  116. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  117. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  118. package/cjs/highlevel/types/files/utils.js.map +1 -1
  119. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  120. package/cjs/highlevel/types/media/document-utils.js +9 -2
  121. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  122. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  123. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  124. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  125. package/cjs/highlevel/types/media/poll.js +65 -18
  126. package/cjs/highlevel/types/media/poll.js.map +1 -1
  127. package/cjs/highlevel/types/messages/dialog.js +1 -12
  128. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  129. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  130. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  131. package/cjs/highlevel/types/messages/message-action.js +6 -0
  132. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  133. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  134. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  135. package/cjs/highlevel/types/messages/message.js +96 -1
  136. package/cjs/highlevel/types/messages/message.js.map +1 -1
  137. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  138. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  139. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  140. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  141. package/cjs/highlevel/types/misc/entities.js +15 -0
  142. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  143. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  144. package/cjs/highlevel/types/misc/index.js +1 -0
  145. package/cjs/highlevel/types/misc/index.js.map +1 -1
  146. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  147. package/cjs/highlevel/types/misc/sticker-set.js +36 -5
  148. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  149. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  150. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  151. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  152. package/cjs/highlevel/types/peers/chat.js +2 -195
  153. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  154. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  155. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  156. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  157. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  158. package/cjs/highlevel/types/peers/index.js +1 -0
  159. package/cjs/highlevel/types/peers/index.js.map +1 -1
  160. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  161. package/cjs/highlevel/types/peers/user.js +7 -0
  162. package/cjs/highlevel/types/peers/user.js.map +1 -1
  163. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  164. package/cjs/highlevel/types/premium/business-account.js +45 -0
  165. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  166. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  167. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  168. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  169. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  170. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  171. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  172. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  173. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  174. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  175. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  176. package/cjs/highlevel/types/premium/business-location.js +26 -0
  177. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  178. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  179. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  180. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  181. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  182. package/cjs/highlevel/types/premium/index.js +5 -0
  183. package/cjs/highlevel/types/premium/index.js.map +1 -1
  184. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  185. package/cjs/highlevel/types/updates/business-message.js +35 -0
  186. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  187. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  188. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  189. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  190. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  191. package/cjs/highlevel/types/updates/index.js +5 -1
  192. package/cjs/highlevel/types/updates/index.js.map +1 -1
  193. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  194. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  195. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  196. package/cjs/highlevel/types/updates/poll-update.js +2 -2
  197. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  198. package/cjs/highlevel/updates/manager.d.ts +0 -1
  199. package/cjs/highlevel/updates/manager.js +7 -2
  200. package/cjs/highlevel/updates/manager.js.map +1 -1
  201. package/cjs/highlevel/updates/parsed.js +8 -2
  202. package/cjs/highlevel/updates/parsed.js.map +1 -1
  203. package/cjs/highlevel/updates/types.d.ts +57 -0
  204. package/cjs/highlevel/updates/utils.d.ts +2 -0
  205. package/cjs/highlevel/utils/inspectable.js +7 -0
  206. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  207. package/cjs/highlevel/worker/index.js +6 -0
  208. package/cjs/highlevel/worker/protocol.d.ts +0 -1
  209. package/cjs/index.js +6 -0
  210. package/cjs/network/client.d.ts +0 -1
  211. package/cjs/network/mtproto-session.d.ts +0 -1
  212. package/cjs/network/multi-session-connection.d.ts +0 -1
  213. package/cjs/network/network-manager.d.ts +8 -0
  214. package/cjs/network/network-manager.js +9 -4
  215. package/cjs/network/network-manager.js.map +1 -1
  216. package/cjs/network/persistent-connection.d.ts +0 -1
  217. package/cjs/network/session-connection.js +10 -0
  218. package/cjs/network/session-connection.js.map +1 -1
  219. package/cjs/network/transports/abstract.d.ts +0 -1
  220. package/cjs/network/transports/streamed.d.ts +0 -1
  221. package/cjs/network/transports/wrapped.d.ts +0 -1
  222. package/cjs/platform.js +6 -0
  223. package/cjs/storage/sqlite/repository/peers.js +1 -2
  224. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  225. package/cjs/storage/storage.d.ts +21 -0
  226. package/cjs/types/utils.d.ts +1 -0
  227. package/cjs/types/utils.js.map +1 -1
  228. package/cjs/utils/index.js +6 -0
  229. package/cjs/utils/reloadable.d.ts +0 -1
  230. package/client.d.ts +1 -0
  231. package/client.js +1 -0
  232. package/esm/highlevel/client.d.ts +198 -18
  233. package/esm/highlevel/client.js +47 -0
  234. package/esm/highlevel/client.js.map +1 -1
  235. package/esm/highlevel/methods/_imports.js.map +1 -1
  236. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  237. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  238. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  239. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  240. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  241. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  242. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  243. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  244. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  245. package/esm/highlevel/methods/files/normalize-input-media.js +11 -10
  246. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  247. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  248. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  249. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  250. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  251. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  252. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  253. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  254. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  255. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  256. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  257. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  258. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  259. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  260. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  261. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  262. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  263. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  264. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  265. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  266. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  267. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  268. package/esm/highlevel/methods/messages/search-global.js +2 -1
  269. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  270. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  271. package/esm/highlevel/methods/messages/send-common.js +19 -0
  272. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  273. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  274. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  275. package/esm/highlevel/methods/messages/send-media.js +4 -2
  276. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  277. package/esm/highlevel/methods/messages/send-text.js +4 -2
  278. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  279. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  280. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  281. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  282. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  283. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  284. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  285. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  286. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  287. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  288. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  289. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  290. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  291. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  292. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  293. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  294. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  295. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  296. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  297. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  298. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  299. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  300. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  301. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  302. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  303. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  304. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  305. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  306. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  307. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  308. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  309. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  310. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  311. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  312. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  313. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  314. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  315. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  316. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  317. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  318. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  319. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  320. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  321. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  322. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  323. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  324. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  325. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  326. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  327. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  328. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  329. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  330. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  331. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  332. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  333. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  334. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  335. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  336. package/esm/highlevel/methods.d.ts +12 -0
  337. package/esm/highlevel/methods.js +12 -0
  338. package/esm/highlevel/methods.js.map +1 -1
  339. package/esm/highlevel/storage/storage.d.ts +7 -2
  340. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  341. package/esm/highlevel/types/auth/sent-code.js +14 -0
  342. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  343. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  344. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  345. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  346. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  347. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  348. package/esm/highlevel/types/files/utils.d.ts +6 -5
  349. package/esm/highlevel/types/files/utils.js.map +1 -1
  350. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  351. package/esm/highlevel/types/media/document-utils.js +7 -1
  352. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  353. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  354. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  355. package/esm/highlevel/types/media/poll.d.ts +17 -6
  356. package/esm/highlevel/types/media/poll.js +64 -17
  357. package/esm/highlevel/types/media/poll.js.map +1 -1
  358. package/esm/highlevel/types/messages/dialog.js +1 -12
  359. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  360. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  361. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  362. package/esm/highlevel/types/messages/message-action.js +6 -0
  363. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  364. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  365. package/esm/highlevel/types/messages/message.d.ts +59 -1
  366. package/esm/highlevel/types/messages/message.js +96 -1
  367. package/esm/highlevel/types/messages/message.js.map +1 -1
  368. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  369. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  370. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  371. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  372. package/esm/highlevel/types/misc/entities.js +13 -1
  373. package/esm/highlevel/types/misc/entities.js.map +1 -1
  374. package/esm/highlevel/types/misc/index.d.ts +1 -0
  375. package/esm/highlevel/types/misc/index.js +1 -0
  376. package/esm/highlevel/types/misc/index.js.map +1 -1
  377. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  378. package/esm/highlevel/types/misc/sticker-set.js +38 -7
  379. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  380. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  381. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  382. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  383. package/esm/highlevel/types/peers/chat.js +2 -195
  384. package/esm/highlevel/types/peers/chat.js.map +1 -1
  385. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  386. package/esm/highlevel/types/peers/full-chat.js +234 -0
  387. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  388. package/esm/highlevel/types/peers/index.d.ts +1 -0
  389. package/esm/highlevel/types/peers/index.js +1 -0
  390. package/esm/highlevel/types/peers/index.js.map +1 -1
  391. package/esm/highlevel/types/peers/user.d.ts +5 -0
  392. package/esm/highlevel/types/peers/user.js +7 -0
  393. package/esm/highlevel/types/peers/user.js.map +1 -1
  394. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  395. package/esm/highlevel/types/premium/business-account.js +42 -0
  396. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  397. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  398. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  399. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  400. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  401. package/esm/highlevel/types/premium/business-connection.js +42 -0
  402. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  403. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  404. package/esm/highlevel/types/premium/business-intro.js +40 -0
  405. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  406. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  407. package/esm/highlevel/types/premium/business-location.js +23 -0
  408. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  409. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  410. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  411. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  412. package/esm/highlevel/types/premium/index.d.ts +5 -0
  413. package/esm/highlevel/types/premium/index.js +5 -0
  414. package/esm/highlevel/types/premium/index.js.map +1 -1
  415. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  416. package/esm/highlevel/types/updates/business-message.js +31 -0
  417. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  418. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  419. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  420. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  421. package/esm/highlevel/types/updates/index.d.ts +19 -2
  422. package/esm/highlevel/types/updates/index.js +3 -1
  423. package/esm/highlevel/types/updates/index.js.map +1 -1
  424. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  425. package/esm/highlevel/types/updates/parse-update.js +9 -1
  426. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  427. package/esm/highlevel/types/updates/poll-update.js +2 -2
  428. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  429. package/esm/highlevel/updates/manager.d.ts +0 -1
  430. package/esm/highlevel/updates/manager.js +7 -2
  431. package/esm/highlevel/updates/manager.js.map +1 -1
  432. package/esm/highlevel/updates/parsed.js +8 -2
  433. package/esm/highlevel/updates/parsed.js.map +1 -1
  434. package/esm/highlevel/updates/types.d.ts +57 -0
  435. package/esm/highlevel/updates/utils.d.ts +2 -0
  436. package/esm/highlevel/utils/inspectable.js +4 -0
  437. package/esm/highlevel/utils/inspectable.js.map +1 -1
  438. package/esm/highlevel/worker/protocol.d.ts +0 -1
  439. package/esm/network/client.d.ts +0 -1
  440. package/esm/network/mtproto-session.d.ts +0 -1
  441. package/esm/network/multi-session-connection.d.ts +0 -1
  442. package/esm/network/network-manager.d.ts +8 -0
  443. package/esm/network/network-manager.js +9 -4
  444. package/esm/network/network-manager.js.map +1 -1
  445. package/esm/network/persistent-connection.d.ts +0 -1
  446. package/esm/network/session-connection.js +10 -0
  447. package/esm/network/session-connection.js.map +1 -1
  448. package/esm/network/transports/abstract.d.ts +0 -1
  449. package/esm/network/transports/streamed.d.ts +0 -1
  450. package/esm/network/transports/wrapped.d.ts +0 -1
  451. package/esm/storage/sqlite/repository/peers.js +1 -2
  452. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  453. package/esm/storage/storage.d.ts +21 -0
  454. package/esm/types/utils.d.ts +1 -0
  455. package/esm/types/utils.js.map +1 -1
  456. package/esm/utils/reloadable.d.ts +0 -1
  457. package/index.d.ts +1 -0
  458. package/index.js +1 -0
  459. package/methods.d.ts +1 -0
  460. package/methods.js +1 -0
  461. package/package.json +5 -5
  462. package/platform.d.ts +1 -0
  463. package/platform.js +1 -0
  464. package/utils.d.ts +1 -0
  465. package/utils.js +1 -0
  466. package/worker.d.ts +1 -0
  467. package/worker.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"_imports.js","sourceRoot":"","sources":["../../../../src/highlevel/methods/_imports.ts"],"names":[],"mappings":";AAAA,sDAAsD","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\n// @copy\nimport { tdFileId } from '@mtcute/file-id'\n// @copy\nimport { tl } from '@mtcute/tl'\n\n// @copy\nimport { RpcCallOptions } from '../../network/index.js'\n// @copy\nimport { MaybeArray, MaybePromise, MtUnsupportedError, PartialExcept, PartialOnly } from '../../types/index.js'\n// @copy\nimport { BaseTelegramClient, BaseTelegramClientOptions } from '../base.js'\n// @copy\nimport { ITelegramClient } from '../client.types.js'\n// @copy\nimport {\n AllStories,\n ArrayPaginated,\n ArrayWithTotal,\n Boost,\n BoostSlot,\n BoostStats,\n BotChatJoinRequestUpdate,\n BotCommands,\n BotReactionCountUpdate,\n BotReactionUpdate,\n BotStoppedUpdate,\n CallbackQuery,\n Chat,\n ChatEvent,\n ChatInviteLink,\n ChatInviteLinkMember,\n ChatJoinRequestUpdate,\n ChatMember,\n ChatMemberUpdate,\n ChatPreview,\n ChosenInlineResult,\n DeleteMessageUpdate,\n DeleteStoryUpdate,\n Dialog,\n FileDownloadLocation,\n FileDownloadParameters,\n ForumTopic,\n GameHighScore,\n HistoryReadUpdate,\n InlineCallbackQuery,\n InlineQuery,\n InputChatEventFilters,\n InputDialogFolder,\n InputFileLike,\n InputInlineResult,\n InputMediaLike,\n InputMessageId,\n InputPeerLike,\n InputPrivacyRule,\n InputReaction,\n InputStickerSet,\n InputStickerSetItem,\n InputText,\n MaybeDynamic,\n Message,\n MessageMedia,\n MessageReactions,\n ParametersSkip2,\n ParsedUpdate,\n PeerReaction,\n PeersIndex,\n PeerStories,\n Photo,\n Poll,\n PollUpdate,\n PollVoteUpdate,\n PreCheckoutQuery,\n RawDocument,\n ReplyMarkup,\n SentCode,\n Sticker,\n StickerSet,\n StickerSourceType,\n StickerType,\n StoriesStealthMode,\n Story,\n StoryInteractions,\n StoryUpdate,\n StoryViewer,\n StoryViewersList,\n TakeoutSession,\n TextWithEntities,\n TypingStatus,\n UploadedFile,\n UploadFileLike,\n User,\n UserStatusUpdate,\n UserTypingUpdate,\n} from '../types/index.js'\n// @copy\nimport { StringSessionData } from '../utils/string-session.js'\n"]}
1
+ {"version":3,"file":"_imports.js","sourceRoot":"","sources":["../../../../src/highlevel/methods/_imports.ts"],"names":[],"mappings":";AAAA,sDAAsD","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\n// @copy\nimport { tdFileId } from '@mtcute/file-id'\n// @copy\nimport { tl } from '@mtcute/tl'\n\n// @copy\nimport { RpcCallOptions } from '../../network/index.js'\n// @copy\nimport { MaybeArray, MaybePromise, MtUnsupportedError, PartialExcept, PartialOnly } from '../../types/index.js'\n// @copy\nimport { BaseTelegramClient, BaseTelegramClientOptions } from '../base.js'\n// @copy\nimport { ITelegramClient } from '../client.types.js'\n// @copy\nimport {\n AllStories,\n ArrayPaginated,\n ArrayWithTotal,\n Boost,\n BoostSlot,\n BoostStats,\n BotChatJoinRequestUpdate,\n BotCommands,\n BotReactionCountUpdate,\n BotReactionUpdate,\n BotStoppedUpdate,\n BusinessChatLink,\n BusinessConnection,\n BusinessMessage,\n BusinessWorkHoursDay,\n CallbackQuery,\n Chat,\n ChatEvent,\n ChatInviteLink,\n ChatInviteLinkMember,\n ChatJoinRequestUpdate,\n ChatMember,\n ChatMemberUpdate,\n ChatPreview,\n ChosenInlineResult,\n CollectibleInfo,\n DeleteBusinessMessageUpdate,\n DeleteMessageUpdate,\n DeleteStoryUpdate,\n Dialog,\n FileDownloadLocation,\n FileDownloadParameters,\n ForumTopic,\n FullChat,\n GameHighScore,\n HistoryReadUpdate,\n InlineCallbackQuery,\n InlineQuery,\n InputChatEventFilters,\n InputDialogFolder,\n InputFileLike,\n InputInlineResult,\n InputMediaLike,\n InputMediaSticker,\n InputMessageId,\n InputPeerLike,\n InputPrivacyRule,\n InputReaction,\n InputStickerSet,\n InputStickerSetItem,\n InputText,\n MaybeDynamic,\n Message,\n MessageMedia,\n MessageReactions,\n ParametersSkip2,\n ParsedUpdate,\n PeerReaction,\n PeersIndex,\n PeerStories,\n Photo,\n Poll,\n PollUpdate,\n PollVoteUpdate,\n PreCheckoutQuery,\n RawDocument,\n ReplyMarkup,\n SentCode,\n Sticker,\n StickerSet,\n StickerSourceType,\n StickerType,\n StoriesStealthMode,\n Story,\n StoryInteractions,\n StoryUpdate,\n StoryViewer,\n StoryViewersList,\n TakeoutSession,\n TextWithEntities,\n TypingStatus,\n UploadedFile,\n UploadFileLike,\n User,\n UserStatusUpdate,\n UserTypingUpdate,\n} from '../types/index.js'\n// @copy\nimport { StringSessionData } from '../utils/string-session.js'\n"]}
@@ -1,5 +1,8 @@
1
1
  import { tl } from '@mtcute/tl';
2
2
  import { ITelegramClient } from '../../client.types.js';
3
+ import { User } from '../../types/peers/user.js';
4
+ /** @internal */
5
+ export declare function _onAuthorization(client: ITelegramClient, auth: tl.auth.TypeAuthorization): Promise<User>;
3
6
  /**
4
7
  * Check if the given peer/input peer is referring to the current user
5
8
  */
@@ -1 +1,5 @@
1
- export {};
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
3
+ import { BotCommands } from '../../types/index.js';
4
+ /** @internal */
5
+ export declare function _normalizeCommandScope(client: ITelegramClient, scope: tl.TypeBotCommandScope | BotCommands.IntermediateScope): Promise<tl.TypeBotCommandScope>;
@@ -1 +1,10 @@
1
- export {};
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
3
+ /** @internal */
4
+ export declare const _getUsersBatched: (client: ITelegramClient, item: tl.TypeInputUser) => Promise<tl.TypeUser | null>;
5
+ /** @internal */
6
+ export declare const _getChatsBatched: (client: ITelegramClient, item: number) => Promise<tl.RawChat | null>;
7
+ /** @internal */
8
+ export declare const _getChannelsBatched: (client: ITelegramClient, item: tl.TypeInputChannel) => Promise<tl.RawChannel | tl.RawChannelForbidden | null>;
9
+ /** @internal */
10
+ export declare function _getRawPeerBatched(client: ITelegramClient, peer: tl.TypeInputPeer): Promise<tl.TypeUser | tl.TypeChat | null>;
@@ -1,5 +1,5 @@
1
1
  import { ITelegramClient } from '../../client.types.js';
2
- import { Chat, InputPeerLike } from '../../types/index.js';
2
+ import { FullChat, InputPeerLike } from '../../types/index.js';
3
3
  /**
4
4
  * Get full information about a chat.
5
5
  *
@@ -8,4 +8,4 @@ import { Chat, InputPeerLike } from '../../types/index.js';
8
8
  * In case you are trying to get info about private chat that you haven't joined.
9
9
  * Use {@link getChatPreview} instead.
10
10
  */
11
- export declare function getFullChat(client: ITelegramClient, chatId: InputPeerLike): Promise<Chat>;
11
+ export declare function getFullChat(client: ITelegramClient, chatId: InputPeerLike): Promise<FullChat>;
@@ -51,7 +51,7 @@ async function getFullChat(client, chatId) {
51
51
  }
52
52
  else
53
53
  throw new Error('should not happen');
54
- return index_js_1.Chat._parseFull(res);
54
+ return index_js_1.FullChat._parse(res);
55
55
  }
56
56
  exports.getFullChat = getFullChat;
57
57
  //# sourceMappingURL=get-full-chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-full-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/get-full-chat.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAE1D,mDAA0D;AAC1D,6DAOkC;AAClC,8DAAsD;AAEtD,kBAAkB;AAClB;;;;;;;GAOG;AACI,KAAK,UAAU,WAAW,CAAC,MAAuB,EAAE,MAAqB;IAC5E,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiB,CAAC,CAAA;QAEzC,IAAI,CAAC,EAAE,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC1B,CAAC,EAAE,0BAA0B;gBAC7B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACb,CAAC,CAAA;YAEF,IAAI,GAAG,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,2BAAe,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChF,CAAC;YAED,wCAAwC;YACxC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;QACxB,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,GAAqD,CAAA;IACzD,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,yBAAyB;YAC5B,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;SAChC,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,mBAAmB;YACtB,EAAE,EAAE,IAAA,2BAAW,EAAC,IAAI,CAAE;SACzB,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,sBAAsB;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;IACN,CAAC;;QAAM,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAE3C,OAAO,eAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAxCD,kCAwCC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Chat, InputPeerLike } from '../../types/index.js'\nimport {\n INVITE_LINK_REGEX,\n isInputPeerChannel,\n isInputPeerChat,\n isInputPeerUser,\n toInputChannel,\n toInputUser,\n} from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @available=both\n/**\n * Get full information about a chat.\n *\n * @param chatId ID of the chat, its username or invite link\n * @throws MtArgumentError\n * In case you are trying to get info about private chat that you haven't joined.\n * Use {@link getChatPreview} instead.\n */\nexport async function getFullChat(client: ITelegramClient, chatId: InputPeerLike): Promise<Chat> {\n if (typeof chatId === 'string') {\n const m = chatId.match(INVITE_LINK_REGEX)\n\n if (m) {\n const res = await client.call({\n _: 'messages.checkChatInvite',\n hash: m[1],\n })\n\n if (res._ === 'chatInvite') {\n throw new MtArgumentError(`You haven't joined ${JSON.stringify(res.title)}`)\n }\n\n // we still need to fetch full chat info\n chatId = res.chat.id\n }\n }\n\n const peer = await resolvePeer(client, chatId)\n\n let res: tl.messages.TypeChatFull | tl.users.TypeUserFull\n if (isInputPeerChannel(peer)) {\n res = await client.call({\n _: 'channels.getFullChannel',\n channel: toInputChannel(peer),\n })\n } else if (isInputPeerUser(peer)) {\n res = await client.call({\n _: 'users.getFullUser',\n id: toInputUser(peer)!,\n })\n } else if (isInputPeerChat(peer)) {\n res = await client.call({\n _: 'messages.getFullChat',\n chatId: peer.chatId,\n })\n } else throw new Error('should not happen')\n\n return Chat._parseFull(res)\n}\n"]}
1
+ {"version":3,"file":"get-full-chat.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/get-full-chat.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAE1D,mDAA8D;AAC9D,6DAOkC;AAClC,8DAAsD;AAEtD,kBAAkB;AAClB;;;;;;;GAOG;AACI,KAAK,UAAU,WAAW,CAAC,MAAuB,EAAE,MAAqB;IAC5E,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiB,CAAC,CAAA;QAEzC,IAAI,CAAC,EAAE,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBAC1B,CAAC,EAAE,0BAA0B;gBAC7B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;aACb,CAAC,CAAA;YAEF,IAAI,GAAG,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;gBACzB,MAAM,IAAI,2BAAe,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChF,CAAC;YAED,wCAAwC;YACxC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;QACxB,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,GAAqD,CAAA;IACzD,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,yBAAyB;YAC5B,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;SAChC,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,mBAAmB;YACtB,EAAE,EAAE,IAAA,2BAAW,EAAC,IAAI,CAAE;SACzB,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACpB,CAAC,EAAE,sBAAsB;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;IACN,CAAC;;QAAM,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IAE3C,OAAO,mBAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAxCD,kCAwCC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { FullChat, InputPeerLike } from '../../types/index.js'\nimport {\n INVITE_LINK_REGEX,\n isInputPeerChannel,\n isInputPeerChat,\n isInputPeerUser,\n toInputChannel,\n toInputUser,\n} from '../../utils/peer-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @available=both\n/**\n * Get full information about a chat.\n *\n * @param chatId ID of the chat, its username or invite link\n * @throws MtArgumentError\n * In case you are trying to get info about private chat that you haven't joined.\n * Use {@link getChatPreview} instead.\n */\nexport async function getFullChat(client: ITelegramClient, chatId: InputPeerLike): Promise<FullChat> {\n if (typeof chatId === 'string') {\n const m = chatId.match(INVITE_LINK_REGEX)\n\n if (m) {\n const res = await client.call({\n _: 'messages.checkChatInvite',\n hash: m[1],\n })\n\n if (res._ === 'chatInvite') {\n throw new MtArgumentError(`You haven't joined ${JSON.stringify(res.title)}`)\n }\n\n // we still need to fetch full chat info\n chatId = res.chat.id\n }\n }\n\n const peer = await resolvePeer(client, chatId)\n\n let res: tl.messages.TypeChatFull | tl.users.TypeUserFull\n if (isInputPeerChannel(peer)) {\n res = await client.call({\n _: 'channels.getFullChannel',\n channel: toInputChannel(peer),\n })\n } else if (isInputPeerUser(peer)) {\n res = await client.call({\n _: 'users.getFullUser',\n id: toInputUser(peer)!,\n })\n } else if (isInputPeerChat(peer)) {\n res = await client.call({\n _: 'messages.getFullChat',\n chatId: peer.chatId,\n })\n } else throw new Error('should not happen')\n\n return FullChat._parse(res)\n}\n"]}
@@ -1,6 +1,9 @@
1
1
  import { tl } from '@mtcute/tl';
2
2
  import { ITelegramClient } from '../../client.types.js';
3
+ import { InputDialogFolder } from '../../types/index.js';
3
4
  /**
4
5
  * Get list of folders.
5
6
  */
6
7
  export declare function getFolders(client: ITelegramClient): Promise<tl.messages.RawDialogFilters>;
8
+ /** @internal */
9
+ export declare function _normalizeInputFolder(client: ITelegramClient, folder: InputDialogFolder): Promise<tl.TypeDialogFilter>;
@@ -1 +1,9 @@
1
- export {};
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
3
+ import { InputFileLike } from '../../types/index.js';
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare function _normalizeFileToDocument(client: ITelegramClient, file: InputFileLike | tl.TypeInputDocument, params: {
8
+ progressCallback?: (uploaded: number, total: number) => void;
9
+ }): Promise<tl.TypeInputDocument>;
@@ -8,4 +8,5 @@ import { InputMediaLike } from '../../types/media/input-media/types.js';
8
8
  export declare function _normalizeInputMedia(client: ITelegramClient, media: InputMediaLike, params?: {
9
9
  progressCallback?: (uploaded: number, total: number) => void;
10
10
  uploadPeer?: tl.TypeInputPeer;
11
+ businessConnectionId?: string;
11
12
  }, uploadMedia?: boolean): Promise<tl.TypeInputMedia>;
@@ -10,6 +10,7 @@ const tl_1 = require("@mtcute/tl");
10
10
  const platform_js_1 = require("../../../platform.js");
11
11
  const type_assertions_js_1 = require("../../../utils/type-assertions.js");
12
12
  const uploaded_file_js_1 = require("../../types/files/uploaded-file.js");
13
+ const entities_js_1 = require("../../types/misc/entities.js");
13
14
  const convert_file_id_js_1 = require("../../utils/convert-file-id.js");
14
15
  const misc_utils_js_1 = require("../../utils/misc-utils.js");
15
16
  const voice_utils_js_1 = require("../../utils/voice-utils.js");
@@ -130,15 +131,14 @@ async function _normalizeInputMedia(client, media, params = {}, uploadMedia = fa
130
131
  }
131
132
  if (media.type === 'poll' || media.type === 'quiz') {
132
133
  const answers = media.answers.map((ans, idx) => {
133
- if (typeof ans === 'string') {
134
- return {
135
- _: 'pollAnswer',
136
- text: ans,
137
- // emulate the behaviour of most implementations
138
- option: new Uint8Array([48 /* '0' */ + idx]),
139
- };
140
- }
141
- return ans;
134
+ if (typeof ans === 'object' && tl_1.tl.isAnyPollAnswer(ans))
135
+ return ans;
136
+ return {
137
+ _: 'pollAnswer',
138
+ text: (0, entities_js_1.inputTextToTl)(ans),
139
+ // emulate the behaviour of most implementations
140
+ option: new Uint8Array([48 /* '0' */ + idx]),
141
+ };
142
142
  });
143
143
  let correct = undefined;
144
144
  let solution = undefined;
@@ -166,7 +166,7 @@ async function _normalizeInputMedia(client, media, params = {}, uploadMedia = fa
166
166
  publicVoters: media.public,
167
167
  multipleChoice: media.multiple,
168
168
  quiz: media.type === 'quiz',
169
- question: media.question,
169
+ question: (0, entities_js_1.inputTextToTl)(media.question),
170
170
  answers,
171
171
  closePeriod: media.closePeriod,
172
172
  closeDate: (0, misc_utils_js_1.normalizeDate)(media.closeDate),
@@ -222,6 +222,7 @@ async function _normalizeInputMedia(client, media, params = {}, uploadMedia = fa
222
222
  _: 'messages.uploadMedia',
223
223
  peer: uploadPeer,
224
224
  media: inputMedia,
225
+ businessConnectionId: params.businessConnectionId,
225
226
  });
226
227
  if (photo) {
227
228
  (0, type_assertions_js_1.assertTypeIs)('normalizeInputMedia (@ messages.uploadMedia)', res, 'messageMediaPhoto');
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-input-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/normalize-input-media.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { parseFileId, tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { isUploadedFile } from '../../types/files/uploaded-file.js'\nimport { UploadFileLike } from '../../types/files/utils.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { fileIdToInputDocument, fileIdToInputPhoto } from '../../utils/convert-file-id.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { encodeWaveform } from '../../utils/voice-utils.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _normalizeInputFile } from './normalize-input-file.js'\nimport { uploadFile } from './upload-file.js'\n\n/**\n * Normalize an {@link InputMediaLike} to `InputMedia`,\n * uploading the file if needed.\n */\nexport async function _normalizeInputMedia(\n client: ITelegramClient,\n media: InputMediaLike,\n params: {\n progressCallback?: (uploaded: number, total: number) => void\n uploadPeer?: tl.TypeInputPeer\n } = {},\n uploadMedia = false,\n): Promise<tl.TypeInputMedia> {\n // my condolences to those poor souls who are going to maintain this (myself included)\n\n // thanks to @pacificescape for pointing out messages.uploadMedia method\n\n if (tl.isAnyInputMedia(media)) {\n // make sure the peers in the media are correctly resolved (i.e. mtcute.* ones are replaced with proper ones)\n switch (media._) {\n case 'inputMediaStory':\n return {\n ...media,\n peer: await resolvePeer(client, media.peer),\n }\n }\n\n return media\n }\n\n if (media.type === 'venue') {\n return {\n _: 'inputMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: media.latitude,\n long: media.longitude,\n },\n title: media.title,\n address: media.address,\n provider: media.source?.provider ?? '',\n venueId: media.source?.id ?? '',\n venueType: media.source?.type ?? '',\n }\n }\n\n if (media.type === 'geo') {\n return {\n _: 'inputMediaGeoPoint',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: media.latitude,\n long: media.longitude,\n },\n }\n }\n\n if (media.type === 'geo_live') {\n return {\n _: 'inputMediaGeoLive',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: media.latitude,\n long: media.longitude,\n },\n stopped: media.stopped,\n heading: media.heading,\n period: media.period,\n proximityNotificationRadius: media.proximityNotificationRadius,\n }\n }\n\n if (media.type === 'dice') {\n return {\n _: 'inputMediaDice',\n emoticon: media.emoji,\n }\n }\n\n if (media.type === 'contact') {\n return {\n _: 'inputMediaContact',\n phoneNumber: media.phone,\n firstName: media.firstName,\n lastName: media.lastName ?? '',\n vcard: media.vcard ?? '',\n }\n }\n\n if (media.type === 'game') {\n return {\n _: 'inputMediaGame',\n id:\n typeof media.game === 'string' ?\n {\n _: 'inputGameShortName',\n botId: { _: 'inputUserSelf' },\n shortName: media.game,\n } :\n media.game,\n }\n }\n\n if (media.type === 'invoice') {\n return {\n _: 'inputMediaInvoice',\n title: media.title,\n description: media.description,\n photo:\n typeof media.photo === 'string' ?\n {\n _: 'inputWebDocument',\n url: media.photo,\n mimeType: 'image/jpeg',\n size: 0,\n attributes: [],\n } :\n media.photo,\n invoice: media.invoice,\n payload: media.payload,\n provider: media.token,\n providerData: {\n _: 'dataJSON',\n data: JSON.stringify(media.providerData),\n },\n startParam: media.startParam,\n extendedMedia: media.extendedMedia ?\n await _normalizeInputMedia(client, media.extendedMedia, params) :\n undefined,\n }\n }\n\n if (media.type === 'poll' || media.type === 'quiz') {\n const answers: tl.TypePollAnswer[] = media.answers.map((ans, idx) => {\n if (typeof ans === 'string') {\n return {\n _: 'pollAnswer',\n text: ans,\n // emulate the behaviour of most implementations\n option: new Uint8Array([48 /* '0' */ + idx]),\n }\n }\n\n return ans\n })\n\n let correct: Uint8Array[] | undefined = undefined\n let solution: string | undefined = undefined\n let solutionEntities: tl.TypeMessageEntity[] | undefined = undefined\n\n if (media.type === 'quiz') {\n let input = media.correct\n if (!Array.isArray(input)) input = [input]\n correct = input.map((it) => {\n if (typeof it === 'number') {\n return answers[it].option\n }\n\n return it\n })\n\n if (media.solution) {\n [solution, solutionEntities] = await _normalizeInputText(client, media.solution)\n }\n }\n\n return {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n closed: media.closed,\n id: Long.ZERO,\n publicVoters: media.public,\n multipleChoice: media.multiple,\n quiz: media.type === 'quiz',\n question: media.question,\n answers,\n closePeriod: media.closePeriod,\n closeDate: normalizeDate(media.closeDate),\n },\n correctAnswers: correct,\n solution,\n solutionEntities,\n }\n }\n\n if (media.type === 'story') {\n return {\n _: 'inputMediaStory',\n peer: await resolvePeer(client, media.peer),\n id: media.id,\n }\n }\n\n if (media.type === 'webpage') {\n return {\n _: 'inputMediaWebPage',\n forceLargeMedia: media.size === 'large',\n forceSmallMedia: media.size === 'small',\n optional: !media.required,\n url: media.url,\n }\n }\n\n let inputFile: tl.TypeInputFile | undefined = undefined\n let thumb: tl.TypeInputFile | undefined = undefined\n let mime = 'application/octet-stream'\n\n const upload = async (file: UploadFileLike): Promise<void> => {\n let sendMime\n\n if (media.type === 'sticker') {\n sendMime = media.isAnimated ? 'application/x-tgsticker' : 'image/webp'\n } else {\n sendMime = media.fileMime\n }\n\n const uploaded = await uploadFile(client, {\n file,\n progressCallback: params.progressCallback,\n fileName: media.fileName,\n fileMime: sendMime,\n fileSize: media.fileSize,\n requireFileSize: media.type === 'photo',\n })\n inputFile = uploaded.inputFile\n mime = uploaded.mime\n }\n\n const uploadPeer = params.uploadPeer ?? { _: 'inputPeerSelf' }\n\n const uploadMediaIfNeeded = async (inputMedia: tl.TypeInputMedia, photo: boolean): Promise<tl.TypeInputMedia> => {\n if (!uploadMedia) return inputMedia\n\n const res = await client.call({\n _: 'messages.uploadMedia',\n peer: uploadPeer,\n media: inputMedia,\n })\n\n if (photo) {\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res, 'messageMediaPhoto')\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res.photo!, 'photo')\n\n return {\n _: 'inputMediaPhoto',\n id: {\n _: 'inputPhoto',\n id: res.photo.id,\n accessHash: res.photo.accessHash,\n fileReference: res.photo.fileReference,\n },\n ttlSeconds: media.ttlSeconds,\n spoiler: media.type === 'video' && media.spoiler,\n }\n }\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res, 'messageMediaDocument')\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res.document!, 'document')\n\n return {\n _: 'inputMediaDocument',\n id: {\n _: 'inputDocument',\n id: res.document.id,\n accessHash: res.document.accessHash,\n fileReference: res.document.fileReference,\n },\n ttlSeconds: media.ttlSeconds,\n spoiler: media.type === 'video' && media.spoiler,\n }\n }\n\n const input = media.file\n\n if (tdFileId.isFileIdLike(input)) {\n if (typeof input === 'string' && input.match(/^https?:\\/\\//)) {\n return uploadMediaIfNeeded(\n {\n _: media.type === 'photo' ? 'inputMediaPhotoExternal' : 'inputMediaDocumentExternal',\n url: input,\n },\n media.type === 'photo',\n )\n } else if (typeof input === 'string' && input.match(/^file:/)) {\n await upload(input.substring(5))\n } else {\n const parsed = typeof input === 'string' ? parseFileId(getPlatform(), input) : input\n\n if (parsed.location._ === 'photo') {\n return {\n _: 'inputMediaPhoto',\n id: fileIdToInputPhoto(parsed),\n }\n } else if (parsed.location._ === 'web') {\n return uploadMediaIfNeeded(\n {\n _:\n parsed.type === tdFileId.FileType.Photo ?\n 'inputMediaPhotoExternal' :\n 'inputMediaDocumentExternal',\n url: parsed.location.url,\n },\n parsed.type === tdFileId.FileType.Photo,\n )\n }\n\n return {\n _: 'inputMediaDocument',\n id: fileIdToInputDocument(parsed),\n }\n }\n } else if (typeof input === 'object' && tl.isAnyInputMedia(input)) {\n return input\n } else if (isUploadedFile(input)) {\n inputFile = input.inputFile\n mime = input.mime\n } else if (typeof input === 'object' && tl.isAnyInputFile(input)) {\n inputFile = input\n } else {\n await upload(input)\n }\n\n if (!inputFile) throw new Error('should not happen')\n\n if (media.type === 'photo') {\n return uploadMediaIfNeeded(\n {\n _: 'inputMediaUploadedPhoto',\n file: inputFile,\n ttlSeconds: media.ttlSeconds,\n spoiler: media.spoiler,\n },\n true,\n )\n }\n\n if ('thumb' in media && media.thumb) {\n thumb = await _normalizeInputFile(client, media.thumb, {})\n }\n\n const attributes: tl.TypeDocumentAttribute[] = []\n\n if (media.type !== 'voice') {\n attributes.push({\n _: 'documentAttributeFilename',\n fileName: media.fileName || inputFile.name,\n })\n }\n\n if (media.type === 'video') {\n attributes.push({\n _: 'documentAttributeVideo',\n duration: media.duration || 0,\n w: media.width || 0,\n h: media.height || 0,\n supportsStreaming: media.supportsStreaming,\n roundMessage: media.isRound,\n })\n\n if (media.isAnimated) {\n attributes.push({ _: 'documentAttributeAnimated' })\n }\n }\n\n if (media.type === 'audio' || media.type === 'voice') {\n attributes.push({\n _: 'documentAttributeAudio',\n voice: media.type === 'voice',\n duration: media.duration || 0,\n title: media.type === 'audio' ? media.title : undefined,\n performer: media.type === 'audio' ? media.performer : undefined,\n waveform: media.type === 'voice' && media.waveform ? encodeWaveform(media.waveform) : undefined,\n })\n }\n\n if (media.type === 'sticker') {\n attributes.push({\n _: 'documentAttributeSticker',\n stickerset: {\n _: 'inputStickerSetEmpty',\n },\n alt: media.alt ?? '',\n })\n }\n\n return uploadMediaIfNeeded(\n {\n _: 'inputMediaUploadedDocument',\n nosoundVideo: media.type === 'video' && media.isAnimated,\n forceFile: media.type === 'document',\n file: inputFile,\n thumb,\n mimeType: mime,\n attributes,\n ttlSeconds: media.ttlSeconds,\n spoiler: media.type === 'video' && media.spoiler,\n },\n false,\n )\n}\n"]}
1
+ {"version":3,"file":"normalize-input-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/files/normalize-input-media.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { parseFileId, tdFileId } from '@mtcute/file-id'\nimport { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../../platform.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { isUploadedFile } from '../../types/files/uploaded-file.js'\nimport { UploadFileLike } from '../../types/files/utils.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { inputTextToTl } from '../../types/misc/entities.js'\nimport { fileIdToInputDocument, fileIdToInputPhoto } from '../../utils/convert-file-id.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { encodeWaveform } from '../../utils/voice-utils.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _normalizeInputFile } from './normalize-input-file.js'\nimport { uploadFile } from './upload-file.js'\n\n/**\n * Normalize an {@link InputMediaLike} to `InputMedia`,\n * uploading the file if needed.\n */\nexport async function _normalizeInputMedia(\n client: ITelegramClient,\n media: InputMediaLike,\n params: {\n progressCallback?: (uploaded: number, total: number) => void\n uploadPeer?: tl.TypeInputPeer\n businessConnectionId?: string\n } = {},\n uploadMedia = false,\n): Promise<tl.TypeInputMedia> {\n // my condolences to those poor souls who are going to maintain this (myself included)\n\n // thanks to @pacificescape for pointing out messages.uploadMedia method\n\n if (tl.isAnyInputMedia(media)) {\n // make sure the peers in the media are correctly resolved (i.e. mtcute.* ones are replaced with proper ones)\n switch (media._) {\n case 'inputMediaStory':\n return {\n ...media,\n peer: await resolvePeer(client, media.peer),\n }\n }\n\n return media\n }\n\n if (media.type === 'venue') {\n return {\n _: 'inputMediaVenue',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: media.latitude,\n long: media.longitude,\n },\n title: media.title,\n address: media.address,\n provider: media.source?.provider ?? '',\n venueId: media.source?.id ?? '',\n venueType: media.source?.type ?? '',\n }\n }\n\n if (media.type === 'geo') {\n return {\n _: 'inputMediaGeoPoint',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: media.latitude,\n long: media.longitude,\n },\n }\n }\n\n if (media.type === 'geo_live') {\n return {\n _: 'inputMediaGeoLive',\n geoPoint: {\n _: 'inputGeoPoint',\n lat: media.latitude,\n long: media.longitude,\n },\n stopped: media.stopped,\n heading: media.heading,\n period: media.period,\n proximityNotificationRadius: media.proximityNotificationRadius,\n }\n }\n\n if (media.type === 'dice') {\n return {\n _: 'inputMediaDice',\n emoticon: media.emoji,\n }\n }\n\n if (media.type === 'contact') {\n return {\n _: 'inputMediaContact',\n phoneNumber: media.phone,\n firstName: media.firstName,\n lastName: media.lastName ?? '',\n vcard: media.vcard ?? '',\n }\n }\n\n if (media.type === 'game') {\n return {\n _: 'inputMediaGame',\n id:\n typeof media.game === 'string' ?\n {\n _: 'inputGameShortName',\n botId: { _: 'inputUserSelf' },\n shortName: media.game,\n } :\n media.game,\n }\n }\n\n if (media.type === 'invoice') {\n return {\n _: 'inputMediaInvoice',\n title: media.title,\n description: media.description,\n photo:\n typeof media.photo === 'string' ?\n {\n _: 'inputWebDocument',\n url: media.photo,\n mimeType: 'image/jpeg',\n size: 0,\n attributes: [],\n } :\n media.photo,\n invoice: media.invoice,\n payload: media.payload,\n provider: media.token,\n providerData: {\n _: 'dataJSON',\n data: JSON.stringify(media.providerData),\n },\n startParam: media.startParam,\n extendedMedia: media.extendedMedia ?\n await _normalizeInputMedia(client, media.extendedMedia, params) :\n undefined,\n }\n }\n\n if (media.type === 'poll' || media.type === 'quiz') {\n const answers: tl.TypePollAnswer[] = media.answers.map((ans, idx) => {\n if (typeof ans === 'object' && tl.isAnyPollAnswer(ans)) return ans\n\n return {\n _: 'pollAnswer',\n text: inputTextToTl(ans),\n // emulate the behaviour of most implementations\n option: new Uint8Array([48 /* '0' */ + idx]),\n }\n })\n\n let correct: Uint8Array[] | undefined = undefined\n let solution: string | undefined = undefined\n let solutionEntities: tl.TypeMessageEntity[] | undefined = undefined\n\n if (media.type === 'quiz') {\n let input = media.correct\n if (!Array.isArray(input)) input = [input]\n correct = input.map((it) => {\n if (typeof it === 'number') {\n return answers[it].option\n }\n\n return it\n })\n\n if (media.solution) {\n [solution, solutionEntities] = await _normalizeInputText(client, media.solution)\n }\n }\n\n return {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n closed: media.closed,\n id: Long.ZERO,\n publicVoters: media.public,\n multipleChoice: media.multiple,\n quiz: media.type === 'quiz',\n question: inputTextToTl(media.question),\n answers,\n closePeriod: media.closePeriod,\n closeDate: normalizeDate(media.closeDate),\n },\n correctAnswers: correct,\n solution,\n solutionEntities,\n }\n }\n\n if (media.type === 'story') {\n return {\n _: 'inputMediaStory',\n peer: await resolvePeer(client, media.peer),\n id: media.id,\n }\n }\n\n if (media.type === 'webpage') {\n return {\n _: 'inputMediaWebPage',\n forceLargeMedia: media.size === 'large',\n forceSmallMedia: media.size === 'small',\n optional: !media.required,\n url: media.url,\n }\n }\n\n let inputFile: tl.TypeInputFile | undefined = undefined\n let thumb: tl.TypeInputFile | undefined = undefined\n let mime = 'application/octet-stream'\n\n const upload = async (file: UploadFileLike): Promise<void> => {\n let sendMime\n\n if (media.type === 'sticker') {\n sendMime = media.isAnimated ? 'application/x-tgsticker' : 'image/webp'\n } else {\n sendMime = media.fileMime\n }\n\n const uploaded = await uploadFile(client, {\n file,\n progressCallback: params.progressCallback,\n fileName: media.fileName,\n fileMime: sendMime,\n fileSize: media.fileSize,\n requireFileSize: media.type === 'photo',\n })\n inputFile = uploaded.inputFile\n mime = uploaded.mime\n }\n\n const uploadPeer = params.uploadPeer ?? { _: 'inputPeerSelf' }\n\n const uploadMediaIfNeeded = async (inputMedia: tl.TypeInputMedia, photo: boolean): Promise<tl.TypeInputMedia> => {\n if (!uploadMedia) return inputMedia\n\n const res = await client.call({\n _: 'messages.uploadMedia',\n peer: uploadPeer,\n media: inputMedia,\n businessConnectionId: params.businessConnectionId,\n })\n\n if (photo) {\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res, 'messageMediaPhoto')\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res.photo!, 'photo')\n\n return {\n _: 'inputMediaPhoto',\n id: {\n _: 'inputPhoto',\n id: res.photo.id,\n accessHash: res.photo.accessHash,\n fileReference: res.photo.fileReference,\n },\n ttlSeconds: media.ttlSeconds,\n spoiler: media.type === 'video' && media.spoiler,\n }\n }\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res, 'messageMediaDocument')\n assertTypeIs('normalizeInputMedia (@ messages.uploadMedia)', res.document!, 'document')\n\n return {\n _: 'inputMediaDocument',\n id: {\n _: 'inputDocument',\n id: res.document.id,\n accessHash: res.document.accessHash,\n fileReference: res.document.fileReference,\n },\n ttlSeconds: media.ttlSeconds,\n spoiler: media.type === 'video' && media.spoiler,\n }\n }\n\n const input = media.file\n\n if (tdFileId.isFileIdLike(input)) {\n if (typeof input === 'string' && input.match(/^https?:\\/\\//)) {\n return uploadMediaIfNeeded(\n {\n _: media.type === 'photo' ? 'inputMediaPhotoExternal' : 'inputMediaDocumentExternal',\n url: input,\n },\n media.type === 'photo',\n )\n } else if (typeof input === 'string' && input.match(/^file:/)) {\n await upload(input.substring(5))\n } else {\n const parsed = typeof input === 'string' ? parseFileId(getPlatform(), input) : input\n\n if (parsed.location._ === 'photo') {\n return {\n _: 'inputMediaPhoto',\n id: fileIdToInputPhoto(parsed),\n }\n } else if (parsed.location._ === 'web') {\n return uploadMediaIfNeeded(\n {\n _:\n parsed.type === tdFileId.FileType.Photo ?\n 'inputMediaPhotoExternal' :\n 'inputMediaDocumentExternal',\n url: parsed.location.url,\n },\n parsed.type === tdFileId.FileType.Photo,\n )\n }\n\n return {\n _: 'inputMediaDocument',\n id: fileIdToInputDocument(parsed),\n }\n }\n } else if (typeof input === 'object' && tl.isAnyInputMedia(input)) {\n return input\n } else if (isUploadedFile(input)) {\n inputFile = input.inputFile\n mime = input.mime\n } else if (typeof input === 'object' && tl.isAnyInputFile(input)) {\n inputFile = input\n } else {\n await upload(input)\n }\n\n if (!inputFile) throw new Error('should not happen')\n\n if (media.type === 'photo') {\n return uploadMediaIfNeeded(\n {\n _: 'inputMediaUploadedPhoto',\n file: inputFile,\n ttlSeconds: media.ttlSeconds,\n spoiler: media.spoiler,\n },\n true,\n )\n }\n\n if ('thumb' in media && media.thumb) {\n thumb = await _normalizeInputFile(client, media.thumb, {})\n }\n\n const attributes: tl.TypeDocumentAttribute[] = []\n\n if (media.type !== 'voice') {\n attributes.push({\n _: 'documentAttributeFilename',\n fileName: media.fileName || inputFile.name,\n })\n }\n\n if (media.type === 'video') {\n attributes.push({\n _: 'documentAttributeVideo',\n duration: media.duration || 0,\n w: media.width || 0,\n h: media.height || 0,\n supportsStreaming: media.supportsStreaming,\n roundMessage: media.isRound,\n })\n\n if (media.isAnimated) {\n attributes.push({ _: 'documentAttributeAnimated' })\n }\n }\n\n if (media.type === 'audio' || media.type === 'voice') {\n attributes.push({\n _: 'documentAttributeAudio',\n voice: media.type === 'voice',\n duration: media.duration || 0,\n title: media.type === 'audio' ? media.title : undefined,\n performer: media.type === 'audio' ? media.performer : undefined,\n waveform: media.type === 'voice' && media.waveform ? encodeWaveform(media.waveform) : undefined,\n })\n }\n\n if (media.type === 'sticker') {\n attributes.push({\n _: 'documentAttributeSticker',\n stickerset: {\n _: 'inputStickerSetEmpty',\n },\n alt: media.alt ?? '',\n })\n }\n\n return uploadMediaIfNeeded(\n {\n _: 'inputMediaUploadedDocument',\n nosoundVideo: media.type === 'video' && media.isAnimated,\n forceFile: media.type === 'document',\n file: inputFile,\n thumb,\n mimeType: mime,\n attributes,\n ttlSeconds: media.ttlSeconds,\n spoiler: media.type === 'video' && media.spoiler,\n },\n false,\n )\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { RpcCallOptions } from '../../../network/network-manager.js';
3
+ import { ITelegramClient } from '../../client.types.js';
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare function _maybeInvokeWithBusinessConnection<T extends tl.RpcMethod>(client: ITelegramClient, businessConnectionId: string | undefined, request: T, params?: RpcCallOptions): Promise<tl.RpcCallReturn[T['_']]>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._maybeInvokeWithBusinessConnection = void 0;
4
+ const lru_map_js_1 = require("../../../utils/lru-map.js");
5
+ const get_business_connection_js_1 = require("../premium/get-business-connection.js");
6
+ // temporary solution
7
+ // todo – rework once we have either a more generic caching solution
8
+ const DC_MAP_SYMBOL = Symbol('dcMap');
9
+ const getDcMap = (client) => {
10
+ const client_ = client;
11
+ if (!client_[DC_MAP_SYMBOL]) {
12
+ client_[DC_MAP_SYMBOL] = new lru_map_js_1.LruMap(50);
13
+ }
14
+ return client_[DC_MAP_SYMBOL];
15
+ };
16
+ // @available=both
17
+ /**
18
+ * @internal
19
+ */
20
+ async function _maybeInvokeWithBusinessConnection(client, businessConnectionId, request, params) {
21
+ if (!businessConnectionId) {
22
+ return client.call(request, params);
23
+ }
24
+ const dcMap = getDcMap(client);
25
+ if (!dcMap.has(businessConnectionId)) {
26
+ const res = await (0, get_business_connection_js_1.getBusinessConnection)(client, businessConnectionId);
27
+ dcMap.set(businessConnectionId, res.dcId);
28
+ }
29
+ const dcId = dcMap.get(businessConnectionId);
30
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
31
+ return client.call({
32
+ _: 'invokeWithBusinessConnection',
33
+ connectionId: businessConnectionId,
34
+ query: request,
35
+ }, {
36
+ ...params,
37
+ localMigrate: true, // just in case
38
+ dcId,
39
+ });
40
+ }
41
+ exports._maybeInvokeWithBusinessConnection = _maybeInvokeWithBusinessConnection;
42
+ //# sourceMappingURL=_business-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_business-connection.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/_business-connection.ts"],"names":[],"mappings":";;;AAGA,0DAAkD;AAElD,sFAA6E;AAE7E,qBAAqB;AACrB,oEAAoE;AACpE,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AAErC,MAAM,QAAQ,GAAG,CAAC,MAAuB,EAA0B,EAAE;IACjE,MAAM,OAAO,GAAG,MAAsE,CAAA;IAEtF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,mBAAM,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,OAAO,CAAC,aAAa,CAAC,CAAA;AACjC,CAAC,CAAA;AAED,kBAAkB;AAClB;;GAEG;AACI,KAAK,UAAU,kCAAkC,CACpD,MAAuB,EACvB,oBAAwC,EACxC,OAAU,EACV,MAAuB;IAEvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,IAAA,kDAAqB,EAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QAErE,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAE,CAAA;IAE7C,+DAA+D;IAC/D,OAAO,MAAM,CAAC,IAAI,CACd;QACI,CAAC,EAAE,8BAA8B;QACjC,YAAY,EAAE,oBAAoB;QAClC,KAAK,EAAE,OAAO;KACjB,EACD;QACI,GAAG,MAAM;QACT,YAAY,EAAE,IAAI,EAAE,eAAe;QACnC,IAAI;KACP,CACJ,CAAA;AACL,CAAC;AAjCD,gFAiCC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { RpcCallOptions } from '../../../network/network-manager.js'\nimport { LruMap } from '../../../utils/lru-map.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { getBusinessConnection } from '../premium/get-business-connection.js'\n\n// temporary solution\n// todo – rework once we have either a more generic caching solution\nconst DC_MAP_SYMBOL = Symbol('dcMap')\n\nconst getDcMap = (client: ITelegramClient): LruMap<string, number> => {\n const client_ = client as typeof client & { [DC_MAP_SYMBOL]?: LruMap<string, number> }\n\n if (!client_[DC_MAP_SYMBOL]) {\n client_[DC_MAP_SYMBOL] = new LruMap(50)\n }\n\n return client_[DC_MAP_SYMBOL]\n}\n\n// @available=both\n/**\n * @internal\n */\nexport async function _maybeInvokeWithBusinessConnection<T extends tl.RpcMethod>(\n client: ITelegramClient,\n businessConnectionId: string | undefined,\n request: T,\n params?: RpcCallOptions,\n): Promise<tl.RpcCallReturn[T['_']]> {\n if (!businessConnectionId) {\n return client.call(request, params)\n }\n\n const dcMap = getDcMap(client)\n\n if (!dcMap.has(businessConnectionId)) {\n const res = await getBusinessConnection(client, businessConnectionId)\n\n dcMap.set(businessConnectionId, res.dcId)\n }\n\n const dcId = dcMap.get(businessConnectionId)!\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return client.call(\n {\n _: 'invokeWithBusinessConnection',\n connectionId: businessConnectionId,\n query: request,\n },\n {\n ...params,\n localMigrate: true, // just in case\n dcId,\n },\n )\n}\n"]}
@@ -28,7 +28,7 @@ async function closePoll(client, params) {
28
28
  _: 'poll',
29
29
  id: long_1.default.ZERO,
30
30
  closed: true,
31
- question: '',
31
+ question: { _: 'textWithEntities', text: '', entities: [] },
32
32
  answers: [],
33
33
  },
34
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"close-poll.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/close-poll.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAEvB,wDAA+D;AAC/D,0EAAgE;AAEhE,mDAAgG;AAChG,qDAA6D;AAC7D,8DAAsD;AAEtD;;;;;GAKG;AACI,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAMC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAE3D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,sBAAsB;QACzB,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,EAAE,EAAE,OAAO;QACX,KAAK,EAAE;YACH,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE;gBACF,CAAC,EAAE,MAAM;gBACT,EAAE,EAAE,cAAI,CAAC,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE;aACd;SACJ;KACJ,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAEtD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAA,iCAAY,EAAC,sCAAsC,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAA;IAE9E,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,gCAAoB,CAAC,2CAA2C,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IACpG,CAAC;IAED,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,OAAO,IAAI,eAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC;AA1CD,8BA0CC","sourcesContent":["import Long from 'long'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMessageId, normalizeInputMessageId, PeersIndex, Poll } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Close a poll sent by you.\n *\n * Once closed, poll can't be re-opened, and nobody\n * will be able to vote in it\n */\nexport async function closePoll(\n client: ITelegramClient,\n params: InputMessageId & {\n /**\n * Whether to dispatch the edit message event\n * to the client's update handler.\n */\n shouldDispatch?: true\n },\n): Promise<Poll> {\n const { chatId, message } = normalizeInputMessageId(params)\n\n const res = await client.call({\n _: 'messages.editMessage',\n peer: await resolvePeer(client, chatId),\n id: message,\n media: {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n id: Long.ZERO,\n closed: true,\n question: '',\n answers: [],\n },\n },\n })\n\n assertIsUpdatesGroup('messages.editMessage', res)\n\n client.handleClientUpdate(res, !params.shouldDispatch)\n\n const upd = res.updates[0]\n assertTypeIs('messages.editMessage (@ .updates[0])', upd, 'updateMessagePoll')\n\n if (!upd.poll) {\n throw new MtTypeAssertionError('messages.editMessage (@ .updates[0].poll)', 'poll', 'undefined')\n }\n\n const peers = PeersIndex.from(res)\n\n return new Poll(upd.poll, peers, upd.results)\n}\n"]}
1
+ {"version":3,"file":"close-poll.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/close-poll.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAEvB,wDAA+D;AAC/D,0EAAgE;AAEhE,mDAAgG;AAChG,qDAA6D;AAC7D,8DAAsD;AAEtD;;;;;GAKG;AACI,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAMC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAE3D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,sBAAsB;QACzB,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,EAAE,EAAE,OAAO;QACX,KAAK,EAAE;YACH,CAAC,EAAE,gBAAgB;YACnB,IAAI,EAAE;gBACF,CAAC,EAAE,MAAM;gBACT,EAAE,EAAE,cAAI,CAAC,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,EAAE,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC3D,OAAO,EAAE,EAAE;aACd;SACJ;KACJ,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAEtD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAA,iCAAY,EAAC,sCAAsC,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAA;IAE9E,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,gCAAoB,CAAC,2CAA2C,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IACpG,CAAC;IAED,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,OAAO,IAAI,eAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC;AA1CD,8BA0CC","sourcesContent":["import Long from 'long'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { assertTypeIs } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMessageId, normalizeInputMessageId, PeersIndex, Poll } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Close a poll sent by you.\n *\n * Once closed, poll can't be re-opened, and nobody\n * will be able to vote in it\n */\nexport async function closePoll(\n client: ITelegramClient,\n params: InputMessageId & {\n /**\n * Whether to dispatch the edit message event\n * to the client's update handler.\n */\n shouldDispatch?: true\n },\n): Promise<Poll> {\n const { chatId, message } = normalizeInputMessageId(params)\n\n const res = await client.call({\n _: 'messages.editMessage',\n peer: await resolvePeer(client, chatId),\n id: message,\n media: {\n _: 'inputMediaPoll',\n poll: {\n _: 'poll',\n id: Long.ZERO,\n closed: true,\n question: { _: 'textWithEntities', text: '', entities: [] },\n answers: [],\n },\n },\n })\n\n assertIsUpdatesGroup('messages.editMessage', res)\n\n client.handleClientUpdate(res, !params.shouldDispatch)\n\n const upd = res.updates[0]\n assertTypeIs('messages.editMessage (@ .updates[0])', upd, 'updateMessagePoll')\n\n if (!upd.poll) {\n throw new MtTypeAssertionError('messages.editMessage (@ .updates[0].poll)', 'poll', 'undefined')\n }\n\n const peers = PeersIndex.from(res)\n\n return new Poll(upd.poll, peers, upd.results)\n}\n"]}
@@ -51,4 +51,5 @@ export declare function editMessage(client: ITelegramClient, params: InputMessag
51
51
  * client render the preview above the caption and not below.
52
52
  */
53
53
  invertMedia?: boolean;
54
+ businessConnectionId?: string;
54
55
  }): Promise<Message>;
@@ -5,6 +5,7 @@ const index_js_1 = require("../../types/index.js");
5
5
  const normalize_input_media_js_1 = require("../files/normalize-input-media.js");
6
6
  const normalize_text_js_1 = require("../misc/normalize-text.js");
7
7
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
8
+ const _business_connection_js_1 = require("./_business-connection.js");
8
9
  const find_in_update_js_1 = require("./find-in-update.js");
9
10
  /**
10
11
  * Edit message text, media, reply markup and schedule date.
@@ -29,7 +30,7 @@ async function editMessage(client, params) {
29
30
  if (params.text) {
30
31
  [content, entities] = await (0, normalize_text_js_1._normalizeInputText)(client, params.text);
31
32
  }
32
- const res = await client.call({
33
+ const res = await (0, _business_connection_js_1._maybeInvokeWithBusinessConnection)(client, params.businessConnectionId, {
33
34
  _: 'messages.editMessage',
34
35
  id: message,
35
36
  peer: await (0, resolve_peer_js_1.resolvePeer)(client, chatId),
@@ -1 +1 @@
1
- {"version":3,"file":"edit-message.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/edit-message.ts"],"names":[],"mappings":";;;AAGA,mDAQ6B;AAC7B,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AACtD,2DAA0D;AAE1D;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAmDC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,OAAO,GAAuB,SAAS,CAAA;IAC3C,IAAI,QAA4C,CAAA;IAChD,IAAI,KAAK,GAAkC,SAAS,CAAA;IAEpD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,MAAM,IAAA,+CAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEhE,wEAAwE;QACxE,+EAA+E;QAC/E,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClE,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACjF,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,sBAAsB;QACzB,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC,iBAAiB;QACnC,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;QACzD,OAAO,EAAE,OAAO;QAChB,QAAQ;QACR,KAAK;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;KAClC,CAAC,CAAA;IAEF,OAAO,IAAA,wCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AAC1E,CAAC;AAvFD,kCAuFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport {\n BotKeyboard,\n InputMediaLike,\n InputMessageId,\n InputText,\n Message,\n normalizeInputMessageId,\n ReplyMarkup,\n} from '../../types/index.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\n\n/**\n * Edit message text, media, reply markup and schedule date.\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param message Message or its ID\n * @param params\n */\nexport async function editMessage(\n client: ITelegramClient,\n params: InputMessageId & {\n /**\n * New message text\n *\n * When `media` is passed, `media.caption` is used instead\n */\n text?: InputText\n\n /**\n * New message media\n */\n media?: InputMediaLike\n\n /**\n * Whether to disable links preview in this message\n */\n disableWebPreview?: boolean\n\n /**\n * For bots: new reply markup.\n * If omitted, existing markup will be removed.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * To re-schedule a message: new schedule date.\n * When passing a number, a UNIX time in ms is expected.\n */\n scheduleDate?: Date | number\n\n /**\n * For media, upload progress callback.\n *\n * @param uploaded Number of bytes uploaded\n * @param total Total file size in bytes\n */\n progressCallback?: (uploaded: number, total: number) => void\n\n /**\n * Whether to dispatch the edit message event\n * to the client's update handler.\n */\n shouldDispatch?: true\n\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invertMedia?: boolean\n },\n): Promise<Message> {\n const { chatId, message } = normalizeInputMessageId(params)\n let content: string | undefined = undefined\n let entities: tl.TypeMessageEntity[] | undefined\n let media: tl.TypeInputMedia | undefined = undefined\n\n if (params.media) {\n media = await _normalizeInputMedia(client, params.media, params)\n\n // if there's no caption in input media (i.e. not present or undefined),\n // user wants to keep current caption, thus `content` needs to stay `undefined`\n if ('caption' in params.media && params.media.caption !== undefined) {\n [content, entities] = await _normalizeInputText(client, params.media.caption)\n }\n }\n\n if (params.text) {\n [content, entities] = await _normalizeInputText(client, params.text)\n }\n\n const res = await client.call({\n _: 'messages.editMessage',\n id: message,\n peer: await resolvePeer(client, chatId),\n noWebpage: params.disableWebPreview,\n replyMarkup: BotKeyboard._convertToTl(params.replyMarkup),\n message: content,\n entities,\n media,\n invertMedia: params.invertMedia,\n })\n\n return _findMessageInUpdate(client, res, true, !params.shouldDispatch)\n}\n"]}
1
+ {"version":3,"file":"edit-message.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/edit-message.ts"],"names":[],"mappings":";;;AAGA,mDAQ6B;AAC7B,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AACtD,uEAA8E;AAC9E,2DAA0D;AAE1D;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAqDC;IAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,OAAO,GAAuB,SAAS,CAAA;IAC3C,IAAI,QAA4C,CAAA;IAChD,IAAI,KAAK,GAAkC,SAAS,CAAA;IAEpD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,GAAG,MAAM,IAAA,+CAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEhE,wEAAwE;QACxE,+EAA+E;QAC/E,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClE,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACjF,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,IAAA,4DAAkC,EAAC,MAAM,EAAE,MAAM,CAAC,oBAAoB,EAAE;QACtF,CAAC,EAAE,sBAAsB;QACzB,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,SAAS,EAAE,MAAM,CAAC,iBAAiB;QACnC,WAAW,EAAE,sBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;QACzD,OAAO,EAAE,OAAO;QAChB,QAAQ;QACR,KAAK;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;KAClC,CAAC,CAAA;IAEF,OAAO,IAAA,wCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;AAC1E,CAAC;AAzFD,kCAyFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { ITelegramClient } from '../../client.types.js'\nimport {\n BotKeyboard,\n InputMediaLike,\n InputMessageId,\n InputText,\n Message,\n normalizeInputMessageId,\n ReplyMarkup,\n} from '../../types/index.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _maybeInvokeWithBusinessConnection } from './_business-connection.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\n\n/**\n * Edit message text, media, reply markup and schedule date.\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param message Message or its ID\n * @param params\n */\nexport async function editMessage(\n client: ITelegramClient,\n params: InputMessageId & {\n /**\n * New message text\n *\n * When `media` is passed, `media.caption` is used instead\n */\n text?: InputText\n\n /**\n * New message media\n */\n media?: InputMediaLike\n\n /**\n * Whether to disable links preview in this message\n */\n disableWebPreview?: boolean\n\n /**\n * For bots: new reply markup.\n * If omitted, existing markup will be removed.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * To re-schedule a message: new schedule date.\n * When passing a number, a UNIX time in ms is expected.\n */\n scheduleDate?: Date | number\n\n /**\n * For media, upload progress callback.\n *\n * @param uploaded Number of bytes uploaded\n * @param total Total file size in bytes\n */\n progressCallback?: (uploaded: number, total: number) => void\n\n /**\n * Whether to dispatch the edit message event\n * to the client's update handler.\n */\n shouldDispatch?: true\n\n /**\n * Whether to invert media position.\n *\n * Currently only supported for web previews and makes the\n * client render the preview above the caption and not below.\n */\n invertMedia?: boolean\n\n businessConnectionId?: string\n },\n): Promise<Message> {\n const { chatId, message } = normalizeInputMessageId(params)\n let content: string | undefined = undefined\n let entities: tl.TypeMessageEntity[] | undefined\n let media: tl.TypeInputMedia | undefined = undefined\n\n if (params.media) {\n media = await _normalizeInputMedia(client, params.media, params)\n\n // if there's no caption in input media (i.e. not present or undefined),\n // user wants to keep current caption, thus `content` needs to stay `undefined`\n if ('caption' in params.media && params.media.caption !== undefined) {\n [content, entities] = await _normalizeInputText(client, params.media.caption)\n }\n }\n\n if (params.text) {\n [content, entities] = await _normalizeInputText(client, params.text)\n }\n\n const res = await _maybeInvokeWithBusinessConnection(client, params.businessConnectionId, {\n _: 'messages.editMessage',\n id: message,\n peer: await resolvePeer(client, chatId),\n noWebpage: params.disableWebPreview,\n replyMarkup: BotKeyboard._convertToTl(params.replyMarkup),\n message: content,\n entities,\n media,\n invertMedia: params.invertMedia,\n })\n\n return _findMessageInUpdate(client, res, true, !params.shouldDispatch)\n}\n"]}
@@ -1 +1,13 @@
1
- export {};
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
3
+ import { Message } from '../../types/messages/index.js';
4
+ /**
5
+ * @internal
6
+ * @noemit
7
+ */
8
+ export declare function _findMessageInUpdate(client: ITelegramClient, res: tl.TypeUpdates, isEdit?: boolean, noDispatch?: boolean, allowNull?: false, randomId?: tl.Long): Message;
9
+ /**
10
+ * @internal
11
+ * @noemit
12
+ */
13
+ export declare function _findMessageInUpdate(client: ITelegramClient, res: tl.TypeUpdates, isEdit?: boolean, noDispatch?: boolean, allowNull?: true, randomId?: tl.Long): Message | null;
@@ -19,13 +19,18 @@ function _findMessageInUpdate(client, res, isEdit = false, noDispatch = true, al
19
19
  continue;
20
20
  }
21
21
  if (isEdit) {
22
- if (!(u._ === 'updateEditMessage' || u._ === 'updateEditChannelMessage'))
22
+ if (!(u._ === 'updateEditMessage' ||
23
+ u._ === 'updateEditChannelMessage' ||
24
+ u._ === 'updateBotEditBusinessMessage')) {
23
25
  continue;
26
+ }
24
27
  }
25
28
  else {
26
29
  if (!(u._ === 'updateNewMessage' ||
27
30
  u._ === 'updateNewChannelMessage' ||
28
- u._ === 'updateNewScheduledMessage')) {
31
+ u._ === 'updateNewScheduledMessage' ||
32
+ u._ === 'updateQuickReplyMessage' ||
33
+ u._ === 'updateBotNewBusinessMessage')) {
29
34
  continue;
30
35
  }
31
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"find-in-update.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/find-in-update.ts"],"names":[],"mappings":";;;AAGA,wDAA+D;AAE/D,4DAAuD;AACvD,yDAAuD;AACvD,qDAA6D;AA2B7D;;;GAGG;AACH,SAAgB,oBAAoB,CAChC,MAAuB,EACvB,GAAmB,EACnB,MAAM,GAAG,KAAK,EACd,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,KAAK,EACjB,QAAkB;IAElB,IAAA,+BAAoB,EAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAE1C,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,YAAY,GAAG,CAAC,CAAC,EAAE,CAAA;YACnB,SAAQ;QACZ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,mBAAmB,IAAI,CAAC,CAAC,CAAC,KAAK,0BAA0B,CAAC;gBAAE,SAAQ;QACtF,CAAC;aAAM,CAAC;YACJ,IACI,CAAC,CACG,CAAC,CAAC,CAAC,KAAK,kBAAkB;gBAC1B,CAAC,CAAC,CAAC,KAAK,yBAAyB;gBACjC,CAAC,CAAC,CAAC,KAAK,2BAA2B,CACtC,EACH,CAAC;gBAAC,SAAQ;YAAC,CAAC;QAClB,CAAC;QAED,qEAAqE;QACrE,uDAAuD;QACvD,iEAAiE;QACjE,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,YAAY;YAAE,SAAQ;QAEjE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAElC,OAAO,IAAI,kBAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,SAAS;QAAE,OAAO,IAAI,CAAA;IAE1B,MAAM,IAAI,gCAAoB,CAC1B,+BAA+B,EAC/B,wEAAwE,EACxE,MAAM,CACT,CAAA;AACL,CAAC;AAjDD,oDAiDC","sourcesContent":["/* eslint-disable max-params,no-lonely-if */\nimport { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { PeersIndex } from '../../types/peers/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\n\n/**\n * @internal\n * @noemit\n */\nexport function _findMessageInUpdate(\n client: ITelegramClient,\n res: tl.TypeUpdates,\n isEdit?: boolean,\n noDispatch?: boolean,\n allowNull?: false,\n randomId?: tl.Long,\n): Message\n/**\n * @internal\n * @noemit\n */\nexport function _findMessageInUpdate(\n client: ITelegramClient,\n res: tl.TypeUpdates,\n isEdit?: boolean,\n noDispatch?: boolean,\n allowNull?: true,\n randomId?: tl.Long,\n): Message | null\n\n/**\n * @internal\n * @noemit\n */\nexport function _findMessageInUpdate(\n client: ITelegramClient,\n res: tl.TypeUpdates,\n isEdit = false,\n noDispatch = true,\n allowNull = false,\n randomId?: tl.Long,\n): Message | null {\n assertIsUpdatesGroup('_findMessageInUpdate', res)\n\n client.handleClientUpdate(res, noDispatch)\n\n let ourMessageId = 0\n\n for (const u of res.updates) {\n if (randomId && u._ === 'updateMessageID' && u.randomId.eq(randomId)) {\n ourMessageId = u.id\n continue\n }\n\n if (isEdit) {\n if (!(u._ === 'updateEditMessage' || u._ === 'updateEditChannelMessage')) continue\n } else {\n if (\n !(\n u._ === 'updateNewMessage' ||\n u._ === 'updateNewChannelMessage' ||\n u._ === 'updateNewScheduledMessage'\n )\n ) { continue }\n }\n\n // this *may* break if updateMessageID comes after the message update\n // but it's unlikely and is not worth the effort to fix\n // we should eventually move to properly handling updateMessageID\n if (ourMessageId !== 0 && u.message.id !== ourMessageId) continue\n\n const peers = PeersIndex.from(res)\n\n return new Message(u.message, peers, u._ === 'updateNewScheduledMessage')\n }\n\n if (allowNull) return null\n\n throw new MtTypeAssertionError(\n '_findInUpdate (@ .updates[*])',\n 'updateNewMessage | updateNewChannelMessage | updateNewScheduledMessage',\n 'none',\n )\n}\n"]}
1
+ {"version":3,"file":"find-in-update.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/find-in-update.ts"],"names":[],"mappings":";;;AAGA,wDAA+D;AAE/D,4DAAuD;AACvD,yDAAuD;AACvD,qDAA6D;AA2B7D;;;GAGG;AACH,SAAgB,oBAAoB,CAChC,MAAuB,EACvB,GAAmB,EACnB,MAAM,GAAG,KAAK,EACd,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,KAAK,EACjB,QAAkB;IAElB,IAAA,+BAAoB,EAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAE1C,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,YAAY,GAAG,CAAC,CAAC,EAAE,CAAA;YACnB,SAAQ;QACZ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IACI,CAAC,CACG,CAAC,CAAC,CAAC,KAAK,mBAAmB;gBAC3B,CAAC,CAAC,CAAC,KAAK,0BAA0B;gBAClC,CAAC,CAAC,CAAC,KAAK,8BAA8B,CACzC,EACH,CAAC;gBACC,SAAQ;YACZ,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IACI,CAAC,CACG,CAAC,CAAC,CAAC,KAAK,kBAAkB;gBAC1B,CAAC,CAAC,CAAC,KAAK,yBAAyB;gBACjC,CAAC,CAAC,CAAC,KAAK,2BAA2B;gBACnC,CAAC,CAAC,CAAC,KAAK,yBAAyB;gBACjC,CAAC,CAAC,CAAC,KAAK,6BAA6B,CACxC,EACH,CAAC;gBACC,SAAQ;YACZ,CAAC;QACL,CAAC;QAED,qEAAqE;QACrE,uDAAuD;QACvD,iEAAiE;QACjE,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,YAAY;YAAE,SAAQ;QAEjE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAElC,OAAO,IAAI,kBAAO,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAA;IAC7E,CAAC;IAED,IAAI,SAAS;QAAE,OAAO,IAAI,CAAA;IAE1B,MAAM,IAAI,gCAAoB,CAC1B,+BAA+B,EAC/B,wEAAwE,EACxE,MAAM,CACT,CAAA;AACL,CAAC;AA7DD,oDA6DC","sourcesContent":["/* eslint-disable max-params,no-lonely-if */\nimport { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Message } from '../../types/messages/index.js'\nimport { PeersIndex } from '../../types/peers/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\n\n/**\n * @internal\n * @noemit\n */\nexport function _findMessageInUpdate(\n client: ITelegramClient,\n res: tl.TypeUpdates,\n isEdit?: boolean,\n noDispatch?: boolean,\n allowNull?: false,\n randomId?: tl.Long,\n): Message\n/**\n * @internal\n * @noemit\n */\nexport function _findMessageInUpdate(\n client: ITelegramClient,\n res: tl.TypeUpdates,\n isEdit?: boolean,\n noDispatch?: boolean,\n allowNull?: true,\n randomId?: tl.Long,\n): Message | null\n\n/**\n * @internal\n * @noemit\n */\nexport function _findMessageInUpdate(\n client: ITelegramClient,\n res: tl.TypeUpdates,\n isEdit = false,\n noDispatch = true,\n allowNull = false,\n randomId?: tl.Long,\n): Message | null {\n assertIsUpdatesGroup('_findMessageInUpdate', res)\n\n client.handleClientUpdate(res, noDispatch)\n\n let ourMessageId = 0\n\n for (const u of res.updates) {\n if (randomId && u._ === 'updateMessageID' && u.randomId.eq(randomId)) {\n ourMessageId = u.id\n continue\n }\n\n if (isEdit) {\n if (\n !(\n u._ === 'updateEditMessage' ||\n u._ === 'updateEditChannelMessage' ||\n u._ === 'updateBotEditBusinessMessage'\n )\n ) {\n continue\n }\n } else {\n if (\n !(\n u._ === 'updateNewMessage' ||\n u._ === 'updateNewChannelMessage' ||\n u._ === 'updateNewScheduledMessage' ||\n u._ === 'updateQuickReplyMessage' ||\n u._ === 'updateBotNewBusinessMessage'\n )\n ) {\n continue\n }\n }\n\n // this *may* break if updateMessageID comes after the message update\n // but it's unlikely and is not worth the effort to fix\n // we should eventually move to properly handling updateMessageID\n if (ourMessageId !== 0 && u.message.id !== ourMessageId) continue\n\n const peers = PeersIndex.from(res)\n\n return new Message(u.message, peers, u._ === 'updateNewScheduledMessage')\n }\n\n if (allowNull) return null\n\n throw new MtTypeAssertionError(\n '_findInUpdate (@ .updates[*])',\n 'updateNewMessage | updateNewChannelMessage | updateNewScheduledMessage',\n 'none',\n )\n}\n"]}
@@ -41,6 +41,11 @@ export interface ForwardMessageOptions {
41
41
  * Peer to use when sending the message.
42
42
  */
43
43
  sendAs?: InputPeerLike;
44
+ /**
45
+ * If passed, instead of sending the message, it will be saved into the
46
+ * given quick reply shortcut (either its ID or its shortcut string).
47
+ */
48
+ quickReply?: number | string;
44
49
  /**
45
50
  * Whether to dispatch the forwarded messages
46
51
  * to the client's update handler.
@@ -7,6 +7,7 @@ const index_js_1 = require("../../types/index.js");
7
7
  const utils_js_1 = require("../../updates/utils.js");
8
8
  const misc_utils_js_1 = require("../../utils/misc-utils.js");
9
9
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
10
+ const send_common_js_1 = require("./send-common.js");
10
11
  /**
11
12
  * Forward one or more messages by their IDs.
12
13
  * You can forward no more than 100 messages at once.
@@ -38,6 +39,7 @@ async function forwardMessagesById(client, params) {
38
39
  dropMediaCaptions: noCaption,
39
40
  noforwards: forbidForwards,
40
41
  sendAs: sendAs ? await (0, resolve_peer_js_1.resolvePeer)(client, sendAs) : undefined,
42
+ quickReplyShortcut: (0, send_common_js_1._normalizeQuickReplyShortcut)(params.quickReply),
41
43
  });
42
44
  (0, utils_js_1.assertIsUpdatesGroup)('messages.forwardMessages', res);
43
45
  client.handleClientUpdate(res, !params.shouldDispatch);
@@ -1 +1 @@
1
- {"version":3,"file":"forward-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/forward-messages.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,gEAAyD;AAEzD,mDAAyE;AACzE,qDAA6D;AAC7D,6DAAyD;AACzD,8DAAsD;AA2DtD;;;;;;;;;GASG;AACI,KAAK,UAAU,mBAAmB,CACrC,MAAuB,EACvB,MAKC;IAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAEhH,yDAAyD;IACzD,uDAAuD;IACvD,4CAA4C;IAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,2BAAe,CAAC,mDAAmD,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAElD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,0BAA0B;QAC7B,MAAM;QACN,QAAQ,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,UAAU,CAAC;QAC/C,EAAE,EAAE,QAAQ;QACZ,MAAM;QACN,YAAY,EAAE,IAAA,6BAAa,EAAC,QAAQ,CAAC;QACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAA,0BAAU,GAAE,CAAC;QACrE,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,SAAS;QAC5B,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;IAErD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAEtD,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,MAAM,SAAS,GAAc,EAAE,CAAA;IAC/B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACxB,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YACZ,KAAK,kBAAkB,CAAC;YACxB,KAAK,yBAAyB,CAAC;YAC/B,KAAK,2BAA2B;gBAC5B,SAAS,CAAC,IAAI,CAAC,IAAI,kBAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAC,CAAA;gBACtF,MAAK;QACb,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AACpB,CAAC;AApDD,kDAoDC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACjC,MAAuB,EACvB,MAEC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEpC,OAAO,mBAAmB,CAAC,MAAM,EAAE;QAC/B,GAAG,IAAI;QACP,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;QACtC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACxC,CAAC,CAAA;AACN,CAAC;AAbD,0CAaC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message, PeersIndex } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n// @exported\nexport interface ForwardMessageOptions {\n /** Destination chat ID, username, phone, `\"me\"` or `\"self\"` */\n toChatId: InputPeerLike\n\n /**\n * Whether to forward silently (also applies to caption message).\n */\n silent?: boolean\n\n /**\n * If set, the forwarding will be scheduled to this date\n * (also applies to caption message).\n * When passing a number, a UNIX time in ms is expected.\n *\n * You can also pass `0x7FFFFFFE`, this will send the message\n * once the peer is online\n */\n schedule?: Date | number\n\n /**\n * Whether to clear draft after sending this message (only used for caption)\n *\n * @default `false`\n */\n clearDraft?: boolean\n\n /**\n * Whether to forward without author\n */\n noAuthor?: boolean\n\n /**\n * Whether to forward without caption (implies {@link noAuthor})\n */\n noCaption?: boolean\n\n /**\n * Whether to disallow further forwards of this message.\n *\n * Only for bots, works even if the target chat does not\n * have content protection.\n */\n forbidForwards?: boolean\n\n /**\n * Peer to use when sending the message.\n */\n sendAs?: InputPeerLike\n\n /**\n * Whether to dispatch the forwarded messages\n * to the client's update handler.\n */\n shouldDispatch?: true\n}\n\n/**\n * Forward one or more messages by their IDs.\n * You can forward no more than 100 messages at once.\n *\n * @param toChatId Destination chat ID, username, phone, `\"me\"` or `\"self\"`\n * @param fromChatId Source chat ID, username, phone, `\"me\"` or `\"self\"`\n * @param messages Message IDs\n * @param params Additional sending parameters\n * @returns Newly sent, forwarded messages in the destination chat.\n */\nexport async function forwardMessagesById(\n client: ITelegramClient,\n params: ForwardMessageOptions & {\n /** Source chat ID, username, phone, `\"me\"` or `\"self\"` */\n fromChatId: InputPeerLike\n /** Message IDs to forward */\n messages: number[]\n },\n): Promise<Message[]> {\n const { messages, toChatId, fromChatId, silent, schedule, forbidForwards, sendAs, noAuthor, noCaption } = params\n\n // sending more than 100 will not result in a server-sent\n // error, instead only first 100 IDs will be forwarded,\n // which is definitely not the best outcome.\n if (messages.length > 100) {\n throw new MtArgumentError('You can forward no more than 100 messages at once')\n }\n\n const toPeer = await resolvePeer(client, toChatId)\n\n const res = await client.call({\n _: 'messages.forwardMessages',\n toPeer,\n fromPeer: await resolvePeer(client, fromChatId),\n id: messages,\n silent,\n scheduleDate: normalizeDate(schedule),\n randomId: Array.from({ length: messages.length }, () => randomLong()),\n dropAuthor: noAuthor,\n dropMediaCaptions: noCaption,\n noforwards: forbidForwards,\n sendAs: sendAs ? await resolvePeer(client, sendAs) : undefined,\n })\n\n assertIsUpdatesGroup('messages.forwardMessages', res)\n\n client.handleClientUpdate(res, !params.shouldDispatch)\n\n const peers = PeersIndex.from(res)\n\n const forwarded: Message[] = []\n res.updates.forEach((upd) => {\n switch (upd._) {\n case 'updateNewMessage':\n case 'updateNewChannelMessage':\n case 'updateNewScheduledMessage':\n forwarded.push(new Message(upd.message, peers, upd._ === 'updateNewScheduledMessage'))\n break\n }\n })\n\n return forwarded\n}\n\n/**\n * Forward one or more {@link Message}s to another chat.\n *\n * > **Note**: all messages must be from the same chat.\n */\nexport async function forwardMessages(\n client: ITelegramClient,\n params: ForwardMessageOptions & {\n messages: Message[]\n },\n): Promise<Message[]> {\n const { messages, ...rest } = params\n\n return forwardMessagesById(client, {\n ...rest,\n fromChatId: messages[0].chat.inputPeer,\n messages: messages.map((it) => it.id),\n })\n}\n"]}
1
+ {"version":3,"file":"forward-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/forward-messages.ts"],"names":[],"mappings":";;;AAAA,wDAA0D;AAC1D,gEAAyD;AAEzD,mDAAyE;AACzE,qDAA6D;AAC7D,6DAAyD;AACzD,8DAAsD;AACtD,qDAA+D;AAiE/D;;;;;;;;;GASG;AACI,KAAK,UAAU,mBAAmB,CACrC,MAAuB,EACvB,MAKC;IAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAEhH,yDAAyD;IACzD,uDAAuD;IACvD,4CAA4C;IAC5C,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,2BAAe,CAAC,mDAAmD,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAElD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,0BAA0B;QAC7B,MAAM;QACN,QAAQ,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,UAAU,CAAC;QAC/C,EAAE,EAAE,QAAQ;QACZ,MAAM;QACN,YAAY,EAAE,IAAA,6BAAa,EAAC,QAAQ,CAAC;QACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,IAAA,0BAAU,GAAE,CAAC;QACrE,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,SAAS;QAC5B,UAAU,EAAE,cAAc;QAC1B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9D,kBAAkB,EAAE,IAAA,6CAA4B,EAAC,MAAM,CAAC,UAAU,CAAC;KACtE,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;IAErD,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAEtD,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,MAAM,SAAS,GAAc,EAAE,CAAA;IAC/B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACxB,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;YACZ,KAAK,kBAAkB,CAAC;YACxB,KAAK,yBAAyB,CAAC;YAC/B,KAAK,2BAA2B;gBAC5B,SAAS,CAAC,IAAI,CAAC,IAAI,kBAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,2BAA2B,CAAC,CAAC,CAAA;gBACtF,MAAK;QACb,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AACpB,CAAC;AArDD,kDAqDC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACjC,MAAuB,EACvB,MAEC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAEpC,OAAO,mBAAmB,CAAC,MAAM,EAAE;QAC/B,GAAG,IAAI;QACP,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;QACtC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACxC,CAAC,CAAA;AACN,CAAC;AAbD,0CAaC","sourcesContent":["import { MtArgumentError } from '../../../types/errors.js'\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message, PeersIndex } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { normalizeDate } from '../../utils/misc-utils.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _normalizeQuickReplyShortcut } from './send-common.js'\n\n// @exported\nexport interface ForwardMessageOptions {\n /** Destination chat ID, username, phone, `\"me\"` or `\"self\"` */\n toChatId: InputPeerLike\n\n /**\n * Whether to forward silently (also applies to caption message).\n */\n silent?: boolean\n\n /**\n * If set, the forwarding will be scheduled to this date\n * (also applies to caption message).\n * When passing a number, a UNIX time in ms is expected.\n *\n * You can also pass `0x7FFFFFFE`, this will send the message\n * once the peer is online\n */\n schedule?: Date | number\n\n /**\n * Whether to clear draft after sending this message (only used for caption)\n *\n * @default `false`\n */\n clearDraft?: boolean\n\n /**\n * Whether to forward without author\n */\n noAuthor?: boolean\n\n /**\n * Whether to forward without caption (implies {@link noAuthor})\n */\n noCaption?: boolean\n\n /**\n * Whether to disallow further forwards of this message.\n *\n * Only for bots, works even if the target chat does not\n * have content protection.\n */\n forbidForwards?: boolean\n\n /**\n * Peer to use when sending the message.\n */\n sendAs?: InputPeerLike\n\n /**\n * If passed, instead of sending the message, it will be saved into the\n * given quick reply shortcut (either its ID or its shortcut string).\n */\n quickReply?: number | string\n\n /**\n * Whether to dispatch the forwarded messages\n * to the client's update handler.\n */\n shouldDispatch?: true\n}\n\n/**\n * Forward one or more messages by their IDs.\n * You can forward no more than 100 messages at once.\n *\n * @param toChatId Destination chat ID, username, phone, `\"me\"` or `\"self\"`\n * @param fromChatId Source chat ID, username, phone, `\"me\"` or `\"self\"`\n * @param messages Message IDs\n * @param params Additional sending parameters\n * @returns Newly sent, forwarded messages in the destination chat.\n */\nexport async function forwardMessagesById(\n client: ITelegramClient,\n params: ForwardMessageOptions & {\n /** Source chat ID, username, phone, `\"me\"` or `\"self\"` */\n fromChatId: InputPeerLike\n /** Message IDs to forward */\n messages: number[]\n },\n): Promise<Message[]> {\n const { messages, toChatId, fromChatId, silent, schedule, forbidForwards, sendAs, noAuthor, noCaption } = params\n\n // sending more than 100 will not result in a server-sent\n // error, instead only first 100 IDs will be forwarded,\n // which is definitely not the best outcome.\n if (messages.length > 100) {\n throw new MtArgumentError('You can forward no more than 100 messages at once')\n }\n\n const toPeer = await resolvePeer(client, toChatId)\n\n const res = await client.call({\n _: 'messages.forwardMessages',\n toPeer,\n fromPeer: await resolvePeer(client, fromChatId),\n id: messages,\n silent,\n scheduleDate: normalizeDate(schedule),\n randomId: Array.from({ length: messages.length }, () => randomLong()),\n dropAuthor: noAuthor,\n dropMediaCaptions: noCaption,\n noforwards: forbidForwards,\n sendAs: sendAs ? await resolvePeer(client, sendAs) : undefined,\n quickReplyShortcut: _normalizeQuickReplyShortcut(params.quickReply),\n })\n\n assertIsUpdatesGroup('messages.forwardMessages', res)\n\n client.handleClientUpdate(res, !params.shouldDispatch)\n\n const peers = PeersIndex.from(res)\n\n const forwarded: Message[] = []\n res.updates.forEach((upd) => {\n switch (upd._) {\n case 'updateNewMessage':\n case 'updateNewChannelMessage':\n case 'updateNewScheduledMessage':\n forwarded.push(new Message(upd.message, peers, upd._ === 'updateNewScheduledMessage'))\n break\n }\n })\n\n return forwarded\n}\n\n/**\n * Forward one or more {@link Message}s to another chat.\n *\n * > **Note**: all messages must be from the same chat.\n */\nexport async function forwardMessages(\n client: ITelegramClient,\n params: ForwardMessageOptions & {\n messages: Message[]\n },\n): Promise<Message[]> {\n const { messages, ...rest } = params\n\n return forwardMessagesById(client, {\n ...rest,\n fromChatId: messages[0].chat.inputPeer,\n messages: messages.map((it) => it.id),\n })\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { ITelegramClient } from '../../client.types.js';
2
+ import { InputPeerLike, Message } from '../../types/index.js';
3
+ /**
4
+ * Get all scheduled messages in chat
5
+ *
6
+ * @param chatId Chat's marked ID, its username, phone or `"me"` or `"self"`
7
+ */
8
+ export declare function getAllScheduledMessages(client: ITelegramClient, chatId: InputPeerLike): Promise<Message[]>;