@mtcute/core 0.11.0 → 0.12.1

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 (471) 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 +2 -2
  211. package/cjs/network/client.js +9 -1
  212. package/cjs/network/client.js.map +1 -1
  213. package/cjs/network/mtproto-session.d.ts +0 -1
  214. package/cjs/network/multi-session-connection.d.ts +0 -1
  215. package/cjs/network/network-manager.d.ts +8 -0
  216. package/cjs/network/network-manager.js +9 -4
  217. package/cjs/network/network-manager.js.map +1 -1
  218. package/cjs/network/persistent-connection.d.ts +0 -1
  219. package/cjs/network/session-connection.js +11 -0
  220. package/cjs/network/session-connection.js.map +1 -1
  221. package/cjs/network/transports/abstract.d.ts +0 -1
  222. package/cjs/network/transports/streamed.d.ts +0 -1
  223. package/cjs/network/transports/wrapped.d.ts +0 -1
  224. package/cjs/platform.js +6 -0
  225. package/cjs/storage/sqlite/repository/peers.js +1 -2
  226. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  227. package/cjs/storage/storage.d.ts +21 -0
  228. package/cjs/types/utils.d.ts +1 -0
  229. package/cjs/types/utils.js.map +1 -1
  230. package/cjs/utils/index.js +6 -0
  231. package/cjs/utils/reloadable.d.ts +0 -1
  232. package/client.d.ts +1 -0
  233. package/client.js +1 -0
  234. package/esm/highlevel/client.d.ts +198 -18
  235. package/esm/highlevel/client.js +47 -0
  236. package/esm/highlevel/client.js.map +1 -1
  237. package/esm/highlevel/methods/_imports.js.map +1 -1
  238. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  239. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  240. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  241. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  242. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  243. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  244. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  245. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  246. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  247. package/esm/highlevel/methods/files/normalize-input-media.js +11 -10
  248. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  249. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  250. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  251. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  252. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  253. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  254. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  255. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  256. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  257. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  258. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  259. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  260. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  261. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  262. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  263. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  264. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  265. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  266. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  267. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  268. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  269. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  270. package/esm/highlevel/methods/messages/search-global.js +2 -1
  271. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  272. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  273. package/esm/highlevel/methods/messages/send-common.js +19 -0
  274. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  275. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  276. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  277. package/esm/highlevel/methods/messages/send-media.js +4 -2
  278. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  279. package/esm/highlevel/methods/messages/send-text.js +4 -2
  280. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  281. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  282. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  283. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  284. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  285. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  286. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  287. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  288. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  289. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  290. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  291. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  292. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  293. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  294. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  295. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  296. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  297. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  298. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  299. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  300. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  301. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  302. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  303. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  304. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  305. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  306. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  307. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  308. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  309. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  310. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  311. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  312. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  313. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  314. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  315. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  316. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  317. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  318. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  319. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  320. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  321. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  322. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  323. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  324. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  325. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  326. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  327. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  328. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  329. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  330. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  331. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  332. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  333. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  334. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  335. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  336. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  337. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  338. package/esm/highlevel/methods.d.ts +12 -0
  339. package/esm/highlevel/methods.js +12 -0
  340. package/esm/highlevel/methods.js.map +1 -1
  341. package/esm/highlevel/storage/storage.d.ts +7 -2
  342. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  343. package/esm/highlevel/types/auth/sent-code.js +14 -0
  344. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  345. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  346. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  347. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  348. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  349. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  350. package/esm/highlevel/types/files/utils.d.ts +6 -5
  351. package/esm/highlevel/types/files/utils.js.map +1 -1
  352. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  353. package/esm/highlevel/types/media/document-utils.js +7 -1
  354. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  355. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  356. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  357. package/esm/highlevel/types/media/poll.d.ts +17 -6
  358. package/esm/highlevel/types/media/poll.js +64 -17
  359. package/esm/highlevel/types/media/poll.js.map +1 -1
  360. package/esm/highlevel/types/messages/dialog.js +1 -12
  361. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  362. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  363. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  364. package/esm/highlevel/types/messages/message-action.js +6 -0
  365. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  366. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  367. package/esm/highlevel/types/messages/message.d.ts +59 -1
  368. package/esm/highlevel/types/messages/message.js +96 -1
  369. package/esm/highlevel/types/messages/message.js.map +1 -1
  370. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  371. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  372. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  373. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  374. package/esm/highlevel/types/misc/entities.js +13 -1
  375. package/esm/highlevel/types/misc/entities.js.map +1 -1
  376. package/esm/highlevel/types/misc/index.d.ts +1 -0
  377. package/esm/highlevel/types/misc/index.js +1 -0
  378. package/esm/highlevel/types/misc/index.js.map +1 -1
  379. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  380. package/esm/highlevel/types/misc/sticker-set.js +38 -7
  381. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  382. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  383. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  384. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  385. package/esm/highlevel/types/peers/chat.js +2 -195
  386. package/esm/highlevel/types/peers/chat.js.map +1 -1
  387. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  388. package/esm/highlevel/types/peers/full-chat.js +234 -0
  389. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  390. package/esm/highlevel/types/peers/index.d.ts +1 -0
  391. package/esm/highlevel/types/peers/index.js +1 -0
  392. package/esm/highlevel/types/peers/index.js.map +1 -1
  393. package/esm/highlevel/types/peers/user.d.ts +5 -0
  394. package/esm/highlevel/types/peers/user.js +7 -0
  395. package/esm/highlevel/types/peers/user.js.map +1 -1
  396. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  397. package/esm/highlevel/types/premium/business-account.js +42 -0
  398. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  399. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  400. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  401. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  402. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  403. package/esm/highlevel/types/premium/business-connection.js +42 -0
  404. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  405. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  406. package/esm/highlevel/types/premium/business-intro.js +40 -0
  407. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  408. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  409. package/esm/highlevel/types/premium/business-location.js +23 -0
  410. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  411. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  412. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  413. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  414. package/esm/highlevel/types/premium/index.d.ts +5 -0
  415. package/esm/highlevel/types/premium/index.js +5 -0
  416. package/esm/highlevel/types/premium/index.js.map +1 -1
  417. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  418. package/esm/highlevel/types/updates/business-message.js +31 -0
  419. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  420. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  421. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  422. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  423. package/esm/highlevel/types/updates/index.d.ts +19 -2
  424. package/esm/highlevel/types/updates/index.js +3 -1
  425. package/esm/highlevel/types/updates/index.js.map +1 -1
  426. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  427. package/esm/highlevel/types/updates/parse-update.js +9 -1
  428. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  429. package/esm/highlevel/types/updates/poll-update.js +2 -2
  430. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  431. package/esm/highlevel/updates/manager.d.ts +0 -1
  432. package/esm/highlevel/updates/manager.js +7 -2
  433. package/esm/highlevel/updates/manager.js.map +1 -1
  434. package/esm/highlevel/updates/parsed.js +8 -2
  435. package/esm/highlevel/updates/parsed.js.map +1 -1
  436. package/esm/highlevel/updates/types.d.ts +57 -0
  437. package/esm/highlevel/updates/utils.d.ts +2 -0
  438. package/esm/highlevel/utils/inspectable.js +4 -0
  439. package/esm/highlevel/utils/inspectable.js.map +1 -1
  440. package/esm/highlevel/worker/protocol.d.ts +0 -1
  441. package/esm/network/client.d.ts +2 -2
  442. package/esm/network/client.js +9 -1
  443. package/esm/network/client.js.map +1 -1
  444. package/esm/network/mtproto-session.d.ts +0 -1
  445. package/esm/network/multi-session-connection.d.ts +0 -1
  446. package/esm/network/network-manager.d.ts +8 -0
  447. package/esm/network/network-manager.js +9 -4
  448. package/esm/network/network-manager.js.map +1 -1
  449. package/esm/network/persistent-connection.d.ts +0 -1
  450. package/esm/network/session-connection.js +11 -0
  451. package/esm/network/session-connection.js.map +1 -1
  452. package/esm/network/transports/abstract.d.ts +0 -1
  453. package/esm/network/transports/streamed.d.ts +0 -1
  454. package/esm/network/transports/wrapped.d.ts +0 -1
  455. package/esm/storage/sqlite/repository/peers.js +1 -2
  456. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  457. package/esm/storage/storage.d.ts +21 -0
  458. package/esm/types/utils.d.ts +1 -0
  459. package/esm/types/utils.js.map +1 -1
  460. package/esm/utils/reloadable.d.ts +0 -1
  461. package/index.d.ts +1 -0
  462. package/index.js +1 -0
  463. package/methods.d.ts +1 -0
  464. package/methods.js +1 -0
  465. package/package.json +5 -5
  466. package/platform.d.ts +1 -0
  467. package/platform.js +1 -0
  468. package/utils.d.ts +1 -0
  469. package/utils.js +1 -0
  470. package/worker.d.ts +1 -0
  471. package/worker.js +1 -0
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAllScheduledMessages = void 0;
7
+ const long_1 = __importDefault(require("long"));
8
+ const type_assertions_js_1 = require("../../../utils/type-assertions.js");
9
+ const index_js_1 = require("../../types/index.js");
10
+ const resolve_peer_js_1 = require("../users/resolve-peer.js");
11
+ /**
12
+ * Get all scheduled messages in chat
13
+ *
14
+ * @param chatId Chat's marked ID, its username, phone or `"me"` or `"self"`
15
+ */
16
+ async function getAllScheduledMessages(client, chatId) {
17
+ const peer = await (0, resolve_peer_js_1.resolvePeer)(client, chatId);
18
+ const res = await client.call({
19
+ _: 'messages.getScheduledHistory',
20
+ peer,
21
+ hash: long_1.default.ZERO,
22
+ });
23
+ (0, type_assertions_js_1.assertTypeIsNot)('getScheduledMessages', res, 'messages.messagesNotModified');
24
+ const peers = index_js_1.PeersIndex.from(res);
25
+ const ret = res.messages.map((msg) => {
26
+ (0, type_assertions_js_1.assertTypeIsNot)('getScheduledMessages', msg, 'messageEmpty');
27
+ return new index_js_1.Message(msg, peers, true);
28
+ });
29
+ return ret;
30
+ }
31
+ exports.getAllScheduledMessages = getAllScheduledMessages;
32
+ //# sourceMappingURL=get-all-scheduled-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-all-scheduled-messages.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/get-all-scheduled-messages.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAEvB,0EAAmE;AAEnE,mDAAyE;AACzE,8DAAsD;AAEtD;;;;GAIG;AACI,KAAK,UAAU,uBAAuB,CAAC,MAAuB,EAAE,MAAqB;IACxF,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,8BAA8B;QACjC,IAAI;QACJ,IAAI,EAAE,cAAI,CAAC,IAAI;KAClB,CAAC,CAAA;IAEF,IAAA,oCAAe,EAAC,sBAAsB,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IAE5E,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,IAAA,oCAAe,EAAC,sBAAsB,EAAE,GAAG,EAAE,cAAc,CAAC,CAAA;QAE5D,OAAO,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACd,CAAC;AApBD,0DAoBC","sourcesContent":["import Long from 'long'\n\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, Message, PeersIndex } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Get all scheduled messages in chat\n *\n * @param chatId Chat's marked ID, its username, phone or `\"me\"` or `\"self\"`\n */\nexport async function getAllScheduledMessages(client: ITelegramClient, chatId: InputPeerLike): Promise<Message[]> {\n const peer = await resolvePeer(client, chatId)\n\n const res = await client.call({\n _: 'messages.getScheduledHistory',\n peer,\n hash: Long.ZERO,\n })\n\n assertTypeIsNot('getScheduledMessages', res, 'messages.messagesNotModified')\n\n const peers = PeersIndex.from(res)\n\n const ret = res.messages.map((msg) => {\n assertTypeIsNot('getScheduledMessages', msg, 'messageEmpty')\n\n return new Message(msg, peers, true)\n })\n\n return ret\n}\n"]}
@@ -1,5 +1,9 @@
1
+ import { tl } from '@mtcute/tl';
1
2
  import { ITelegramClient } from '../../client.types.js';
