@mtcute/core 0.17.0 → 0.18.0-rc.5

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 (1193) hide show
  1. package/client.cjs +692 -771
  2. package/client.d.ts +1 -1
  3. package/client.js +419 -498
  4. package/highlevel/base.cjs +264 -0
  5. package/highlevel/base.d.ts +16 -19
  6. package/highlevel/base.js +259 -0
  7. package/highlevel/client.d.ts +289 -246
  8. package/highlevel/client.types.d.ts +13 -10
  9. package/highlevel/managers/app-config-manager.cjs +49 -0
  10. package/highlevel/managers/app-config-manager.d.ts +1 -2
  11. package/highlevel/managers/app-config-manager.js +44 -0
  12. package/highlevel/managers/timers.cjs +43 -0
  13. package/highlevel/managers/timers.d.ts +10 -0
  14. package/highlevel/managers/timers.js +38 -0
  15. package/highlevel/methods/auth/check-password.cjs +21 -0
  16. package/highlevel/methods/auth/check-password.js +16 -0
  17. package/highlevel/methods/auth/get-password-hint.cjs +13 -0
  18. package/highlevel/methods/auth/get-password-hint.js +8 -0
  19. package/highlevel/methods/auth/log-out.cjs +15 -0
  20. package/highlevel/methods/auth/log-out.js +10 -0
  21. package/highlevel/methods/auth/recover-password.cjs +17 -0
  22. package/highlevel/methods/auth/recover-password.js +12 -0
  23. package/highlevel/methods/auth/resend-code.cjs +24 -0
  24. package/highlevel/methods/auth/resend-code.js +19 -0
  25. package/highlevel/methods/auth/run.cjs +13 -0
  26. package/highlevel/methods/auth/run.js +8 -0
  27. package/highlevel/methods/auth/send-code.cjs +31 -0
  28. package/highlevel/methods/auth/send-code.js +26 -0
  29. package/highlevel/methods/auth/send-recovery-code.cjs +13 -0
  30. package/highlevel/methods/auth/send-recovery-code.js +8 -0
  31. package/highlevel/methods/auth/sign-in-bot.cjs +20 -0
  32. package/highlevel/methods/auth/sign-in-bot.js +15 -0
  33. package/highlevel/methods/auth/sign-in-qr.cjs +119 -0
  34. package/highlevel/methods/auth/sign-in-qr.js +114 -0
  35. package/highlevel/methods/auth/sign-in.cjs +23 -0
  36. package/highlevel/methods/auth/sign-in.js +18 -0
  37. package/highlevel/methods/auth/start-test.cjs +54 -0
  38. package/highlevel/methods/auth/start-test.js +49 -0
  39. package/highlevel/methods/auth/start.cjs +154 -0
  40. package/highlevel/methods/auth/start.d.ts +3 -3
  41. package/highlevel/methods/auth/start.js +149 -0
  42. package/highlevel/methods/auth/utils.cjs +31 -0
  43. package/highlevel/methods/auth/utils.js +26 -0
  44. package/highlevel/methods/bots/answer-callback-query.cjs +22 -0
  45. package/highlevel/methods/bots/answer-callback-query.d.ts +1 -1
  46. package/highlevel/methods/bots/answer-callback-query.js +17 -0
  47. package/highlevel/methods/bots/answer-inline-query.cjs +33 -0
  48. package/highlevel/methods/bots/answer-inline-query.js +28 -0
  49. package/highlevel/methods/bots/answer-pre-checkout-query.cjs +20 -0
  50. package/highlevel/methods/bots/answer-pre-checkout-query.js +15 -0
  51. package/highlevel/methods/bots/delete-my-commands.cjs +19 -0
  52. package/highlevel/methods/bots/delete-my-commands.js +14 -0
  53. package/highlevel/methods/bots/get-bot-info.cjs +17 -0
  54. package/highlevel/methods/bots/get-bot-info.js +12 -0
  55. package/highlevel/methods/bots/get-bot-menu-button.cjs +15 -0
  56. package/highlevel/methods/bots/get-bot-menu-button.js +10 -0
  57. package/highlevel/methods/bots/get-callback-answer.cjs +40 -0
  58. package/highlevel/methods/bots/get-callback-answer.js +35 -0
  59. package/highlevel/methods/bots/get-game-high-scores.cjs +52 -0
  60. package/highlevel/methods/bots/get-game-high-scores.js +47 -0
  61. package/highlevel/methods/bots/get-my-commands.cjs +18 -0
  62. package/highlevel/methods/bots/get-my-commands.js +13 -0
  63. package/highlevel/methods/bots/normalize-command-scope.cjs +35 -0
  64. package/highlevel/methods/bots/normalize-command-scope.d.ts +1 -1
  65. package/highlevel/methods/bots/normalize-command-scope.js +30 -0
  66. package/highlevel/methods/bots/open-webview.cjs +143 -0
  67. package/highlevel/methods/bots/open-webview.d.ts +73 -0
  68. package/highlevel/methods/bots/open-webview.js +138 -0
  69. package/highlevel/methods/bots/prepare-inline-message.cjs +54 -0
  70. package/highlevel/methods/bots/prepare-inline-message.d.ts +32 -0
  71. package/highlevel/methods/bots/prepare-inline-message.js +49 -0
  72. package/highlevel/methods/bots/set-bot-info.cjs +22 -0
  73. package/highlevel/methods/bots/set-bot-info.js +17 -0
  74. package/highlevel/methods/bots/set-bot-menu-button.cjs +18 -0
  75. package/highlevel/methods/bots/set-bot-menu-button.js +13 -0
  76. package/highlevel/methods/bots/set-game-score.cjs +47 -0
  77. package/highlevel/methods/bots/set-game-score.js +42 -0
  78. package/highlevel/methods/bots/set-my-commands.cjs +31 -0
  79. package/highlevel/methods/bots/set-my-commands.js +26 -0
  80. package/highlevel/methods/bots/set-my-default-rights.cjs +20 -0
  81. package/highlevel/methods/bots/set-my-default-rights.js +15 -0
  82. package/highlevel/methods/bots/toggle-emoji-status-permission.cjs +22 -0
  83. package/highlevel/methods/bots/toggle-emoji-status-permission.d.ts +11 -0
  84. package/highlevel/methods/bots/toggle-emoji-status-permission.js +17 -0
  85. package/highlevel/methods/chats/add-chat-members.cjs +41 -0
  86. package/highlevel/methods/chats/add-chat-members.js +36 -0
  87. package/highlevel/methods/chats/archive-chats.cjs +23 -0
  88. package/highlevel/methods/chats/archive-chats.js +18 -0
  89. package/highlevel/methods/chats/ban-chat-member.cjs +40 -0
  90. package/highlevel/methods/chats/ban-chat-member.js +35 -0
  91. package/highlevel/methods/chats/batched-queries.cjs +117 -0
  92. package/highlevel/methods/chats/batched-queries.d.ts +1 -1
  93. package/highlevel/methods/chats/batched-queries.js +112 -0
  94. package/highlevel/methods/chats/create-channel.cjs +22 -0
  95. package/highlevel/methods/chats/create-channel.js +17 -0
  96. package/highlevel/methods/chats/create-group.cjs +29 -0
  97. package/highlevel/methods/chats/create-group.js +24 -0
  98. package/highlevel/methods/chats/create-supergroup.cjs +24 -0
  99. package/highlevel/methods/chats/create-supergroup.js +19 -0
  100. package/highlevel/methods/chats/delete-channel.cjs +16 -0
  101. package/highlevel/methods/chats/delete-channel.js +11 -0
  102. package/highlevel/methods/chats/delete-chat-photo.cjs +31 -0
  103. package/highlevel/methods/chats/delete-chat-photo.js +26 -0
  104. package/highlevel/methods/chats/delete-group.cjs +28 -0
  105. package/highlevel/methods/chats/delete-group.js +23 -0
  106. package/highlevel/methods/chats/delete-history.cjs +27 -0
  107. package/highlevel/methods/chats/delete-history.js +22 -0
  108. package/highlevel/methods/chats/delete-user-history.cjs +23 -0
  109. package/highlevel/methods/chats/delete-user-history.js +18 -0
  110. package/highlevel/methods/chats/edit-admin-rights.cjs +25 -0
  111. package/highlevel/methods/chats/edit-admin-rights.js +20 -0
  112. package/highlevel/methods/chats/get-chat-event-log.cjs +42 -0
  113. package/highlevel/methods/chats/get-chat-event-log.js +37 -0
  114. package/highlevel/methods/chats/get-chat-member.cjs +55 -0
  115. package/highlevel/methods/chats/get-chat-member.js +50 -0
  116. package/highlevel/methods/chats/get-chat-members.cjs +79 -0
  117. package/highlevel/methods/chats/get-chat-members.js +74 -0
  118. package/highlevel/methods/chats/get-chat-preview.cjs +24 -0
  119. package/highlevel/methods/chats/get-chat-preview.js +19 -0
  120. package/highlevel/methods/chats/get-chat.cjs +40 -0
  121. package/highlevel/methods/chats/get-chat.js +35 -0
  122. package/highlevel/methods/chats/get-full-chat.cjs +44 -0
  123. package/highlevel/methods/chats/get-full-chat.js +39 -0
  124. package/highlevel/methods/chats/get-full-user.cjs +18 -0
  125. package/highlevel/methods/chats/get-full-user.d.ts +8 -0
  126. package/highlevel/methods/chats/get-full-user.js +13 -0
  127. package/highlevel/methods/chats/get-nearby-chats.cjs +37 -0
  128. package/highlevel/methods/chats/get-nearby-chats.js +32 -0
  129. package/highlevel/methods/chats/get-similar-channels.cjs +24 -0
  130. package/highlevel/methods/chats/get-similar-channels.js +19 -0
  131. package/highlevel/methods/chats/get-user.cjs +18 -0
  132. package/highlevel/methods/chats/get-user.d.ts +8 -0
  133. package/highlevel/methods/chats/get-user.js +13 -0
  134. package/highlevel/methods/chats/iter-chat-event-log.cjs +46 -0
  135. package/highlevel/methods/chats/iter-chat-event-log.js +41 -0
  136. package/highlevel/methods/chats/iter-chat-members.cjs +41 -0
  137. package/highlevel/methods/chats/iter-chat-members.js +36 -0
  138. package/highlevel/methods/chats/join-chat.cjs +33 -0
  139. package/highlevel/methods/chats/join-chat.js +28 -0
  140. package/highlevel/methods/chats/kick-chat-member.cjs +24 -0
  141. package/highlevel/methods/chats/kick-chat-member.js +19 -0
  142. package/highlevel/methods/chats/leave-chat.cjs +34 -0
  143. package/highlevel/methods/chats/leave-chat.js +29 -0
  144. package/highlevel/methods/chats/mark-chat-unread.cjs +21 -0
  145. package/highlevel/methods/chats/mark-chat-unread.js +16 -0
  146. package/highlevel/methods/chats/open-chat.cjs +31 -0
  147. package/highlevel/methods/chats/open-chat.js +26 -0
  148. package/highlevel/methods/chats/reorder-usernames.cjs +38 -0
  149. package/highlevel/methods/chats/reorder-usernames.js +33 -0
  150. package/highlevel/methods/chats/restrict-chat-member.cjs +31 -0
  151. package/highlevel/methods/chats/restrict-chat-member.js +26 -0
  152. package/highlevel/methods/chats/save-draft.cjs +25 -0
  153. package/highlevel/methods/chats/save-draft.js +20 -0
  154. package/highlevel/methods/chats/set-chat-color.cjs +41 -0
  155. package/highlevel/methods/chats/set-chat-color.js +36 -0
  156. package/highlevel/methods/chats/set-chat-default-permissions.cjs +26 -0
  157. package/highlevel/methods/chats/set-chat-default-permissions.js +21 -0
  158. package/highlevel/methods/chats/set-chat-description.cjs +19 -0
  159. package/highlevel/methods/chats/set-chat-description.js +14 -0
  160. package/highlevel/methods/chats/set-chat-photo.cjs +83 -0
  161. package/highlevel/methods/chats/set-chat-photo.js +78 -0
  162. package/highlevel/methods/chats/set-chat-title.cjs +31 -0
  163. package/highlevel/methods/chats/set-chat-title.js +26 -0
  164. package/highlevel/methods/chats/set-chat-ttl.cjs +16 -0
  165. package/highlevel/methods/chats/set-chat-ttl.js +11 -0
  166. package/highlevel/methods/chats/set-chat-username.cjs +18 -0
  167. package/highlevel/methods/chats/set-chat-username.js +13 -0
  168. package/highlevel/methods/chats/set-slow-mode.cjs +17 -0
  169. package/highlevel/methods/chats/set-slow-mode.js +12 -0
  170. package/highlevel/methods/chats/toggle-content-protection.cjs +17 -0
  171. package/highlevel/methods/chats/toggle-content-protection.js +12 -0
  172. package/highlevel/methods/chats/toggle-fragment-username.cjs +42 -0
  173. package/highlevel/methods/chats/toggle-fragment-username.js +37 -0
  174. package/highlevel/methods/chats/toggle-join-requests.cjs +17 -0
  175. package/highlevel/methods/chats/toggle-join-requests.js +12 -0
  176. package/highlevel/methods/chats/toggle-join-to-send.cjs +17 -0
  177. package/highlevel/methods/chats/toggle-join-to-send.js +12 -0
  178. package/highlevel/methods/chats/unarchive-chats.cjs +25 -0
  179. package/highlevel/methods/chats/unarchive-chats.js +20 -0
  180. package/highlevel/methods/chats/unban-chat-member.cjs +31 -0
  181. package/highlevel/methods/chats/unban-chat-member.js +26 -0
  182. package/highlevel/methods/contacts/add-contact.cjs +26 -0
  183. package/highlevel/methods/contacts/add-contact.js +21 -0
  184. package/highlevel/methods/contacts/delete-contacts.cjs +27 -0
  185. package/highlevel/methods/contacts/delete-contacts.js +22 -0
  186. package/highlevel/methods/contacts/get-contacts.cjs +19 -0
  187. package/highlevel/methods/contacts/get-contacts.js +14 -0
  188. package/highlevel/methods/contacts/import-contacts.cjs +21 -0
  189. package/highlevel/methods/contacts/import-contacts.js +16 -0
  190. package/highlevel/methods/dialogs/create-folder.cjs +36 -0
  191. package/highlevel/methods/dialogs/create-folder.js +31 -0
  192. package/highlevel/methods/dialogs/delete-folder.cjs +16 -0
  193. package/highlevel/methods/dialogs/delete-folder.js +11 -0
  194. package/highlevel/methods/dialogs/edit-folder.cjs +37 -0
  195. package/highlevel/methods/dialogs/edit-folder.js +32 -0
  196. package/highlevel/methods/dialogs/find-dialogs.cjs +71 -0
  197. package/highlevel/methods/dialogs/find-dialogs.js +66 -0
  198. package/highlevel/methods/dialogs/find-folder.cjs +23 -0
  199. package/highlevel/methods/dialogs/find-folder.js +18 -0
  200. package/highlevel/methods/dialogs/get-chatlist-preview.cjs +16 -0
  201. package/highlevel/methods/dialogs/get-chatlist-preview.js +11 -0
  202. package/highlevel/methods/dialogs/get-folders.cjs +31 -0
  203. package/highlevel/methods/dialogs/get-folders.js +26 -0
  204. package/highlevel/methods/dialogs/get-peer-dialogs.cjs +24 -0
  205. package/highlevel/methods/dialogs/get-peer-dialogs.d.ts +1 -1
  206. package/highlevel/methods/dialogs/get-peer-dialogs.js +19 -0
  207. package/highlevel/methods/dialogs/iter-dialogs.cjs +166 -0
  208. package/highlevel/methods/dialogs/iter-dialogs.js +161 -0
  209. package/highlevel/methods/dialogs/join-chatlist.cjs +37 -0
  210. package/highlevel/methods/dialogs/join-chatlist.js +32 -0
  211. package/highlevel/methods/dialogs/set-folders-order.cjs +16 -0
  212. package/highlevel/methods/dialogs/set-folders-order.js +11 -0
  213. package/highlevel/methods/files/download-buffer.cjs +21 -0
  214. package/highlevel/methods/files/download-buffer.js +16 -0
  215. package/highlevel/methods/files/download-iterable.cjs +167 -0
  216. package/highlevel/methods/files/download-iterable.js +162 -0
  217. package/highlevel/methods/files/download-stream.cjs +40 -0
  218. package/highlevel/methods/files/download-stream.d.ts +1 -1
  219. package/highlevel/methods/files/download-stream.js +35 -0
  220. package/highlevel/methods/files/normalize-file-to-document.cjs +28 -0
  221. package/highlevel/methods/files/normalize-file-to-document.d.ts +1 -1
  222. package/highlevel/methods/files/normalize-file-to-document.js +23 -0
  223. package/highlevel/methods/files/normalize-input-file.cjs +37 -0
  224. package/highlevel/methods/files/normalize-input-file.d.ts +1 -1
  225. package/highlevel/methods/files/normalize-input-file.js +32 -0
  226. package/highlevel/methods/files/normalize-input-media.cjs +366 -0
  227. package/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  228. package/highlevel/methods/files/normalize-input-media.js +361 -0
  229. package/highlevel/methods/files/upload-file.cjs +225 -0
  230. package/highlevel/methods/files/upload-file.d.ts +1 -1
  231. package/highlevel/methods/files/upload-file.js +220 -0
  232. package/highlevel/methods/files/upload-media.cjs +58 -0
  233. package/highlevel/methods/files/upload-media.js +53 -0
  234. package/highlevel/methods/forums/create-forum-topic.cjs +24 -0
  235. package/highlevel/methods/forums/create-forum-topic.js +19 -0
  236. package/highlevel/methods/forums/delete-forum-topic-history.cjs +24 -0
  237. package/highlevel/methods/forums/delete-forum-topic-history.js +19 -0
  238. package/highlevel/methods/forums/edit-forum-topic.cjs +22 -0
  239. package/highlevel/methods/forums/edit-forum-topic.js +17 -0
  240. package/highlevel/methods/forums/get-forum-topics-by-id.cjs +19 -0
  241. package/highlevel/methods/forums/get-forum-topics-by-id.js +14 -0
  242. package/highlevel/methods/forums/get-forum-topics.cjs +41 -0
  243. package/highlevel/methods/forums/get-forum-topics.js +36 -0
  244. package/highlevel/methods/forums/iter-forum-topics.cjs +30 -0
  245. package/highlevel/methods/forums/iter-forum-topics.js +25 -0
  246. package/highlevel/methods/forums/reorder-pinned-forum-topics.cjs +18 -0
  247. package/highlevel/methods/forums/reorder-pinned-forum-topics.js +13 -0
  248. package/highlevel/methods/forums/toggle-forum-topic-closed.cjs +20 -0
  249. package/highlevel/methods/forums/toggle-forum-topic-closed.js +15 -0
  250. package/highlevel/methods/forums/toggle-forum-topic-pinned.cjs +18 -0
  251. package/highlevel/methods/forums/toggle-forum-topic-pinned.js +13 -0
  252. package/highlevel/methods/forums/toggle-forum.cjs +17 -0
  253. package/highlevel/methods/forums/toggle-forum.js +12 -0
  254. package/highlevel/methods/forums/toggle-general-topic-hidden.cjs +20 -0
  255. package/highlevel/methods/forums/toggle-general-topic-hidden.js +15 -0
  256. package/highlevel/methods/invite-links/create-invite-link.cjs +23 -0
  257. package/highlevel/methods/invite-links/create-invite-link.d.ts +7 -0
  258. package/highlevel/methods/invite-links/create-invite-link.js +18 -0
  259. package/highlevel/methods/invite-links/edit-invite-link.cjs +25 -0
  260. package/highlevel/methods/invite-links/edit-invite-link.js +20 -0
  261. package/highlevel/methods/invite-links/export-invite-link.cjs +18 -0
  262. package/highlevel/methods/invite-links/export-invite-link.js +13 -0
  263. package/highlevel/methods/invite-links/get-invite-link-members.cjs +38 -0
  264. package/highlevel/methods/invite-links/get-invite-link-members.js +33 -0
  265. package/highlevel/methods/invite-links/get-invite-link.cjs +20 -0
  266. package/highlevel/methods/invite-links/get-invite-link.js +15 -0
  267. package/highlevel/methods/invite-links/get-invite-links.cjs +33 -0
  268. package/highlevel/methods/invite-links/get-invite-links.js +28 -0
  269. package/highlevel/methods/invite-links/get-primary-invite-link.cjs +33 -0
  270. package/highlevel/methods/invite-links/get-primary-invite-link.js +28 -0
  271. package/highlevel/methods/invite-links/hide-all-join-requests.cjs +18 -0
  272. package/highlevel/methods/invite-links/hide-all-join-requests.js +13 -0
  273. package/highlevel/methods/invite-links/hide-join-request.cjs +19 -0
  274. package/highlevel/methods/invite-links/hide-join-request.js +14 -0
  275. package/highlevel/methods/invite-links/iter-invite-link-members.cjs +35 -0
  276. package/highlevel/methods/invite-links/iter-invite-link-members.js +30 -0
  277. package/highlevel/methods/invite-links/iter-invite-links.cjs +33 -0
  278. package/highlevel/methods/invite-links/iter-invite-links.js +28 -0
  279. package/highlevel/methods/invite-links/revoke-invite-link.cjs +22 -0
  280. package/highlevel/methods/invite-links/revoke-invite-link.js +17 -0
  281. package/highlevel/methods/messages/_business-connection.cjs +42 -0
  282. package/highlevel/methods/messages/_business-connection.js +37 -0
  283. package/highlevel/methods/messages/close-poll.cjs +43 -0
  284. package/highlevel/methods/messages/close-poll.js +38 -0
  285. package/highlevel/methods/messages/delete-messages.cjs +57 -0
  286. package/highlevel/methods/messages/delete-messages.js +52 -0
  287. package/highlevel/methods/messages/delete-scheduled-messages.cjs +18 -0
  288. package/highlevel/methods/messages/delete-scheduled-messages.js +13 -0
  289. package/highlevel/methods/messages/edit-inline-message.cjs +51 -0
  290. package/highlevel/methods/messages/edit-inline-message.d.ts +1 -1
  291. package/highlevel/methods/messages/edit-inline-message.js +46 -0
  292. package/highlevel/methods/messages/edit-message.cjs +42 -0
  293. package/highlevel/methods/messages/edit-message.js +37 -0
  294. package/highlevel/methods/messages/find-in-update.cjs +41 -0
  295. package/highlevel/methods/messages/find-in-update.js +36 -0
  296. package/highlevel/methods/messages/forward-messages.cjs +74 -0
  297. package/highlevel/methods/messages/forward-messages.d.ts +6 -0
  298. package/highlevel/methods/messages/forward-messages.js +69 -0
  299. package/highlevel/methods/messages/get-all-scheduled-messages.cjs +28 -0
  300. package/highlevel/methods/messages/get-all-scheduled-messages.js +23 -0
  301. package/highlevel/methods/messages/get-available-effects.cjs +24 -0
  302. package/highlevel/methods/messages/get-available-effects.js +19 -0
  303. package/highlevel/methods/messages/get-callback-query-message.cjs +52 -0
  304. package/highlevel/methods/messages/get-callback-query-message.d.ts +1 -1
  305. package/highlevel/methods/messages/get-callback-query-message.js +47 -0
  306. package/highlevel/methods/messages/get-discussion-message.cjs +49 -0
  307. package/highlevel/methods/messages/get-discussion-message.js +44 -0
  308. package/highlevel/methods/messages/get-fact-check.cjs +23 -0
  309. package/highlevel/methods/messages/get-fact-check.js +18 -0
  310. package/highlevel/methods/messages/get-history.cjs +56 -0
  311. package/highlevel/methods/messages/get-history.d.ts +0 -2
  312. package/highlevel/methods/messages/get-history.js +51 -0
  313. package/highlevel/methods/messages/get-message-by-link.cjs +33 -0
  314. package/highlevel/methods/messages/get-message-by-link.js +28 -0
  315. package/highlevel/methods/messages/get-message-group.cjs +27 -0
  316. package/highlevel/methods/messages/get-message-group.js +22 -0
  317. package/highlevel/methods/messages/get-message-reactions.cjs +38 -0
  318. package/highlevel/methods/messages/get-message-reactions.js +33 -0
  319. package/highlevel/methods/messages/get-messages-unsafe.cjs +29 -0
  320. package/highlevel/methods/messages/get-messages-unsafe.js +24 -0
  321. package/highlevel/methods/messages/get-messages.cjs +61 -0
  322. package/highlevel/methods/messages/get-messages.d.ts +1 -1
  323. package/highlevel/methods/messages/get-messages.js +56 -0
  324. package/highlevel/methods/messages/get-reaction-users.cjs +34 -0
  325. package/highlevel/methods/messages/get-reaction-users.js +29 -0
  326. package/highlevel/methods/messages/get-reply-to.cjs +21 -0
  327. package/highlevel/methods/messages/get-reply-to.js +16 -0
  328. package/highlevel/methods/messages/get-scheduled-messages.cjs +28 -0
  329. package/highlevel/methods/messages/get-scheduled-messages.js +23 -0
  330. package/highlevel/methods/messages/iter-history.cjs +34 -0
  331. package/highlevel/methods/messages/iter-history.js +29 -0
  332. package/highlevel/methods/messages/iter-reaction-users.cjs +34 -0
  333. package/highlevel/methods/messages/iter-reaction-users.js +29 -0
  334. package/highlevel/methods/messages/iter-search-global.cjs +37 -0
  335. package/highlevel/methods/messages/iter-search-global.js +32 -0
  336. package/highlevel/methods/messages/iter-search-messages.cjs +55 -0
  337. package/highlevel/methods/messages/iter-search-messages.js +50 -0
  338. package/highlevel/methods/messages/pin-message.cjs +23 -0
  339. package/highlevel/methods/messages/pin-message.js +18 -0
  340. package/highlevel/methods/messages/read-history.cjs +46 -0
  341. package/highlevel/methods/messages/read-history.js +41 -0
  342. package/highlevel/methods/messages/read-reactions.cjs +20 -0
  343. package/highlevel/methods/messages/read-reactions.js +15 -0
  344. package/highlevel/methods/messages/search-global.cjs +52 -0
  345. package/highlevel/methods/messages/search-global.js +47 -0
  346. package/highlevel/methods/messages/search-hashtag.cjs +58 -0
  347. package/highlevel/methods/messages/search-hashtag.d.ts +1 -1
  348. package/highlevel/methods/messages/search-hashtag.js +53 -0
  349. package/highlevel/methods/messages/search-messages.cjs +55 -0
  350. package/highlevel/methods/messages/search-messages.js +50 -0
  351. package/highlevel/methods/messages/send-answer.cjs +37 -0
  352. package/highlevel/methods/messages/send-answer.d.ts +1 -1
  353. package/highlevel/methods/messages/send-answer.js +32 -0
  354. package/highlevel/methods/messages/send-comment.cjs +48 -0
  355. package/highlevel/methods/messages/send-comment.d.ts +1 -1
  356. package/highlevel/methods/messages/send-comment.js +43 -0
  357. package/highlevel/methods/messages/send-common.cjs +82 -0
  358. package/highlevel/methods/messages/send-common.d.ts +6 -0
  359. package/highlevel/methods/messages/send-common.js +77 -0
  360. package/highlevel/methods/messages/send-copy-group.cjs +43 -0
  361. package/highlevel/methods/messages/send-copy-group.js +38 -0
  362. package/highlevel/methods/messages/send-copy.cjs +55 -0
  363. package/highlevel/methods/messages/send-copy.js +50 -0
  364. package/highlevel/methods/messages/send-media-group.cjs +88 -0
  365. package/highlevel/methods/messages/send-media-group.d.ts +1 -1
  366. package/highlevel/methods/messages/send-media-group.js +83 -0
  367. package/highlevel/methods/messages/send-media.cjs +68 -0
  368. package/highlevel/methods/messages/send-media.js +63 -0
  369. package/highlevel/methods/messages/send-paid-reaction.cjs +49 -0
  370. package/highlevel/methods/messages/send-paid-reaction.js +44 -0
  371. package/highlevel/methods/messages/send-quote.cjs +59 -0
  372. package/highlevel/methods/messages/send-quote.d.ts +1 -1
  373. package/highlevel/methods/messages/send-quote.js +54 -0
  374. package/highlevel/methods/messages/send-reaction.cjs +28 -0
  375. package/highlevel/methods/messages/send-reaction.js +23 -0
  376. package/highlevel/methods/messages/send-reply.cjs +28 -0
  377. package/highlevel/methods/messages/send-reply.d.ts +1 -1
  378. package/highlevel/methods/messages/send-reply.js +23 -0
  379. package/highlevel/methods/messages/send-scheduled.cjs +27 -0
  380. package/highlevel/methods/messages/send-scheduled.js +22 -0
  381. package/highlevel/methods/messages/send-text.cjs +107 -0
  382. package/highlevel/methods/messages/send-text.d.ts +1 -1
  383. package/highlevel/methods/messages/send-text.js +102 -0
  384. package/highlevel/methods/messages/send-typing.cjs +63 -0
  385. package/highlevel/methods/messages/send-typing.d.ts +3 -0
  386. package/highlevel/methods/messages/send-typing.js +58 -0
  387. package/highlevel/methods/messages/send-vote.cjs +57 -0
  388. package/highlevel/methods/messages/send-vote.js +52 -0
  389. package/highlevel/methods/messages/set-typing.cjs +50 -0
  390. package/highlevel/methods/messages/set-typing.d.ts +33 -0
  391. package/highlevel/methods/messages/set-typing.js +45 -0
  392. package/highlevel/methods/messages/translate-message.cjs +24 -0
  393. package/highlevel/methods/messages/translate-message.js +19 -0
  394. package/highlevel/methods/messages/translate-text.cjs +31 -0
  395. package/highlevel/methods/messages/translate-text.js +26 -0
  396. package/highlevel/methods/messages/unpin-all-messages.cjs +27 -0
  397. package/highlevel/methods/messages/unpin-all-messages.js +22 -0
  398. package/highlevel/methods/messages/unpin-message.cjs +20 -0
  399. package/highlevel/methods/messages/unpin-message.js +15 -0
  400. package/highlevel/methods/misc/chain-id.cjs +13 -0
  401. package/highlevel/methods/misc/chain-id.js +8 -0
  402. package/highlevel/methods/misc/get-collectible-info.cjs +23 -0
  403. package/highlevel/methods/misc/get-collectible-info.js +18 -0
  404. package/highlevel/methods/misc/init-takeout-session.cjs +18 -0
  405. package/highlevel/methods/misc/init-takeout-session.js +13 -0
  406. package/highlevel/methods/misc/normalize-privacy-rules.cjs +41 -0
  407. package/highlevel/methods/misc/normalize-privacy-rules.js +36 -0
  408. package/highlevel/methods/misc/normalize-text.cjs +33 -0
  409. package/highlevel/methods/misc/normalize-text.js +28 -0
  410. package/highlevel/methods/misc/with-params.cjs +23 -0
  411. package/highlevel/methods/misc/with-params.js +18 -0
  412. package/highlevel/methods/password/change-cloud-password.cjs +29 -0
  413. package/highlevel/methods/password/change-cloud-password.js +24 -0
  414. package/highlevel/methods/password/enable-cloud-password.cjs +31 -0
  415. package/highlevel/methods/password/enable-cloud-password.js +26 -0
  416. package/highlevel/methods/password/password-email.cjs +30 -0
  417. package/highlevel/methods/password/password-email.js +25 -0
  418. package/highlevel/methods/password/remove-cloud-password.cjs +26 -0
  419. package/highlevel/methods/password/remove-cloud-password.js +21 -0
  420. package/highlevel/methods/premium/accept-star-gift.cjs +27 -0
  421. package/highlevel/methods/premium/accept-star-gift.js +22 -0
  422. package/highlevel/methods/premium/apply-boost.cjs +15 -0
  423. package/highlevel/methods/premium/apply-boost.js +10 -0
  424. package/highlevel/methods/premium/can-apply-boost.cjs +24 -0
  425. package/highlevel/methods/premium/can-apply-boost.js +19 -0
  426. package/highlevel/methods/premium/create-business-chat-link.cjs +23 -0
  427. package/highlevel/methods/premium/create-business-chat-link.js +18 -0
  428. package/highlevel/methods/premium/edit-business-chat-link.cjs +33 -0
  429. package/highlevel/methods/premium/edit-business-chat-link.js +28 -0
  430. package/highlevel/methods/premium/get-boost-stats.cjs +17 -0
  431. package/highlevel/methods/premium/get-boost-stats.js +12 -0
  432. package/highlevel/methods/premium/get-boosts.cjs +27 -0
  433. package/highlevel/methods/premium/get-boosts.js +22 -0
  434. package/highlevel/methods/premium/get-business-chat-links.cjs +13 -0
  435. package/highlevel/methods/premium/get-business-chat-links.js +8 -0
  436. package/highlevel/methods/premium/get-business-connection.cjs +23 -0
  437. package/highlevel/methods/premium/get-business-connection.js +18 -0
  438. package/highlevel/methods/premium/get-my-boost-slots.cjs +17 -0
  439. package/highlevel/methods/premium/get-my-boost-slots.js +12 -0
  440. package/highlevel/methods/premium/get-star-gift-options.cjs +18 -0
  441. package/highlevel/methods/premium/get-star-gift-options.js +13 -0
  442. package/highlevel/methods/premium/get-star-gifts.cjs +24 -0
  443. package/highlevel/methods/premium/get-star-gifts.d.ts +1 -1
  444. package/highlevel/methods/premium/get-star-gifts.js +19 -0
  445. package/highlevel/methods/premium/get-stars-transactions.cjs +24 -0
  446. package/highlevel/methods/premium/get-stars-transactions.js +19 -0
  447. package/highlevel/methods/premium/iter-boosters.cjs +29 -0
  448. package/highlevel/methods/premium/iter-boosters.js +24 -0
  449. package/highlevel/methods/premium/iter-star-gifts.cjs +29 -0
  450. package/highlevel/methods/premium/iter-star-gifts.js +24 -0
  451. package/highlevel/methods/premium/iter-stars-transactions.cjs +29 -0
  452. package/highlevel/methods/premium/iter-stars-transactions.js +24 -0
  453. package/highlevel/methods/premium/send-star-gift.cjs +34 -0
  454. package/highlevel/methods/premium/send-star-gift.d.ts +3 -3
  455. package/highlevel/methods/premium/send-star-gift.js +29 -0
  456. package/highlevel/methods/premium/set-business-intro.cjs +40 -0
  457. package/highlevel/methods/premium/set-business-intro.js +35 -0
  458. package/highlevel/methods/premium/set-business-work-hours.cjs +31 -0
  459. package/highlevel/methods/premium/set-business-work-hours.js +26 -0
  460. package/highlevel/methods/stickers/_utils.cjs +24 -0
  461. package/highlevel/methods/stickers/_utils.js +19 -0
  462. package/highlevel/methods/stickers/add-sticker-to-set.cjs +18 -0
  463. package/highlevel/methods/stickers/add-sticker-to-set.js +13 -0
  464. package/highlevel/methods/stickers/create-sticker-set.cjs +34 -0
  465. package/highlevel/methods/stickers/create-sticker-set.js +29 -0
  466. package/highlevel/methods/stickers/delete-sticker-from-set.cjs +21 -0
  467. package/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -1
  468. package/highlevel/methods/stickers/delete-sticker-from-set.js +16 -0
  469. package/highlevel/methods/stickers/get-custom-emojis.cjs +42 -0
  470. package/highlevel/methods/stickers/get-custom-emojis.js +37 -0
  471. package/highlevel/methods/stickers/get-installed-stickers.cjs +19 -0
  472. package/highlevel/methods/stickers/get-installed-stickers.js +14 -0
  473. package/highlevel/methods/stickers/get-my-sticker-sets.cjs +20 -0
  474. package/highlevel/methods/stickers/get-my-sticker-sets.d.ts +2 -2
  475. package/highlevel/methods/stickers/get-my-sticker-sets.js +15 -0
  476. package/highlevel/methods/stickers/get-sticker-set.cjs +17 -0
  477. package/highlevel/methods/stickers/get-sticker-set.js +12 -0
  478. package/highlevel/methods/stickers/move-sticker-in-set.cjs +22 -0
  479. package/highlevel/methods/stickers/move-sticker-in-set.d.ts +1 -1
  480. package/highlevel/methods/stickers/move-sticker-in-set.js +17 -0
  481. package/highlevel/methods/stickers/replace-sticker-in-set.cjs +23 -0
  482. package/highlevel/methods/stickers/replace-sticker-in-set.d.ts +1 -1
  483. package/highlevel/methods/stickers/replace-sticker-in-set.js +18 -0
  484. package/highlevel/methods/stickers/set-chat-sticker-set.cjs +19 -0
  485. package/highlevel/methods/stickers/set-chat-sticker-set.js +14 -0
  486. package/highlevel/methods/stickers/set-sticker-set-thumb.cjs +18 -0
  487. package/highlevel/methods/stickers/set-sticker-set-thumb.js +13 -0
  488. package/highlevel/methods/stories/can-send-story.cjs +28 -0
  489. package/highlevel/methods/stories/can-send-story.js +23 -0
  490. package/highlevel/methods/stories/delete-stories.cjs +17 -0
  491. package/highlevel/methods/stories/delete-stories.js +12 -0
  492. package/highlevel/methods/stories/edit-story.cjs +40 -0
  493. package/highlevel/methods/stories/edit-story.js +35 -0
  494. package/highlevel/methods/stories/find-in-update.cjs +24 -0
  495. package/highlevel/methods/stories/find-in-update.js +19 -0
  496. package/highlevel/methods/stories/get-all-stories.cjs +22 -0
  497. package/highlevel/methods/stories/get-all-stories.js +17 -0
  498. package/highlevel/methods/stories/get-peer-stories.cjs +19 -0
  499. package/highlevel/methods/stories/get-peer-stories.js +14 -0
  500. package/highlevel/methods/stories/get-profile-stories.cjs +31 -0
  501. package/highlevel/methods/stories/get-profile-stories.js +26 -0
  502. package/highlevel/methods/stories/get-stories-by-id.cjs +26 -0
  503. package/highlevel/methods/stories/get-stories-by-id.js +21 -0
  504. package/highlevel/methods/stories/get-stories-interactions.cjs +22 -0
  505. package/highlevel/methods/stories/get-stories-interactions.js +17 -0
  506. package/highlevel/methods/stories/get-story-link.cjs +16 -0
  507. package/highlevel/methods/stories/get-story-link.js +11 -0
  508. package/highlevel/methods/stories/get-story-viewers.cjs +25 -0
  509. package/highlevel/methods/stories/get-story-viewers.js +20 -0
  510. package/highlevel/methods/stories/hide-my-stories-views.cjs +27 -0
  511. package/highlevel/methods/stories/hide-my-stories-views.js +22 -0
  512. package/highlevel/methods/stories/increment-stories-views.cjs +18 -0
  513. package/highlevel/methods/stories/increment-stories-views.js +13 -0
  514. package/highlevel/methods/stories/iter-all-stories.cjs +27 -0
  515. package/highlevel/methods/stories/iter-all-stories.js +22 -0
  516. package/highlevel/methods/stories/iter-profile-stories.cjs +30 -0
  517. package/highlevel/methods/stories/iter-profile-stories.js +25 -0
  518. package/highlevel/methods/stories/iter-story-viewers.cjs +32 -0
  519. package/highlevel/methods/stories/iter-story-viewers.js +27 -0
  520. package/highlevel/methods/stories/read-stories.cjs +16 -0
  521. package/highlevel/methods/stories/read-stories.js +11 -0
  522. package/highlevel/methods/stories/send-story-reaction.cjs +21 -0
  523. package/highlevel/methods/stories/send-story-reaction.js +16 -0
  524. package/highlevel/methods/stories/send-story.cjs +46 -0
  525. package/highlevel/methods/stories/send-story.js +41 -0
  526. package/highlevel/methods/stories/toggle-peer-stories-archived.cjs +18 -0
  527. package/highlevel/methods/stories/toggle-peer-stories-archived.js +13 -0
  528. package/highlevel/methods/stories/toggle-stories-pinned.cjs +18 -0
  529. package/highlevel/methods/stories/toggle-stories-pinned.js +13 -0
  530. package/highlevel/methods/users/block-user.cjs +17 -0
  531. package/highlevel/methods/users/block-user.js +12 -0
  532. package/highlevel/methods/users/delete-profile-photos.cjs +22 -0
  533. package/highlevel/methods/users/delete-profile-photos.js +17 -0
  534. package/highlevel/methods/users/edit-close-friends.cjs +31 -0
  535. package/highlevel/methods/users/edit-close-friends.js +26 -0
  536. package/highlevel/methods/users/get-common-chats.cjs +18 -0
  537. package/highlevel/methods/users/get-common-chats.js +13 -0
  538. package/highlevel/methods/users/get-global-ttl.cjs +13 -0
  539. package/highlevel/methods/users/get-global-ttl.js +8 -0
  540. package/highlevel/methods/users/get-me.cjs +24 -0
  541. package/highlevel/methods/users/get-me.js +19 -0
  542. package/highlevel/methods/users/get-my-username.cjs +11 -0
  543. package/highlevel/methods/users/get-my-username.js +6 -0
  544. package/highlevel/methods/users/get-profile-photo.cjs +23 -0
  545. package/highlevel/methods/users/get-profile-photo.js +18 -0
  546. package/highlevel/methods/users/get-profile-photos.cjs +32 -0
  547. package/highlevel/methods/users/get-profile-photos.js +27 -0
  548. package/highlevel/methods/users/get-users.cjs +22 -0
  549. package/highlevel/methods/users/get-users.js +17 -0
  550. package/highlevel/methods/users/is-peer-available.cjs +40 -0
  551. package/highlevel/methods/users/is-peer-available.js +35 -0
  552. package/highlevel/methods/users/iter-profile-photos.cjs +29 -0
  553. package/highlevel/methods/users/iter-profile-photos.js +24 -0
  554. package/highlevel/methods/users/resolve-peer-many.cjs +84 -0
  555. package/highlevel/methods/users/resolve-peer-many.js +79 -0
  556. package/highlevel/methods/users/resolve-peer.cjs +200 -0
  557. package/highlevel/methods/users/resolve-peer.d.ts +1 -1
  558. package/highlevel/methods/users/resolve-peer.js +195 -0
  559. package/highlevel/methods/users/set-emoji-status.cjs +68 -0
  560. package/highlevel/methods/users/set-emoji-status.d.ts +32 -0
  561. package/highlevel/methods/users/set-emoji-status.js +63 -0
  562. package/highlevel/methods/users/set-global-ttl.cjs +16 -0
  563. package/highlevel/methods/users/set-global-ttl.js +11 -0
  564. package/highlevel/methods/users/set-my-birthday.cjs +19 -0
  565. package/highlevel/methods/users/set-my-birthday.js +14 -0
  566. package/highlevel/methods/users/set-my-profile-photo.cjs +39 -0
  567. package/highlevel/methods/users/set-my-profile-photo.d.ts +1 -1
  568. package/highlevel/methods/users/set-my-profile-photo.js +34 -0
  569. package/highlevel/methods/users/set-my-username.cjs +18 -0
  570. package/highlevel/methods/users/set-my-username.js +13 -0
  571. package/highlevel/methods/users/set-online.cjs +33 -0
  572. package/highlevel/methods/users/set-online.d.ts +19 -0
  573. package/highlevel/methods/users/set-online.js +28 -0
  574. package/highlevel/methods/users/unblock-user.cjs +17 -0
  575. package/highlevel/methods/users/unblock-user.js +12 -0
  576. package/highlevel/methods/users/update-profile.cjs +18 -0
  577. package/highlevel/methods/users/update-profile.js +13 -0
  578. package/highlevel/methods.d.ts +11 -2
  579. package/highlevel/storage/service/current-user.cjs +117 -0
  580. package/highlevel/storage/service/current-user.js +112 -0
  581. package/highlevel/storage/service/peers.cjs +263 -0
  582. package/highlevel/storage/service/peers.js +258 -0
  583. package/highlevel/storage/service/ref-messages.cjs +38 -0
  584. package/highlevel/storage/service/ref-messages.js +33 -0
  585. package/highlevel/storage/service/updates.cjs +72 -0
  586. package/highlevel/storage/service/updates.js +67 -0
  587. package/highlevel/storage/storage.cjs +48 -0
  588. package/highlevel/storage/storage.d.ts +1 -1
  589. package/highlevel/storage/storage.js +43 -0
  590. package/highlevel/types/auth/sent-code.cjs +79 -0
  591. package/highlevel/types/auth/sent-code.js +74 -0
  592. package/highlevel/types/bots/command-scope/inner.cjs +53 -0
  593. package/highlevel/types/bots/command-scope/inner.js +48 -0
  594. package/highlevel/types/bots/game-high-score.cjs +37 -0
  595. package/highlevel/types/bots/game-high-score.js +32 -0
  596. package/highlevel/types/bots/index.d.ts +1 -0
  597. package/highlevel/types/bots/inline-message/factories.cjs +144 -0
  598. package/highlevel/types/bots/inline-message/factories.js +139 -0
  599. package/highlevel/types/bots/inline-result/factories.cjs +379 -0
  600. package/highlevel/types/bots/inline-result/factories.js +374 -0
  601. package/highlevel/types/bots/keyboards/builder.cjs +85 -0
  602. package/highlevel/types/bots/keyboards/builder.js +80 -0
  603. package/highlevel/types/bots/keyboards/factories.cjs +227 -0
  604. package/highlevel/types/bots/keyboards/factories.d.ts +1 -1
  605. package/highlevel/types/bots/keyboards/factories.js +222 -0
  606. package/highlevel/types/bots/webview.cjs +34 -0
  607. package/highlevel/types/bots/webview.d.ts +114 -0
  608. package/highlevel/types/bots/webview.js +29 -0
  609. package/highlevel/types/calls/discard-reason.cjs +38 -0
  610. package/highlevel/types/calls/discard-reason.js +33 -0
  611. package/highlevel/types/conversation.cjs +435 -0
  612. package/highlevel/types/conversation.d.ts +3 -3
  613. package/highlevel/types/conversation.js +430 -0
  614. package/highlevel/types/errors.cjs +32 -0
  615. package/highlevel/types/errors.d.ts +1 -1
  616. package/highlevel/types/errors.js +27 -0
  617. package/highlevel/types/files/file-location.cjs +17 -0
  618. package/highlevel/types/files/file-location.js +12 -0
  619. package/highlevel/types/files/uploaded-file.cjs +11 -0
  620. package/highlevel/types/files/uploaded-file.js +6 -0
  621. package/highlevel/types/files/utils.d.ts +2 -1
  622. package/highlevel/types/files/web-document.cjs +51 -0
  623. package/highlevel/types/files/web-document.js +46 -0
  624. package/highlevel/types/media/audio.cjs +46 -0
  625. package/highlevel/types/media/audio.d.ts +1 -1
  626. package/highlevel/types/media/audio.js +41 -0
  627. package/highlevel/types/media/contact.cjs +51 -0
  628. package/highlevel/types/media/contact.js +46 -0
  629. package/highlevel/types/media/dice.cjs +171 -0
  630. package/highlevel/types/media/dice.js +166 -0
  631. package/highlevel/types/media/document-utils.cjs +45 -0
  632. package/highlevel/types/media/document-utils.js +40 -0
  633. package/highlevel/types/media/document.cjs +135 -0
  634. package/highlevel/types/media/document.d.ts +1 -1
  635. package/highlevel/types/media/document.js +130 -0
  636. package/highlevel/types/media/extended-media.cjs +43 -0
  637. package/highlevel/types/media/extended-media.js +38 -0
  638. package/highlevel/types/media/game.cjs +77 -0
  639. package/highlevel/types/media/game.js +72 -0
  640. package/highlevel/types/media/input-media/factories.cjs +142 -0
  641. package/highlevel/types/media/input-media/factories.js +137 -0
  642. package/highlevel/types/media/invoice.cjs +128 -0
  643. package/highlevel/types/media/invoice.d.ts +1 -1
  644. package/highlevel/types/media/invoice.js +123 -0
  645. package/highlevel/types/media/location.cjs +119 -0
  646. package/highlevel/types/media/location.js +114 -0
  647. package/highlevel/types/media/paid-media.cjs +66 -0
  648. package/highlevel/types/media/paid-media.js +61 -0
  649. package/highlevel/types/media/photo.cjs +164 -0
  650. package/highlevel/types/media/photo.js +159 -0
  651. package/highlevel/types/media/poll.cjs +188 -0
  652. package/highlevel/types/media/poll.d.ts +1 -1
  653. package/highlevel/types/media/poll.js +183 -0
  654. package/highlevel/types/media/sticker.cjs +145 -0
  655. package/highlevel/types/media/sticker.d.ts +1 -1
  656. package/highlevel/types/media/sticker.js +140 -0
  657. package/highlevel/types/media/story.cjs +53 -0
  658. package/highlevel/types/media/story.js +48 -0
  659. package/highlevel/types/media/thumbnail.cjs +238 -0
  660. package/highlevel/types/media/thumbnail.js +233 -0
  661. package/highlevel/types/media/venue.cjs +81 -0
  662. package/highlevel/types/media/venue.js +76 -0
  663. package/highlevel/types/media/video.cjs +80 -0
  664. package/highlevel/types/media/video.d.ts +1 -1
  665. package/highlevel/types/media/video.js +75 -0
  666. package/highlevel/types/media/voice.cjs +40 -0
  667. package/highlevel/types/media/voice.d.ts +1 -1
  668. package/highlevel/types/media/voice.js +35 -0
  669. package/highlevel/types/media/web-page.cjs +190 -0
  670. package/highlevel/types/media/web-page.js +185 -0
  671. package/highlevel/types/messages/dialog.cjs +219 -0
  672. package/highlevel/types/messages/dialog.d.ts +3 -3
  673. package/highlevel/types/messages/dialog.js +214 -0
  674. package/highlevel/types/messages/draft-message.cjs +55 -0
  675. package/highlevel/types/messages/draft-message.js +50 -0
  676. package/highlevel/types/messages/fact-check.cjs +55 -0
  677. package/highlevel/types/messages/fact-check.js +50 -0
  678. package/highlevel/types/messages/index.d.ts +1 -1
  679. package/highlevel/types/messages/input-message-id.cjs +12 -0
  680. package/highlevel/types/messages/input-message-id.js +7 -0
  681. package/highlevel/types/messages/message-action.cjs +302 -0
  682. package/highlevel/types/messages/message-action.d.ts +15 -4
  683. package/highlevel/types/messages/message-action.js +297 -0
  684. package/highlevel/types/messages/message-effect.cjs +66 -0
  685. package/highlevel/types/messages/message-effect.js +61 -0
  686. package/highlevel/types/messages/message-entity.cjs +104 -0
  687. package/highlevel/types/messages/message-entity.js +99 -0
  688. package/highlevel/types/messages/message-forward.cjs +68 -0
  689. package/highlevel/types/messages/message-forward.d.ts +7 -4
  690. package/highlevel/types/messages/message-forward.js +63 -0
  691. package/highlevel/types/messages/message-media.cjs +73 -0
  692. package/highlevel/types/messages/message-media.d.ts +5 -5
  693. package/highlevel/types/messages/message-media.js +68 -0
  694. package/highlevel/types/messages/message-reactions.cjs +47 -0
  695. package/highlevel/types/messages/message-reactions.js +42 -0
  696. package/highlevel/types/messages/message-replies.cjs +66 -0
  697. package/highlevel/types/messages/message-replies.js +61 -0
  698. package/highlevel/types/messages/message.cjs +444 -0
  699. package/highlevel/types/messages/message.d.ts +6 -5
  700. package/highlevel/types/messages/message.js +439 -0
  701. package/highlevel/types/messages/replied-message.cjs +152 -0
  702. package/highlevel/types/messages/replied-message.d.ts +4 -4
  703. package/highlevel/types/messages/replied-message.js +147 -0
  704. package/highlevel/types/messages/search-filters.cjs +33 -0
  705. package/highlevel/types/messages/search-filters.js +28 -0
  706. package/highlevel/types/misc/collectible-info.cjs +45 -0
  707. package/highlevel/types/misc/collectible-info.d.ts +1 -1
  708. package/highlevel/types/misc/collectible-info.js +40 -0
  709. package/highlevel/types/misc/entities.cjs +15 -0
  710. package/highlevel/types/misc/entities.js +10 -0
  711. package/highlevel/types/misc/input-privacy-rule/allow.cjs +29 -0
  712. package/highlevel/types/misc/input-privacy-rule/allow.js +24 -0
  713. package/highlevel/types/misc/input-privacy-rule/bundle.cjs +11 -0
  714. package/highlevel/types/misc/input-privacy-rule/bundle.js +6 -0
  715. package/highlevel/types/misc/input-privacy-rule/disallow.cjs +25 -0
  716. package/highlevel/types/misc/input-privacy-rule/disallow.js +20 -0
  717. package/highlevel/types/misc/sticker-set.cjs +237 -0
  718. package/highlevel/types/misc/sticker-set.d.ts +1 -1
  719. package/highlevel/types/misc/sticker-set.js +232 -0
  720. package/highlevel/types/misc/takeout-session.cjs +83 -0
  721. package/highlevel/types/misc/takeout-session.js +78 -0
  722. package/highlevel/types/peers/bot-info.cjs +53 -0
  723. package/highlevel/types/peers/bot-info.d.ts +21 -0
  724. package/highlevel/types/peers/bot-info.js +48 -0
  725. package/highlevel/types/peers/chat-colors.cjs +36 -0
  726. package/highlevel/types/peers/chat-colors.js +31 -0
  727. package/highlevel/types/peers/chat-event/actions.cjs +237 -0
  728. package/highlevel/types/peers/chat-event/actions.d.ts +1 -1
  729. package/highlevel/types/peers/chat-event/actions.js +232 -0
  730. package/highlevel/types/peers/chat-event/filters.cjs +116 -0
  731. package/highlevel/types/peers/chat-event/filters.js +111 -0
  732. package/highlevel/types/peers/chat-event/index.cjs +45 -0
  733. package/highlevel/types/peers/chat-event/index.d.ts +1 -1
  734. package/highlevel/types/peers/chat-event/index.js +40 -0
  735. package/highlevel/types/peers/chat-invite-link-member.cjs +57 -0
  736. package/highlevel/types/peers/chat-invite-link-member.js +52 -0
  737. package/highlevel/types/peers/chat-invite-link.cjs +108 -0
  738. package/highlevel/types/peers/chat-invite-link.d.ts +1 -1
  739. package/highlevel/types/peers/chat-invite-link.js +103 -0
  740. package/highlevel/types/peers/chat-location.cjs +30 -0
  741. package/highlevel/types/peers/chat-location.js +25 -0
  742. package/highlevel/types/peers/chat-member.cjs +164 -0
  743. package/highlevel/types/peers/chat-member.d.ts +1 -1
  744. package/highlevel/types/peers/chat-member.js +159 -0
  745. package/highlevel/types/peers/chat-permissions.cjs +177 -0
  746. package/highlevel/types/peers/chat-permissions.js +172 -0
  747. package/highlevel/types/peers/chat-photo.cjs +122 -0
  748. package/highlevel/types/peers/chat-photo.js +117 -0
  749. package/highlevel/types/peers/chat-preview.cjs +70 -0
  750. package/highlevel/types/peers/chat-preview.js +65 -0
  751. package/highlevel/types/peers/chat.cjs +444 -0
  752. package/highlevel/types/peers/chat.d.ts +57 -62
  753. package/highlevel/types/peers/chat.js +439 -0
  754. package/highlevel/types/peers/chatlist-preview.cjs +47 -0
  755. package/highlevel/types/peers/chatlist-preview.d.ts +2 -2
  756. package/highlevel/types/peers/chatlist-preview.js +42 -0
  757. package/highlevel/types/peers/forum-topic.cjs +160 -0
  758. package/highlevel/types/peers/forum-topic.d.ts +1 -1
  759. package/highlevel/types/peers/forum-topic.js +155 -0
  760. package/highlevel/types/peers/full-chat.cjs +308 -0
  761. package/highlevel/types/peers/full-chat.d.ts +96 -42
  762. package/highlevel/types/peers/full-chat.js +303 -0
  763. package/highlevel/types/peers/full-user.cjs +215 -0
  764. package/highlevel/types/peers/full-user.d.ts +115 -0
  765. package/highlevel/types/peers/full-user.js +210 -0
  766. package/highlevel/types/peers/index.d.ts +4 -2
  767. package/highlevel/types/peers/peer.cjs +20 -0
  768. package/highlevel/types/peers/peer.d.ts +1 -1
  769. package/highlevel/types/peers/peer.js +15 -0
  770. package/{chunks/cjs/ija5tZ1t.js → highlevel/types/peers/peers-index.cjs} +6 -5
  771. package/{chunks/es/N3PMYmCL.js → highlevel/types/peers/peers-index.js} +1 -1
  772. package/highlevel/types/peers/user.cjs +461 -0
  773. package/highlevel/types/peers/user.d.ts +4 -0
  774. package/highlevel/types/peers/user.js +456 -0
  775. package/highlevel/types/premium/boost-slot.cjs +62 -0
  776. package/highlevel/types/premium/boost-slot.js +57 -0
  777. package/highlevel/types/premium/boost-stats.cjs +89 -0
  778. package/highlevel/types/premium/boost-stats.js +84 -0
  779. package/highlevel/types/premium/boost.cjs +79 -0
  780. package/highlevel/types/premium/boost.js +74 -0
  781. package/highlevel/types/premium/business-account.cjs +43 -0
  782. package/highlevel/types/premium/business-account.js +38 -0
  783. package/highlevel/types/premium/business-chat-link.cjs +38 -0
  784. package/highlevel/types/premium/business-chat-link.js +33 -0
  785. package/highlevel/types/premium/business-connection.cjs +43 -0
  786. package/highlevel/types/premium/business-connection.js +38 -0
  787. package/highlevel/types/premium/business-intro.cjs +39 -0
  788. package/highlevel/types/premium/business-intro.js +34 -0
  789. package/highlevel/types/premium/business-location.cjs +26 -0
  790. package/highlevel/types/premium/business-location.js +21 -0
  791. package/highlevel/types/premium/business-work-hours.cjs +129 -0
  792. package/highlevel/types/premium/business-work-hours.js +124 -0
  793. package/highlevel/types/premium/index.d.ts +3 -3
  794. package/highlevel/types/premium/stars-gift.cjs +119 -0
  795. package/highlevel/types/premium/stars-gift.d.ts +12 -1
  796. package/highlevel/types/premium/stars-gift.js +114 -0
  797. package/highlevel/types/premium/stars-status.cjs +35 -0
  798. package/highlevel/types/premium/stars-status.js +30 -0
  799. package/highlevel/types/premium/stars-transaction.cjs +148 -0
  800. package/highlevel/types/premium/stars-transaction.d.ts +8 -2
  801. package/highlevel/types/premium/stars-transaction.js +143 -0
  802. package/highlevel/types/reactions/emoji-status.cjs +24 -0
  803. package/highlevel/types/reactions/emoji-status.js +19 -0
  804. package/highlevel/types/reactions/peer-reaction.cjs +83 -0
  805. package/highlevel/types/reactions/peer-reaction.d.ts +2 -2
  806. package/highlevel/types/reactions/peer-reaction.js +78 -0
  807. package/highlevel/types/reactions/reaction-count.cjs +40 -0
  808. package/highlevel/types/reactions/reaction-count.js +35 -0
  809. package/highlevel/types/reactions/types.cjs +49 -0
  810. package/highlevel/types/reactions/types.js +44 -0
  811. package/highlevel/types/stories/all-stories.cjs +43 -0
  812. package/highlevel/types/stories/all-stories.js +38 -0
  813. package/highlevel/types/stories/index.d.ts +1 -1
  814. package/highlevel/types/stories/interactive/base.cjs +34 -0
  815. package/highlevel/types/stories/interactive/base.js +29 -0
  816. package/highlevel/types/stories/interactive/channel-post.cjs +30 -0
  817. package/highlevel/types/stories/interactive/channel-post.d.ts +1 -1
  818. package/highlevel/types/stories/interactive/channel-post.js +25 -0
  819. package/highlevel/types/stories/interactive/index.cjs +40 -0
  820. package/highlevel/types/stories/interactive/index.js +35 -0
  821. package/highlevel/types/stories/interactive/input.cjs +79 -0
  822. package/highlevel/types/stories/interactive/input.js +74 -0
  823. package/highlevel/types/stories/interactive/location.cjs +29 -0
  824. package/highlevel/types/stories/interactive/location.js +24 -0
  825. package/highlevel/types/stories/interactive/reaction.cjs +31 -0
  826. package/highlevel/types/stories/interactive/reaction.js +26 -0
  827. package/highlevel/types/stories/interactive/url.cjs +19 -0
  828. package/highlevel/types/stories/interactive/url.js +14 -0
  829. package/highlevel/types/stories/interactive/venue.cjs +52 -0
  830. package/highlevel/types/stories/interactive/venue.d.ts +1 -1
  831. package/highlevel/types/stories/interactive/venue.js +47 -0
  832. package/highlevel/types/stories/interactive/weather.cjs +29 -0
  833. package/highlevel/types/stories/interactive/weather.js +24 -0
  834. package/highlevel/types/stories/peer-stories.cjs +42 -0
  835. package/highlevel/types/stories/peer-stories.js +37 -0
  836. package/highlevel/types/stories/stealth-mode.cjs +25 -0
  837. package/highlevel/types/stories/stealth-mode.js +20 -0
  838. package/highlevel/types/stories/story-interactions.cjs +55 -0
  839. package/highlevel/types/stories/story-interactions.js +50 -0
  840. package/highlevel/types/stories/story-viewer.cjs +133 -0
  841. package/highlevel/types/stories/story-viewer.d.ts +1 -1
  842. package/highlevel/types/stories/story-viewer.js +128 -0
  843. package/highlevel/types/stories/story.cjs +141 -0
  844. package/highlevel/types/stories/story.d.ts +2 -2
  845. package/highlevel/types/stories/story.js +136 -0
  846. package/highlevel/types/updates/bot-chat-join-request.cjs +64 -0
  847. package/highlevel/types/updates/bot-chat-join-request.js +59 -0
  848. package/highlevel/types/updates/bot-reaction.cjs +90 -0
  849. package/highlevel/types/updates/bot-reaction.d.ts +3 -4
  850. package/highlevel/types/updates/bot-reaction.js +85 -0
  851. package/highlevel/types/updates/bot-stopped.cjs +40 -0
  852. package/highlevel/types/updates/bot-stopped.js +35 -0
  853. package/highlevel/types/updates/business-message.cjs +33 -0
  854. package/highlevel/types/updates/business-message.d.ts +1 -1
  855. package/highlevel/types/updates/business-message.js +28 -0
  856. package/highlevel/types/updates/callback-query.cjs +142 -0
  857. package/highlevel/types/updates/callback-query.d.ts +3 -3
  858. package/highlevel/types/updates/callback-query.js +137 -0
  859. package/highlevel/types/updates/chat-join-request.cjs +46 -0
  860. package/highlevel/types/updates/chat-join-request.js +41 -0
  861. package/highlevel/types/updates/chat-member-update.cjs +160 -0
  862. package/highlevel/types/updates/chat-member-update.d.ts +2 -2
  863. package/highlevel/types/updates/chat-member-update.js +155 -0
  864. package/highlevel/types/updates/chosen-inline-result.cjs +71 -0
  865. package/highlevel/types/updates/chosen-inline-result.d.ts +1 -1
  866. package/highlevel/types/updates/chosen-inline-result.js +66 -0
  867. package/highlevel/types/updates/delete-business-message-update.cjs +35 -0
  868. package/highlevel/types/updates/delete-business-message-update.d.ts +2 -2
  869. package/highlevel/types/updates/delete-business-message-update.js +30 -0
  870. package/highlevel/types/updates/delete-message-update.cjs +28 -0
  871. package/highlevel/types/updates/delete-message-update.js +23 -0
  872. package/highlevel/types/updates/delete-story-update.cjs +31 -0
  873. package/highlevel/types/updates/delete-story-update.js +26 -0
  874. package/highlevel/types/updates/history-read-update.cjs +111 -0
  875. package/highlevel/types/updates/history-read-update.js +106 -0
  876. package/highlevel/types/updates/index.d.ts +3 -3
  877. package/highlevel/types/updates/inline-query.cjs +75 -0
  878. package/highlevel/types/updates/inline-query.d.ts +1 -1
  879. package/highlevel/types/updates/inline-query.js +70 -0
  880. package/highlevel/types/updates/parse-update.cjs +108 -0
  881. package/highlevel/types/updates/parse-update.d.ts +3 -3
  882. package/highlevel/types/updates/parse-update.js +103 -0
  883. package/highlevel/types/updates/poll-update.cjs +62 -0
  884. package/highlevel/types/updates/poll-update.d.ts +1 -1
  885. package/highlevel/types/updates/poll-update.js +57 -0
  886. package/highlevel/types/updates/poll-vote.cjs +75 -0
  887. package/highlevel/types/updates/poll-vote.js +70 -0
  888. package/highlevel/types/updates/pre-checkout-query.cjs +63 -0
  889. package/highlevel/types/updates/pre-checkout-query.js +58 -0
  890. package/highlevel/types/updates/story-update.cjs +34 -0
  891. package/highlevel/types/updates/story-update.js +29 -0
  892. package/highlevel/types/updates/user-status-update.cjs +47 -0
  893. package/highlevel/types/updates/user-status-update.js +42 -0
  894. package/highlevel/types/updates/user-typing-update.cjs +97 -0
  895. package/highlevel/types/updates/user-typing-update.js +92 -0
  896. package/highlevel/updates/manager.cjs +1448 -0
  897. package/highlevel/updates/manager.d.ts +4 -7
  898. package/highlevel/updates/manager.js +1443 -0
  899. package/highlevel/updates/parsed.cjs +48 -0
  900. package/highlevel/updates/parsed.d.ts +2 -8
  901. package/highlevel/updates/parsed.js +43 -0
  902. package/highlevel/updates/types.cjs +14 -0
  903. package/highlevel/updates/types.d.ts +14 -9
  904. package/highlevel/updates/types.js +9 -0
  905. package/highlevel/updates/utils.cjs +91 -0
  906. package/highlevel/updates/utils.js +86 -0
  907. package/highlevel/utils/convert-file-id.cjs +236 -0
  908. package/highlevel/utils/convert-file-id.d.ts +1 -1
  909. package/highlevel/utils/convert-file-id.js +231 -0
  910. package/highlevel/utils/entities.cjs +39 -0
  911. package/highlevel/utils/entities.js +34 -0
  912. package/highlevel/utils/file-type.cjs +136 -0
  913. package/highlevel/utils/file-type.js +131 -0
  914. package/highlevel/utils/file-utils.cjs +74 -0
  915. package/highlevel/utils/file-utils.js +69 -0
  916. package/highlevel/utils/index.d.ts +1 -0
  917. package/highlevel/utils/inline-utils.cjs +59 -0
  918. package/highlevel/utils/inline-utils.js +54 -0
  919. package/highlevel/utils/inspectable.cjs +53 -0
  920. package/highlevel/utils/inspectable.js +48 -0
  921. package/highlevel/utils/memoize.cjs +30 -0
  922. package/highlevel/utils/memoize.js +25 -0
  923. package/highlevel/utils/misc-utils.cjs +40 -0
  924. package/highlevel/utils/misc-utils.js +35 -0
  925. package/highlevel/utils/peer-utils.cjs +137 -0
  926. package/highlevel/utils/peer-utils.d.ts +1 -1
  927. package/highlevel/utils/peer-utils.js +132 -0
  928. package/highlevel/utils/query-batcher.cjs +124 -0
  929. package/highlevel/utils/query-batcher.js +119 -0
  930. package/highlevel/utils/rps-meter.cjs +39 -0
  931. package/highlevel/utils/rps-meter.d.ts +1 -1
  932. package/highlevel/utils/rps-meter.js +34 -0
  933. package/highlevel/utils/stream-utils.cjs +19 -0
  934. package/highlevel/utils/stream-utils.d.ts +0 -5
  935. package/highlevel/utils/stream-utils.js +14 -0
  936. package/highlevel/utils/string-session.cjs +96 -0
  937. package/highlevel/utils/string-session.d.ts +7 -2
  938. package/highlevel/utils/string-session.js +91 -0
  939. package/highlevel/utils/voice-utils.cjs +41 -0
  940. package/highlevel/utils/voice-utils.js +36 -0
  941. package/highlevel/worker/app-config.cjs +18 -0
  942. package/highlevel/worker/app-config.js +13 -0
  943. package/highlevel/worker/errors.cjs +118 -0
  944. package/highlevel/worker/errors.js +113 -0
  945. package/highlevel/worker/invoker.cjs +71 -0
  946. package/highlevel/worker/invoker.js +66 -0
  947. package/highlevel/worker/port.cjs +141 -0
  948. package/highlevel/worker/port.d.ts +14 -13
  949. package/highlevel/worker/port.js +136 -0
  950. package/highlevel/worker/protocol.cjs +63 -0
  951. package/highlevel/worker/protocol.d.ts +2 -2
  952. package/highlevel/worker/protocol.js +58 -0
  953. package/highlevel/worker/storage.cjs +80 -0
  954. package/highlevel/worker/storage.js +75 -0
  955. package/highlevel/worker/worker.cjs +147 -0
  956. package/highlevel/worker/worker.js +142 -0
  957. package/index.cjs +301 -1282
  958. package/index.js +241 -1228
  959. package/methods.cjs +526 -269
  960. package/methods.d.ts +1 -1
  961. package/methods.js +260 -3
  962. package/network/auth-key.cjs +103 -0
  963. package/network/auth-key.d.ts +1 -1
  964. package/network/auth-key.js +98 -0
  965. package/network/authorization.cjs +326 -0
  966. package/network/authorization.d.ts +1 -1
  967. package/network/authorization.js +321 -0
  968. package/network/client.cjs +191 -0
  969. package/network/client.d.ts +15 -10
  970. package/network/client.js +186 -0
  971. package/network/config-manager.cjs +47 -0
  972. package/network/config-manager.d.ts +2 -2
  973. package/network/config-manager.js +42 -0
  974. package/network/index.d.ts +1 -1
  975. package/network/middlewares/bundle.cjs +13 -0
  976. package/network/middlewares/bundle.js +8 -0
  977. package/network/middlewares/default.cjs +13 -0
  978. package/network/middlewares/default.js +8 -0
  979. package/network/middlewares/flood-waiter.cjs +70 -0
  980. package/network/middlewares/flood-waiter.js +65 -0
  981. package/network/middlewares/internal-errors.cjs +52 -0
  982. package/network/middlewares/internal-errors.js +47 -0
  983. package/network/middlewares/on-error.cjs +21 -0
  984. package/network/middlewares/on-error.js +16 -0
  985. package/network/middlewares/on-method.cjs +16 -0
  986. package/network/middlewares/on-method.d.ts +1 -1
  987. package/network/middlewares/on-method.js +11 -0
  988. package/network/mtproto-session.cjs +244 -0
  989. package/network/mtproto-session.d.ts +7 -5
  990. package/network/mtproto-session.js +239 -0
  991. package/network/mtproxy/_fake-tls.cjs +327 -0
  992. package/network/mtproxy/_fake-tls.d.ts +22 -0
  993. package/network/mtproxy/_fake-tls.js +322 -0
  994. package/network/mtproxy/index.cjs +132 -0
  995. package/network/mtproxy/index.d.ts +42 -0
  996. package/network/mtproxy/index.js +127 -0
  997. package/network/multi-session-connection.cjs +231 -0
  998. package/network/multi-session-connection.d.ts +15 -5
  999. package/network/multi-session-connection.js +226 -0
  1000. package/network/network-manager.cjs +594 -0
  1001. package/network/network-manager.d.ts +19 -11
  1002. package/network/network-manager.js +589 -0
  1003. package/network/persistent-connection.cjs +168 -0
  1004. package/network/persistent-connection.d.ts +19 -18
  1005. package/network/persistent-connection.js +163 -0
  1006. package/network/server-salt.cjs +44 -0
  1007. package/network/server-salt.d.ts +1 -1
  1008. package/network/server-salt.js +39 -0
  1009. package/network/session-connection.cjs +1433 -0
  1010. package/network/session-connection.d.ts +16 -3
  1011. package/network/session-connection.js +1428 -0
  1012. package/network/transports/abstract.cjs +15 -0
  1013. package/network/transports/abstract.d.ts +9 -59
  1014. package/network/transports/abstract.js +10 -0
  1015. package/network/transports/index.d.ts +0 -2
  1016. package/network/transports/intermediate.cjs +59 -0
  1017. package/network/transports/intermediate.d.ts +7 -7
  1018. package/network/transports/intermediate.js +54 -0
  1019. package/network/transports/obfuscated.cjs +88 -0
  1020. package/network/transports/obfuscated.d.ts +9 -4
  1021. package/network/transports/obfuscated.js +83 -0
  1022. package/package.json +20 -27
  1023. package/storage/driver.cjs +41 -0
  1024. package/storage/driver.d.ts +4 -2
  1025. package/storage/driver.js +36 -0
  1026. package/storage/memory/driver.cjs +19 -0
  1027. package/storage/memory/driver.js +14 -0
  1028. package/storage/memory/index.cjs +21 -0
  1029. package/storage/memory/index.js +16 -0
  1030. package/storage/memory/repository/auth-keys.cjs +60 -0
  1031. package/storage/memory/repository/auth-keys.js +55 -0
  1032. package/storage/memory/repository/kv.cjs +27 -0
  1033. package/storage/memory/repository/kv.js +22 -0
  1034. package/storage/memory/repository/peers.cjs +61 -0
  1035. package/storage/memory/repository/peers.js +56 -0
  1036. package/storage/memory/repository/ref-messages.cjs +43 -0
  1037. package/storage/memory/repository/ref-messages.js +38 -0
  1038. package/storage/service/auth-keys.cjs +20 -0
  1039. package/storage/service/auth-keys.js +15 -0
  1040. package/storage/service/base.cjs +31 -0
  1041. package/storage/service/base.js +26 -0
  1042. package/storage/service/default-dcs.cjs +55 -0
  1043. package/storage/service/default-dcs.js +50 -0
  1044. package/storage/service/future-salts.cjs +42 -0
  1045. package/storage/service/future-salts.js +37 -0
  1046. package/storage/sqlite/driver.cjs +127 -0
  1047. package/storage/sqlite/driver.d.ts +1 -1
  1048. package/storage/sqlite/driver.js +122 -0
  1049. package/storage/sqlite/index.cjs +25 -0
  1050. package/storage/sqlite/index.js +20 -0
  1051. package/storage/sqlite/repository/auth-keys.cjs +79 -0
  1052. package/storage/sqlite/repository/auth-keys.js +74 -0
  1053. package/storage/sqlite/repository/kv.cjs +87 -0
  1054. package/storage/sqlite/repository/kv.js +82 -0
  1055. package/storage/sqlite/repository/peers.cjs +102 -0
  1056. package/storage/sqlite/repository/peers.js +97 -0
  1057. package/storage/sqlite/repository/ref-messages.cjs +58 -0
  1058. package/storage/sqlite/repository/ref-messages.js +53 -0
  1059. package/storage/storage.cjs +74 -0
  1060. package/storage/storage.d.ts +4 -1
  1061. package/storage/storage.js +69 -0
  1062. package/{chunks/cjs/j7rWn_1y.js → types/errors.cjs} +3 -25
  1063. package/{chunks/es/DBMBgE7t.js → types/errors.js} +1 -24
  1064. package/types/index.d.ts +1 -0
  1065. package/{platform.d.ts → types/platform.d.ts} +3 -6
  1066. package/types/utils.cjs +11 -0
  1067. package/types/utils.d.ts +1 -2
  1068. package/types/utils.js +6 -0
  1069. package/utils/abort-signal.cjs +23 -0
  1070. package/utils/abort-signal.js +18 -0
  1071. package/utils/bigint-utils.cjs +31 -0
  1072. package/utils/bigint-utils.d.ts +0 -29
  1073. package/utils/bigint-utils.js +26 -0
  1074. package/utils/binary/asn1-parser.cjs +99 -0
  1075. package/utils/binary/asn1-parser.js +94 -0
  1076. package/utils/crypto/abstract.cjs +20 -0
  1077. package/utils/crypto/abstract.js +15 -0
  1078. package/utils/crypto/factorization.cjs +58 -0
  1079. package/utils/crypto/factorization.js +53 -0
  1080. package/utils/crypto/index.d.ts +0 -1
  1081. package/utils/crypto/keys.cjs +49 -0
  1082. package/utils/crypto/keys.d.ts +1 -1
  1083. package/utils/crypto/keys.js +44 -0
  1084. package/utils/crypto/miller-rabin.cjs +37 -0
  1085. package/utils/crypto/miller-rabin.js +32 -0
  1086. package/utils/crypto/mtproto.cjs +44 -0
  1087. package/utils/crypto/mtproto.js +39 -0
  1088. package/utils/crypto/password.cjs +76 -0
  1089. package/utils/crypto/password.js +71 -0
  1090. package/utils/dcs.cjs +104 -0
  1091. package/utils/dcs.d.ts +1 -0
  1092. package/utils/dcs.js +99 -0
  1093. package/utils/early-timer.cjs +73 -0
  1094. package/utils/early-timer.d.ts +0 -1
  1095. package/utils/early-timer.js +68 -0
  1096. package/utils/error-reporting.cjs +23 -0
  1097. package/utils/error-reporting.js +18 -0
  1098. package/utils/function-utils.cjs +54 -0
  1099. package/utils/function-utils.js +49 -0
  1100. package/utils/index.d.ts +1 -11
  1101. package/utils/linked-list.cjs +65 -0
  1102. package/utils/linked-list.js +60 -0
  1103. package/utils/links/bots.cjs +211 -0
  1104. package/utils/links/bots.js +206 -0
  1105. package/utils/links/bundle.cjs +32 -0
  1106. package/utils/links/bundle.js +27 -0
  1107. package/utils/links/calls.cjs +52 -0
  1108. package/utils/links/calls.js +47 -0
  1109. package/{chunks/cjs/BijPAnvP.js → utils/links/chat.cjs} +21 -65
  1110. package/{chunks/es/Bi0OVMv8.js → utils/links/chat.js} +1 -46
  1111. package/utils/links/common.cjs +53 -0
  1112. package/utils/links/common.js +48 -0
  1113. package/utils/links/misc.cjs +82 -0
  1114. package/utils/links/misc.js +77 -0
  1115. package/utils/links/proxy.cjs +52 -0
  1116. package/utils/links/proxy.js +47 -0
  1117. package/utils/links/stickers.cjs +24 -0
  1118. package/utils/links/stickers.js +19 -0
  1119. package/utils/links/user.cjs +57 -0
  1120. package/utils/links/user.js +52 -0
  1121. package/{chunks/cjs/D4qcXFYA.js → utils/logger.cjs} +11 -12
  1122. package/utils/logger.d.ts +2 -3
  1123. package/{chunks/es/BRgz_-S8.js → utils/logger.js} +7 -9
  1124. package/utils/long-utils.cjs +68 -0
  1125. package/utils/long-utils.d.ts +5 -18
  1126. package/utils/long-utils.js +63 -0
  1127. package/utils/misc-utils.cjs +27 -0
  1128. package/utils/misc-utils.d.ts +0 -6
  1129. package/utils/misc-utils.js +22 -0
  1130. package/utils/peer-utils.cjs +143 -0
  1131. package/utils/peer-utils.js +138 -0
  1132. package/utils/sorted-array.cjs +79 -0
  1133. package/utils/sorted-array.js +74 -0
  1134. package/utils/timers.d.ts +1 -16
  1135. package/utils/tl-json.cjs +51 -0
  1136. package/utils/tl-json.js +46 -0
  1137. package/utils/type-assertions.cjs +46 -0
  1138. package/utils/type-assertions.js +41 -0
  1139. package/utils.cjs +126 -672
  1140. package/utils.d.ts +1 -1
  1141. package/utils.js +41 -590
  1142. package/worker.cjs +9 -584
  1143. package/worker.d.ts +1 -1
  1144. package/worker.js +3 -578
  1145. package/chunks/cjs/BQETTb_8.js +0 -229
  1146. package/chunks/cjs/BcdQkLTS.js +0 -5083
  1147. package/chunks/cjs/C1cFqHcW.js +0 -989
  1148. package/chunks/cjs/CSfUPcui.js +0 -10300
  1149. package/chunks/cjs/CZAB54t2.js +0 -81
  1150. package/chunks/cjs/eX3zeDAz.js +0 -1128
  1151. package/chunks/cjs/kxT7E_JE.js +0 -6728
  1152. package/chunks/cjs/package.json +0 -3
  1153. package/chunks/es/BJRm2PAH.js +0 -6724
  1154. package/chunks/es/BN3qj7tU.js +0 -77
  1155. package/chunks/es/CO4G3ySK.js +0 -985
  1156. package/chunks/es/CbXFWEiB.js +0 -5079
  1157. package/chunks/es/DKzd1_Yg.js +0 -10296
  1158. package/chunks/es/DY1E3mHM.js +0 -1124
  1159. package/chunks/es/hecWgeql.js +0 -225
  1160. package/client.d.cts +0 -1
  1161. package/highlevel/methods/users/set-my-emoji-status.d.ts +0 -13
  1162. package/highlevel/methods/users/set-offline.d.ts +0 -7
  1163. package/highlevel/utils/stream-utils.test.d.ts +0 -1
  1164. package/index.d.cts +0 -10
  1165. package/methods.d.cts +0 -1
  1166. package/network/persistent-connection.test.d.ts +0 -1
  1167. package/network/reconnection.d.ts +0 -11
  1168. package/network/transports/streamed.d.ts +0 -23
  1169. package/network/transports/wrapped.d.ts +0 -10
  1170. package/platform.cjs +0 -11
  1171. package/platform.d.cts +0 -18
  1172. package/platform.js +0 -6
  1173. package/utils/async-lock.d.ts +0 -10
  1174. package/utils/async-lock.test.d.ts +0 -1
  1175. package/utils/buffer-utils.d.ts +0 -27
  1176. package/utils/buffer-utils.test.d.ts +0 -1
  1177. package/utils/composer.d.ts +0 -3
  1178. package/utils/composer.test.d.ts +0 -1
  1179. package/utils/condition-variable.d.ts +0 -9
  1180. package/utils/condition-variable.test.d.ts +0 -1
  1181. package/utils/controllable-promise.d.ts +0 -11
  1182. package/utils/controllable-promise.test.d.ts +0 -1
  1183. package/utils/crypto/utils.d.ts +0 -14
  1184. package/utils/crypto/utils.test.d.ts +0 -1
  1185. package/utils/deque.d.ts +0 -29
  1186. package/utils/deque.test.d.ts +0 -1
  1187. package/utils/lru-map.d.ts +0 -22
  1188. package/utils/lru-map.test.d.ts +0 -1
  1189. package/utils/lru-set.d.ts +0 -22
  1190. package/utils/lru-set.test.d.ts +0 -1
  1191. package/utils/reloadable.d.ts +0 -24
  1192. package/utils.d.cts +0 -1
  1193. package/worker.d.cts +0 -1