2
3
  import { InputMessageId, Message } from '../../types/messages/index.js';
4
+ import { InputPeerLike } from '../../types/peers/index.js';
5
+ /** @internal */
6
+ export declare function _getDiscussionMessage(client: ITelegramClient, peer: InputPeerLike, message: number): Promise<[tl.TypeInputPeer, number]>;
3
7
  /**
4
8
  * Get discussion message for some channel post.
5
9
  *
@@ -16,7 +16,7 @@ const search_global_js_1 = require("./search-global.js");
16
16
  async function* iterSearchGlobal(client, params) {
17
17
  if (!params)
18
18
  params = {};
19
- const { query = '', filter = index_js_1.SearchFilters.Empty, limit = Infinity, chunkSize = 100 } = params;
19
+ const { query = '', filter = index_js_1.SearchFilters.Empty, limit = Infinity, chunkSize = 100, onlyChannels } = params;
20
20
  const minDate = (0, index_js_2.normalizeDate)(params.minDate) ?? 0;
21
21
  const maxDate = (0, index_js_2.normalizeDate)(params.maxDate) ?? 0;
22
22
  let { offset } = params;
@@ -29,6 +29,7 @@ async function* iterSearchGlobal(client, params) {
29
29
  minDate,
30
30
  maxDate,
31
31
  offset,
32
+ onlyChannels,
32
33
  });
33
34
  if (!res.length)
34
35
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"iter-search-global.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-search-global.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAC7D,mDAAoD;AACpD,yDAAiD;AAEjD;;;;;;;;GAQG;AACI,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAuB,EACvB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,wBAAa,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;IAE9F,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,SAAS,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAY,EAAC,MAAM,EAAE;YACnC,KAAK;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,OAAO;YACP,OAAO;YACP,MAAM;SACT,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAM;QAEvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;IACrB,CAAC;AACL,CAAC;AAlDD,4CAkDC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message, SearchFilters } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/index.js'\nimport { searchGlobal } from './search-global.js'\n\n/**\n * Search for messages globally from all of your chats.\n *\n * Iterable version of {@link searchGlobal}\n *\n * **Note**: Due to Telegram limitations, you can only get up to ~10000 messages\n *\n * @param params Search parameters\n */\nexport async function* iterSearchGlobal(\n client: ITelegramClient,\n params?: Parameters<typeof searchGlobal>[1] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default `Infinity`, i.e. all messages are returned\n */\n limit?: number\n\n /**\n * Chunk size, which will be passed as `limit` parameter\n * for `messages.search`. Usually you shouldn't care about this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const { query = '', filter = SearchFilters.Empty, limit = Infinity, chunkSize = 100 } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n\n let { offset } = params\n let current = 0\n\n for (;;) {\n const res = await searchGlobal(client, {\n query,\n filter,\n limit: Math.min(chunkSize, limit - current),\n minDate,\n maxDate,\n offset,\n })\n\n if (!res.length) return\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) return\n offset = res.next\n }\n}\n"]}
1
+ {"version":3,"file":"iter-search-global.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/iter-search-global.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAC7D,mDAAoD;AACpD,yDAAiD;AAEjD;;;;;;;;GAQG;AACI,KAAK,SAAS,CAAC,CAAC,gBAAgB,CACnC,MAAuB,EACvB,MAeC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,wBAAa,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAE5G,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACvB,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,SAAS,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAY,EAAC,MAAM,EAAE;YACnC,KAAK;YACL,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,CAAC;YAC3C,OAAO;YACP,OAAO;YACP,MAAM;YACN,YAAY;SACf,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAM;QAEvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,CAAA;YAET,IAAI,EAAE,OAAO,IAAI,KAAK;gBAAE,OAAM;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAM;QACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;IACrB,CAAC;AACL,CAAC;AAnDD,4CAmDC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { Message, SearchFilters } from '../../types/index.js'\nimport { normalizeDate } from '../../utils/index.js'\nimport { searchGlobal } from './search-global.js'\n\n/**\n * Search for messages globally from all of your chats.\n *\n * Iterable version of {@link searchGlobal}\n *\n * **Note**: Due to Telegram limitations, you can only get up to ~10000 messages\n *\n * @param params Search parameters\n */\nexport async function* iterSearchGlobal(\n client: ITelegramClient,\n params?: Parameters<typeof searchGlobal>[1] & {\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default `Infinity`, i.e. all messages are returned\n */\n limit?: number\n\n /**\n * Chunk size, which will be passed as `limit` parameter\n * for `messages.search`. Usually you shouldn't care about this.\n *\n * @default 100\n */\n chunkSize?: number\n },\n): AsyncIterableIterator<Message> {\n if (!params) params = {}\n\n const { query = '', filter = SearchFilters.Empty, limit = Infinity, chunkSize = 100, onlyChannels } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n\n let { offset } = params\n let current = 0\n\n for (;;) {\n const res = await searchGlobal(client, {\n query,\n filter,\n limit: Math.min(chunkSize, limit - current),\n minDate,\n maxDate,\n offset,\n onlyChannels,\n })\n\n if (!res.length) return\n\n for (const msg of res) {\n yield msg\n\n if (++current >= limit) return\n }\n\n if (!res.next) return\n offset = res.next\n }\n}\n"]}
@@ -44,4 +44,8 @@ export declare function searchGlobal(client: ITelegramClient, params?: {
44
44
  * Only return messages older than this date
45
45
  */
46
46
  maxDate?: Date | number;
47
+ /**
48
+ * Whether to only search across broadcast channels
49
+ */
50
+ onlyChannels?: boolean;
47
51
  }): Promise<ArrayPaginated<Message, SearchGlobalOffset>>;
@@ -19,7 +19,7 @@ const defaultOffset = {
19
19
  async function searchGlobal(client, params) {
20
20
  if (!params)
21
21
  params = {};
22
- const { query = '', filter = index_js_1.SearchFilters.Empty, limit = 100, offset: { rate: offsetRate, peer: offsetPeer, id: offsetId } = defaultOffset, } = params;
22
+ const { query = '', filter = index_js_1.SearchFilters.Empty, limit = 100, offset: { rate: offsetRate, peer: offsetPeer, id: offsetId } = defaultOffset, onlyChannels, } = params;
23
23
  const minDate = (0, index_js_2.normalizeDate)(params.minDate) ?? 0;
24
24
  const maxDate = (0, index_js_2.normalizeDate)(params.maxDate) ?? 0;
25
25
  const res = await client.call({
@@ -32,6 +32,7 @@ async function searchGlobal(client, params) {
32
32
  offsetRate,
33
33
  offsetPeer,
34
34
  limit,
35
+ broadcastsOnly: onlyChannels,
35
36
  });
36
37
  (0, type_assertions_js_1.assertTypeIsNot)('searchGlobal', res, 'messages.messagesNotModified');
37
38
  const peers = index_js_1.PeersIndex.from(res);
@@ -1 +1 @@
1
- {"version":3,"file":"search-global.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/search-global.ts"],"names":[],"mappings":";;;AAEA,0EAAmE;AAEnE,mDAAyF;AACzF,mDAAwE;AASxE,MAAM,aAAa,GAAuB;IACtC,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE;IAC7B,EAAE,EAAE,CAAC;CACR,CAAA;AAED;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,MAoCC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EACF,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,wBAAa,CAAC,KAAK,EAC5B,KAAK,GAAG,GAAG,EACX,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,GAC/E,GAAG,MAAM,CAAA;IAEV,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,uBAAuB;QAC1B,CAAC,EAAE,KAAK;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;KACR,CAAC,CAAA;IAEF,IAAA,oCAAe,EAAC,cAAc,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IACpE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAEzG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;QACf;YACI,IAAI,EAAG,GAAoC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YACrE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;SACd,CAAC,CAAC;QACH,SAAS,CAAA;IAEb,OAAO,IAAA,6BAAkB,EAAC,IAAI,EAAG,GAAoC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACrG,CAAC;AAhFD,oCAgFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { ArrayPaginated, Message, PeersIndex, SearchFilters } from '../../types/index.js'\nimport { makeArrayPaginated, normalizeDate } from '../../utils/index.js'\n\n// @exported\nexport interface SearchGlobalOffset {\n rate: number\n peer: tl.TypeInputPeer\n id: number\n}\n\nconst defaultOffset: SearchGlobalOffset = {\n rate: 0,\n peer: { _: 'inputPeerEmpty' },\n id: 0,\n}\n\n/**\n * Search for messages globally from all of your chats\n *\n * **Note**: Due to Telegram limitations, you can only get up to ~10000 messages\n *\n * @param params Search parameters\n */\nexport async function searchGlobal(\n client: ITelegramClient,\n params?: {\n /**\n * Text query string. Use `\"@\"` to search for mentions.\n *\n * @default `\"\"` (empty string)\n */\n query?: string\n\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default 100\n */\n limit?: number\n\n /**\n * Filter the results using some filter. (see {@link SearchFilters})\n *\n * @default {@link SearchFilters.Empty} (i.e. will return all messages)\n */\n filter?: tl.TypeMessagesFilter\n\n /**\n * Offset data used for pagination\n */\n offset?: SearchGlobalOffset\n\n /**\n * Only return messages newer than this date\n */\n minDate?: Date | number\n\n /**\n * Only return messages older than this date\n */\n maxDate?: Date | number\n },\n): Promise<ArrayPaginated<Message, SearchGlobalOffset>> {\n if (!params) params = {}\n\n const {\n query = '',\n filter = SearchFilters.Empty,\n limit = 100,\n offset: { rate: offsetRate, peer: offsetPeer, id: offsetId } = defaultOffset,\n } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n\n const res = await client.call({\n _: 'messages.searchGlobal',\n q: query,\n filter,\n minDate,\n maxDate,\n offsetId,\n offsetRate,\n offsetPeer,\n limit,\n })\n\n assertTypeIsNot('searchGlobal', res, 'messages.messagesNotModified')\n const peers = PeersIndex.from(res)\n\n const msgs = res.messages.filter((msg) => msg._ !== 'messageEmpty').map((msg) => new Message(msg, peers))\n\n const last = msgs[msgs.length - 1]\n\n const next = last ?\n {\n rate: (res as tl.messages.RawMessagesSlice).nextRate ?? last.raw.date,\n peer: last.chat.inputPeer,\n id: last.id,\n } :\n undefined\n\n return makeArrayPaginated(msgs, (res as tl.messages.RawMessagesSlice).count ?? msgs.length, next)\n}\n"]}
1
+ {"version":3,"file":"search-global.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/search-global.ts"],"names":[],"mappings":";;;AAEA,0EAAmE;AAEnE,mDAAyF;AACzF,mDAAwE;AASxE,MAAM,aAAa,GAAuB;IACtC,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE;IAC7B,EAAE,EAAE,CAAC;CACR,CAAA;AAED;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAC9B,MAAuB,EACvB,MAyCC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,MAAM,EACF,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,wBAAa,CAAC,KAAK,EAC5B,KAAK,GAAG,GAAG,EACX,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,aAAa,EAC5E,YAAY,GACf,GAAG,MAAM,CAAA;IAEV,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAElD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,uBAAuB;QAC1B,CAAC,EAAE,KAAK;QACR,MAAM;QACN,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,UAAU;QACV,KAAK;QACL,cAAc,EAAE,YAAY;KAC/B,CAAC,CAAA;IAEF,IAAA,oCAAe,EAAC,cAAc,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAA;IACpE,MAAM,KAAK,GAAG,qBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kBAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAEzG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAElC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC;QACf;YACI,IAAI,EAAG,GAAoC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI;YACrE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;SACd,CAAC,CAAC;QACH,SAAS,CAAA;IAEb,OAAO,IAAA,6BAAkB,EAAC,IAAI,EAAG,GAAoC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AACrG,CAAC;AAvFD,oCAuFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertTypeIsNot } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { ArrayPaginated, Message, PeersIndex, SearchFilters } from '../../types/index.js'\nimport { makeArrayPaginated, normalizeDate } from '../../utils/index.js'\n\n// @exported\nexport interface SearchGlobalOffset {\n rate: number\n peer: tl.TypeInputPeer\n id: number\n}\n\nconst defaultOffset: SearchGlobalOffset = {\n rate: 0,\n peer: { _: 'inputPeerEmpty' },\n id: 0,\n}\n\n/**\n * Search for messages globally from all of your chats\n *\n * **Note**: Due to Telegram limitations, you can only get up to ~10000 messages\n *\n * @param params Search parameters\n */\nexport async function searchGlobal(\n client: ITelegramClient,\n params?: {\n /**\n * Text query string. Use `\"@\"` to search for mentions.\n *\n * @default `\"\"` (empty string)\n */\n query?: string\n\n /**\n * Limits the number of messages to be retrieved.\n *\n * @default 100\n */\n limit?: number\n\n /**\n * Filter the results using some filter. (see {@link SearchFilters})\n *\n * @default {@link SearchFilters.Empty} (i.e. will return all messages)\n */\n filter?: tl.TypeMessagesFilter\n\n /**\n * Offset data used for pagination\n */\n offset?: SearchGlobalOffset\n\n /**\n * Only return messages newer than this date\n */\n minDate?: Date | number\n\n /**\n * Only return messages older than this date\n */\n maxDate?: Date | number\n\n /**\n * Whether to only search across broadcast channels\n */\n onlyChannels?: boolean\n },\n): Promise<ArrayPaginated<Message, SearchGlobalOffset>> {\n if (!params) params = {}\n\n const {\n query = '',\n filter = SearchFilters.Empty,\n limit = 100,\n offset: { rate: offsetRate, peer: offsetPeer, id: offsetId } = defaultOffset,\n onlyChannels,\n } = params\n\n const minDate = normalizeDate(params.minDate) ?? 0\n const maxDate = normalizeDate(params.maxDate) ?? 0\n\n const res = await client.call({\n _: 'messages.searchGlobal',\n q: query,\n filter,\n minDate,\n maxDate,\n offsetId,\n offsetRate,\n offsetPeer,\n limit,\n broadcastsOnly: onlyChannels,\n })\n\n assertTypeIsNot('searchGlobal', res, 'messages.messagesNotModified')\n const peers = PeersIndex.from(res)\n\n const msgs = res.messages.filter((msg) => msg._ !== 'messageEmpty').map((msg) => new Message(msg, peers))\n\n const last = msgs[msgs.length - 1]\n\n const next = last ?\n {\n rate: (res as tl.messages.RawMessagesSlice).nextRate ?? last.raw.date,\n peer: last.chat.inputPeer,\n id: last.id,\n } :\n undefined\n\n return makeArrayPaginated(msgs, (res as tl.messages.RawMessagesSlice).count ?? msgs.length, next)\n}\n"]}
@@ -1,3 +1,5 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
1
3
  import { Message } from '../../types/messages/message.js';
2
4
  import { TextWithEntities } from '../../types/misc/entities.js';
3
5
  import { InputPeerLike } from '../../types/peers/index.js';
@@ -75,9 +77,35 @@ export interface CommonSendParams {
75
77
  * Peer to use when sending the message.
76
78
  */
77
79
  sendAs?: InputPeerLike;
80
+ /**
81
+ * If passed, instead of sending the message, it will be saved into the
82
+ * given quick reply shortcut (either its ID or its shortcut string).
83
+ */
84
+ quickReply?: number | string;
78
85
  /**
79
86
  * Whether to dispatch the returned message
80
87
  * to the client's update handler.
81
88
  */
82
89
  shouldDispatch?: true;
90
+ /**
91
+ * Unique identifier of the business connection on behalf of which
92
+ * the message will be sent
93
+ */
94
+ businessConnectionId?: string;
83
95
  }
96
+ /**
97
+ * @internal
98
+ * @noemit
99
+ */
100
+ export declare function _normalizeQuickReplyShortcut(shortcut: number | string | undefined): tl.TypeInputQuickReplyShortcut | undefined;
101
+ /**
102
+ * @internal
103
+ * @noemit
104
+ */
105
+ export declare function _processCommonSendParameters(client: ITelegramClient, chatId: InputPeerLike, params: CommonSendParams): Promise<{
106
+ peer: tl.TypeInputPeer;
107
+ replyTo: tl.TypeInputReplyTo | undefined;
108
+ scheduleDate: number | undefined;
109
+ quickReplyShortcut: tl.TypeInputQuickReplyShortcut | undefined;
110
+ chainId: string;
111
+ }>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._processCommonSendParameters = void 0;
3
+ exports._processCommonSendParameters = exports._normalizeQuickReplyShortcut = void 0;
4
4
  const errors_js_1 = require("../../../types/errors.js");
5
5
  const peer_utils_js_1 = require("../../../utils/peer-utils.js");
6
6
  const errors_js_2 = require("../../types/errors.js");
@@ -9,6 +9,25 @@ const chain_id_js_1 = require("../misc/chain-id.js");
9
9
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
10
10
  const get_discussion_message_js_1 = require("./get-discussion-message.js");
11
11
  const get_messages_js_1 = require("./get-messages.js");