@@ -0,0 +1,1448 @@
1
+ if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
2
+ globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
3
+ console.warn("[mtcute-workspace] CommonJS support is deprecated and will be removed in 0.20.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
4
+ console.warn("[mtcute-workspace] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
5
+ }
6
+ "use strict";
7
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
+ const utils = require("@fuman/utils");
9
+ const tl = require("@mtcute/tl");
10
+ const Long = require("long");
11
+ const errors = require("../../types/errors.cjs");
12
+ const utils$1 = require("../../types/utils.cjs");
13
+ const earlyTimer = require("../../utils/early-timer.cjs");
14
+ const linkedList = require("../../utils/linked-list.cjs");
15
+ const peerUtils = require("../../utils/peer-utils.cjs");
16
+ require("@mtcute/tl-runtime");
17
+ const batchedQueries = require("../methods/chats/batched-queries.cjs");
18
+ const peersIndex = require("../types/peers/peers-index.cjs");
19
+ const types = require("./types.cjs");
20
+ const utils$2 = require("./utils.cjs");
21
+ const peerUtils$1 = require("../utils/peer-utils.cjs");
22
+ const KEEP_ALIVE_INTERVAL = 15 * 60 * 1e3;
23
+ const UPDATES_TOO_LONG = { _: "updatesTooLong" };
24
+ class UpdatesManager {
25
+ constructor(client, params = {}) {
26
+ this.client = client;
27
+ this.params = params;
28
+ if (client.params.disableUpdates) {
29
+ throw new errors.MtArgumentError("Updates must be enabled to use updates manager");
30
+ }
31
+ this._onKeepAlive = this._onKeepAlive.bind(this);
32
+ this.postponedTimer.onTimeout(() => {
33
+ this.hasTimedoutPostponed = true;
34
+ this.updatesLoopCv.notify();
35
+ });
36
+ this.log = client.log.create("updates");
37
+ this.catchUpOnStart = params.catchUp ?? false;
38
+ this.noDispatchEnabled = !params.disableNoDispatch;
39
+ if (params.channelPtsLimit) {
40
+ if (typeof params.channelPtsLimit === "function") {
41
+ this._channelPtsLimit = params.channelPtsLimit;
42
+ } else {
43
+ const limit = params.channelPtsLimit;
44
+ this._channelPtsLimit = () => limit;
45
+ }
46
+ } else {
47
+ this._channelPtsLimit = () => this.auth?.isBot ? 1e5 : 100;
48
+ }
49
+ }
50
+ updatesLoopActive = false;
51
+ updatesLoopCv = new utils.ConditionVariable();
52
+ postponedTimer = new earlyTimer.EarlyTimer();
53
+ hasTimedoutPostponed = false;
54
+ pendingUpdateContainers = new linkedList.SortedLinkedList((a, b) => a.seqStart - b.seqStart);
55
+ pendingPtsUpdates = new linkedList.SortedLinkedList((a, b) => a.ptsBefore - b.ptsBefore);
56
+ pendingPtsUpdatesPostponed = new linkedList.SortedLinkedList((a, b) => a.ptsBefore - b.ptsBefore);
57
+ pendingQtsUpdates = new linkedList.SortedLinkedList((a, b) => a.qtsBefore - b.qtsBefore);
58
+ pendingQtsUpdatesPostponed = new linkedList.SortedLinkedList((a, b) => a.qtsBefore - b.qtsBefore);
59
+ pendingUnorderedUpdates = new utils.Deque();
60
+ noDispatchEnabled;
61
+ // channel id or 0 => msg id
62
+ noDispatchMsg = /* @__PURE__ */ new Map();
63
+ // channel id or 0 => pts
64
+ noDispatchPts = /* @__PURE__ */ new Map();
65
+ noDispatchQts = /* @__PURE__ */ new Set();
66
+ lock = new utils.AsyncLock();
67
+ // rpsIncoming?: RpsMeter
68
+ // rpsProcessing?: RpsMeter
69
+ // accessing storage every time might be expensive,
70
+ // so store everything here, and load & save
71
+ // every time session is loaded & saved.
72
+ pts;
73
+ qts;
74
+ date;
75
+ seq;
76
+ // old values of the updates state (i.e. as in DB)
77
+ // used to avoid redundant storage calls
78
+ oldPts;
79
+ oldQts;
80
+ oldDate;
81
+ oldSeq;
82
+ // whether to catch up channels from the locally stored pts
83
+ catchingUp = false;
84
+ catchUpOnStart;
85
+ cpts = /* @__PURE__ */ new Map();
86
+ cptsMod = /* @__PURE__ */ new Map();
87
+ channelDiffTimeouts = /* @__PURE__ */ new Map();
88
+ channelsOpened = /* @__PURE__ */ new Map();
89
+ log;
90
+ _onCatchingUp = () => {
91
+ };
92
+ // eslint-disable-next-line ts/no-unsafe-function-type
93
+ _channelPtsLimit;
94
+ auth;
95
+ // todo: do we need a local copy?
96
+ keepAliveInterval;
97
+ onCatchingUp(handler) {
98
+ this._onCatchingUp = handler;
99
+ }
100
+ destroy() {
101
+ this.stopLoop();
102
+ }
103
+ notifyLoggedIn(self) {
104
+ this.auth = self;
105
+ this.startLoop().catch((err) => this.client.onError.emit(utils.unknownToError(err)));
106
+ }
107
+ notifyLoggedOut() {
108
+ this.stopLoop();
109
+ this.cpts.clear();
110
+ this.cptsMod.clear();
111
+ this.pts = this.qts = this.date = this.seq = void 0;
112
+ }
113
+ async prepare() {
114
+ await this._loadUpdatesStorage();
115
+ }
116
+ _onKeepAlive() {
117
+ this.log.debug("no updates for >15 minutes, catching up");
118
+ this.handleUpdate(UPDATES_TOO_LONG);
119
+ }
120
+ /**
121
+ * Start updates loop.
122
+ *
123
+ * You must first call {@link enableUpdatesProcessing} to use this method.
124
+ *
125
+ * It is recommended to use this method in callback to {@link start},
126
+ * or otherwise make sure the user is logged in.
127
+ *
128
+ * > **Note**: If you are using {@link UpdatesManagerParams.catchUp} option,
129
+ * > catching up will be done in background, you can't await it.
130
+ * > Instead, listen for the `updating` and `connected` connection state events.
131
+ */
132
+ async startLoop() {
133
+ if (this.updatesLoopActive) return;
134
+ if (!this.catchUpOnStart) {
135
+ await this._fetchUpdatesState();
136
+ }
137
+ this.updatesLoopActive = true;
138
+ utils.timers.clearInterval(this.keepAliveInterval);
139
+ this.keepAliveInterval = utils.timers.setInterval(this._onKeepAlive, KEEP_ALIVE_INTERVAL);
140
+ this._loop().catch((err) => this.client.onError.emit(utils.unknownToError(err)));
141
+ if (this.catchUpOnStart) {
142
+ this.catchUp();
143
+ }
144
+ }
145
+ /**
146
+ * **ADVANCED**
147
+ *
148
+ * Manually stop updates loop.
149
+ * Usually done automatically when stopping the client with {@link close}
150
+ */
151
+ stopLoop() {
152
+ if (!this.updatesLoopActive) return;
153
+ utils.timers.clearInterval(this.keepAliveInterval);
154
+ for (const timer of this.channelDiffTimeouts.values()) {
155
+ utils.timers.clearTimeout(timer);
156
+ }
157
+ this.channelDiffTimeouts.clear();
158
+ this.updatesLoopActive = false;
159
+ this.pendingUpdateContainers.clear();
160
+ this.pendingUnorderedUpdates.clear();
161
+ this.pendingPtsUpdates.clear();
162
+ this.pendingQtsUpdates.clear();
163
+ this.pendingPtsUpdatesPostponed.clear();
164
+ this.pendingQtsUpdatesPostponed.clear();
165
+ this.postponedTimer.reset();
166
+ this.updatesLoopCv.notify();
167
+ }
168
+ /**
169
+ * Catch up with the server by loading missed updates.
170
+ *.
171
+ * > **Note**: In case the storage was not properly
172
+ * > closed the last time, "catching up" might
173
+ * > result in duplicate updates.
174
+ */
175
+ catchUp() {
176
+ if (!this.updatesLoopActive) {
177
+ this.log.warn("catch up requested, but updates loop is not active, ignoring");
178
+ return;
179
+ }
180
+ this.log.debug("catch up requested");
181
+ this._onCatchingUp(true);
182
+ this.catchingUp = true;
183
+ this.handleUpdate(UPDATES_TOO_LONG);
184
+ }
185
+ handleClientUpdate(update, noDispatch = true) {
186
+ if (noDispatch && this.noDispatchEnabled) {
187
+ this._addToNoDispatchIndex(update);
188
+ }
189
+ this.handleUpdate(update);
190
+ }
191
+ handleUpdate(update) {
192
+ this.log.debug(
193
+ "received %s, queueing for processing. containers queue size: %d",
194
+ update._,
195
+ this.pendingUpdateContainers.length
196
+ );
197
+ switch (update._) {
198
+ case "updatesTooLong":
199
+ case "updateShortMessage":
200
+ case "updateShortChatMessage":
201
+ case "updateShort":
202
+ case "updateShortSentMessage":
203
+ this.pendingUpdateContainers.add({
204
+ upd: update,
205
+ seqStart: 0,
206
+ seqEnd: 0
207
+ });
208
+ break;
209
+ case "updates":
210
+ case "updatesCombined":
211
+ this.pendingUpdateContainers.add({
212
+ upd: update,
213
+ seqStart: update._ === "updatesCombined" ? update.seqStart : update.seq,
214
+ seqEnd: update.seq
215
+ });
216
+ break;
217
+ default:
218
+ utils$1.assertNever();
219
+ }
220
+ this.updatesLoopCv.notify();
221
+ }
222
+ /**
223
+ * **ADVANCED**
224
+ *
225
+ * Notify the updates manager that some channel was "opened".
226
+ * Channel difference for "opened" channels will be fetched on a regular basis.
227
+ * This is a low-level method, prefer using {@link openChat} instead.
228
+ *
229
+ * Channel must be resolve-able with `resolvePeer` method (i.e. be in cache);
230
+ * base chat PTS must either be passed (e.g. from {@link Dialog}), or cached in storage.
231
+ *
232
+ * @param channelId Bare ID of the channel
233
+ * @param pts PTS of the channel, if known (e.g. from {@link Dialog})
234
+ * @returns `true` if the channel was opened for the first time, `false` if it is already opened
235
+ */
236
+ notifyChannelOpened(channelId, pts) {
237
+ if (this.channelsOpened.has(channelId)) {
238
+ this.log.debug("channel %d opened again", channelId);
239
+ this.channelsOpened.set(channelId, this.channelsOpened.get(channelId) + 1);
240
+ return false;
241
+ }
242
+ this.channelsOpened.set(channelId, 1);
243
+ this.log.debug("channel %d opened (pts=%d)", channelId, pts);
244
+ this._fetchChannelDifferenceViaUpdate(channelId, pts);
245
+ return true;
246
+ }
247
+ /**
248
+ * **ADVANCED**
249
+ *
250
+ * Notify the updates manager that some channel was "closed".
251
+ * Basically the opposite of {@link notifyChannelOpened}.
252
+ * This is a low-level method, prefer using {@link closeChat} instead.
253
+ *
254
+ * @param channelId Bare channel ID
255
+ * @returns `true` if the chat was closed for the last time, `false` otherwise
256
+ */
257
+ notifyChannelClosed(channelId) {
258
+ const opened = this.channelsOpened.get(channelId);
259
+ if (opened === void 0) {
260
+ return false;
261
+ }
262
+ if (opened > 1) {
263
+ this.log.debug("channel %d closed, but is opened %d more times", channelId, opened - 1);
264
+ this.channelsOpened.set(channelId, opened - 1);
265
+ return false;
266
+ }
267
+ this.channelsOpened.delete(channelId);
268
+ this.log.debug("channel %d closed", channelId);
269
+ return true;
270
+ }
271
+ /// /////////////////////////////////////////// IMPLEMENTATION //////////////////////////////////////////////
272
+ async _fetchUpdatesState() {
273
+ const { client, lock, log } = this;
274
+ await lock.acquire();
275
+ log.debug("fetching initial state");
276
+ try {
277
+ let fetchedState = await client.call({ _: "updates.getState" });
278
+ log.debug(
279
+ "updates.getState returned state: pts=%d, qts=%d, date=%d, seq=%d",
280
+ fetchedState.pts,
281
+ fetchedState.qts,
282
+ fetchedState.date,
283
+ fetchedState.seq
284
+ );
285
+ const diff = await client.call({
286
+ _: "updates.getDifference",
287
+ pts: fetchedState.pts,
288
+ qts: fetchedState.qts,
289
+ date: fetchedState.date
290
+ });
291
+ switch (diff._) {
292
+ case "updates.differenceEmpty":
293
+ break;
294
+ case "updates.differenceTooLong":
295
+ fetchedState.pts = diff.pts;
296
+ break;
297
+ case "updates.differenceSlice":
298
+ fetchedState = diff.intermediateState;
299
+ break;
300
+ case "updates.difference":
301
+ fetchedState = diff.state;
302
+ break;
303
+ default:
304
+ utils$1.assertNever(diff);
305
+ }
306
+ this.qts = fetchedState.qts;
307
+ this.pts = fetchedState.pts;
308
+ this.date = fetchedState.date;
309
+ this.seq = fetchedState.seq;
310
+ log.debug("loaded initial state: pts=%d, qts=%d, date=%d, seq=%d", this.pts, this.qts, this.date, this.seq);
311
+ } catch (e) {
312
+ if (tl.tl.RpcError.is(e, "AUTH_KEY_UNREGISTERED")) {
313
+ lock.release();
314
+ this.stopLoop();
315
+ return;
316
+ }
317
+ if (this.client.isConnected) {
318
+ log.error("failed to fetch updates state: %s", e);
319
+ }
320
+ lock.release();
321
+ throw e;
322
+ }
323
+ lock.release();
324
+ }
325
+ async _loadUpdatesStorage() {
326
+ const storedState = await this.client.storage.updates.getState();
327
+ if (storedState) {
328
+ this.pts = this.oldPts = storedState[0];
329
+ this.qts = this.oldQts = storedState[1];
330
+ this.date = this.oldDate = storedState[2];
331
+ this.seq = this.oldSeq = storedState[3];
332
+ this.log.debug(
333
+ "loaded stored state: pts=%d, qts=%d, date=%d, seq=%d",
334
+ storedState[0],
335
+ storedState[1],
336
+ storedState[2],
337
+ storedState[3]
338
+ );
339
+ }
340
+ }
341
+ async _saveUpdatesStorage(save = false) {
342
+ const { client } = this;
343
+ if (this.pts !== void 0) {
344
+ if (this.oldPts === void 0 || this.oldPts !== this.pts) {
345
+ await client.storage.updates.setPts(this.pts);
346
+ }
347
+ if (this.oldQts === void 0 || this.oldQts !== this.qts) {
348
+ await client.storage.updates.setQts(this.qts);
349
+ }
350
+ if (this.oldDate === void 0 || this.oldDate !== this.date) {
351
+ await client.storage.updates.setDate(this.date);
352
+ }
353
+ if (this.oldSeq === void 0 || this.oldSeq !== this.seq) {
354
+ await client.storage.updates.setSeq(this.seq);
355
+ }
356
+ this.oldPts = this.pts;
357
+ this.oldQts = this.qts;
358
+ this.oldDate = this.date;
359
+ this.oldSeq = this.seq;
360
+ await client.storage.updates.setManyChannelPts(this.cptsMod);
361
+ this.cptsMod.clear();
362
+ if (save) {
363
+ await client.mt.storage.save();
364
+ }
365
+ }
366
+ }
367
+ _addToNoDispatchIndex(updates) {
368
+ if (!updates) return;
369
+ const { noDispatchMsg, noDispatchPts, noDispatchQts } = this;
370
+ const addUpdate = (upd) => {
371
+ const channelId = utils$2.extractChannelIdFromUpdate(upd) ?? 0;
372
+ const pts = "pts" in upd ? upd.pts : void 0;
373
+ if (pts) {
374
+ const set = noDispatchPts.get(channelId);
375
+ if (!set) noDispatchPts.set(channelId, /* @__PURE__ */ new Set([pts]));
376
+ else set.add(pts);
377
+ }
378
+ const qts = "qts" in upd ? upd.qts : void 0;
379
+ if (qts) {
380
+ noDispatchQts.add(qts);
381
+ }
382
+ switch (upd._) {
383
+ case "updateNewMessage":
384
+ case "updateNewChannelMessage":
385
+ case "updateBotNewBusinessMessage": {
386
+ const channelId2 = upd.message.peerId?._ === "peerChannel" ? upd.message.peerId.channelId : 0;
387
+ const set = noDispatchMsg.get(channelId2);
388
+ if (!set) noDispatchMsg.set(channelId2, /* @__PURE__ */ new Set([upd.message.id]));
389
+ else set.add(upd.message.id);
390
+ break;
391
+ }
392
+ }
393
+ };
394
+ switch (updates._) {
395
+ case "updates":
396
+ case "updatesCombined":
397
+ updates.updates.forEach(addUpdate);
398
+ break;
399
+ case "updateShortMessage":
400
+ case "updateShortChatMessage":
401
+ case "updateShortSentMessage": {
402
+ let set = noDispatchMsg.get(0);
403
+ if (!set) noDispatchMsg.set(0, /* @__PURE__ */ new Set([updates.id]));
404
+ else set.add(updates.id);
405
+ set = noDispatchPts.get(0);
406
+ if (!set) noDispatchPts.set(0, /* @__PURE__ */ new Set([updates.pts]));
407
+ else set.add(updates.pts);
408
+ break;
409
+ }
410
+ case "updateShort":
411
+ addUpdate(updates.update);
412
+ break;
413
+ case "updatesTooLong":
414
+ break;
415
+ default:
416
+ utils$1.assertNever();
417
+ }
418
+ }
419
+ async _fetchMissingPeers(upd, peers, fromDifference = false) {
420
+ const { client, log } = this;
421
+ const missing = /* @__PURE__ */ new Set();
422
+ async function fetchPeer(peer, allowZeroHash = false) {
423
+ if (!peer) return true;
424
+ const bare = typeof peer === "number" ? peerUtils.parseMarkedPeerId(peer)[1] : peerUtils.getBarePeerId(peer);
425
+ const marked = typeof peer === "number" ? peer : peerUtils.getMarkedPeerId(peer);
426
+ const index = marked > 0 ? peers.users : peers.chats;
427
+ const fromIndex = index.get(bare);
428
+ if (fromIndex && !fromIndex.min) return true;
429
+ if (missing.has(marked)) return false;
430
+ const cached = await client.storage.peers.getCompleteById(marked);
431
+ if (!cached) {
432
+ if (fromDifference && allowZeroHash && peerUtils.parseMarkedPeerId(marked)[0] === "channel") {
433
+ log.debug("trying to fetch peer %d with zero access hash", marked);
434
+ const fetched = await batchedQueries._getChannelsBatched(client, {
435
+ _: "inputChannel",
436
+ channelId: bare,
437
+ accessHash: Long.ZERO
438
+ });
439
+ if (fetched?._ === "channel" && !fetched.min) {
440
+ index.set(bare, fetched);
441
+ return true;
442
+ }
443
+ }
444
+ missing.add(marked);
445
+ return fromDifference;
446
+ }
447
+ index.set(bare, cached);
448
+ return true;
449
+ }
450
+ switch (upd._) {
451
+ case "updateNewMessage":
452
+ case "updateNewChannelMessage":
453
+ case "updateEditMessage":
454
+ case "updateEditChannelMessage": {
455
+ const msg = upd.message;
456
+ if (msg._ === "messageEmpty") return missing;
457
+ if (!await fetchPeer(msg.peerId, true)) return missing;
458
+ if (!await fetchPeer(msg.fromId)) return missing;
459
+ if (msg.replyTo) {
460
+ if (msg.replyTo._ === "messageReplyHeader" && !await fetchPeer(msg.replyTo.replyToPeerId)) {
461
+ return missing;
462
+ }
463
+ if (msg.replyTo._ === "messageReplyStoryHeader" && !await fetchPeer(msg.replyTo.peer)) {
464
+ return missing;
465
+ }
466
+ }
467
+ if (msg._ !== "messageService") {
468
+ if (msg.fwdFrom && (!await fetchPeer(msg.fwdFrom.fromId) || !await fetchPeer(msg.fwdFrom.savedFromPeer, true))) {
469
+ return missing;
470
+ }
471
+ if (!await fetchPeer(msg.viaBotId)) return missing;
472
+ if (msg.entities) {
473
+ for (const ent of msg.entities) {
474
+ if (ent._ === "messageEntityMentionName") {
475
+ if (!await fetchPeer(ent.userId)) return missing;
476
+ }
477
+ }
478
+ }
479
+ if (msg.media) {
480
+ switch (msg.media._) {
481
+ case "messageMediaContact":
482
+ if (msg.media.userId && !await fetchPeer(msg.media.userId)) {
483
+ return missing;
484
+ }
485
+ }
486
+ }
487
+ } else {
488
+ switch (msg.action._) {
489
+ case "messageActionChatCreate":
490
+ case "messageActionChatAddUser":
491
+ case "messageActionInviteToGroupCall":
492
+ for (const user of msg.action.users) {
493
+ if (!await fetchPeer(user)) return missing;
494
+ }
495
+ break;
496
+ case "messageActionChatJoinedByLink":
497
+ if (!await fetchPeer(msg.action.inviterId)) {
498
+ return missing;
499
+ }
500
+ break;
501
+ case "messageActionChatDeleteUser":
502
+ if (!await fetchPeer(msg.action.userId)) return missing;
503
+ break;
504
+ case "messageActionChatMigrateTo":
505
+ if (!await fetchPeer(peerUtils.toggleChannelIdMark(msg.action.channelId), true)) {
506
+ return missing;
507
+ }
508
+ break;
509
+ case "messageActionChannelMigrateFrom":
510
+ if (!await fetchPeer(-msg.action.chatId)) return missing;
511
+ break;
512
+ case "messageActionGeoProximityReached":
513
+ if (!await fetchPeer(msg.action.fromId)) return missing;
514
+ if (!await fetchPeer(msg.action.toId)) return missing;
515
+ break;
516
+ }
517
+ }
518
+ break;
519
+ }
520
+ case "updateDraftMessage":
521
+ if ("entities" in upd.draft && upd.draft.entities) {
522
+ for (const ent of upd.draft.entities) {
523
+ if (ent._ === "messageEntityMentionName") {
524
+ if (!await fetchPeer(ent.userId)) return missing;
525
+ }
526
+ }
527
+ }
528
+ }
529
+ return missing;
530
+ }
531
+ async _storeMessageReferences(msg) {
532
+ if (msg._ === "messageEmpty") return;
533
+ const { client } = this;
534
+ const peerId = msg.peerId;
535
+ if (peerId._ !== "peerChannel") return;
536
+ const channelId = peerUtils.toggleChannelIdMark(peerId.channelId);
537
+ const promises = [];
538
+ function store(peer) {
539
+ if (!peer) return;
540
+ if (Array.isArray(peer)) {
541
+ peer.forEach(store);
542
+ return;
543
+ }
544
+ const marked = typeof peer === "number" ? peer : peerUtils.getMarkedPeerId(peer);
545
+ promises.push(client.storage.refMsgs.store(marked, channelId, msg.id));
546
+ }
547
+ store(msg.fromId);
548
+ if (msg._ === "message") {
549
+ store(msg.viaBotId);
550
+ store(msg.fwdFrom?.fromId);
551
+ if (msg.media) {
552
+ switch (msg.media._) {
553
+ case "messageMediaWebPage":
554
+ if (msg.media.webpage._ === "webPage" && msg.media.webpage.attributes) {
555
+ for (const attr of msg.media.webpage.attributes) {
556
+ if (attr._ === "webPageAttributeStory") {
557
+ store(attr.peer);
558
+ }
559
+ }
560
+ }
561
+ break;
562
+ case "messageMediaContact":
563
+ store(msg.media.userId);
564
+ break;
565
+ case "messageMediaStory":
566
+ store(msg.media.peer);
567
+ break;
568
+ case "messageMediaGiveaway":
569
+ store(msg.media.channels.map(peerUtils.toggleChannelIdMark));
570
+ break;
571
+ }
572
+ }
573
+ } else {
574
+ switch (msg.action._) {
575
+ case "messageActionChatCreate":
576
+ case "messageActionChatAddUser":
577
+ case "messageActionInviteToGroupCall":
578
+ store(msg.action.users);
579
+ break;
580
+ case "messageActionChatDeleteUser":
581
+ store(msg.action.userId);
582
+ break;
583
+ }
584
+ }
585
+ if (msg.replyTo) {
586
+ switch (msg.replyTo._) {
587
+ case "messageReplyHeader":
588
+ store(msg.replyTo.replyToPeerId);
589
+ store(msg.replyTo.replyFrom?.fromId);
590
+ break;
591
+ case "messageReplyStoryHeader":
592
+ store(msg.replyTo.peer);
593
+ break;
594
+ }
595
+ }
596
+ await Promise.all(promises);
597
+ }
598
+ async _fetchChannelDifference(channelId, fallbackPts) {
599
+ const { channelDiffTimeouts, cpts, cptsMod, channelsOpened, client, log, pendingUnorderedUpdates } = this;
600
+ if (channelDiffTimeouts.has(channelId)) {
601
+ utils.timers.clearTimeout(channelDiffTimeouts.get(channelId));
602
+ channelDiffTimeouts.delete(channelId);
603
+ }
604
+ let _pts = cpts.get(channelId);
605
+ if (!_pts && this.catchingUp) {
606
+ _pts = await client.storage.updates.getChannelPts(channelId);
607
+ }
608
+ if (!_pts) _pts = fallbackPts;
609
+ if (!_pts) {
610
+ log.debug("fetchChannelDifference failed for channel %d: base pts not available", channelId);
611
+ return false;
612
+ }
613
+ const channelPeer = await client.storage.peers.getById(peerUtils.toggleChannelIdMark(channelId));
614
+ if (!channelPeer) {
615
+ log.debug("fetchChannelDifference failed for channel %d: input peer not found", channelId);
616
+ return false;
617
+ }
618
+ const channel = peerUtils$1.toInputChannel(channelPeer);
619
+ let pts = _pts;
620
+ let limit = this._channelPtsLimit(channelId);
621
+ if (pts <= 0) {
622
+ pts = 1;
623
+ limit = 1;
624
+ }
625
+ let lastTimeout = 0;
626
+ for (; ; ) {
627
+ const diff = await client.call({
628
+ _: "updates.getChannelDifference",
629
+ force: true,
630
+ // Set to true to skip some possibly unneeded updates and reduce server-side load
631
+ channel,
632
+ pts,
633
+ limit,
634
+ filter: { _: "channelMessagesFilterEmpty" }
635
+ });
636
+ if (diff.timeout) {
637
+ lastTimeout = this.params.overrideOpenChatTimeout ? this.params.overrideOpenChatTimeout(diff) : diff.timeout;
638
+ }
639
+ if (diff._ === "updates.channelDifferenceEmpty") {
640
+ log.debug("getChannelDifference (cid = %d) returned channelDifferenceEmpty", channelId);
641
+ break;
642
+ }
643
+ const peers = peersIndex.PeersIndex.from(diff);
644
+ if (diff._ === "updates.channelDifferenceTooLong") {
645
+ if (diff.dialog._ === "dialog") {
646
+ pts = diff.dialog.pts;
647
+ }
648
+ if (this.params.onChannelTooLong) {
649
+ this.params.onChannelTooLong(channelId, diff);
650
+ } else {
651
+ log.warn(
652
+ "getChannelDifference (cid = %d) returned channelDifferenceTooLong. new pts: %d, recent msgs: %d",
653
+ channelId,
654
+ pts,
655
+ diff.messages.length
656
+ );
657
+ diff.messages.forEach((message) => {
658
+ log.debug(
659
+ "processing message %d (%s) from TooLong diff for channel %d",
660
+ message.id,
661
+ message._,
662
+ channelId
663
+ );
664
+ if (message._ === "messageEmpty") return;
665
+ pendingUnorderedUpdates.pushBack(utils$2.toPendingUpdate(utils$2.messageToUpdate(message), peers, true));
666
+ });
667
+ }
668
+ break;
669
+ }
670
+ log.debug(
671
+ "getChannelDifference (cid = %d) returned %d messages, %d updates. new pts: %d, final: %b",
672
+ channelId,
673
+ diff.newMessages.length,
674
+ diff.otherUpdates.length,
675
+ diff.pts,
676
+ diff.final
677
+ );
678
+ diff.newMessages.forEach((message) => {
679
+ log.debug("processing message %d (%s) from diff for channel %d", message.id, message._, channelId);
680
+ if (message._ === "messageEmpty") return;
681
+ pendingUnorderedUpdates.pushBack(utils$2.toPendingUpdate(utils$2.messageToUpdate(message), peers, true));
682
+ });
683
+ diff.otherUpdates.forEach((upd) => {
684
+ const parsed = utils$2.toPendingUpdate(upd, peers, true);
685
+ log.debug(
686
+ "processing %s from diff for channel %d, pts_before: %d, pts: %d",
687
+ upd._,
688
+ channelId,
689
+ parsed.ptsBefore,
690
+ parsed.pts
691
+ );
692
+ if (utils$2.isMessageEmpty(upd)) return;
693
+ pendingUnorderedUpdates.pushBack(parsed);
694
+ });
695
+ pts = diff.pts;
696
+ if (diff.final) break;
697
+ }
698
+ cpts.set(channelId, pts);
699
+ cptsMod.set(channelId, pts);
700
+ if (lastTimeout !== 0 && channelsOpened.has(channelId)) {
701
+ log.debug("scheduling next fetch for channel %d in %d seconds", channelId, lastTimeout);
702
+ channelDiffTimeouts.set(
703
+ channelId,
704
+ utils.timers.setTimeout(() => this._fetchChannelDifferenceViaUpdate(channelId), lastTimeout * 1e3)
705
+ );
706
+ }
707
+ return true;
708
+ }
709
+ _fetchChannelDifferenceLater(requestedDiff, channelId, fallbackPts) {
710
+ if (!requestedDiff.has(channelId)) {
711
+ requestedDiff.set(
712
+ channelId,
713
+ this._fetchChannelDifference(channelId, fallbackPts).catch((err) => {
714
+ this.log.warn("error fetching difference for %d: %e", channelId, err);
715
+ }).then((ok) => {
716
+ requestedDiff.delete(channelId);
717
+ if (!ok) {
718
+ this.log.debug("channel difference for %d failed, falling back to common diff", channelId);
719
+ this._fetchDifferenceLater(requestedDiff);
720
+ }
721
+ })
722
+ );
723
+ }
724
+ }
725
+ _fetchChannelDifferenceViaUpdate(channelId, pts) {
726
+ this.handleUpdate(
727
+ utils$2.createDummyUpdatesContainer([
728
+ {
729
+ _: "updateChannelTooLong",
730
+ channelId,
731
+ pts
732
+ }
733
+ ])
734
+ );
735
+ }
736
+ async _fetchDifference(requestedDiff) {
737
+ const { client, log, pendingPtsUpdates, pendingUnorderedUpdates } = this;
738
+ const diff = await client.call({
739
+ _: "updates.getDifference",
740
+ pts: this.pts,
741
+ date: this.date,
742
+ qts: this.qts
743
+ });
744
+ switch (diff._) {
745
+ case "updates.differenceEmpty":
746
+ log.debug("updates.getDifference returned updates.differenceEmpty");
747
+ return;
748
+ case "updates.differenceTooLong":
749
+ this.pts = diff.pts;
750
+ log.debug("updates.getDifference returned updates.differenceTooLong");
751
+ return;
752
+ }
753
+ const fetchedState = diff._ === "updates.difference" ? diff.state : diff.intermediateState;
754
+ log.debug(
755
+ "updates.getDifference returned %d messages, %d updates. new pts: %d, qts: %d, seq: %d, final: %b",
756
+ diff.newMessages.length,
757
+ diff.otherUpdates.length,
758
+ fetchedState.pts,
759
+ fetchedState.qts,
760
+ fetchedState.seq,
761
+ diff._ === "updates.difference"
762
+ );
763
+ const peers = peersIndex.PeersIndex.from(diff);
764
+ diff.newMessages.forEach((message) => {
765
+ log.debug("processing message %d in %j (%s) from common diff", message.id, message.peerId, message._);
766
+ if (message._ === "messageEmpty") return;
767
+ pendingUnorderedUpdates.pushBack(utils$2.toPendingUpdate(utils$2.messageToUpdate(message), peers, true));
768
+ });
769
+ diff.otherUpdates.forEach((upd) => {
770
+ if (upd._ === "updateChannelTooLong") {
771
+ log.debug(
772
+ "received updateChannelTooLong for channel %d in common diff (pts = %d), fetching diff",
773
+ upd.channelId,
774
+ upd.pts
775
+ );
776
+ this._fetchChannelDifferenceLater(requestedDiff, upd.channelId, upd.pts);
777
+ return;
778
+ }
779
+ if (utils$2.isMessageEmpty(upd)) return;
780
+ const parsed = utils$2.toPendingUpdate(upd, peers, true);
781
+ if (parsed.channelId && parsed.ptsBefore) {
782
+ pendingPtsUpdates.add(parsed);
783
+ } else {
784
+ pendingUnorderedUpdates.pushBack(parsed);
785
+ }
786
+ log.debug(
787
+ "received %s from common diff, cid: %d, pts_before: %d, pts: %d, qts_before: %d",
788
+ upd._,
789
+ parsed.channelId,
790
+ parsed.ptsBefore,
791
+ parsed.pts,
792
+ parsed.qtsBefore
793
+ );
794
+ });
795
+ this.pts = fetchedState.pts;
796
+ this.qts = fetchedState.qts;
797
+ this.seq = fetchedState.seq;
798
+ this.date = fetchedState.date;
799
+ if (diff._ === "updates.difference") {
800
+ return;
801
+ }
802
+ this.handleUpdate(UPDATES_TOO_LONG);
803
+ }
804
+ _fetchDifferenceLater(requestedDiff) {
805
+ if (!requestedDiff.has(0)) {
806
+ requestedDiff.set(
807
+ 0,
808
+ this._fetchDifference(requestedDiff).catch((err) => {
809
+ if (tl.tl.RpcError.is(err, "AUTH_KEY_UNREGISTERED")) {
810
+ this.stopLoop();
811
+ return;
812
+ }
813
+ this.log.warn("error fetching common difference: %e", err);
814
+ if (tl.tl.RpcError.is(err, "PERSISTENT_TIMESTAMP_INVALID")) {
815
+ return this._fetchUpdatesState();
816
+ }
817
+ }).then(() => {
818
+ requestedDiff.delete(0);
819
+ })
820
+ );
821
+ }
822
+ }
823
+ async _onUpdate(pending, requestedDiff, postponed = false, unordered = false) {
824
+ const { client, log } = this;
825
+ const upd = pending.update;
826
+ let missing;
827
+ if (pending.peers.hasMin || pending.peers.empty) {
828
+ log.debug("loading missing peers for %s (pts = %d, cid = %d)", upd._, pending.pts, pending.channelId);
829
+ missing = await this._fetchMissingPeers(upd, pending.peers, pending.fromDifference);
830
+ if (!pending.fromDifference && missing.size) {
831
+ log.debug(
832
+ "fetching difference because some peers were min (%J) and not cached for %s (pts = %d, cid = %d)",
833
+ missing,
834
+ upd._,
835
+ pending.pts,
836
+ pending.channelId
837
+ );
838
+ if (pending.channelId && !(upd._ === "updateNewChannelMessage" && upd.message._ === "messageService")) {
839
+ this._fetchChannelDifferenceLater(requestedDiff, pending.channelId, pending.ptsBefore);
840
+ } else {
841
+ this._fetchDifferenceLater(requestedDiff);
842
+ }
843
+ return;
844
+ }
845
+ if (missing.size) {
846
+ log.debug(
847
+ "peers still missing after fetching difference: %J for %s (pts = %d, cid = %d)",
848
+ missing,
849
+ upd._,
850
+ pending.pts,
851
+ pending.channelId
852
+ );
853
+ }
854
+ }
855
+ if (!unordered) {
856
+ if (pending.pts) {
857
+ const localPts = pending.channelId ? this.cpts.get(pending.channelId) : this.pts;
858
+ if (localPts && pending.ptsBefore !== localPts) {
859
+ log.warn(
860
+ "pts_before does not match local_pts for %s (cid = %d, pts_before = %d, pts = %d, local_pts = %d)",
861
+ upd._,
862
+ pending.channelId,
863
+ pending.ptsBefore,
864
+ pending.pts,
865
+ localPts
866
+ );
867
+ }
868
+ log.debug(
869
+ "applying new pts (cid = %d) because received %s: %d -> %d (before: %d, count: %d) (postponed = %s)",
870
+ pending.channelId,
871
+ upd._,
872
+ localPts,
873
+ pending.pts,
874
+ pending.ptsBefore,
875
+ pending.pts - pending.ptsBefore,
876
+ postponed
877
+ );
878
+ if (pending.channelId) {
879
+ this.cpts.set(pending.channelId, pending.pts);
880
+ this.cptsMod.set(pending.channelId, pending.pts);
881
+ } else {
882
+ this.pts = pending.pts;
883
+ }
884
+ }
885
+ if (pending.qtsBefore) {
886
+ log.debug(
887
+ "applying new qts because received %s: %d -> %d (postponed = %s)",
888
+ upd._,
889
+ this.qts,
890
+ pending.qtsBefore + 1,
891
+ postponed
892
+ );
893
+ this.qts = pending.qts;
894
+ }
895
+ }
896
+ if (utils$2.isMessageEmpty(upd)) return;
897
+ switch (upd._) {
898
+ case "mtcute.dummyUpdate":
899
+ return;
900
+ case "updateDcOptions": {
901
+ const config = client.mt.network.config.getCached();
902
+ if (config) {
903
+ client.mt.network.config.setData({
904
+ ...config,
905
+ dcOptions: upd.dcOptions
906
+ }, config.expires * 1e3);
907
+ } else {
908
+ client.mt.network.config.update(true).catch((err) => client.onError.emit(utils.unknownToError(err)));
909
+ }
910
+ break;
911
+ }
912
+ case "updateConfig":
913
+ client.mt.network.config.update(true).catch((err) => client.onError.emit(utils.unknownToError(err)));
914
+ break;
915
+ case "updateUserName":
916
+ break;
917
+ case "updateDeleteChannelMessages":
918
+ if (!this.auth?.isBot) {
919
+ await client.storage.refMsgs.delete(peerUtils.toggleChannelIdMark(upd.channelId), upd.messages);
920
+ }
921
+ break;
922
+ case "updateNewMessage":
923
+ case "updateEditMessage":
924
+ case "updateNewChannelMessage":
925
+ case "updateEditChannelMessage":
926
+ if (!this.auth?.isBot) {
927
+ await this._storeMessageReferences(upd.message);
928
+ }
929
+ break;
930
+ }
931
+ if (missing?.size) {
932
+ if (this.auth?.isBot) {
933
+ this.log.warn(
934
+ "missing peers (%J) after getDifference for %s (pts = %d, cid = %d)",
935
+ missing,
936
+ upd._,
937
+ pending.pts,
938
+ pending.channelId
939
+ );
940
+ } else {
941
+ await client.mt.storage.save();
942
+ for (const id of missing) {
943
+ Promise.resolve(client.storage.peers.getById(id)).then((peer) => {
944
+ if (!peer) {
945
+ this.log.warn("cannot fetch full peer %d - getPeerById returned null", id);
946
+ return;
947
+ }
948
+ log.warn("cannot fetch full peer %d - unknown peer type %s", id, peer._);
949
+ }).catch((err) => {
950
+ log.warn("error fetching full peer %d: %e", id, err);
951
+ });
952
+ }
953
+ }
954
+ }
955
+ if (this.noDispatchEnabled) {
956
+ const channelId = pending.channelId ?? 0;
957
+ const msgId = upd._ === "updateNewMessage" || upd._ === "updateNewChannelMessage" || upd._ === "updateBotNewBusinessMessage" ? upd.message.id : void 0;
958
+ const foundByMsgId = msgId && this.noDispatchMsg.get(channelId)?.delete(msgId);
959
+ const foundByPts = this.noDispatchPts.get(channelId)?.delete(pending.pts);
960
+ const foundByQts = this.noDispatchQts.delete(pending.qts);
961
+ if (foundByMsgId || foundByPts || foundByQts) {
962
+ log.debug("not dispatching %s because it is in no_dispatch index", upd._);
963
+ return;
964
+ }
965
+ }
966
+ log.debug("dispatching %s (postponed = %s)", upd._, postponed);
967
+ client.onRawUpdate.emit(new types.RawUpdateInfo(upd, pending.peers));
968
+ }
969
+ async _loop() {
970
+ const {
971
+ log,
972
+ client,
973
+ cpts,
974
+ cptsMod,
975
+ pendingUpdateContainers,
976
+ pendingPtsUpdates,
977
+ pendingPtsUpdatesPostponed,
978
+ pendingQtsUpdates,
979
+ pendingQtsUpdatesPostponed,
980
+ pendingUnorderedUpdates,
981
+ updatesLoopCv,
982
+ postponedTimer
983
+ } = this;
984
+ log.debug("updates loop started, state available? %b", this.pts);
985
+ try {
986
+ if (!this.pts) {
987
+ await this._fetchUpdatesState();
988
+ }
989
+ while (this.updatesLoopActive) {
990
+ if (!(pendingUpdateContainers.length || pendingPtsUpdates.length || pendingQtsUpdates.length || pendingUnorderedUpdates.length || this.hasTimedoutPostponed)) {
991
+ if (this.catchingUp) {
992
+ this.log.debug("catching up completed");
993
+ this.catchingUp = false;
994
+ this._onCatchingUp(false);
995
+ }
996
+ await updatesLoopCv.wait();
997
+ }
998
+ if (!this.updatesLoopActive) break;
999
+ log.debug(
1000
+ "updates loop tick. pending containers: %d, pts: %d, pts_postponed: %d, qts: %d, qts_postponed: %d, unordered: %d",
1001
+ pendingUpdateContainers.length,
1002
+ pendingPtsUpdates.length,
1003
+ pendingPtsUpdatesPostponed.length,
1004
+ pendingQtsUpdates.length,
1005
+ pendingQtsUpdatesPostponed.length,
1006
+ pendingUnorderedUpdates.length
1007
+ );
1008
+ const requestedDiff = /* @__PURE__ */ new Map();
1009
+ this.log.debug("processing pending containers");
1010
+ while (pendingUpdateContainers.length) {
1011
+ const { upd, seqStart, seqEnd } = pendingUpdateContainers.popFront();
1012
+ switch (upd._) {
1013
+ case "updatesTooLong":
1014
+ log.debug("received updatesTooLong, fetching difference");
1015
+ this._fetchDifferenceLater(requestedDiff);
1016
+ break;
1017
+ case "updatesCombined":
1018
+ case "updates": {
1019
+ if (seqStart !== 0) {
1020
+ const nextLocalSeq = this.seq + 1;
1021
+ log.debug(
1022
+ "received seq-ordered %s (seq_start = %d, seq_end = %d, size = %d)",
1023
+ upd._,
1024
+ seqStart,
1025
+ seqEnd,
1026
+ upd.updates.length
1027
+ );
1028
+ if (nextLocalSeq > seqStart) {
1029
+ log.debug(
1030
+ "ignoring updates group because already applied (by seq: exp %d, got %d)",
1031
+ nextLocalSeq,
1032
+ seqStart
1033
+ );
1034
+ continue;
1035
+ }
1036
+ if (nextLocalSeq < seqStart) {
1037
+ log.debug(
1038
+ "fetching difference because gap detected (by seq: exp %d, got %d)",
1039
+ nextLocalSeq,
1040
+ seqStart
1041
+ );
1042
+ this._fetchDifferenceLater(requestedDiff);
1043
+ }
1044
+ } else {
1045
+ log.debug("received %s (size = %d)", upd._, upd.updates.length);
1046
+ }
1047
+ await client.storage.peers.updatePeersFrom(upd);
1048
+ const peers = peersIndex.PeersIndex.from(upd);
1049
+ for (const update of upd.updates) {
1050
+ switch (update._) {
1051
+ case "updateChannelTooLong":
1052
+ log.debug(
1053
+ "received updateChannelTooLong for channel %d (pts = %d) in container, fetching diff",
1054
+ update.channelId,
1055
+ update.pts
1056
+ );
1057
+ this._fetchChannelDifferenceLater(requestedDiff, update.channelId, update.pts);
1058
+ continue;
1059
+ case "updatePtsChanged":
1060
+ if (client.mt.network.getPoolSize("main") > 1) {
1061
+ log.debug(
1062
+ "updatePtsChanged received, resetting pts to 1 and fetching difference"
1063
+ );
1064
+ this.pts = 1;
1065
+ this._fetchDifferenceLater(requestedDiff);
1066
+ } else {
1067
+ log.debug("updatePtsChanged received, fetching updates state");
1068
+ await this._fetchUpdatesState();
1069
+ }
1070
+ continue;
1071
+ }
1072
+ const parsed = utils$2.toPendingUpdate(update, peers);
1073
+ if (parsed.ptsBefore !== void 0) {
1074
+ pendingPtsUpdates.add(parsed);
1075
+ } else if (parsed.qtsBefore !== void 0) {
1076
+ pendingQtsUpdates.add(parsed);
1077
+ } else {
1078
+ pendingUnorderedUpdates.pushBack(parsed);
1079
+ }
1080
+ }
1081
+ if (seqEnd !== 0 && seqEnd > this.seq) {
1082
+ this.seq = seqEnd;
1083
+ this.date = upd.date;
1084
+ }
1085
+ break;
1086
+ }
1087
+ case "updateShort": {
1088
+ log.debug("received short %s", upd._);
1089
+ const parsed = utils$2.toPendingUpdate(upd.update, new peersIndex.PeersIndex());
1090
+ if (parsed.ptsBefore !== void 0) {
1091
+ pendingPtsUpdates.add(parsed);
1092
+ } else if (parsed.qtsBefore !== void 0) {
1093
+ pendingQtsUpdates.add(parsed);
1094
+ } else {
1095
+ pendingUnorderedUpdates.pushBack(parsed);
1096
+ }
1097
+ break;
1098
+ }
1099
+ case "updateShortMessage": {
1100
+ log.debug("received updateShortMessage");
1101
+ const message = {
1102
+ _: "message",
1103
+ out: upd.out,
1104
+ mentioned: upd.mentioned,
1105
+ mediaUnread: upd.mediaUnread,
1106
+ silent: upd.silent,
1107
+ id: upd.id,
1108
+ fromId: {
1109
+ _: "peerUser",
1110
+ userId: upd.out ? this.auth.userId : upd.userId
1111
+ },
1112
+ peerId: {
1113
+ _: "peerUser",
1114
+ userId: upd.userId
1115
+ },
1116
+ fwdFrom: upd.fwdFrom,
1117
+ viaBotId: upd.viaBotId,
1118
+ replyTo: upd.replyTo,
1119
+ date: upd.date,
1120
+ message: upd.message,
1121
+ entities: upd.entities,
1122
+ ttlPeriod: upd.ttlPeriod
1123
+ };
1124
+ const update = {
1125
+ _: "updateNewMessage",
1126
+ message,
1127
+ pts: upd.pts,
1128
+ ptsCount: upd.ptsCount
1129
+ };
1130
+ pendingPtsUpdates.add({
1131
+ update,
1132
+ ptsBefore: upd.pts - upd.ptsCount,
1133
+ pts: upd.pts,
1134
+ peers: new peersIndex.PeersIndex(),
1135
+ fromDifference: false
1136
+ });
1137
+ break;
1138
+ }
1139
+ case "updateShortChatMessage": {
1140
+ log.debug("received updateShortChatMessage");
1141
+ const message = {
1142
+ _: "message",
1143
+ out: upd.out,
1144
+ mentioned: upd.mentioned,
1145
+ mediaUnread: upd.mediaUnread,
1146
+ silent: upd.silent,
1147
+ id: upd.id,
1148
+ fromId: {
1149
+ _: "peerUser",
1150
+ userId: upd.fromId
1151
+ },
1152
+ peerId: {
1153
+ _: "peerChat",
1154
+ chatId: upd.chatId
1155
+ },
1156
+ fwdFrom: upd.fwdFrom,
1157
+ viaBotId: upd.viaBotId,
1158
+ replyTo: upd.replyTo,
1159
+ date: upd.date,
1160
+ message: upd.message,
1161
+ entities: upd.entities,
1162
+ ttlPeriod: upd.ttlPeriod
1163
+ };
1164
+ const update = {
1165
+ _: "updateNewMessage",
1166
+ message,
1167
+ pts: upd.pts,
1168
+ ptsCount: upd.ptsCount
1169
+ };
1170
+ pendingPtsUpdates.add({
1171
+ update,
1172
+ ptsBefore: upd.pts - upd.ptsCount,
1173
+ pts: upd.pts,
1174
+ peers: new peersIndex.PeersIndex(),
1175
+ fromDifference: false
1176
+ });
1177
+ break;
1178
+ }
1179
+ case "updateShortSentMessage": {
1180
+ log.warn("received updateShortSentMessage");
1181
+ break;
1182
+ }
1183
+ default:
1184
+ utils$1.assertNever(upd);
1185
+ }
1186
+ }
1187
+ this.log.debug("processing pending pts-ordered updates");
1188
+ while (pendingPtsUpdates.length) {
1189
+ const pending = pendingPtsUpdates.popFront();
1190
+ const upd = pending.update;
1191
+ let localPts = null;
1192
+ if (!pending.channelId) {
1193
+ localPts = this.pts;
1194
+ } else if (cpts.has(pending.channelId)) {
1195
+ localPts = cpts.get(pending.channelId);
1196
+ } else if (this.catchingUp) {
1197
+ const saved = await client.storage.updates.getChannelPts(pending.channelId);
1198
+ if (saved) {
1199
+ cpts.set(pending.channelId, saved);
1200
+ localPts = saved;
1201
+ }
1202
+ }
1203
+ if (localPts) {
1204
+ const diff = localPts - pending.ptsBefore;
1205
+ const isPtsDrop = diff > 1000009;
1206
+ if (diff > 0 && !isPtsDrop) {
1207
+ log.debug(
1208
+ "ignoring %s (cid = %d) because already applied (by pts: exp %d, got %d)",
1209
+ upd._,
1210
+ pending.channelId,
1211
+ localPts,
1212
+ pending.ptsBefore
1213
+ );
1214
+ continue;
1215
+ }
1216
+ if (diff < 0) {
1217
+ if (diff > -3) {
1218
+ log.debug(
1219
+ "postponing %s for 0.5s (cid = %d) because small gap detected (by pts: exp %d, got %d, diff=%d)",
1220
+ upd._,
1221
+ pending.channelId,
1222
+ localPts,
1223
+ pending.ptsBefore,
1224
+ diff
1225
+ );
1226
+ pending.timeout = Date.now() + 500;
1227
+ pendingPtsUpdatesPostponed.add(pending);
1228
+ postponedTimer.emitBefore(pending.timeout);
1229
+ } else if (diff > -1e6) {
1230
+ log.debug(
1231
+ "fetching difference after %s (cid = %d) because pts gap detected (by pts: exp %d, got %d, diff=%d)",
1232
+ upd._,
1233
+ pending.channelId,
1234
+ localPts,
1235
+ pending.ptsBefore,
1236
+ diff
1237
+ );
1238
+ if (pending.channelId) {
1239
+ this._fetchChannelDifferenceLater(requestedDiff, pending.channelId);
1240
+ } else {
1241
+ this._fetchDifferenceLater(requestedDiff);
1242
+ }
1243
+ } else {
1244
+ log.debug(
1245
+ "skipping all updates because pts gap is too big (by pts: exp %d, got %d, diff=%d)",
1246
+ localPts,
1247
+ pending.ptsBefore,
1248
+ diff
1249
+ );
1250
+ if (pending.channelId) {
1251
+ cpts.set(pending.channelId, 0);
1252
+ cptsMod.set(pending.channelId, 0);
1253
+ } else {
1254
+ await this._fetchUpdatesState();
1255
+ }
1256
+ }
1257
+ continue;
1258
+ }
1259
+ if (isPtsDrop) {
1260
+ log.debug("pts drop detected (%d -> %d)", localPts, pending.ptsBefore);
1261
+ }
1262
+ }
1263
+ await this._onUpdate(pending, requestedDiff);
1264
+ }
1265
+ this.log.debug("processing postponed pts-ordered updates");
1266
+ for (let item = pendingPtsUpdatesPostponed._first; item; item = item.n) {
1267
+ const pending = item.v;
1268
+ const upd = pending.update;
1269
+ let localPts;
1270
+ if (!pending.channelId) {
1271
+ localPts = this.pts;
1272
+ } else if (cpts.has(pending.channelId)) {
1273
+ localPts = cpts.get(pending.channelId);
1274
+ }
1275
+ if (!localPts) {
1276
+ log.warn(
1277
+ "local pts not available for postponed %s (cid = %d), skipping",
1278
+ upd._,
1279
+ pending.channelId
1280
+ );
1281
+ continue;
1282
+ }
1283
+ if (localPts > pending.ptsBefore) {
1284
+ log.debug(
1285
+ "ignoring postponed %s (cid = %d) because already applied (by pts: exp %d, got %d)",
1286
+ upd._,
1287
+ pending.channelId,
1288
+ localPts,
1289
+ pending.ptsBefore
1290
+ );
1291
+ pendingPtsUpdatesPostponed._remove(item);
1292
+ continue;
1293
+ }
1294
+ if (localPts < pending.ptsBefore) {
1295
+ const now = Date.now();
1296
+ if (now < pending.timeout) {
1297
+ log.debug(
1298
+ "postponed %s (cid = %d) is still waiting (%dms left) (current pts %d, need %d)",
1299
+ upd._,
1300
+ pending.channelId,
1301
+ pending.timeout - now,
1302
+ localPts,
1303
+ pending.ptsBefore
1304
+ );
1305
+ } else {
1306
+ log.debug(
1307
+ "gap for postponed %s (cid = %d) wasn't filled, fetching diff (current pts %d, need %d)",
1308
+ upd._,
1309
+ pending.channelId,
1310
+ localPts,
1311
+ pending.ptsBefore
1312
+ );
1313
+ pendingPtsUpdatesPostponed._remove(item);
1314
+ if (pending.channelId) {
1315
+ this._fetchChannelDifferenceLater(requestedDiff, pending.channelId);
1316
+ } else {
1317
+ this._fetchDifferenceLater(requestedDiff);
1318
+ }
1319
+ }
1320
+ continue;
1321
+ }
1322
+ await this._onUpdate(pending, requestedDiff, true);
1323
+ pendingPtsUpdatesPostponed._remove(item);
1324
+ }
1325
+ this.log.debug("processing pending qts-ordered updates");
1326
+ while (pendingQtsUpdates.length) {
1327
+ const pending = pendingQtsUpdates.popFront();
1328
+ const upd = pending.update;
1329
+ const diff = this.qts - pending.qtsBefore;
1330
+ const isQtsDrop = diff > 1000009;
1331
+ if (diff > 0 && !isQtsDrop) {
1332
+ log.debug(
1333
+ "ignoring %s because already applied (by qts: exp %d, got %d)",
1334
+ upd._,
1335
+ this.qts,
1336
+ pending.qtsBefore
1337
+ );
1338
+ continue;
1339
+ }
1340
+ if (this.qts < pending.qtsBefore) {
1341
+ if (diff > -3) {
1342
+ log.debug(
1343
+ "postponing %s for 0.5s because small gap detected (by qts: exp %d, got %d, diff=%d)",
1344
+ upd._,
1345
+ this.qts,
1346
+ pending.qtsBefore,
1347
+ diff
1348
+ );
1349
+ pending.timeout = Date.now() + 500;
1350
+ pendingQtsUpdatesPostponed.add(pending);
1351
+ postponedTimer.emitBefore(pending.timeout);
1352
+ } else {
1353
+ log.debug(
1354
+ "fetching difference after %s because qts gap detected (by qts: exp %d, got %d, diff=%d)",
1355
+ upd._,
1356
+ this.qts,
1357
+ pending.qtsBefore,
1358
+ diff
1359
+ );
1360
+ this._fetchDifferenceLater(requestedDiff);
1361
+ }
1362
+ continue;
1363
+ }
1364
+ if (isQtsDrop) {
1365
+ log.debug("qts drop detected (%d -> %d)", this.qts, pending.qtsBefore);
1366
+ }
1367
+ await this._onUpdate(pending, requestedDiff);
1368
+ }
1369
+ this.log.debug("processing postponed qts-ordered updates");
1370
+ for (let item = pendingQtsUpdatesPostponed._first; item; item = item.n) {
1371
+ const pending = item.v;
1372
+ const upd = pending.update;
1373
+ if (this.qts > pending.qtsBefore) {
1374
+ log.debug(
1375
+ "ignoring postponed %s because already applied (by qts: exp %d, got %d)",
1376
+ upd._,
1377
+ this.qts,
1378
+ pending.qtsBefore
1379
+ );
1380
+ continue;
1381
+ }
1382
+ if (this.qts < pending.qtsBefore) {
1383
+ const now = Date.now();
1384
+ if (now < pending.timeout) {
1385
+ log.debug(
1386
+ "postponed %s is still waiting (%dms left) (current qts %d, need %d)",
1387
+ upd._,
1388
+ pending.timeout - now,
1389
+ this.qts,
1390
+ pending.qtsBefore
1391
+ );
1392
+ } else {
1393
+ log.debug(
1394
+ "gap for postponed %s wasn't filled, fetching diff (current qts %d, need %d)",
1395
+ upd._,
1396
+ this.qts,
1397
+ pending.qtsBefore
1398
+ );
1399
+ pendingQtsUpdatesPostponed._remove(item);
1400
+ this._fetchDifferenceLater(requestedDiff);
1401
+ }
1402
+ continue;
1403
+ }
1404
+ await this._onUpdate(pending, requestedDiff, true);
1405
+ pendingQtsUpdatesPostponed._remove(item);
1406
+ }
1407
+ this.hasTimedoutPostponed = false;
1408
+ while (requestedDiff.size) {
1409
+ log.debug(
1410
+ "waiting for %d pending diffs before processing unordered: %J",
1411
+ requestedDiff.size,
1412
+ requestedDiff.keys()
1413
+ );
1414
+ await Promise.all([...requestedDiff.values()]);
1415
+ log.debug(
1416
+ "pending diffs awaited, new diffs requested: %d (%J)",
1417
+ requestedDiff.size,
1418
+ requestedDiff.keys()
1419
+ );
1420
+ }
1421
+ this.log.debug("processing pending unordered updates");
1422
+ while (pendingUnorderedUpdates.length) {
1423
+ const pending = pendingUnorderedUpdates.popFront();
1424
+ await this._onUpdate(pending, requestedDiff, false, true);
1425
+ }
1426
+ while (requestedDiff.size) {
1427
+ log.debug(
1428
+ "waiting for %d pending diffs after processing unordered: %J",
1429
+ requestedDiff.size,
1430
+ requestedDiff.keys()
1431
+ );
1432
+ await Promise.all([...requestedDiff.values()]);
1433
+ log.debug(
1434
+ "pending diffs awaited, new diffs requested: %d (%j)",
1435
+ requestedDiff.size,
1436
+ requestedDiff.keys()
1437
+ );
1438
+ }
1439
+ await this._saveUpdatesStorage(true);
1440
+ }
1441
+ log.debug("updates loop stopped");
1442
+ } catch (e) {
1443
+ log.error("updates loop encountered error, restarting: %s", e);
1444
+ return this._loop();
1445
+ }
1446
+ }
1447
+ }
1448
+ exports.UpdatesManager = UpdatesManager;