12
+ /**
13
+ * @internal
14
+ * @noemit
15
+ */
16
+ function _normalizeQuickReplyShortcut(shortcut) {
17
+ if (!shortcut)
18
+ return undefined;
19
+ if (typeof shortcut === 'number') {
20
+ return {
21
+ _: 'inputQuickReplyShortcutId',
22
+ shortcutId: shortcut,
23
+ };
24
+ }
25
+ return {
26
+ _: 'inputQuickReplyShortcut',
27
+ shortcut,
28
+ };
29
+ }
30
+ exports._normalizeQuickReplyShortcut = _normalizeQuickReplyShortcut;
12
31
  /**
13
32
  * @internal
14
33
  * @noemit
@@ -61,6 +80,7 @@ async function _processCommonSendParameters(client, chatId, params) {
61
80
  peer,
62
81
  replyTo: tlReplyTo,
63
82
  scheduleDate,
83
+ quickReplyShortcut: _normalizeQuickReplyShortcut(params.quickReply),
64
84
  chainId: (0, chain_id_js_1._getPeerChainId)(client, peer, 'send'),
65
85
  };
66
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"send-common.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-common.ts"],"names":[],"mappings":";;;AAEA,wDAA0D;AAC1D,gEAA8D;AAE9D,qDAA8D;AAI9D,mDAAwE;AACxE,qDAAqD;AAErD,8DAAsD;AACtD,2EAAmE;AACnE,uDAA+C;AA+F/C;;;GAGG;AACI,KAAK,UAAU,4BAA4B,CAC9C,MAAuB,EACvB,MAAqB,EACrB,MAAwB;IAExB,IAAI,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE5C,IAAI,OAAO,GAAG,IAAA,6BAAkB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAA;IAEnG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,IAAA,iDAAqB,EAAC,MAAM,EAAE,IAAI,EAAE,IAAA,6BAAkB,EAAC,MAAM,CAAC,SAAS,CAAE,CAAC,CAAA;IACtG,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,2BAAe,CAAC,4CAA4C,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAEpD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,kCAAsB,CAAC,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QACnF,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,IAAI,2BAAe,CAAC,4DAA4D,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,SAAS,GAAoC,SAAS,CAAA;IAE1D,IAAI,OAAO,EAAE,CAAC;QACV,SAAS,GAAG;YACR,CAAC,EAAE,qBAAqB;YACxB,YAAY,EAAE,OAAO;YACrB,aAAa,EAAE,WAAW;YAC1B,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI;YAC7B,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,QAAkC;YAC/D,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,CAAA;IACL,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC7B,SAAS,GAAG;YACR,CAAC,EAAE,mBAAmB;YACtB,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,IAAI;SACP,CAAA;IACL,CAAC;IAED,IAAI,YAAY,GAAuB,SAAS,CAAA;IAEhD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,YAAY,GAAG,UAAU,CAAA;IAC7B,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,YAAY,GAAG,IAAA,wBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED,OAAO;QACH,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,YAAY;QACZ,OAAO,EAAE,IAAA,6BAAe,EAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;KACjD,CAAA;AACL,CAAC;AA/DD,oEA+DC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { MtMessageNotFoundError } from '../../types/errors.js'\nimport { Message } from '../../types/messages/message.js'\nimport { TextWithEntities } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { normalizeDate, normalizeMessageId } from '../../utils/index.js'\nimport { _getPeerChainId } from '../misc/chain-id.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { getMessages } from './get-messages.js'\n\n// @exported\nexport interface CommonSendParams {\n /**\n * Message to reply to. Either a message object or message ID.\n *\n * For forums - can also be an ID of the topic (i.e. its top message ID)\n *\n * Can also be a message from another chat, in which case a quote will be sent.\n */\n replyTo?: number | Message\n\n /**\n * Whether to throw an error if {@link replyTo}\n * message does not exist.\n *\n * If that message was not found, `NotFoundError` is thrown,\n * with `text` set to `MESSAGE_NOT_FOUND`.\n *\n * Incurs an additional request, so only use when really needed.\n *\n * @default `false`\n */\n mustReply?: boolean\n\n /**\n * Message to comment to. Either a message object or message ID.\n *\n * This overwrites `replyTo` if it was passed\n */\n commentTo?: number | Message\n\n /**\n * Story to reply to.\n *\n * Must be the story sent by the peer you are sending the message to.\n *\n * Can't be used together with {@link replyTo} or {@link commentTo}.\n */\n replyToStory?: number\n\n /**\n * Quoted text. Must be exactly contained in the message\n * being quoted to be accepted by the server (as well as entities)\n */\n quote?: TextWithEntities\n\n /**\n * Offset of the start of the quote in the message.\n */\n quoteOffset?: number\n\n /**\n * Whether to send this message silently.\n */\n silent?: boolean\n\n /**\n * If set, the message will be scheduled to this date.\n * When passing a number, a UNIX time in ms is expected.\n *\n * You can also pass `online` - this will send the message\n * once the peer is online. Note that this requires that\n * peer's online status to be visible to you.\n */\n schedule?: Date | number | 'online'\n\n /**\n * Whether to clear draft after sending this message.\n *\n * @default `false`\n */\n clearDraft?: 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 returned message\n * to the client's update handler.\n */\n shouldDispatch?: true\n}\n\n/**\n * @internal\n * @noemit\n */\nexport async function _processCommonSendParameters(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params: CommonSendParams,\n) {\n let peer = await resolvePeer(client, chatId)\n\n let replyTo = normalizeMessageId(params.replyTo)\n const replyToPeer = typeof params.replyTo === 'number' ? undefined : params.replyTo?.chat.inputPeer\n\n if (params.commentTo) {\n [peer, replyTo] = await _getDiscussionMessage(client, peer, normalizeMessageId(params.commentTo)!)\n }\n\n if (params.mustReply) {\n if (!replyTo) {\n throw new MtArgumentError('mustReply used, but replyTo was not passed')\n }\n\n const msg = await getMessages(client, peer, replyTo)\n\n if (!msg) {\n throw new MtMessageNotFoundError(getMarkedPeerId(peer), replyTo, 'to reply to')\n }\n }\n\n if (params.replyToStory && replyTo) {\n throw new MtArgumentError('replyTo/commentTo and replyToStory cannot be used together')\n }\n\n let tlReplyTo: tl.TypeInputReplyTo | undefined = undefined\n\n if (replyTo) {\n tlReplyTo = {\n _: 'inputReplyToMessage',\n replyToMsgId: replyTo,\n replyToPeerId: replyToPeer,\n quoteText: params.quote?.text,\n quoteEntities: params.quote?.entities as tl.TypeMessageEntity[],\n quoteOffset: params.quoteOffset,\n }\n } else if (params.replyToStory) {\n tlReplyTo = {\n _: 'inputReplyToStory',\n storyId: params.replyToStory,\n peer,\n }\n }\n\n let scheduleDate: number | undefined = undefined\n\n if (params.schedule === 'online') {\n scheduleDate = 0x7ffffffe\n } else if (params.schedule) {\n scheduleDate = normalizeDate(params.schedule)\n }\n\n return {\n peer,\n replyTo: tlReplyTo,\n scheduleDate,\n chainId: _getPeerChainId(client, peer, 'send'),\n }\n}\n"]}
1
+ {"version":3,"file":"send-common.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-common.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtArgumentError } from '../../../types/errors.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { MtMessageNotFoundError } from '../../types/errors.js'\nimport { Message } from '../../types/messages/message.js'\nimport { TextWithEntities } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/index.js'\nimport { normalizeDate, normalizeMessageId } from '../../utils/index.js'\nimport { _getPeerChainId } from '../misc/chain-id.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { getMessages } from './get-messages.js'\n\n// @exported\nexport interface CommonSendParams {\n /**\n * Message to reply to. Either a message object or message ID.\n *\n * For forums - can also be an ID of the topic (i.e. its top message ID)\n *\n * Can also be a message from another chat, in which case a quote will be sent.\n */\n replyTo?: number | Message\n\n /**\n * Whether to throw an error if {@link replyTo}\n * message does not exist.\n *\n * If that message was not found, `NotFoundError` is thrown,\n * with `text` set to `MESSAGE_NOT_FOUND`.\n *\n * Incurs an additional request, so only use when really needed.\n *\n * @default `false`\n */\n mustReply?: boolean\n\n /**\n * Message to comment to. Either a message object or message ID.\n *\n * This overwrites `replyTo` if it was passed\n */\n commentTo?: number | Message\n\n /**\n * Story to reply to.\n *\n * Must be the story sent by the peer you are sending the message to.\n *\n * Can't be used together with {@link replyTo} or {@link commentTo}.\n */\n replyToStory?: number\n\n /**\n * Quoted text. Must be exactly contained in the message\n * being quoted to be accepted by the server (as well as entities)\n */\n quote?: TextWithEntities\n\n /**\n * Offset of the start of the quote in the message.\n */\n quoteOffset?: number\n\n /**\n * Whether to send this message silently.\n */\n silent?: boolean\n\n /**\n * If set, the message will be scheduled to this date.\n * When passing a number, a UNIX time in ms is expected.\n *\n * You can also pass `online` - this will send the message\n * once the peer is online. Note that this requires that\n * peer's online status to be visible to you.\n */\n schedule?: Date | number | 'online'\n\n /**\n * Whether to clear draft after sending this message.\n *\n * @default `false`\n */\n clearDraft?: 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 returned message\n * to the client's update handler.\n */\n shouldDispatch?: true\n\n /**\n * Unique identifier of the business connection on behalf of which\n * the message will be sent\n */\n businessConnectionId?: string\n}\n\n/**\n * @internal\n * @noemit\n */\nexport function _normalizeQuickReplyShortcut(\n shortcut: number | string | undefined,\n): tl.TypeInputQuickReplyShortcut | undefined {\n if (!shortcut) return undefined\n\n if (typeof shortcut === 'number') {\n return {\n _: 'inputQuickReplyShortcutId',\n shortcutId: shortcut,\n }\n }\n\n return {\n _: 'inputQuickReplyShortcut',\n shortcut,\n }\n}\n\n/**\n * @internal\n * @noemit\n */\nexport async function _processCommonSendParameters(\n client: ITelegramClient,\n chatId: InputPeerLike,\n params: CommonSendParams,\n) {\n let peer = await resolvePeer(client, chatId)\n\n let replyTo = normalizeMessageId(params.replyTo)\n const replyToPeer = typeof params.replyTo === 'number' ? undefined : params.replyTo?.chat.inputPeer\n\n if (params.commentTo) {\n [peer, replyTo] = await _getDiscussionMessage(client, peer, normalizeMessageId(params.commentTo)!)\n }\n\n if (params.mustReply) {\n if (!replyTo) {\n throw new MtArgumentError('mustReply used, but replyTo was not passed')\n }\n\n const msg = await getMessages(client, peer, replyTo)\n\n if (!msg) {\n throw new MtMessageNotFoundError(getMarkedPeerId(peer), replyTo, 'to reply to')\n }\n }\n\n if (params.replyToStory && replyTo) {\n throw new MtArgumentError('replyTo/commentTo and replyToStory cannot be used together')\n }\n\n let tlReplyTo: tl.TypeInputReplyTo | undefined = undefined\n\n if (replyTo) {\n tlReplyTo = {\n _: 'inputReplyToMessage',\n replyToMsgId: replyTo,\n replyToPeerId: replyToPeer,\n quoteText: params.quote?.text,\n quoteEntities: params.quote?.entities as tl.TypeMessageEntity[],\n quoteOffset: params.quoteOffset,\n }\n } else if (params.replyToStory) {\n tlReplyTo = {\n _: 'inputReplyToStory',\n storyId: params.replyToStory,\n peer,\n }\n }\n\n let scheduleDate: number | undefined = undefined\n\n if (params.schedule === 'online') {\n scheduleDate = 0x7ffffffe\n } else if (params.schedule) {\n scheduleDate = normalizeDate(params.schedule)\n }\n\n return {\n peer,\n replyTo: tlReplyTo,\n scheduleDate,\n quickReplyShortcut: _normalizeQuickReplyShortcut(params.quickReply),\n chainId: _getPeerChainId(client, peer, 'send'),\n }\n}\n"]}
@@ -8,6 +8,7 @@ const utils_js_1 = require("../../updates/utils.js");
8
8
  const normalize_input_media_js_1 = require("../files/normalize-input-media.js");
9
9
  const normalize_text_js_1 = require("../misc/normalize-text.js");
10
10
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
11
+ const _business_connection_js_1 = require("./_business-connection.js");
11
12
  const send_common_js_1 = require("./send-common.js");
12
13
  /**
13
14
  * Send a group of media.
@@ -23,7 +24,7 @@ const send_common_js_1 = require("./send-common.js");
23
24
  async function sendMediaGroup(client, chatId, medias, params) {
24
25
  if (!params)
25
26
  params = {};
26
- const { peer, replyTo, scheduleDate, chainId } = await (0, send_common_js_1._processCommonSendParameters)(client, chatId, params);
27
+ const { peer, replyTo, scheduleDate, chainId, quickReplyShortcut } = await (0, send_common_js_1._processCommonSendParameters)(client, chatId, params);
27
28
  const multiMedia = [];
28
29
  for (let i = 0; i < medias.length; i++) {
29
30
  let media = medias[i];
@@ -39,6 +40,7 @@ async function sendMediaGroup(client, chatId, medias, params) {
39
40
  // but otherwise Telegram throws MEDIA_INVALID
40
41
  // fuck my life
41
42
  uploadPeer: peer,
43
+ businessConnectionId: params.businessConnectionId,
42
44
  }, true);
43
45
  const [message, entities] = await (0, normalize_text_js_1._normalizeInputText)(client,
44
46
  // some types dont have `caption` field, and ts warns us,
@@ -52,7 +54,7 @@ async function sendMediaGroup(client, chatId, medias, params) {
52
54
  entities,
53
55
  });
54
56
  }
55
- const res = await client.call({
57
+ const res = await (0, _business_connection_js_1._maybeInvokeWithBusinessConnection)(client, params.businessConnectionId, {
56
58
  _: 'messages.sendMultiMedia',
57
59
  peer,
58
60
  multiMedia,
@@ -63,6 +65,7 @@ async function sendMediaGroup(client, chatId, medias, params) {
63
65
  noforwards: params.forbidForwards,
64
66
  sendAs: params.sendAs ? await (0, resolve_peer_js_1.resolvePeer)(client, params.sendAs) : undefined,
65
67
  invertMedia: params.invertMedia,
68
+ quickReplyShortcut,
66
69
  }, { chainId });
67
70
  (0, utils_js_1.assertIsUpdatesGroup)('sendMediaGroup', res);
68
71
  client.handleClientUpdate(res);
@@ -1 +1 @@
1
- {"version":3,"file":"send-media-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { _normalizeInputMedia } from '../files/normalize-input-media.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a group of media.\n *\n * To add a caption to the group, add caption to the first\n * media in the group and don't add caption for any other.\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param medias Medias contained in the message.\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMediaGroup(\n client: ITelegramClient,\n chatId: InputPeerLike,\n medias: (InputMediaLike | string)[],\n params?: CommonSendParams & {\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 /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param index Index of the media in the original array\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (index: number, uploaded: number, total: number) => void\n },\n): Promise<Message[]> {\n if (!params) params = {}\n\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const multiMedia: tl.RawInputSingleMedia[] = []\n\n for (let i = 0; i < medias.length; i++) {\n let media = medias[i]\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(\n client,\n media,\n {\n progressCallback: params.progressCallback?.bind(null, i),\n // i have no fucking clue why we should upload it manually,\n // but otherwise Telegram throws MEDIA_INVALID\n // fuck my life\n uploadPeer: peer,\n },\n true,\n )\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n multiMedia.push({\n _: 'inputSingleMedia',\n randomId: randomLong(),\n media: inputMedia,\n message,\n entities,\n })\n }\n\n const res = await client.call(\n {\n _: 'messages.sendMultiMedia',\n peer,\n multiMedia,\n silent: params.silent,\n replyTo,\n scheduleDate,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n },\n { chainId },\n )\n\n assertIsUpdatesGroup('sendMediaGroup', res)\n client.handleClientUpdate(res)\n\n const peers = PeersIndex.from(res)\n\n const msgs = res.updates\n .filter(\n (u): u is tl.RawUpdateNewMessage | tl.RawUpdateNewChannelMessage | tl.RawUpdateNewScheduledMessage =>\n u._ === 'updateNewMessage' || u._ === 'updateNewChannelMessage' || u._ === 'updateNewScheduledMessage',\n )\n .map((u) => new Message(u.message, peers, u._ === 'updateNewScheduledMessage'))\n\n return msgs\n}\n"]}
1
+ {"version":3,"file":"send-media-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.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 { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a group of media.\n *\n * To add a caption to the group, add caption to the first\n * media in the group and don't add caption for any other.\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param medias Medias contained in the message.\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMediaGroup(\n client: ITelegramClient,\n chatId: InputPeerLike,\n medias: (InputMediaLike | string)[],\n params?: CommonSendParams & {\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 /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param index Index of the media in the original array\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (index: number, uploaded: number, total: number) => void\n },\n): Promise<Message[]> {\n if (!params) params = {}\n\n const { peer, replyTo, scheduleDate, chainId, quickReplyShortcut } = await _processCommonSendParameters(\n client,\n chatId,\n params,\n )\n\n const multiMedia: tl.RawInputSingleMedia[] = []\n\n for (let i = 0; i < medias.length; i++) {\n let media = medias[i]\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(\n client,\n media,\n {\n progressCallback: params.progressCallback?.bind(null, i),\n // i have no fucking clue why we should upload it manually,\n // but otherwise Telegram throws MEDIA_INVALID\n // fuck my life\n uploadPeer: peer,\n businessConnectionId: params.businessConnectionId,\n },\n true,\n )\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n multiMedia.push({\n _: 'inputSingleMedia',\n randomId: randomLong(),\n media: inputMedia,\n message,\n entities,\n })\n }\n\n const res = await _maybeInvokeWithBusinessConnection(\n client,\n params.businessConnectionId,\n {\n _: 'messages.sendMultiMedia',\n peer,\n multiMedia,\n silent: params.silent,\n replyTo,\n scheduleDate,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n quickReplyShortcut,\n },\n { chainId },\n )\n\n assertIsUpdatesGroup('sendMediaGroup', res)\n client.handleClientUpdate(res)\n\n const peers = PeersIndex.from(res)\n\n const msgs = res.updates\n .filter(\n (u): u is tl.RawUpdateNewMessage | tl.RawUpdateNewChannelMessage | tl.RawUpdateNewScheduledMessage =>\n u._ === 'updateNewMessage' || u._ === 'updateNewChannelMessage' || u._ === 'updateNewScheduledMessage',\n )\n .map((u) => new Message(u.message, peers, u._ === 'updateNewScheduledMessage'))\n\n return msgs\n}\n"]}
@@ -6,6 +6,7 @@ const index_js_1 = require("../../types/bots/keyboards/index.js");
6
6
  const normalize_input_media_js_1 = require("../files/normalize-input-media.js");
7
7
  const normalize_text_js_1 = require("../misc/normalize-text.js");
8
8
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
9
+ const _business_connection_js_1 = require("./_business-connection.js");
9
10
  const find_in_update_js_1 = require("./find-in-update.js");
10
11
  const send_common_js_1 = require("./send-common.js");
11
12
  /**
@@ -34,9 +35,9 @@ async function sendMedia(client, chatId, media, params) {
34
35
  // but since it's JS, they'll just be `undefined` and properly handled by the method
35
36
  params.caption || media.caption);
36
37
  const replyMarkup = index_js_1.BotKeyboard._convertToTl(params.replyMarkup);
37
- const { peer, replyTo, scheduleDate, chainId } = await (0, send_common_js_1._processCommonSendParameters)(client, chatId, params);
38
+ const { peer, replyTo, scheduleDate, chainId, quickReplyShortcut } = await (0, send_common_js_1._processCommonSendParameters)(client, chatId, params);
38
39
  const randomId = (0, long_utils_js_1.randomLong)();
39
- const res = await client.call({
40
+ const res = await (0, _business_connection_js_1._maybeInvokeWithBusinessConnection)(client, params.businessConnectionId, {
40
41
  _: 'messages.sendMedia',
41
42
  peer,
42
43
  media: inputMedia,
@@ -51,6 +52,7 @@ async function sendMedia(client, chatId, media, params) {
51
52
  noforwards: params.forbidForwards,
52
53
  sendAs: params.sendAs ? await (0, resolve_peer_js_1.resolvePeer)(client, params.sendAs) : undefined,
53
54
  invertMedia: params.invert,
55
+ quickReplyShortcut,
54
56
  }, { chainId });
55
57
  const msg = (0, find_in_update_js_1._findMessageInUpdate)(client, res, false, !params.shouldDispatch, false, randomId);
56
58
  return msg;
@@ -1 +1 @@
1
- {"version":3,"file":"send-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AAEzD,kEAA8E;AAK9E,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AACtD,2DAA0D;AAE1D,qDAAiF;AAEjF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,KAA8B,EAC9B,MAgCC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,KAAK,GAAG;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACd,CAAA;IACL,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAoB,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EACjD,MAAM;IACN,yDAAyD;IACzD,oFAAoF;IACpF,MAAM,CAAC,OAAO,IAAK,KAAsD,CAAC,OAAO,CACpF,CAAA;IAED,MAAM,WAAW,GAAG,sBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,6CAA4B,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAE3G,MAAM,QAAQ,GAAG,IAAA,0BAAU,GAAE,CAAA;IAC7B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CACzB;QACI,CAAC,EAAE,oBAAoB;QACvB,IAAI;QACJ,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,cAAc;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,WAAW,EAAE,MAAM,CAAC,MAAM;KAC7B,EACD,EAAE,OAAO,EAAE,CACd,CAAA;IAED,MAAM,GAAG,GAAG,IAAA,wCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE7F,OAAO,GAAG,CAAA;AACd,CAAC;AAnFD,8BAmFC","sourcesContent":["import { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/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'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a single media (a photo or a document-based media)\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param media\n * Media contained in the message. You can also pass TDLib\n * and Bot API compatible File ID, which will be wrapped\n * in {@link InputMedia.auto}\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMedia(\n client: ITelegramClient,\n chatId: InputPeerLike,\n media: InputMediaLike | string,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\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 invert?: boolean\n\n /**\n * Override caption for `media`.\n *\n * Can be used, for example. when using File IDs\n * or when using existing InputMedia objects.\n */\n caption?: InputText\n\n /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (uploaded: number, total: number) => void\n },\n): Promise<Message> {\n if (!params) params = {}\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(client, media, params)\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n params.caption || (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const randomId = randomLong()\n const res = await client.call(\n {\n _: 'messages.sendMedia',\n peer,\n media: inputMedia,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invert,\n },\n { chainId },\n )\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"send-media.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-media.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;AAEzD,kEAA8E;AAK9E,gFAAwE;AACxE,iEAA+D;AAC/D,8DAAsD;AACtD,uEAA8E;AAC9E,2DAA0D;AAE1D,qDAAiF;AAEjF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,SAAS,CAC3B,MAAuB,EACvB,MAAqB,EACrB,KAA8B,EAC9B,MAgCC;IAED,IAAI,CAAC,MAAM;QAAE,MAAM,GAAG,EAAE,CAAA;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,KAAK,GAAG;YACJ,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,KAAK;SACd,CAAA;IACL,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAoB,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAEpE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,IAAA,uCAAmB,EACjD,MAAM;IACN,yDAAyD;IACzD,oFAAoF;IACpF,MAAM,CAAC,OAAO,IAAK,KAAsD,CAAC,OAAO,CACpF,CAAA;IAED,MAAM,WAAW,GAAG,sBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAChE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAA,6CAA4B,EACnG,MAAM,EACN,MAAM,EACN,MAAM,CACT,CAAA;IAED,MAAM,QAAQ,GAAG,IAAA,0BAAU,GAAE,CAAA;IAC7B,MAAM,GAAG,GAAG,MAAM,IAAA,4DAAkC,EAChD,MAAM,EACN,MAAM,CAAC,oBAAoB,EAC3B;QACI,CAAC,EAAE,oBAAoB;QACvB,IAAI;QACJ,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,OAAO;QACP,QAAQ;QACR,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,cAAc;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC5E,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,kBAAkB;KACrB,EACD,EAAE,OAAO,EAAE,CACd,CAAA;IAED,MAAM,GAAG,GAAG,IAAA,wCAAoB,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE7F,OAAO,GAAG,CAAA;AACd,CAAC;AA1FD,8BA0FC","sourcesContent":["import { randomLong } from '../../../utils/long-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { InputMediaLike } from '../../types/media/input-media/types.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike } from '../../types/peers/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'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a single media (a photo or a document-based media)\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param media\n * Media contained in the message. You can also pass TDLib\n * and Bot API compatible File ID, which will be wrapped\n * in {@link InputMedia.auto}\n * @param params Additional sending parameters\n * @link InputMedia\n */\nexport async function sendMedia(\n client: ITelegramClient,\n chatId: InputPeerLike,\n media: InputMediaLike | string,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\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 invert?: boolean\n\n /**\n * Override caption for `media`.\n *\n * Can be used, for example. when using File IDs\n * or when using existing InputMedia objects.\n */\n caption?: InputText\n\n /**\n * Function that will be called after some part has been uploaded.\n * Only used when a file that requires uploading is passed,\n * and not used when uploading a thumbnail.\n *\n * @param uploaded Number of bytes already uploaded\n * @param total Total file size\n */\n progressCallback?: (uploaded: number, total: number) => void\n },\n): Promise<Message> {\n if (!params) params = {}\n\n if (typeof media === 'string') {\n media = {\n type: 'auto',\n file: media,\n }\n }\n\n const inputMedia = await _normalizeInputMedia(client, media, params)\n\n const [message, entities] = await _normalizeInputText(\n client,\n // some types dont have `caption` field, and ts warns us,\n // but since it's JS, they'll just be `undefined` and properly handled by the method\n params.caption || (media as Extract<typeof media, { caption?: unknown }>).caption,\n )\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId, quickReplyShortcut } = await _processCommonSendParameters(\n client,\n chatId,\n params,\n )\n\n const randomId = randomLong()\n const res = await _maybeInvokeWithBusinessConnection(\n client,\n params.businessConnectionId,\n {\n _: 'messages.sendMedia',\n peer,\n media: inputMedia,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invert,\n quickReplyShortcut,\n },\n { chainId },\n )\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
@@ -12,6 +12,7 @@ const peer_utils_js_2 = require("../../utils/peer-utils.js");
12
12
  const batched_queries_js_1 = require("../chats/batched-queries.js");
13
13
  const normalize_text_js_1 = require("../misc/normalize-text.js");
14
14
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
15
+ const _business_connection_js_1 = require("./_business-connection.js");
15
16
  const find_in_update_js_1 = require("./find-in-update.js");
16
17
  const send_common_js_1 = require("./send-common.js");
17
18
  /**
@@ -26,9 +27,9 @@ async function sendText(client, chatId, text, params) {
26
27
  params = {};
27
28
  const [message, entities] = await (0, normalize_text_js_1._normalizeInputText)(client, text);
28
29
  const replyMarkup = index_js_1.BotKeyboard._convertToTl(params.replyMarkup);
29
- const { peer, replyTo, scheduleDate, chainId } = await (0, send_common_js_1._processCommonSendParameters)(client, chatId, params);
30
+ const { peer, replyTo, scheduleDate, chainId, quickReplyShortcut } = await (0, send_common_js_1._processCommonSendParameters)(client, chatId, params);
30
31
  const randomId = (0, long_utils_js_1.randomLong)();
31
- const res = await client.call({
32
+ const res = await (0, _business_connection_js_1._maybeInvokeWithBusinessConnection)(client, params.businessConnectionId, {
32
33
  _: 'messages.sendMessage',
33
34
  peer,
34
35
  noWebpage: params.disableWebPreview,
@@ -43,6 +44,7 @@ async function sendText(client, chatId, text, params) {
43
44
  noforwards: params.forbidForwards,
44
45
  sendAs: params.sendAs ? await (0, resolve_peer_js_1.resolvePeer)(client, params.sendAs) : undefined,
45
46
  invertMedia: params.invertMedia,
47
+ quickReplyShortcut,
46
48
  }, { chainId });
47
49
  if (res._ === 'updateShortSentMessage') {
48
50
  // todo extract this to updates manager?
@@ -1 +1 @@
1
- {"version":3,"file":"send-text.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { createDummyUpdate } from '../../updates/utils.js'\nimport { inputPeerToPeer } from '../../utils/peer-utils.js'\nimport { _getRawPeerBatched } from '../chats/batched-queries.js'\nimport { _normalizeInputText } from '../misc/normalize-text.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _findMessageInUpdate } from './find-in-update.js'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a text message\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param text Text of the message\n * @param params Additional sending parameters\n */\nexport async function sendText(\n client: ITelegramClient,\n chatId: InputPeerLike,\n text: InputText,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * Whether to disable links preview in this message\n */\n disableWebPreview?: boolean\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 if (!params) params = {}\n\n const [message, entities] = await _normalizeInputText(client, text)\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId } = await _processCommonSendParameters(client, chatId, params)\n\n const randomId = randomLong()\n const res = await client.call(\n {\n _: 'messages.sendMessage',\n peer,\n noWebpage: params.disableWebPreview,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n },\n { chainId },\n )\n\n if (res._ === 'updateShortSentMessage') {\n // todo extract this to updates manager?\n const msg: tl.RawMessage = {\n _: 'message',\n id: res.id,\n peerId: inputPeerToPeer(peer),\n fromId: { _: 'peerUser', userId: client.storage.self.getCached()!.userId },\n message,\n date: res.date,\n out: res.out,\n replyMarkup,\n entities: res.entities,\n }\n\n // is this needed?\n // this._date = res.date\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n\n const peers = new PeersIndex()\n\n const fetchPeer = async (peer: tl.TypePeer | tl.TypeInputPeer): Promise<void> => {\n const id = getMarkedPeerId(peer)\n\n let cached = await client.storage.peers.getCompleteById(id)\n\n if (!cached) {\n cached = await _getRawPeerBatched(client, await resolvePeer(client, peer))\n }\n\n if (!cached) {\n throw new MtTypeAssertionError('sendText (@ getFullPeerById)', 'user | chat', 'null')\n }\n\n switch (cached._) {\n case 'user':\n peers.users.set(cached.id, cached)\n break\n case 'chat':\n case 'chatForbidden':\n case 'channel':\n case 'channelForbidden':\n peers.chats.set(cached.id, cached)\n break\n default:\n throw new MtTypeAssertionError(\n 'sendText (@ users.getUsers)',\n 'user | chat | channel', // not very accurate, but good enough\n cached._,\n )\n }\n }\n\n await Promise.all([fetchPeer(peer), fetchPeer(msg.fromId!)])\n\n const ret = new Message(msg, peers)\n\n return ret\n }\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
1
+ {"version":3,"file":"send-text.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-text.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MtTypeAssertionError } from '../../../types/errors.js'\nimport { randomLong } from '../../../utils/long-utils.js'\nimport { getMarkedPeerId } from '../../../utils/peer-utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { BotKeyboard, ReplyMarkup } from '../../types/bots/keyboards/index.js'\nimport { Message } from '../../types/messages/message.js'\nimport { InputText } from '../../types/misc/entities.js'\nimport { InputPeerLike, PeersIndex } from '../../types/peers/index.js'\nimport { createDummyUpdate } from '../../updates/utils.js'\nimport { inputPeerToPeer } from '../../utils/peer-utils.js'\nimport { _getRawPeerBatched } from '../chats/batched-queries.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'\nimport { _getDiscussionMessage } from './get-discussion-message.js'\nimport { _processCommonSendParameters, CommonSendParams } from './send-common.js'\n\n/**\n * Send a text message\n *\n * @param chatId ID of the chat, its username, phone or `\"me\"` or `\"self\"`\n * @param text Text of the message\n * @param params Additional sending parameters\n */\nexport async function sendText(\n client: ITelegramClient,\n chatId: InputPeerLike,\n text: InputText,\n params?: CommonSendParams & {\n /**\n * For bots: inline or reply markup or an instruction\n * to hide a reply keyboard or to force a reply.\n */\n replyMarkup?: ReplyMarkup\n\n /**\n * Whether to disable links preview in this message\n */\n disableWebPreview?: boolean\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 if (!params) params = {}\n\n const [message, entities] = await _normalizeInputText(client, text)\n\n const replyMarkup = BotKeyboard._convertToTl(params.replyMarkup)\n const { peer, replyTo, scheduleDate, chainId, quickReplyShortcut } = await _processCommonSendParameters(\n client,\n chatId,\n params,\n )\n\n const randomId = randomLong()\n const res = await _maybeInvokeWithBusinessConnection(\n client,\n params.businessConnectionId,\n {\n _: 'messages.sendMessage',\n peer,\n noWebpage: params.disableWebPreview,\n silent: params.silent,\n replyTo,\n randomId,\n scheduleDate,\n replyMarkup,\n message,\n entities,\n clearDraft: params.clearDraft,\n noforwards: params.forbidForwards,\n sendAs: params.sendAs ? await resolvePeer(client, params.sendAs) : undefined,\n invertMedia: params.invertMedia,\n quickReplyShortcut,\n },\n { chainId },\n )\n\n if (res._ === 'updateShortSentMessage') {\n // todo extract this to updates manager?\n const msg: tl.RawMessage = {\n _: 'message',\n id: res.id,\n peerId: inputPeerToPeer(peer),\n fromId: { _: 'peerUser', userId: client.storage.self.getCached()!.userId },\n message,\n date: res.date,\n out: res.out,\n replyMarkup,\n entities: res.entities,\n }\n\n // is this needed?\n // this._date = res.date\n client.handleClientUpdate(createDummyUpdate(res.pts, res.ptsCount))\n\n const peers = new PeersIndex()\n\n const fetchPeer = async (peer: tl.TypePeer | tl.TypeInputPeer): Promise<void> => {\n const id = getMarkedPeerId(peer)\n\n let cached = await client.storage.peers.getCompleteById(id)\n\n if (!cached) {\n cached = await _getRawPeerBatched(client, await resolvePeer(client, peer))\n }\n\n if (!cached) {\n throw new MtTypeAssertionError('sendText (@ getFullPeerById)', 'user | chat', 'null')\n }\n\n switch (cached._) {\n case 'user':\n peers.users.set(cached.id, cached)\n break\n case 'chat':\n case 'chatForbidden':\n case 'channel':\n case 'channelForbidden':\n peers.chats.set(cached.id, cached)\n break\n default:\n throw new MtTypeAssertionError(\n 'sendText (@ users.getUsers)',\n 'user | chat | channel', // not very accurate, but good enough\n cached._,\n )\n }\n }\n\n await Promise.all([fetchPeer(peer), fetchPeer(msg.fromId!)])\n\n const ret = new Message(msg, peers)\n\n return ret\n }\n\n const msg = _findMessageInUpdate(client, res, false, !params.shouldDispatch, false, randomId)\n\n return msg\n}\n"]}
@@ -18,6 +18,10 @@ export declare function sendTyping(client: ITelegramClient, chatId: InputPeerLik
18
18
  * For `upload_*` and history import actions, progress of the upload
19
19
  */
20
20
  progress?: number;
21
+ /**
22
+ * Unique identifier of the business connection on behalf of which the action will be sent
23
+ */
24
+ businessConnectionId?: string;
21
25
  /**
22
26
  * For comment threads, ID of the thread (i.e. top message)
23
27
  */
@@ -4,6 +4,7 @@ exports.sendTyping = void 0;
4
4
  const utils_js_1 = require("../../../types/utils.js");
5
5
  const type_assertions_js_1 = require("../../../utils/type-assertions.js");
6
6
  const resolve_peer_js_1 = require("../users/resolve-peer.js");
7
+ const _business_connection_js_1 = require("./_business-connection.js");
7
8
  /**
8
9
  * Sends a current user/bot typing event
9
10
  * to a conversation partner or group.
@@ -72,7 +73,7 @@ async function sendTyping(client, chatId, status = 'typing', params) {
72
73
  (0, utils_js_1.assertNever)(status);
73
74
  }
74
75
  }
75
- const r = await client.call({
76
+ const r = await (0, _business_connection_js_1._maybeInvokeWithBusinessConnection)(client, params?.businessConnectionId, {
76
77
  _: 'messages.setTyping',
77
78
  peer: await (0, resolve_peer_js_1.resolvePeer)(client, chatId),
78
79
  action: status,
@@ -1 +1 @@
1
- {"version":3,"file":"send-typing.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-typing.ts"],"names":[],"mappings":";;;AAEA,sDAAqD;AACrD,0EAA8D;AAG9D,8DAAsD;AAEtD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAAqB,EACrB,SAA+F,QAAQ,EACvG,MAUC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;QAEtC,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,iBAAiB;gBAClB,MAAM,GAAG,EAAE,CAAC,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAA;gBAC3D,MAAK;YACT,KAAK,KAAK;gBACN,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT,KAAK,MAAM;gBACP,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,YAAY;gBACb,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,gBAAgB;gBACjB,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,QAAQ,EAAE,CAAA;gBAC1D,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT;gBACI,IAAA,sBAAW,EAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACxB,CAAC,EAAE,oBAAoB;QACvB,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM,EAAE,QAAQ;KAC7B,CAAC,CAAA;IAEF,IAAA,+BAAU,EAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC;AAjFD,gCAiFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../types/utils.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, TypingStatus } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\n\n/**\n * Sends a current user/bot typing event\n * to a conversation partner or group.\n *\n * This status is set for 6 seconds, and is\n * automatically cancelled if you send a\n * message.\n *\n * @param chatId Chat ID\n * @param status Typing status\n * @param params\n */\nexport async function sendTyping(\n client: ITelegramClient,\n chatId: InputPeerLike,\n status: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction = 'typing',\n params?: {\n /**\n * For `upload_*` and history import actions, progress of the upload\n */\n progress?: number\n\n /**\n * For comment threads, ID of the thread (i.e. top message)\n */\n threadId?: number\n },\n): Promise<void> {\n if (typeof status === 'string') {\n const progress = params?.progress ?? 0\n\n switch (status) {\n case 'typing':\n status = { _: 'sendMessageTypingAction' }\n break\n case 'cancel':\n status = { _: 'sendMessageCancelAction' }\n break\n case 'record_video':\n status = { _: 'sendMessageRecordVideoAction' }\n break\n case 'upload_video':\n status = { _: 'sendMessageUploadVideoAction', progress }\n break\n case 'record_voice':\n status = { _: 'sendMessageRecordAudioAction' }\n break\n case 'upload_voice':\n status = { _: 'sendMessageUploadAudioAction', progress }\n break\n case 'upload_photo':\n status = { _: 'sendMessageUploadPhotoAction', progress }\n break\n case 'upload_document':\n status = { _: 'sendMessageUploadDocumentAction', progress }\n break\n case 'geo':\n status = { _: 'sendMessageGeoLocationAction' }\n break\n case 'contact':\n status = { _: 'sendMessageChooseContactAction' }\n break\n case 'game':\n status = { _: 'sendMessageGamePlayAction' }\n break\n case 'record_round':\n status = { _: 'sendMessageRecordRoundAction' }\n break\n case 'upload_round':\n status = { _: 'sendMessageUploadRoundAction', progress }\n break\n case 'speak_call':\n status = { _: 'speakingInGroupCallAction' }\n break\n case 'history_import':\n status = { _: 'sendMessageHistoryImportAction', progress }\n break\n case 'sticker':\n status = { _: 'sendMessageChooseStickerAction' }\n break\n default:\n assertNever(status)\n }\n }\n\n const r = await client.call({\n _: 'messages.setTyping',\n peer: await resolvePeer(client, chatId),\n action: status,\n topMsgId: params?.threadId,\n })\n\n assertTrue('messages.setTyping', r)\n}\n"]}
1
+ {"version":3,"file":"send-typing.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/messages/send-typing.ts"],"names":[],"mappings":";;;AAEA,sDAAqD;AACrD,0EAA8D;AAG9D,8DAAsD;AACtD,uEAA8E;AAE9E;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,UAAU,CAC5B,MAAuB,EACvB,MAAqB,EACrB,SAA+F,QAAQ,EACvG,MAeC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAA;QAEtC,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,QAAQ;gBACT,MAAM,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,CAAA;gBACzC,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,iBAAiB;gBAClB,MAAM,GAAG,EAAE,CAAC,EAAE,iCAAiC,EAAE,QAAQ,EAAE,CAAA;gBAC3D,MAAK;YACT,KAAK,KAAK;gBACN,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT,KAAK,MAAM;gBACP,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,CAAA;gBAC9C,MAAK;YACT,KAAK,cAAc;gBACf,MAAM,GAAG,EAAE,CAAC,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAA;gBACxD,MAAK;YACT,KAAK,YAAY;gBACb,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,EAAE,CAAA;gBAC3C,MAAK;YACT,KAAK,gBAAgB;gBACjB,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,QAAQ,EAAE,CAAA;gBAC1D,MAAK;YACT,KAAK,SAAS;gBACV,MAAM,GAAG,EAAE,CAAC,EAAE,gCAAgC,EAAE,CAAA;gBAChD,MAAK;YACT;gBACI,IAAA,sBAAW,EAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,IAAA,4DAAkC,EAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE;QACrF,CAAC,EAAE,oBAAoB;QACvB,IAAI,EAAE,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC;QACvC,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM,EAAE,QAAQ;KAC7B,CAAC,CAAA;IAEF,IAAA,+BAAU,EAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC;AAtFD,gCAsFC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { assertNever } from '../../../types/utils.js'\nimport { assertTrue } from '../../../utils/type-assertions.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, TypingStatus } from '../../types/index.js'\nimport { resolvePeer } from '../users/resolve-peer.js'\nimport { _maybeInvokeWithBusinessConnection } from './_business-connection.js'\n\n/**\n * Sends a current user/bot typing event\n * to a conversation partner or group.\n *\n * This status is set for 6 seconds, and is\n * automatically cancelled if you send a\n * message.\n *\n * @param chatId Chat ID\n * @param status Typing status\n * @param params\n */\nexport async function sendTyping(\n client: ITelegramClient,\n chatId: InputPeerLike,\n status: Exclude<TypingStatus, 'interaction' | 'interaction_seen'> | tl.TypeSendMessageAction = 'typing',\n params?: {\n /**\n * For `upload_*` and history import actions, progress of the upload\n */\n progress?: number\n\n /**\n * Unique identifier of the business connection on behalf of which the action will be sent\n */\n businessConnectionId?: string\n\n /**\n * For comment threads, ID of the thread (i.e. top message)\n */\n threadId?: number\n },\n): Promise<void> {\n if (typeof status === 'string') {\n const progress = params?.progress ?? 0\n\n switch (status) {\n case 'typing':\n status = { _: 'sendMessageTypingAction' }\n break\n case 'cancel':\n status = { _: 'sendMessageCancelAction' }\n break\n case 'record_video':\n status = { _: 'sendMessageRecordVideoAction' }\n break\n case 'upload_video':\n status = { _: 'sendMessageUploadVideoAction', progress }\n break\n case 'record_voice':\n status = { _: 'sendMessageRecordAudioAction' }\n break\n case 'upload_voice':\n status = { _: 'sendMessageUploadAudioAction', progress }\n break\n case 'upload_photo':\n status = { _: 'sendMessageUploadPhotoAction', progress }\n break\n case 'upload_document':\n status = { _: 'sendMessageUploadDocumentAction', progress }\n break\n case 'geo':\n status = { _: 'sendMessageGeoLocationAction' }\n break\n case 'contact':\n status = { _: 'sendMessageChooseContactAction' }\n break\n case 'game':\n status = { _: 'sendMessageGamePlayAction' }\n break\n case 'record_round':\n status = { _: 'sendMessageRecordRoundAction' }\n break\n case 'upload_round':\n status = { _: 'sendMessageUploadRoundAction', progress }\n break\n case 'speak_call':\n status = { _: 'speakingInGroupCallAction' }\n break\n case 'history_import':\n status = { _: 'sendMessageHistoryImportAction', progress }\n break\n case 'sticker':\n status = { _: 'sendMessageChooseStickerAction' }\n break\n default:\n assertNever(status)\n }\n }\n\n const r = await _maybeInvokeWithBusinessConnection(client, params?.businessConnectionId, {\n _: 'messages.setTyping',\n peer: await resolvePeer(client, chatId),\n action: status,\n topMsgId: params?.threadId,\n })\n\n assertTrue('messages.setTyping', r)\n}\n"]}
@@ -1 +1,4 @@
1
- export {};
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
3
+ /** @internal */
4
+ export declare function _getPeerChainId(client: ITelegramClient, peer: tl.TypeInputPeer, prefix?: string): string;
@@ -0,0 +1,6 @@
1
+ import { ITelegramClient } from '../../client.types.js';
2
+ import { CollectibleInfo } from '../../types/misc/collectible-info.js';
3
+ /**
4
+ * Get information about a fragment collectible
5
+ */
6
+ export declare function getCollectibleInfo(client: ITelegramClient, kind: 'phone' | 'username', item: string): Promise<CollectibleInfo>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCollectibleInfo = void 0;
4
+ const collectible_info_js_1 = require("../../types/misc/collectible-info.js");
5
+ const misc_utils_js_1 = require("../../utils/misc-utils.js");
6
+ // @available=user
7
+ /**
8
+ * Get information about a fragment collectible
9
+ */
10
+ async function getCollectibleInfo(client, kind, item) {
11
+ const res = await client.call({
12
+ _: 'fragment.getCollectibleInfo',
13
+ collectible: kind === 'phone' ?
14
+ {
15
+ _: 'inputCollectiblePhone',
16
+ phone: (0, misc_utils_js_1.normalizePhoneNumber)(item),
17
+ } :
18
+ {
19
+ _: 'inputCollectibleUsername',
20
+ username: item,
21
+ },
22
+ });
23
+ return new collectible_info_js_1.CollectibleInfo(res);
24
+ }
25
+ exports.getCollectibleInfo = getCollectibleInfo;
26
+ //# sourceMappingURL=get-collectible-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-collectible-info.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/misc/get-collectible-info.ts"],"names":[],"mappings":";;;AACA,8EAAsE;AACtE,6DAAgE;AAEhE,kBAAkB;AAClB;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACpC,MAAuB,EACvB,IAA0B,EAC1B,IAAY;IAEZ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,EAAE,6BAA6B;QAChC,WAAW,EACP,IAAI,KAAK,OAAO,CAAC,CAAC;YACd;gBACI,CAAC,EAAE,uBAAuB;gBAC1B,KAAK,EAAE,IAAA,oCAAoB,EAAC,IAAI,CAAC;aACpC,CAAC,CAAC;YACH;gBACI,CAAC,EAAE,0BAA0B;gBAC7B,QAAQ,EAAE,IAAI;aACjB;KACZ,CAAC,CAAA;IAEF,OAAO,IAAI,qCAAe,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AApBD,gDAoBC","sourcesContent":["import { ITelegramClient } from '../../client.types.js'\nimport { CollectibleInfo } from '../../types/misc/collectible-info.js'\nimport { normalizePhoneNumber } from '../../utils/misc-utils.js'\n\n// @available=user\n/**\n * Get information about a fragment collectible\n */\nexport async function getCollectibleInfo(\n client: ITelegramClient,\n kind: 'phone' | 'username',\n item: string,\n): Promise<CollectibleInfo> {\n const res = await client.call({\n _: 'fragment.getCollectibleInfo',\n collectible:\n kind === 'phone' ?\n {\n _: 'inputCollectiblePhone',\n phone: normalizePhoneNumber(item),\n } :\n {\n _: 'inputCollectibleUsername',\n username: item,\n },\n })\n\n return new CollectibleInfo(res)\n}\n"]}
@@ -1 +1,5 @@
1
- export {};
1
+ import { tl } from '@mtcute/tl';
2
+ import { ITelegramClient } from '../../client.types.js';
3
+ import { InputText } from '../../types/misc/entities.js';
4
+ /** @internal */
5
+ export declare function _normalizeInputText(client: ITelegramClient, input?: InputText): Promise<[string, tl.TypeMessageEntity[] | undefined]>;