@mtcute/core 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1309) hide show
  1. package/cjs/highlevel/base.d.ts +1 -1
  2. package/cjs/highlevel/base.js +29 -23
  3. package/cjs/highlevel/base.js.map +1 -1
  4. package/cjs/highlevel/client.d.ts +199 -18
  5. package/cjs/highlevel/client.js +54 -0
  6. package/cjs/highlevel/client.js.map +1 -1
  7. package/cjs/highlevel/managers/app-config-manager.js +7 -5
  8. package/cjs/highlevel/managers/app-config-manager.js.map +1 -1
  9. package/cjs/highlevel/methods/_imports.js.map +1 -1
  10. package/cjs/highlevel/methods/_init.js.map +1 -1
  11. package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
  12. package/cjs/highlevel/methods/auth/start.js.map +1 -1
  13. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  14. package/cjs/highlevel/methods/auth/utils.js.map +1 -1
  15. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  17. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  18. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  19. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
  20. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
  21. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  22. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  23. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
  24. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  25. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
  26. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  27. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
  28. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
  29. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  30. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
  31. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  32. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  33. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  34. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  35. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  36. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  37. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  38. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
  39. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  40. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
  41. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
  42. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  43. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  44. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
  45. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
  46. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  47. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
  48. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  49. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  50. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  51. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  52. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  53. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  54. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  55. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  56. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  57. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  58. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
  59. package/cjs/highlevel/methods/files/download-iterable.js +1 -1
  60. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  61. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
  62. package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
  63. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  64. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  65. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
  66. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  67. package/cjs/highlevel/methods/files/normalize-input-media.js +12 -12
  68. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  69. package/cjs/highlevel/methods/files/upload-file.js +7 -6
  70. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  71. package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
  72. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  73. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  74. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  75. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  76. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  77. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  78. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  79. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  80. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  81. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
  82. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  83. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  84. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  85. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  86. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  87. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  88. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  89. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  90. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  91. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  92. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  93. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  94. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  95. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  96. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  97. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  98. package/cjs/highlevel/methods/messages/get-history.js +5 -1
  99. package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
  100. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  101. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
  102. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  103. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
  104. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
  105. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
  106. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  107. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  108. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  109. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  110. package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
  111. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  112. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  113. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  114. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
  115. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
  116. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  117. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  118. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  119. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
  120. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
  121. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  122. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  123. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  124. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  125. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
  126. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  127. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  128. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  129. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  130. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  131. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
  132. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
  133. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  134. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  135. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  136. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  137. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  138. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  139. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  140. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
  141. package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
  142. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
  143. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  144. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  145. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  146. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  147. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  148. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  149. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  150. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  151. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  152. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  153. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  154. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  155. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  156. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  157. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  158. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
  159. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  160. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  161. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  162. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  163. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  164. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  165. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  166. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  167. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  168. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  169. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  170. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  171. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  172. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  173. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  174. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  175. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  176. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  177. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  178. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  179. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  180. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  181. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  182. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  183. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  184. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  185. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  186. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  187. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  188. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  189. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  190. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  191. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  192. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  193. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
  194. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
  195. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  196. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
  197. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  198. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  199. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  200. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  201. package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
  202. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  203. package/cjs/highlevel/methods/users/get-users.js.map +1 -1
  204. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  205. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  206. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
  207. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  208. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  209. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  210. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  211. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  212. package/cjs/highlevel/methods.d.ts +12 -0
  213. package/cjs/highlevel/methods.js +33 -3
  214. package/cjs/highlevel/methods.js.map +1 -1
  215. package/cjs/highlevel/storage/service/current-user.js +2 -0
  216. package/cjs/highlevel/storage/service/current-user.js.map +1 -1
  217. package/cjs/highlevel/storage/service/peers.js +5 -1
  218. package/cjs/highlevel/storage/service/peers.js.map +1 -1
  219. package/cjs/highlevel/storage/service/ref-messages.js +3 -0
  220. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
  221. package/cjs/highlevel/storage/service/updates.js +1 -0
  222. package/cjs/highlevel/storage/service/updates.js.map +1 -1
  223. package/cjs/highlevel/storage/storage.d.ts +8 -3
  224. package/cjs/highlevel/storage/storage.js +17 -4
  225. package/cjs/highlevel/storage/storage.js.map +1 -1
  226. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  227. package/cjs/highlevel/types/auth/sent-code.js +15 -0
  228. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  229. package/cjs/highlevel/types/bots/game-high-score.js +2 -0
  230. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
  231. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  232. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
  233. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  234. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
  235. package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
  236. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
  237. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  238. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
  239. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  240. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
  241. package/cjs/highlevel/types/conversation.js +13 -7
  242. package/cjs/highlevel/types/conversation.js.map +1 -1
  243. package/cjs/highlevel/types/errors.js +3 -0
  244. package/cjs/highlevel/types/errors.js.map +1 -1
  245. package/cjs/highlevel/types/files/file-location.js +3 -0
  246. package/cjs/highlevel/types/files/file-location.js.map +1 -1
  247. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  248. package/cjs/highlevel/types/files/uploaded-file.js +1 -1
  249. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
  250. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  251. package/cjs/highlevel/types/files/utils.js.map +1 -1
  252. package/cjs/highlevel/types/files/web-document.js +1 -0
  253. package/cjs/highlevel/types/files/web-document.js.map +1 -1
  254. package/cjs/highlevel/types/media/audio.js +3 -2
  255. package/cjs/highlevel/types/media/audio.js.map +1 -1
  256. package/cjs/highlevel/types/media/contact.js +2 -1
  257. package/cjs/highlevel/types/media/contact.js.map +1 -1
  258. package/cjs/highlevel/types/media/dice.js +125 -124
  259. package/cjs/highlevel/types/media/dice.js.map +1 -1
  260. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  261. package/cjs/highlevel/types/media/document-utils.js +9 -2
  262. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  263. package/cjs/highlevel/types/media/document.js +2 -4
  264. package/cjs/highlevel/types/media/document.js.map +1 -1
  265. package/cjs/highlevel/types/media/game.js +2 -1
  266. package/cjs/highlevel/types/media/game.js.map +1 -1
  267. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  268. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  269. package/cjs/highlevel/types/media/invoice.js +4 -1
  270. package/cjs/highlevel/types/media/invoice.js.map +1 -1
  271. package/cjs/highlevel/types/media/location.js +4 -5
  272. package/cjs/highlevel/types/media/location.js.map +1 -1
  273. package/cjs/highlevel/types/media/photo.js +8 -1
  274. package/cjs/highlevel/types/media/photo.js.map +1 -1
  275. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  276. package/cjs/highlevel/types/media/poll.js +69 -19
  277. package/cjs/highlevel/types/media/poll.js.map +1 -1
  278. package/cjs/highlevel/types/media/sticker.js +3 -1
  279. package/cjs/highlevel/types/media/sticker.js.map +1 -1
  280. package/cjs/highlevel/types/media/story.js +3 -1
  281. package/cjs/highlevel/types/media/story.js.map +1 -1
  282. package/cjs/highlevel/types/media/thumbnail.js +35 -22
  283. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  284. package/cjs/highlevel/types/media/venue.js +2 -1
  285. package/cjs/highlevel/types/media/venue.js.map +1 -1
  286. package/cjs/highlevel/types/media/video.js +3 -1
  287. package/cjs/highlevel/types/media/video.js.map +1 -1
  288. package/cjs/highlevel/types/media/voice.js +2 -1
  289. package/cjs/highlevel/types/media/voice.js.map +1 -1
  290. package/cjs/highlevel/types/media/web-page.js +2 -1
  291. package/cjs/highlevel/types/media/web-page.js.map +1 -1
  292. package/cjs/highlevel/types/messages/dialog.js +4 -12
  293. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  294. package/cjs/highlevel/types/messages/draft-message.js +1 -0
  295. package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
  296. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  297. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  298. package/cjs/highlevel/types/messages/message-action.js +6 -0
  299. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  300. package/cjs/highlevel/types/messages/message-entity.js +2 -0
  301. package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
  302. package/cjs/highlevel/types/messages/message-forward.js +2 -0
  303. package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
  304. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  305. package/cjs/highlevel/types/messages/message-media.js.map +1 -1
  306. package/cjs/highlevel/types/messages/message-reactions.js +4 -0
  307. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
  308. package/cjs/highlevel/types/messages/message-replies.js +2 -0
  309. package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
  310. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  311. package/cjs/highlevel/types/messages/message.js +102 -1
  312. package/cjs/highlevel/types/messages/message.js.map +1 -1
  313. package/cjs/highlevel/types/messages/replied-message.js +2 -0
  314. package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
  315. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  316. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  317. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  318. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  319. package/cjs/highlevel/types/misc/entities.js +15 -0
  320. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  321. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  322. package/cjs/highlevel/types/misc/index.js +1 -0
  323. package/cjs/highlevel/types/misc/index.js.map +1 -1
  324. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  325. package/cjs/highlevel/types/misc/sticker-set.js +43 -6
  326. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  327. package/cjs/highlevel/types/misc/takeout-session.js +5 -0
  328. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
  329. package/cjs/highlevel/types/peers/chat-colors.js +2 -0
  330. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
  331. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  332. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
  333. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  334. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
  335. package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
  336. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
  337. package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
  338. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  339. package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
  340. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
  341. package/cjs/highlevel/types/peers/chat-location.js +1 -0
  342. package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
  343. package/cjs/highlevel/types/peers/chat-member.js +2 -0
  344. package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
  345. package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
  346. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
  347. package/cjs/highlevel/types/peers/chat-photo.js +5 -0
  348. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  349. package/cjs/highlevel/types/peers/chat-preview.js +2 -0
  350. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
  351. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  352. package/cjs/highlevel/types/peers/chat.js +10 -192
  353. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  354. package/cjs/highlevel/types/peers/forum-topic.js +9 -6
  355. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
  356. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  357. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  358. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  359. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  360. package/cjs/highlevel/types/peers/index.js +1 -0
  361. package/cjs/highlevel/types/peers/index.js.map +1 -1
  362. package/cjs/highlevel/types/peers/peer.js.map +1 -1
  363. package/cjs/highlevel/types/peers/peers-index.js +3 -1
  364. package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
  365. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  366. package/cjs/highlevel/types/peers/user.js +12 -1
  367. package/cjs/highlevel/types/peers/user.js.map +1 -1
  368. package/cjs/highlevel/types/premium/boost-slot.js +2 -0
  369. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
  370. package/cjs/highlevel/types/premium/boost-stats.js +1 -0
  371. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
  372. package/cjs/highlevel/types/premium/boost.js +2 -0
  373. package/cjs/highlevel/types/premium/boost.js.map +1 -1
  374. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  375. package/cjs/highlevel/types/premium/business-account.js +45 -0
  376. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  377. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  378. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  379. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  380. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  381. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  382. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  383. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  384. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  385. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  386. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  387. package/cjs/highlevel/types/premium/business-location.js +26 -0
  388. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  389. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  390. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  391. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  392. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  393. package/cjs/highlevel/types/premium/index.js +5 -0
  394. package/cjs/highlevel/types/premium/index.js.map +1 -1
  395. package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
  396. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
  397. package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
  398. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
  399. package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
  400. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
  401. package/cjs/highlevel/types/reactions/types.js.map +1 -1
  402. package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
  403. package/cjs/highlevel/types/stories/all-stories.js +3 -1
  404. package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
  405. package/cjs/highlevel/types/stories/interactive/base.js +1 -0
  406. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
  407. package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
  408. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  409. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
  410. package/cjs/highlevel/types/stories/interactive/input.js +1 -0
  411. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
  412. package/cjs/highlevel/types/stories/interactive/location.js +2 -1
  413. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
  414. package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
  415. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
  416. package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
  417. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
  418. package/cjs/highlevel/types/stories/peer-stories.js +2 -0
  419. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
  420. package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
  421. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
  422. package/cjs/highlevel/types/stories/story-interactions.js +2 -0
  423. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
  424. package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
  425. package/cjs/highlevel/types/stories/story-viewer.js +6 -0
  426. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
  427. package/cjs/highlevel/types/stories/story.js +2 -0
  428. package/cjs/highlevel/types/stories/story.js.map +1 -1
  429. package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
  430. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  431. package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
  432. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
  433. package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
  434. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
  435. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  436. package/cjs/highlevel/types/updates/business-message.js +35 -0
  437. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  438. package/cjs/highlevel/types/updates/callback-query.js +4 -0
  439. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  440. package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
  441. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
  442. package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
  443. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
  444. package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
  445. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  446. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  447. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  448. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  449. package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
  450. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
  451. package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
  452. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
  453. package/cjs/highlevel/types/updates/history-read-update.js +1 -0
  454. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
  455. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  456. package/cjs/highlevel/types/updates/index.js +5 -1
  457. package/cjs/highlevel/types/updates/index.js.map +1 -1
  458. package/cjs/highlevel/types/updates/inline-query.js +2 -0
  459. package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
  460. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  461. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  462. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  463. package/cjs/highlevel/types/updates/poll-update.js +4 -2
  464. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  465. package/cjs/highlevel/types/updates/poll-vote.js +2 -0
  466. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
  467. package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
  468. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  469. package/cjs/highlevel/types/updates/story-update.js +2 -0
  470. package/cjs/highlevel/types/updates/story-update.js.map +1 -1
  471. package/cjs/highlevel/types/updates/user-status-update.js +1 -0
  472. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  473. package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
  474. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
  475. package/cjs/highlevel/updates/manager.d.ts +0 -1
  476. package/cjs/highlevel/updates/manager.js +57 -30
  477. package/cjs/highlevel/updates/manager.js.map +1 -1
  478. package/cjs/highlevel/updates/parsed.js +8 -2
  479. package/cjs/highlevel/updates/parsed.js.map +1 -1
  480. package/cjs/highlevel/updates/types.d.ts +57 -0
  481. package/cjs/highlevel/updates/utils.d.ts +2 -0
  482. package/cjs/highlevel/updates/utils.js.map +1 -1
  483. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  484. package/cjs/highlevel/utils/entities.js.map +1 -1
  485. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  486. package/cjs/highlevel/utils/file-type.js +35 -1
  487. package/cjs/highlevel/utils/file-type.js.map +1 -1
  488. package/cjs/highlevel/utils/file-utils.js +1 -1
  489. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  490. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  491. package/cjs/highlevel/utils/inspectable.js +7 -0
  492. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  493. package/cjs/highlevel/utils/memoize.js.map +1 -1
  494. package/cjs/highlevel/utils/peer-utils.js.map +1 -1
  495. package/cjs/highlevel/utils/query-batcher.js.map +1 -1
  496. package/cjs/highlevel/utils/rps-meter.js +3 -0
  497. package/cjs/highlevel/utils/rps-meter.js.map +1 -1
  498. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  499. package/cjs/highlevel/utils/string-session.d.ts +1 -2
  500. package/cjs/highlevel/utils/string-session.js +27 -7
  501. package/cjs/highlevel/utils/string-session.js.map +1 -1
  502. package/cjs/highlevel/utils/voice-utils.js.map +1 -1
  503. package/cjs/highlevel/worker/app-config.d.ts +2 -3
  504. package/cjs/highlevel/worker/app-config.js +6 -3
  505. package/cjs/highlevel/worker/app-config.js.map +1 -1
  506. package/cjs/highlevel/worker/errors.js.map +1 -1
  507. package/cjs/highlevel/worker/index.js +6 -0
  508. package/cjs/highlevel/worker/invoker.js +3 -2
  509. package/cjs/highlevel/worker/invoker.js.map +1 -1
  510. package/cjs/highlevel/worker/port.d.ts +16 -17
  511. package/cjs/highlevel/worker/port.js +74 -49
  512. package/cjs/highlevel/worker/port.js.map +1 -1
  513. package/cjs/highlevel/worker/protocol.d.ts +1 -2
  514. package/cjs/highlevel/worker/protocol.js.map +1 -1
  515. package/cjs/highlevel/worker/storage.d.ts +9 -13
  516. package/cjs/highlevel/worker/storage.js +34 -19
  517. package/cjs/highlevel/worker/storage.js.map +1 -1
  518. package/cjs/highlevel/worker/worker.js +3 -0
  519. package/cjs/highlevel/worker/worker.js.map +1 -1
  520. package/cjs/index.js +6 -0
  521. package/cjs/network/auth-key.js +8 -1
  522. package/cjs/network/auth-key.js.map +1 -1
  523. package/cjs/network/authorization.js.map +1 -1
  524. package/cjs/network/client.d.ts +0 -1
  525. package/cjs/network/client.js +39 -14
  526. package/cjs/network/client.js.map +1 -1
  527. package/cjs/network/config-manager.js.map +1 -1
  528. package/cjs/network/mtproto-session.d.ts +0 -1
  529. package/cjs/network/mtproto-session.js +40 -30
  530. package/cjs/network/mtproto-session.js.map +1 -1
  531. package/cjs/network/multi-session-connection.d.ts +1 -2
  532. package/cjs/network/multi-session-connection.js +13 -7
  533. package/cjs/network/multi-session-connection.js.map +1 -1
  534. package/cjs/network/network-manager.d.ts +10 -3
  535. package/cjs/network/network-manager.js +57 -31
  536. package/cjs/network/network-manager.js.map +1 -1
  537. package/cjs/network/persistent-connection.d.ts +2 -3
  538. package/cjs/network/persistent-connection.js +33 -22
  539. package/cjs/network/persistent-connection.js.map +1 -1
  540. package/cjs/network/server-salt.js +4 -5
  541. package/cjs/network/server-salt.js.map +1 -1
  542. package/cjs/network/session-connection.d.ts +1 -1
  543. package/cjs/network/session-connection.js +32 -12
  544. package/cjs/network/session-connection.js.map +1 -1
  545. package/cjs/network/transports/abstract.d.ts +1 -2
  546. package/cjs/network/transports/abstract.js +1 -0
  547. package/cjs/network/transports/abstract.js.map +1 -1
  548. package/cjs/network/transports/intermediate.js +1 -0
  549. package/cjs/network/transports/intermediate.js.map +1 -1
  550. package/cjs/network/transports/obfuscated.js +3 -0
  551. package/cjs/network/transports/obfuscated.js.map +1 -1
  552. package/cjs/network/transports/streamed.d.ts +0 -1
  553. package/cjs/network/transports/streamed.js +1 -4
  554. package/cjs/network/transports/streamed.js.map +1 -1
  555. package/cjs/network/transports/wrapped.d.ts +0 -1
  556. package/cjs/network/transports/wrapped.js +2 -0
  557. package/cjs/network/transports/wrapped.js.map +1 -1
  558. package/cjs/platform.js +6 -0
  559. package/cjs/platform.js.map +1 -1
  560. package/cjs/storage/driver.js +3 -4
  561. package/cjs/storage/driver.js.map +1 -1
  562. package/cjs/storage/memory/driver.js +1 -3
  563. package/cjs/storage/memory/driver.js.map +1 -1
  564. package/cjs/storage/memory/index.js +5 -7
  565. package/cjs/storage/memory/index.js.map +1 -1
  566. package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
  567. package/cjs/storage/memory/repository/auth-keys.js +2 -0
  568. package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
  569. package/cjs/storage/memory/repository/kv.d.ts +1 -1
  570. package/cjs/storage/memory/repository/kv.js +2 -0
  571. package/cjs/storage/memory/repository/kv.js.map +1 -1
  572. package/cjs/storage/memory/repository/peers.d.ts +1 -1
  573. package/cjs/storage/memory/repository/peers.js +2 -0
  574. package/cjs/storage/memory/repository/peers.js.map +1 -1
  575. package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
  576. package/cjs/storage/memory/repository/ref-messages.js +2 -0
  577. package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
  578. package/cjs/storage/service/auth-keys.js +2 -0
  579. package/cjs/storage/service/auth-keys.js.map +1 -1
  580. package/cjs/storage/service/base.js +4 -0
  581. package/cjs/storage/service/base.js.map +1 -1
  582. package/cjs/storage/service/default-dcs.js +2 -0
  583. package/cjs/storage/service/default-dcs.js.map +1 -1
  584. package/cjs/storage/service/future-salts.js +2 -1
  585. package/cjs/storage/service/future-salts.js.map +1 -1
  586. package/cjs/storage/sqlite/driver.js +10 -10
  587. package/cjs/storage/sqlite/driver.js.map +1 -1
  588. package/cjs/storage/sqlite/index.d.ts +1 -1
  589. package/cjs/storage/sqlite/index.js +5 -0
  590. package/cjs/storage/sqlite/index.js.map +1 -1
  591. package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
  592. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
  593. package/cjs/storage/sqlite/repository/kv.js +5 -0
  594. package/cjs/storage/sqlite/repository/kv.js.map +1 -1
  595. package/cjs/storage/sqlite/repository/peers.js +7 -2
  596. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  597. package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
  598. package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
  599. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
  600. package/cjs/storage/storage.d.ts +22 -3
  601. package/cjs/storage/storage.js +21 -13
  602. package/cjs/storage/storage.js.map +1 -1
  603. package/cjs/types/errors.js +13 -0
  604. package/cjs/types/errors.js.map +1 -1
  605. package/cjs/types/utils.d.ts +1 -0
  606. package/cjs/types/utils.js.map +1 -1
  607. package/cjs/utils/async-lock.js +1 -3
  608. package/cjs/utils/async-lock.js.map +1 -1
  609. package/cjs/utils/bigint-utils.js.map +1 -1
  610. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  611. package/cjs/utils/buffer-utils.js.map +1 -1
  612. package/cjs/utils/condition-variable.js +2 -0
  613. package/cjs/utils/condition-variable.js.map +1 -1
  614. package/cjs/utils/crypto/factorization.js.map +1 -1
  615. package/cjs/utils/crypto/keys.js.map +1 -1
  616. package/cjs/utils/crypto/miller-rabin.js.map +1 -1
  617. package/cjs/utils/crypto/password.js.map +1 -1
  618. package/cjs/utils/crypto/utils.js.map +1 -1
  619. package/cjs/utils/dcs.js +1 -1
  620. package/cjs/utils/dcs.js.map +1 -1
  621. package/cjs/utils/deque.js +8 -2
  622. package/cjs/utils/deque.js.map +1 -1
  623. package/cjs/utils/early-timer.js +4 -1
  624. package/cjs/utils/early-timer.js.map +1 -1
  625. package/cjs/utils/error-reporting.js.map +1 -1
  626. package/cjs/utils/function-utils.js.map +1 -1
  627. package/cjs/utils/index.js +6 -0
  628. package/cjs/utils/linked-list.js +4 -1
  629. package/cjs/utils/linked-list.js.map +1 -1
  630. package/cjs/utils/links/bots.js.map +1 -1
  631. package/cjs/utils/links/chat.js.map +1 -1
  632. package/cjs/utils/links/common.js.map +1 -1
  633. package/cjs/utils/links/misc.js.map +1 -1
  634. package/cjs/utils/logger.d.ts +2 -2
  635. package/cjs/utils/logger.js +21 -14
  636. package/cjs/utils/logger.js.map +1 -1
  637. package/cjs/utils/long-utils.js +2 -6
  638. package/cjs/utils/long-utils.js.map +1 -1
  639. package/cjs/utils/lru-map.js +5 -1
  640. package/cjs/utils/lru-map.js.map +1 -1
  641. package/cjs/utils/lru-set.js +4 -0
  642. package/cjs/utils/lru-set.js.map +1 -1
  643. package/cjs/utils/peer-utils.js.map +1 -1
  644. package/cjs/utils/reloadable.d.ts +0 -1
  645. package/cjs/utils/reloadable.js +10 -7
  646. package/cjs/utils/reloadable.js.map +1 -1
  647. package/cjs/utils/sorted-array.js +2 -0
  648. package/cjs/utils/sorted-array.js.map +1 -1
  649. package/cjs/utils/tl-json.js.map +1 -1
  650. package/cjs/utils/type-assertions.js.map +1 -1
  651. package/client.d.ts +1 -0
  652. package/client.js +1 -0
  653. package/esm/highlevel/base.d.ts +1 -1
  654. package/esm/highlevel/base.js +29 -23
  655. package/esm/highlevel/base.js.map +1 -1
  656. package/esm/highlevel/client.d.ts +199 -18
  657. package/esm/highlevel/client.js +48 -0
  658. package/esm/highlevel/client.js.map +1 -1
  659. package/esm/highlevel/managers/app-config-manager.js +7 -5
  660. package/esm/highlevel/managers/app-config-manager.js.map +1 -1
  661. package/esm/highlevel/methods/_imports.js.map +1 -1
  662. package/esm/highlevel/methods/_init.js.map +1 -1
  663. package/esm/highlevel/methods/auth/start-test.js.map +1 -1
  664. package/esm/highlevel/methods/auth/start.js.map +1 -1
  665. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  666. package/esm/highlevel/methods/auth/utils.js.map +1 -1
  667. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  668. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  669. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  670. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  671. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
  672. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
  673. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  674. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  675. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
  676. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  677. package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
  678. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  679. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
  680. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
  681. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  682. package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
  683. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  684. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  685. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  686. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  687. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  688. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  689. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  690. package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
  691. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  692. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
  693. package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
  694. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  695. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  696. package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
  697. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
  698. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  699. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
  700. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  701. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  702. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  703. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  704. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  705. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  706. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  707. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  708. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  709. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  710. package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
  711. package/esm/highlevel/methods/files/download-iterable.js +1 -1
  712. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  713. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
  714. package/esm/highlevel/methods/files/download-stream.js.map +1 -1
  715. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  716. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  717. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
  718. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  719. package/esm/highlevel/methods/files/normalize-input-media.js +12 -12
  720. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  721. package/esm/highlevel/methods/files/upload-file.js +8 -7
  722. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  723. package/esm/highlevel/methods/files/upload-media.js.map +1 -1
  724. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  725. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  726. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  727. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  728. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  729. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  730. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  731. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  732. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  733. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
  734. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  735. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  736. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  737. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  738. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  739. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  740. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  741. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  742. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  743. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  744. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  745. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  746. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  747. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  748. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  749. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  750. package/esm/highlevel/methods/messages/get-history.js +5 -1
  751. package/esm/highlevel/methods/messages/get-history.js.map +1 -1
  752. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  753. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
  754. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  755. package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
  756. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
  757. package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
  758. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  759. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  760. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  761. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  762. package/esm/highlevel/methods/messages/read-history.js.map +1 -1
  763. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  764. package/esm/highlevel/methods/messages/search-global.js +2 -1
  765. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  766. package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
  767. package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
  768. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  769. package/esm/highlevel/methods/messages/send-common.js +19 -0
  770. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  771. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
  772. package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
  773. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  774. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  775. package/esm/highlevel/methods/messages/send-media.js +4 -2
  776. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  777. package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
  778. package/esm/highlevel/methods/messages/send-text.js +4 -2
  779. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  780. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  781. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  782. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  783. package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
  784. package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
  785. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  786. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  787. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  788. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  789. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  790. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  791. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  792. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
  793. package/esm/highlevel/methods/misc/with-params.js.map +1 -1
  794. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
  795. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  796. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  797. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  798. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  799. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  800. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  801. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  802. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  803. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  804. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  805. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  806. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  807. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  808. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  809. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  810. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
  811. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  812. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  813. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  814. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  815. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  816. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  817. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  818. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  819. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  820. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  821. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  822. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  823. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  824. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  825. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  826. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  827. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  828. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  829. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  830. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  831. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  832. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  833. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  834. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  835. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  836. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  837. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  838. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  839. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  840. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  841. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  842. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  843. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  844. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  845. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
  846. package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
  847. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  848. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
  849. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  850. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  851. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  852. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  853. package/esm/highlevel/methods/stories/send-story.js.map +1 -1
  854. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  855. package/esm/highlevel/methods/users/get-users.js.map +1 -1
  856. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  857. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  858. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
  859. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  860. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  861. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  862. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  863. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  864. package/esm/highlevel/methods.d.ts +12 -0
  865. package/esm/highlevel/methods.js +12 -0
  866. package/esm/highlevel/methods.js.map +1 -1
  867. package/esm/highlevel/storage/service/current-user.js +2 -0
  868. package/esm/highlevel/storage/service/current-user.js.map +1 -1
  869. package/esm/highlevel/storage/service/peers.js +5 -1
  870. package/esm/highlevel/storage/service/peers.js.map +1 -1
  871. package/esm/highlevel/storage/service/ref-messages.js +3 -0
  872. package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
  873. package/esm/highlevel/storage/service/updates.js +1 -0
  874. package/esm/highlevel/storage/service/updates.js.map +1 -1
  875. package/esm/highlevel/storage/storage.d.ts +8 -3
  876. package/esm/highlevel/storage/storage.js +17 -4
  877. package/esm/highlevel/storage/storage.js.map +1 -1
  878. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  879. package/esm/highlevel/types/auth/sent-code.js +15 -0
  880. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  881. package/esm/highlevel/types/bots/game-high-score.js +2 -0
  882. package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
  883. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  884. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
  885. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  886. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
  887. package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
  888. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
  889. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  890. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
  891. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  892. package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
  893. package/esm/highlevel/types/conversation.js +13 -7
  894. package/esm/highlevel/types/conversation.js.map +1 -1
  895. package/esm/highlevel/types/errors.js +3 -0
  896. package/esm/highlevel/types/errors.js.map +1 -1
  897. package/esm/highlevel/types/files/file-location.js +3 -0
  898. package/esm/highlevel/types/files/file-location.js.map +1 -1
  899. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  900. package/esm/highlevel/types/files/uploaded-file.js +1 -1
  901. package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
  902. package/esm/highlevel/types/files/utils.d.ts +6 -5
  903. package/esm/highlevel/types/files/utils.js.map +1 -1
  904. package/esm/highlevel/types/files/web-document.js +1 -0
  905. package/esm/highlevel/types/files/web-document.js.map +1 -1
  906. package/esm/highlevel/types/media/audio.js +3 -2
  907. package/esm/highlevel/types/media/audio.js.map +1 -1
  908. package/esm/highlevel/types/media/contact.js +2 -1
  909. package/esm/highlevel/types/media/contact.js.map +1 -1
  910. package/esm/highlevel/types/media/dice.js +125 -124
  911. package/esm/highlevel/types/media/dice.js.map +1 -1
  912. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  913. package/esm/highlevel/types/media/document-utils.js +7 -1
  914. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  915. package/esm/highlevel/types/media/document.js +2 -4
  916. package/esm/highlevel/types/media/document.js.map +1 -1
  917. package/esm/highlevel/types/media/game.js +2 -1
  918. package/esm/highlevel/types/media/game.js.map +1 -1
  919. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  920. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  921. package/esm/highlevel/types/media/invoice.js +4 -1
  922. package/esm/highlevel/types/media/invoice.js.map +1 -1
  923. package/esm/highlevel/types/media/location.js +4 -5
  924. package/esm/highlevel/types/media/location.js.map +1 -1
  925. package/esm/highlevel/types/media/photo.js +8 -1
  926. package/esm/highlevel/types/media/photo.js.map +1 -1
  927. package/esm/highlevel/types/media/poll.d.ts +17 -6
  928. package/esm/highlevel/types/media/poll.js +68 -18
  929. package/esm/highlevel/types/media/poll.js.map +1 -1
  930. package/esm/highlevel/types/media/sticker.js +3 -1
  931. package/esm/highlevel/types/media/sticker.js.map +1 -1
  932. package/esm/highlevel/types/media/story.js +3 -1
  933. package/esm/highlevel/types/media/story.js.map +1 -1
  934. package/esm/highlevel/types/media/thumbnail.js +35 -22
  935. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  936. package/esm/highlevel/types/media/venue.js +2 -1
  937. package/esm/highlevel/types/media/venue.js.map +1 -1
  938. package/esm/highlevel/types/media/video.js +3 -1
  939. package/esm/highlevel/types/media/video.js.map +1 -1
  940. package/esm/highlevel/types/media/voice.js +2 -1
  941. package/esm/highlevel/types/media/voice.js.map +1 -1
  942. package/esm/highlevel/types/media/web-page.js +2 -1
  943. package/esm/highlevel/types/media/web-page.js.map +1 -1
  944. package/esm/highlevel/types/messages/dialog.js +4 -12
  945. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  946. package/esm/highlevel/types/messages/draft-message.js +1 -0
  947. package/esm/highlevel/types/messages/draft-message.js.map +1 -1
  948. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  949. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  950. package/esm/highlevel/types/messages/message-action.js +6 -0
  951. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  952. package/esm/highlevel/types/messages/message-entity.js +2 -0
  953. package/esm/highlevel/types/messages/message-entity.js.map +1 -1
  954. package/esm/highlevel/types/messages/message-forward.js +2 -0
  955. package/esm/highlevel/types/messages/message-forward.js.map +1 -1
  956. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  957. package/esm/highlevel/types/messages/message-media.js.map +1 -1
  958. package/esm/highlevel/types/messages/message-reactions.js +4 -0
  959. package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
  960. package/esm/highlevel/types/messages/message-replies.js +2 -0
  961. package/esm/highlevel/types/messages/message-replies.js.map +1 -1
  962. package/esm/highlevel/types/messages/message.d.ts +59 -1
  963. package/esm/highlevel/types/messages/message.js +102 -1
  964. package/esm/highlevel/types/messages/message.js.map +1 -1
  965. package/esm/highlevel/types/messages/replied-message.js +2 -0
  966. package/esm/highlevel/types/messages/replied-message.js.map +1 -1
  967. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  968. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  969. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  970. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  971. package/esm/highlevel/types/misc/entities.js +13 -1
  972. package/esm/highlevel/types/misc/entities.js.map +1 -1
  973. package/esm/highlevel/types/misc/index.d.ts +1 -0
  974. package/esm/highlevel/types/misc/index.js +1 -0
  975. package/esm/highlevel/types/misc/index.js.map +1 -1
  976. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  977. package/esm/highlevel/types/misc/sticker-set.js +45 -8
  978. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  979. package/esm/highlevel/types/misc/takeout-session.js +5 -0
  980. package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
  981. package/esm/highlevel/types/peers/chat-colors.js +2 -0
  982. package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
  983. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  984. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
  985. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  986. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
  987. package/esm/highlevel/types/peers/chat-event/index.js +2 -0
  988. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
  989. package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
  990. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  991. package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
  992. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
  993. package/esm/highlevel/types/peers/chat-location.js +1 -0
  994. package/esm/highlevel/types/peers/chat-location.js.map +1 -1
  995. package/esm/highlevel/types/peers/chat-member.js +2 -0
  996. package/esm/highlevel/types/peers/chat-member.js.map +1 -1
  997. package/esm/highlevel/types/peers/chat-permissions.js +1 -0
  998. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
  999. package/esm/highlevel/types/peers/chat-photo.js +5 -0
  1000. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  1001. package/esm/highlevel/types/peers/chat-preview.js +2 -0
  1002. package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
  1003. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  1004. package/esm/highlevel/types/peers/chat.js +10 -192
  1005. package/esm/highlevel/types/peers/chat.js.map +1 -1
  1006. package/esm/highlevel/types/peers/forum-topic.js +9 -6
  1007. package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
  1008. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  1009. package/esm/highlevel/types/peers/full-chat.js +234 -0
  1010. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  1011. package/esm/highlevel/types/peers/index.d.ts +1 -0
  1012. package/esm/highlevel/types/peers/index.js +1 -0
  1013. package/esm/highlevel/types/peers/index.js.map +1 -1
  1014. package/esm/highlevel/types/peers/peer.js.map +1 -1
  1015. package/esm/highlevel/types/peers/peers-index.js +3 -1
  1016. package/esm/highlevel/types/peers/peers-index.js.map +1 -1
  1017. package/esm/highlevel/types/peers/user.d.ts +5 -0
  1018. package/esm/highlevel/types/peers/user.js +12 -1
  1019. package/esm/highlevel/types/peers/user.js.map +1 -1
  1020. package/esm/highlevel/types/premium/boost-slot.js +2 -0
  1021. package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
  1022. package/esm/highlevel/types/premium/boost-stats.js +1 -0
  1023. package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
  1024. package/esm/highlevel/types/premium/boost.js +2 -0
  1025. package/esm/highlevel/types/premium/boost.js.map +1 -1
  1026. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  1027. package/esm/highlevel/types/premium/business-account.js +42 -0
  1028. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  1029. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  1030. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  1031. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  1032. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  1033. package/esm/highlevel/types/premium/business-connection.js +42 -0
  1034. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  1035. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  1036. package/esm/highlevel/types/premium/business-intro.js +40 -0
  1037. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  1038. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  1039. package/esm/highlevel/types/premium/business-location.js +23 -0
  1040. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  1041. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  1042. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  1043. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  1044. package/esm/highlevel/types/premium/index.d.ts +5 -0
  1045. package/esm/highlevel/types/premium/index.js +5 -0
  1046. package/esm/highlevel/types/premium/index.js.map +1 -1
  1047. package/esm/highlevel/types/reactions/emoji-status.js +1 -0
  1048. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
  1049. package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
  1050. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
  1051. package/esm/highlevel/types/reactions/reaction-count.js +1 -0
  1052. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
  1053. package/esm/highlevel/types/reactions/types.js.map +1 -1
  1054. package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
  1055. package/esm/highlevel/types/stories/all-stories.js +3 -1
  1056. package/esm/highlevel/types/stories/all-stories.js.map +1 -1
  1057. package/esm/highlevel/types/stories/interactive/base.js +1 -0
  1058. package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
  1059. package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
  1060. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  1061. package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
  1062. package/esm/highlevel/types/stories/interactive/input.js +1 -0
  1063. package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
  1064. package/esm/highlevel/types/stories/interactive/location.js +2 -1
  1065. package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
  1066. package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
  1067. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
  1068. package/esm/highlevel/types/stories/interactive/venue.js +2 -1
  1069. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
  1070. package/esm/highlevel/types/stories/peer-stories.js +2 -0
  1071. package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
  1072. package/esm/highlevel/types/stories/stealth-mode.js +1 -0
  1073. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
  1074. package/esm/highlevel/types/stories/story-interactions.js +2 -0
  1075. package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
  1076. package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
  1077. package/esm/highlevel/types/stories/story-viewer.js +6 -0
  1078. package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
  1079. package/esm/highlevel/types/stories/story.js +2 -0
  1080. package/esm/highlevel/types/stories/story.js.map +1 -1
  1081. package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
  1082. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  1083. package/esm/highlevel/types/updates/bot-reaction.js +4 -0
  1084. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
  1085. package/esm/highlevel/types/updates/bot-stopped.js +2 -0
  1086. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
  1087. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  1088. package/esm/highlevel/types/updates/business-message.js +31 -0
  1089. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  1090. package/esm/highlevel/types/updates/callback-query.js +4 -0
  1091. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  1092. package/esm/highlevel/types/updates/chat-join-request.js +2 -0
  1093. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
  1094. package/esm/highlevel/types/updates/chat-member-update.js +2 -0
  1095. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
  1096. package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
  1097. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  1098. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  1099. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  1100. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  1101. package/esm/highlevel/types/updates/delete-message-update.js +1 -0
  1102. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
  1103. package/esm/highlevel/types/updates/delete-story-update.js +2 -0
  1104. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
  1105. package/esm/highlevel/types/updates/history-read-update.js +1 -0
  1106. package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
  1107. package/esm/highlevel/types/updates/index.d.ts +19 -2
  1108. package/esm/highlevel/types/updates/index.js +3 -1
  1109. package/esm/highlevel/types/updates/index.js.map +1 -1
  1110. package/esm/highlevel/types/updates/inline-query.js +2 -0
  1111. package/esm/highlevel/types/updates/inline-query.js.map +1 -1
  1112. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  1113. package/esm/highlevel/types/updates/parse-update.js +9 -1
  1114. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  1115. package/esm/highlevel/types/updates/poll-update.js +4 -2
  1116. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  1117. package/esm/highlevel/types/updates/poll-vote.js +2 -0
  1118. package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
  1119. package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
  1120. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  1121. package/esm/highlevel/types/updates/story-update.js +2 -0
  1122. package/esm/highlevel/types/updates/story-update.js.map +1 -1
  1123. package/esm/highlevel/types/updates/user-status-update.js +1 -0
  1124. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  1125. package/esm/highlevel/types/updates/user-typing-update.js +1 -0
  1126. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
  1127. package/esm/highlevel/updates/manager.d.ts +0 -1
  1128. package/esm/highlevel/updates/manager.js +57 -30
  1129. package/esm/highlevel/updates/manager.js.map +1 -1
  1130. package/esm/highlevel/updates/parsed.js +8 -2
  1131. package/esm/highlevel/updates/parsed.js.map +1 -1
  1132. package/esm/highlevel/updates/types.d.ts +57 -0
  1133. package/esm/highlevel/updates/utils.d.ts +2 -0
  1134. package/esm/highlevel/updates/utils.js.map +1 -1
  1135. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  1136. package/esm/highlevel/utils/entities.js.map +1 -1
  1137. package/esm/highlevel/utils/file-type.d.ts +1 -0
  1138. package/esm/highlevel/utils/file-type.js +34 -0
  1139. package/esm/highlevel/utils/file-type.js.map +1 -1
  1140. package/esm/highlevel/utils/file-utils.js +1 -1
  1141. package/esm/highlevel/utils/file-utils.js.map +1 -1
  1142. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  1143. package/esm/highlevel/utils/inspectable.js +4 -0
  1144. package/esm/highlevel/utils/inspectable.js.map +1 -1
  1145. package/esm/highlevel/utils/memoize.js.map +1 -1
  1146. package/esm/highlevel/utils/peer-utils.js.map +1 -1
  1147. package/esm/highlevel/utils/query-batcher.js.map +1 -1
  1148. package/esm/highlevel/utils/rps-meter.js +3 -0
  1149. package/esm/highlevel/utils/rps-meter.js.map +1 -1
  1150. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  1151. package/esm/highlevel/utils/string-session.d.ts +1 -2
  1152. package/esm/highlevel/utils/string-session.js +27 -7
  1153. package/esm/highlevel/utils/string-session.js.map +1 -1
  1154. package/esm/highlevel/utils/voice-utils.js.map +1 -1
  1155. package/esm/highlevel/worker/app-config.d.ts +2 -3
  1156. package/esm/highlevel/worker/app-config.js +6 -3
  1157. package/esm/highlevel/worker/app-config.js.map +1 -1
  1158. package/esm/highlevel/worker/errors.js.map +1 -1
  1159. package/esm/highlevel/worker/invoker.js +3 -2
  1160. package/esm/highlevel/worker/invoker.js.map +1 -1
  1161. package/esm/highlevel/worker/port.d.ts +16 -17
  1162. package/esm/highlevel/worker/port.js +74 -49
  1163. package/esm/highlevel/worker/port.js.map +1 -1
  1164. package/esm/highlevel/worker/protocol.d.ts +1 -2
  1165. package/esm/highlevel/worker/protocol.js.map +1 -1
  1166. package/esm/highlevel/worker/storage.d.ts +9 -13
  1167. package/esm/highlevel/worker/storage.js +34 -19
  1168. package/esm/highlevel/worker/storage.js.map +1 -1
  1169. package/esm/highlevel/worker/worker.js +3 -0
  1170. package/esm/highlevel/worker/worker.js.map +1 -1
  1171. package/esm/network/auth-key.js +8 -1
  1172. package/esm/network/auth-key.js.map +1 -1
  1173. package/esm/network/authorization.js.map +1 -1
  1174. package/esm/network/client.d.ts +0 -1
  1175. package/esm/network/client.js +39 -14
  1176. package/esm/network/client.js.map +1 -1
  1177. package/esm/network/config-manager.js.map +1 -1
  1178. package/esm/network/mtproto-session.d.ts +0 -1
  1179. package/esm/network/mtproto-session.js +40 -30
  1180. package/esm/network/mtproto-session.js.map +1 -1
  1181. package/esm/network/multi-session-connection.d.ts +1 -2
  1182. package/esm/network/multi-session-connection.js +13 -7
  1183. package/esm/network/multi-session-connection.js.map +1 -1
  1184. package/esm/network/network-manager.d.ts +10 -3
  1185. package/esm/network/network-manager.js +57 -31
  1186. package/esm/network/network-manager.js.map +1 -1
  1187. package/esm/network/persistent-connection.d.ts +2 -3
  1188. package/esm/network/persistent-connection.js +33 -22
  1189. package/esm/network/persistent-connection.js.map +1 -1
  1190. package/esm/network/server-salt.js +4 -5
  1191. package/esm/network/server-salt.js.map +1 -1
  1192. package/esm/network/session-connection.d.ts +1 -1
  1193. package/esm/network/session-connection.js +32 -12
  1194. package/esm/network/session-connection.js.map +1 -1
  1195. package/esm/network/transports/abstract.d.ts +1 -2
  1196. package/esm/network/transports/abstract.js +1 -0
  1197. package/esm/network/transports/abstract.js.map +1 -1
  1198. package/esm/network/transports/intermediate.js +1 -0
  1199. package/esm/network/transports/intermediate.js.map +1 -1
  1200. package/esm/network/transports/obfuscated.js +3 -0
  1201. package/esm/network/transports/obfuscated.js.map +1 -1
  1202. package/esm/network/transports/streamed.d.ts +0 -1
  1203. package/esm/network/transports/streamed.js +1 -4
  1204. package/esm/network/transports/streamed.js.map +1 -1
  1205. package/esm/network/transports/wrapped.d.ts +0 -1
  1206. package/esm/network/transports/wrapped.js +2 -0
  1207. package/esm/network/transports/wrapped.js.map +1 -1
  1208. package/esm/platform.js.map +1 -1
  1209. package/esm/storage/driver.js +3 -4
  1210. package/esm/storage/driver.js.map +1 -1
  1211. package/esm/storage/memory/driver.js +1 -3
  1212. package/esm/storage/memory/driver.js.map +1 -1
  1213. package/esm/storage/memory/index.js +5 -7
  1214. package/esm/storage/memory/index.js.map +1 -1
  1215. package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
  1216. package/esm/storage/memory/repository/auth-keys.js +2 -0
  1217. package/esm/storage/memory/repository/auth-keys.js.map +1 -1
  1218. package/esm/storage/memory/repository/kv.d.ts +1 -1
  1219. package/esm/storage/memory/repository/kv.js +2 -0
  1220. package/esm/storage/memory/repository/kv.js.map +1 -1
  1221. package/esm/storage/memory/repository/peers.d.ts +1 -1
  1222. package/esm/storage/memory/repository/peers.js +2 -0
  1223. package/esm/storage/memory/repository/peers.js.map +1 -1
  1224. package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
  1225. package/esm/storage/memory/repository/ref-messages.js +2 -0
  1226. package/esm/storage/memory/repository/ref-messages.js.map +1 -1
  1227. package/esm/storage/service/auth-keys.js +2 -0
  1228. package/esm/storage/service/auth-keys.js.map +1 -1
  1229. package/esm/storage/service/base.js +4 -0
  1230. package/esm/storage/service/base.js.map +1 -1
  1231. package/esm/storage/service/default-dcs.js +2 -0
  1232. package/esm/storage/service/default-dcs.js.map +1 -1
  1233. package/esm/storage/service/future-salts.js +2 -1
  1234. package/esm/storage/service/future-salts.js.map +1 -1
  1235. package/esm/storage/sqlite/driver.js +10 -10
  1236. package/esm/storage/sqlite/driver.js.map +1 -1
  1237. package/esm/storage/sqlite/index.d.ts +1 -1
  1238. package/esm/storage/sqlite/index.js +5 -0
  1239. package/esm/storage/sqlite/index.js.map +1 -1
  1240. package/esm/storage/sqlite/repository/auth-keys.js +9 -0
  1241. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
  1242. package/esm/storage/sqlite/repository/kv.js +5 -0
  1243. package/esm/storage/sqlite/repository/kv.js.map +1 -1
  1244. package/esm/storage/sqlite/repository/peers.js +7 -2
  1245. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  1246. package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
  1247. package/esm/storage/sqlite/repository/ref-messages.js +6 -0
  1248. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
  1249. package/esm/storage/storage.d.ts +22 -3
  1250. package/esm/storage/storage.js +21 -13
  1251. package/esm/storage/storage.js.map +1 -1
  1252. package/esm/types/errors.js +13 -0
  1253. package/esm/types/errors.js.map +1 -1
  1254. package/esm/types/utils.d.ts +1 -0
  1255. package/esm/types/utils.js.map +1 -1
  1256. package/esm/utils/async-lock.js +1 -3
  1257. package/esm/utils/async-lock.js.map +1 -1
  1258. package/esm/utils/bigint-utils.js.map +1 -1
  1259. package/esm/utils/binary/asn1-parser.js.map +1 -1
  1260. package/esm/utils/buffer-utils.js.map +1 -1
  1261. package/esm/utils/condition-variable.js +2 -0
  1262. package/esm/utils/condition-variable.js.map +1 -1
  1263. package/esm/utils/crypto/factorization.js.map +1 -1
  1264. package/esm/utils/crypto/keys.js.map +1 -1
  1265. package/esm/utils/crypto/miller-rabin.js.map +1 -1
  1266. package/esm/utils/crypto/password.js.map +1 -1
  1267. package/esm/utils/crypto/utils.js.map +1 -1
  1268. package/esm/utils/dcs.js +1 -1
  1269. package/esm/utils/dcs.js.map +1 -1
  1270. package/esm/utils/deque.js +8 -2
  1271. package/esm/utils/deque.js.map +1 -1
  1272. package/esm/utils/early-timer.js +4 -1
  1273. package/esm/utils/early-timer.js.map +1 -1
  1274. package/esm/utils/error-reporting.js.map +1 -1
  1275. package/esm/utils/function-utils.js.map +1 -1
  1276. package/esm/utils/linked-list.js +4 -1
  1277. package/esm/utils/linked-list.js.map +1 -1
  1278. package/esm/utils/links/bots.js.map +1 -1
  1279. package/esm/utils/links/chat.js.map +1 -1
  1280. package/esm/utils/links/common.js.map +1 -1
  1281. package/esm/utils/links/misc.js.map +1 -1
  1282. package/esm/utils/logger.d.ts +2 -2
  1283. package/esm/utils/logger.js +21 -14
  1284. package/esm/utils/logger.js.map +1 -1
  1285. package/esm/utils/long-utils.js +2 -6
  1286. package/esm/utils/long-utils.js.map +1 -1
  1287. package/esm/utils/lru-map.js +5 -1
  1288. package/esm/utils/lru-map.js.map +1 -1
  1289. package/esm/utils/lru-set.js +4 -0
  1290. package/esm/utils/lru-set.js.map +1 -1
  1291. package/esm/utils/peer-utils.js.map +1 -1
  1292. package/esm/utils/reloadable.d.ts +0 -1
  1293. package/esm/utils/reloadable.js +10 -7
  1294. package/esm/utils/reloadable.js.map +1 -1
  1295. package/esm/utils/sorted-array.js +2 -0
  1296. package/esm/utils/sorted-array.js.map +1 -1
  1297. package/esm/utils/tl-json.js.map +1 -1
  1298. package/esm/utils/type-assertions.js.map +1 -1
  1299. package/index.d.ts +1 -0
  1300. package/index.js +1 -0
  1301. package/methods.d.ts +1 -0
  1302. package/methods.js +1 -0
  1303. package/package.json +13 -13
  1304. package/platform.d.ts +1 -0
  1305. package/platform.js +1 -0
  1306. package/utils.d.ts +1 -0
  1307. package/utils.js +1 -0
  1308. package/worker.d.ts +1 -0
  1309. package/worker.js +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"query-batcher.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/query-batcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { Deque } from '../../utils/deque.js'\nimport { ITelegramClient } from '../client.types.js'\n\ntype Resolve<T> = (value: T | PromiseLike<T>) => void\ntype Reject = (err?: unknown) => void\n\ntype WaitersMap<K, U, T> = Map<K, [T, Resolve<U | null>, Reject][]>\ninterface InternalState<K, U, T> {\n waiters: WaitersMap<K, U, T>\n fetchingKeys: Set<K>\n retryQueue: Deque<T>\n numRunning: number\n}\n\n// todo: should it be MtClient?\n\n/**\n * Helper function for building batched queries.\n *\n * Concepts:\n * - \"input\" - items being passed to the query function\n * - \"output\" - items returned by the query function\n * - \"key\" - unique identifier of the item, which should be deriveable from both input and output.\n * used for matching input and output items and deduplicating them.\n */\nexport function batchedQuery<T, U, K extends string | number>(params: {\n /**\n * Fetcher function, taking an array of input items and returning an array of output items.\n *\n * If some item is not found, it should be omitted from the result array,\n * this way the corresponding request will be resolved with `null`.\n */\n fetch: (client: ITelegramClient, items: T[]) => Promise<U[]>\n\n /** Key derivation function for input items */\n inputKey: (item: T, client: ITelegramClient) => K\n /** Key derivation function for output items */\n outputKey: (item: U, client: ITelegramClient) => K\n\n /**\n * Maximum number of items to be passed to the `fetcher` function at once.\n *\n * It is recommended to pass ~half of the maximum allowed by the server,\n * since in some cases failing on a single item will cause the whole batch to fail.\n *\n * @default Infinity\n */\n maxBatchSize?: number\n\n /**\n * Maximum number of concurrently running queries.\n *\n * @default 1\n */\n maxConcurrent?: number\n\n /**\n * In case of an error, we can try retrying the query for some items one-by-one,\n * to avoid failing the whole batch.\n *\n * @param items Items contained in the batch that failed\n * @param err Error that was thrown by the fetcher\n * @returns `true` if the query should be retried for all items, `false` if it should be retried for none,\n * or an array of items for which the query should be retried (waiters for other items will throw `err`).\n */\n retrySingleOnError?: (items: T[], err: unknown) => boolean | T[]\n}): (client: ITelegramClient, item: T) => Promise<U | null> {\n const { inputKey, outputKey, fetch, maxBatchSize = Infinity, maxConcurrent = 1, retrySingleOnError } = params\n\n const symbol = Symbol('batchedQueryState')\n\n function getState(client_: ITelegramClient) {\n const client = client_ as { [symbol]?: InternalState<K, U, T> }\n\n if (!client[symbol]) {\n client[symbol] = {\n waiters: new Map(),\n fetchingKeys: new Set(),\n retryQueue: new Deque(),\n numRunning: 0,\n }\n }\n\n return client[symbol]\n }\n\n function addWaiter(client: ITelegramClient, waiters: WaitersMap<K, U, T>, item: T) {\n const key = inputKey(item, client)\n\n let arr = waiters.get(key)\n\n if (!arr) {\n arr = []\n waiters.set(key, arr)\n }\n\n return new Promise<U | null>((resolve, reject) => {\n arr!.push([item, resolve, reject])\n })\n }\n\n function popWaiters(waiters: WaitersMap<K, U, T>, key: K) {\n const arr = waiters.get(key)\n if (!arr) return []\n\n waiters.delete(key)\n\n return arr\n }\n\n function startLoops(client: ITelegramClient, state: InternalState<K, U, T>) {\n for (let i = state.numRunning; i <= maxConcurrent; i++) {\n processPending(client, state)\n }\n }\n\n function processPending(client: ITelegramClient, state: InternalState<K, U, T>) {\n const { waiters, fetchingKeys, retryQueue } = state\n\n if (state.numRunning >= maxConcurrent) return\n\n const request: T[] = []\n const requestKeys: K[] = []\n let isRetryRequest = false\n\n if (retryQueue.length > 0) {\n // handle retries in the same loop so we can easily use the same concurrency pool\n isRetryRequest = true\n\n const it = retryQueue.popFront()!\n request.push(it)\n\n const key = inputKey(it, client)\n requestKeys.push(key)\n fetchingKeys.add(key)\n } else {\n for (const it of waiters.keys()) {\n if (fetchingKeys.has(it)) continue\n\n request.push(waiters.get(it)![0][0])\n requestKeys.push(it)\n fetchingKeys.add(it)\n\n if (request.length === maxBatchSize) break\n }\n\n if (request.length === 0) return\n }\n\n state.numRunning += 1\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n fetch(client, request)\n .then((res) => {\n const receivedKeys = new Set<K>()\n\n for (const it of res) {\n const key = outputKey(it, client)\n receivedKeys.add(key)\n\n for (const waiter of popWaiters(waiters, key)) {\n waiter[1](it)\n }\n\n fetchingKeys.delete(key)\n }\n\n for (const key of requestKeys) {\n if (!receivedKeys.has(key)) {\n for (const waiter of popWaiters(waiters, key)) {\n waiter[1](null)\n }\n\n fetchingKeys.delete(key)\n }\n }\n })\n .catch((err: unknown) => {\n if (retrySingleOnError && !isRetryRequest) {\n const retry = retrySingleOnError(request, err)\n\n if (retry === true) {\n for (const it of request) {\n retryQueue.pushBack(it)\n }\n\n return\n } else if (Array.isArray(retry)) {\n for (const req of retry) {\n const requestKeysIdx = request.indexOf(req)\n if (requestKeysIdx < 0) continue\n\n retryQueue.pushBack(req)\n // to avoid rejecting it below\n request.splice(requestKeysIdx, 1)\n requestKeys.splice(requestKeysIdx, 1)\n }\n }\n }\n\n for (const key of requestKeys) {\n for (const waiter of popWaiters(waiters, key)) {\n waiter[2](err)\n }\n\n fetchingKeys.delete(key)\n }\n })\n .then(() => {\n state.numRunning -= 1\n\n if (waiters.size > 0) processPending(client, state)\n })\n }\n\n return function (client, item) {\n const state = getState(client)\n const promise = addWaiter(client, state.waiters, item)\n\n startLoops(client, state)\n\n return promise\n }\n}\n"]}
1
+ {"version":3,"file":"query-batcher.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/query-batcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { Deque } from '../../utils/deque.js'\nimport { ITelegramClient } from '../client.types.js'\n\ntype Resolve<T> = (value: T | PromiseLike<T>) => void\ntype Reject = (err?: unknown) => void\n\ntype WaitersMap<K, U, T> = Map<K, [T, Resolve<U | null>, Reject][]>\ninterface InternalState<K, U, T> {\n waiters: WaitersMap<K, U, T>\n fetchingKeys: Set<K>\n retryQueue: Deque<T>\n numRunning: number\n}\n\n// todo: should it be MtClient?\n\n/**\n * Helper function for building batched queries.\n *\n * Concepts:\n * - \"input\" - items being passed to the query function\n * - \"output\" - items returned by the query function\n * - \"key\" - unique identifier of the item, which should be deriveable from both input and output.\n * used for matching input and output items and deduplicating them.\n */\nexport function batchedQuery<T, U, K extends string | number>(params: {\n /**\n * Fetcher function, taking an array of input items and returning an array of output items.\n *\n * If some item is not found, it should be omitted from the result array,\n * this way the corresponding request will be resolved with `null`.\n */\n fetch: (client: ITelegramClient, items: T[]) => Promise<U[]>\n\n /** Key derivation function for input items */\n inputKey: (item: T, client: ITelegramClient) => K\n /** Key derivation function for output items */\n outputKey: (item: U, client: ITelegramClient) => K\n\n /**\n * Maximum number of items to be passed to the `fetcher` function at once.\n *\n * It is recommended to pass ~half of the maximum allowed by the server,\n * since in some cases failing on a single item will cause the whole batch to fail.\n *\n * @default Infinity\n */\n maxBatchSize?: number\n\n /**\n * Maximum number of concurrently running queries.\n *\n * @default 1\n */\n maxConcurrent?: number\n\n /**\n * In case of an error, we can try retrying the query for some items one-by-one,\n * to avoid failing the whole batch.\n *\n * @param items Items contained in the batch that failed\n * @param err Error that was thrown by the fetcher\n * @returns `true` if the query should be retried for all items, `false` if it should be retried for none,\n * or an array of items for which the query should be retried (waiters for other items will throw `err`).\n */\n retrySingleOnError?: (items: T[], err: unknown) => boolean | T[]\n}): (client: ITelegramClient, item: T) => Promise<U | null> {\n const { inputKey, outputKey, fetch, maxBatchSize = Infinity, maxConcurrent = 1, retrySingleOnError } = params\n\n const symbol = Symbol('batchedQueryState')\n\n function getState(client_: ITelegramClient) {\n const client = client_ as { [symbol]?: InternalState<K, U, T> }\n\n if (!client[symbol]) {\n client[symbol] = {\n waiters: new Map(),\n fetchingKeys: new Set(),\n retryQueue: new Deque(),\n numRunning: 0,\n }\n }\n\n return client[symbol]\n }\n\n function addWaiter(client: ITelegramClient, waiters: WaitersMap<K, U, T>, item: T) {\n const key = inputKey(item, client)\n\n let arr = waiters.get(key)\n\n if (!arr) {\n arr = []\n waiters.set(key, arr)\n }\n\n return new Promise<U | null>((resolve, reject) => {\n arr.push([item, resolve, reject])\n })\n }\n\n function popWaiters(waiters: WaitersMap<K, U, T>, key: K) {\n const arr = waiters.get(key)\n if (!arr) return []\n\n waiters.delete(key)\n\n return arr\n }\n\n function startLoops(client: ITelegramClient, state: InternalState<K, U, T>) {\n for (let i = state.numRunning; i <= maxConcurrent; i++) {\n processPending(client, state)\n }\n }\n\n function processPending(client: ITelegramClient, state: InternalState<K, U, T>) {\n const { waiters, fetchingKeys, retryQueue } = state\n\n if (state.numRunning >= maxConcurrent) return\n\n const request: T[] = []\n const requestKeys: K[] = []\n let isRetryRequest = false\n\n if (retryQueue.length > 0) {\n // handle retries in the same loop so we can easily use the same concurrency pool\n isRetryRequest = true\n\n const it = retryQueue.popFront()!\n request.push(it)\n\n const key = inputKey(it, client)\n requestKeys.push(key)\n fetchingKeys.add(key)\n } else {\n for (const it of waiters.keys()) {\n if (fetchingKeys.has(it)) continue\n\n request.push(waiters.get(it)![0][0])\n requestKeys.push(it)\n fetchingKeys.add(it)\n\n if (request.length === maxBatchSize) break\n }\n\n if (request.length === 0) return\n }\n\n state.numRunning += 1\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n fetch(client, request)\n .then((res) => {\n const receivedKeys = new Set<K>()\n\n for (const it of res) {\n const key = outputKey(it, client)\n receivedKeys.add(key)\n\n for (const waiter of popWaiters(waiters, key)) {\n waiter[1](it)\n }\n\n fetchingKeys.delete(key)\n }\n\n for (const key of requestKeys) {\n if (!receivedKeys.has(key)) {\n for (const waiter of popWaiters(waiters, key)) {\n waiter[1](null)\n }\n\n fetchingKeys.delete(key)\n }\n }\n })\n .catch((err: unknown) => {\n if (retrySingleOnError && !isRetryRequest) {\n const retry = retrySingleOnError(request, err)\n\n if (retry === true) {\n for (const it of request) {\n retryQueue.pushBack(it)\n }\n\n return\n } else if (Array.isArray(retry)) {\n for (const req of retry) {\n const requestKeysIdx = request.indexOf(req)\n if (requestKeysIdx < 0) continue\n\n retryQueue.pushBack(req)\n // to avoid rejecting it below\n request.splice(requestKeysIdx, 1)\n requestKeys.splice(requestKeysIdx, 1)\n }\n }\n }\n\n for (const key of requestKeys) {\n for (const waiter of popWaiters(waiters, key)) {\n waiter[2](err)\n }\n\n fetchingKeys.delete(key)\n }\n })\n .then(() => {\n state.numRunning -= 1\n\n if (waiters.size > 0) processPending(client, state)\n })\n }\n\n return function (client, item) {\n const state = getState(client)\n const promise = addWaiter(client, state.waiters, item)\n\n startLoops(client, state)\n\n return promise\n }\n}\n"]}
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RpsMeter = void 0;
4
4
  const deque_js_1 = require("../../utils/deque.js");
5
5
  class RpsMeter {
6
+ size;
7
+ _hits;
8
+ time;
6
9
  constructor(size = 500, time = 5000) {
7
10
  this.size = size;
8
11
  if (typeof process === 'undefined' || !process.hrtime.bigint) {
@@ -1 +1 @@
1
- {"version":3,"file":"rps-meter.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/rps-meter.ts"],"names":[],"mappings":";;;AAAA,mDAA4C;AAE5C,MAAa,QAAQ;IAIjB,YACa,OAAO,GAAG,EACnB,IAAI,GAAG,IAAI;QADF,SAAI,GAAJ,IAAI,CAAM;QAGnB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;SACjE;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAK,CAAS,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG;QACC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,MAAM;QACF,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,CAAA,CAAC,iBAAiB;QAElD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QAC9B,+CAA+C;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,GAAG,GAAG,CAAC,CAAA;QAEX,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE;YACxC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACnB,GAAG,IAAI,CAAC,CAAA;SACX;QACD,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,CAAA,CAAC,iBAAiB;QAE5C,mCAAmC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;QAEpC,0BAA0B;QAC1B,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;CACJ;AA3CD,4BA2CC","sourcesContent":["import { Deque } from '../../utils/deque.js'\n\nexport class RpsMeter {\n _hits: Deque<bigint>\n time: bigint\n\n constructor(\n readonly size = 500,\n time = 5000,\n ) {\n if (typeof process === 'undefined' || !process.hrtime.bigint) {\n throw new Error('RPS meter is not supported on this platform')\n }\n\n this._hits = new Deque<bigint>(size)\n this.time = BigInt(time) * BigInt(1e6)\n }\n\n hit(): void {\n this._hits.pushBack(process.hrtime.bigint())\n }\n\n getRps(): number {\n // calculate average load based on last `size` hits in the last `time` ms\n if (!this._hits.length) return 0 // no hits at all\n\n const now = process.hrtime.bigint()\n const window = now - this.time\n // find the first hit within the last `time` ms\n const iter = this._hits.iter()\n let first = iter.next()\n let idx = 0\n\n while (!first.done && first.value < window) {\n first = iter.next()\n idx += 1\n }\n if (!first.value) return 0 // no recent hits\n\n // number of hits within the window\n const hits = this._hits.length - idx\n\n // average load per second\n return (hits * 1e9) / Number(now - first.value)\n }\n}\n"]}
1
+ {"version":3,"file":"rps-meter.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/rps-meter.ts"],"names":[],"mappings":";;;AAAA,mDAA4C;AAE5C,MAAa,QAAQ;IAKJ;IAJb,KAAK,CAAe;IACpB,IAAI,CAAQ;IAEZ,YACa,OAAO,GAAG,EACnB,IAAI,GAAG,IAAI;QADF,SAAI,GAAJ,IAAI,CAAM;QAGnB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAK,CAAS,IAAI,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,GAAG;QACC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,MAAM;QACF,yEAAyE;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,CAAA,CAAC,iBAAiB;QAElD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACnC,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QAC9B,+CAA+C;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,GAAG,GAAG,CAAC,CAAA;QAEX,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;YACzC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;YACnB,GAAG,IAAI,CAAC,CAAA;QACZ,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,CAAA,CAAC,iBAAiB;QAE5C,mCAAmC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;QAEpC,0BAA0B;QAC1B,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;CACJ;AA3CD,4BA2CC","sourcesContent":["import { Deque } from '../../utils/deque.js'\n\nexport class RpsMeter {\n _hits: Deque<bigint>\n time: bigint\n\n constructor(\n readonly size = 500,\n time = 5000,\n ) {\n if (typeof process === 'undefined' || !process.hrtime.bigint) {\n throw new Error('RPS meter is not supported on this platform')\n }\n\n this._hits = new Deque<bigint>(size)\n this.time = BigInt(time) * BigInt(1e6)\n }\n\n hit(): void {\n this._hits.pushBack(process.hrtime.bigint())\n }\n\n getRps(): number {\n // calculate average load based on last `size` hits in the last `time` ms\n if (!this._hits.length) return 0 // no hits at all\n\n const now = process.hrtime.bigint()\n const window = now - this.time\n // find the first hit within the last `time` ms\n const iter = this._hits.iter()\n let first = iter.next()\n let idx = 0\n\n while (!first.done && first.value < window) {\n first = iter.next()\n idx += 1\n }\n if (!first.value) return 0 // no recent hits\n\n // number of hits within the window\n const hits = this._hits.length - idx\n\n // average load per second\n return (hits * 1e9) / Number(now - first.value)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/stream-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { AsyncLock } from '../../utils/async-lock.js'\nimport { concatBuffers } from '../../utils/buffer-utils.js'\n\nexport function bufferToStream(buf: Uint8Array): ReadableStream<Uint8Array> {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(buf)\n controller.close()\n },\n })\n}\n\nexport async function streamToBuffer(stream: ReadableStream<Uint8Array>): Promise<Uint8Array> {\n const chunks: Uint8Array[] = []\n\n const reader = stream.getReader()\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n chunks.push(value)\n }\n\n return concatBuffers(chunks)\n}\n\nexport function createChunkedReader(stream: ReadableStream<Uint8Array>, chunkSize: number) {\n const reader = stream.getReader()\n const lock = new AsyncLock()\n\n const buffer: Uint8Array[] = []\n let bufferLength = 0\n\n let next: Uint8Array | undefined = undefined\n let first = true\n\n async function readInner(): Promise<Uint8Array | undefined> {\n const { value } = await reader.read()\n\n if (first) {\n first = false\n const { value: nextValue } = await reader.read()\n\n next = nextValue\n\n return value\n }\n\n const tmp = next\n next = value\n\n return tmp\n }\n\n async function read(): Promise<Uint8Array | null> {\n if (bufferLength > chunkSize) {\n const chunks = []\n let length = 0\n\n while (length < chunkSize && buffer.length) {\n const chunk = buffer.shift()!\n length += chunk.length\n chunks.push(chunk)\n }\n\n if (length > chunkSize) {\n const lastChunk = chunks.pop()!\n const diff = length - chunkSize\n chunks.push(lastChunk.subarray(0, lastChunk.length - diff))\n buffer.unshift(lastChunk.subarray(lastChunk.length - diff))\n length = chunkSize\n }\n\n if (length === chunkSize) {\n bufferLength -= chunkSize\n\n return concatBuffers(chunks)\n }\n } else if (next === undefined && bufferLength > 0) {\n bufferLength = 0\n\n return concatBuffers(buffer)\n }\n\n const value = await readInner()\n if (!value) return null\n\n if (bufferLength > 0) {\n buffer.push(value)\n bufferLength += value.length\n\n // to avoid code duplication\n return read()\n }\n\n if (value.length > chunkSize) {\n const rest = value.subarray(chunkSize)\n buffer.push(rest)\n bufferLength += rest.length\n\n return value.subarray(0, chunkSize)\n }\n\n if (value.length === chunkSize) {\n return value\n }\n\n buffer.push(value)\n bufferLength += value.length\n\n return read()\n }\n\n async function readLocked() {\n await lock.acquire()\n\n let res: Uint8Array | null = null\n let err: Error | null = null\n\n try {\n res = await read()\n } catch (e) {\n err = e as Error\n }\n\n lock.release()\n\n if (err) throw err\n\n return res\n }\n\n return {\n ended: () => bufferLength === 0 && next === undefined,\n read: readLocked,\n }\n}\n"]}
1
+ {"version":3,"file":"stream-utils.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/stream-utils.ts"],"names":[],"mappings":";;;AAAA,6DAAqD;AACrD,iEAA2D;AAE3D,SAAgB,cAAc,CAAC,GAAe;IAC1C,OAAO,IAAI,cAAc,CAAC;QACtB,KAAK,CAAC,UAAU;YACZ,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACvB,UAAU,CAAC,KAAK,EAAE,CAAA;QACtB,CAAC;KACJ,CAAC,CAAA;AACN,CAAC;AAPD,wCAOC;AAEM,KAAK,UAAU,cAAc,CAAC,MAAkC;IACnE,MAAM,MAAM,GAAiB,EAAE,CAAA;IAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,IAAI;YAAE,MAAK;QACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,IAAA,+BAAa,EAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAZD,wCAYC;AAED,SAAgB,mBAAmB,CAAC,MAAkC,EAAE,SAAiB;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,IAAI,yBAAS,EAAE,CAAA;IAE5B,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,IAAI,IAAI,GAA2B,SAAS,CAAA;IAC5C,IAAI,KAAK,GAAG,IAAI,CAAA;IAEhB,KAAK,UAAU,SAAS;QACpB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAErC,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,GAAG,KAAK,CAAA;YACb,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAEhD,IAAI,GAAG,SAAS,CAAA;YAEhB,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAA;QAChB,IAAI,GAAG,KAAK,CAAA;QAEZ,OAAO,GAAG,CAAA;IACd,CAAC;IAED,KAAK,UAAU,IAAI;QACf,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,EAAE,CAAA;YACjB,IAAI,MAAM,GAAG,CAAC,CAAA;YAEd,OAAO,MAAM,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAG,CAAA;gBAC7B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAA;gBACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;YAED,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,EAAG,CAAA;gBAC/B,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;gBAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;gBAC3D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;gBAC3D,MAAM,GAAG,SAAS,CAAA;YACtB,CAAC;YAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,YAAY,IAAI,SAAS,CAAA;gBAEzB,OAAO,IAAA,+BAAa,EAAC,MAAM,CAAC,CAAA;YAChC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAChD,YAAY,GAAG,CAAC,CAAA;YAEhB,OAAO,IAAA,+BAAa,EAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAA;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QAEvB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAClB,YAAY,IAAI,KAAK,CAAC,MAAM,CAAA;YAE5B,4BAA4B;YAC5B,OAAO,IAAI,EAAE,CAAA;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAA;YAE3B,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClB,YAAY,IAAI,KAAK,CAAC,MAAM,CAAA;QAE5B,OAAO,IAAI,EAAE,CAAA;IACjB,CAAC;IAED,KAAK,UAAU,UAAU;QACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAEpB,IAAI,GAAG,GAAsB,IAAI,CAAA;QACjC,IAAI,GAAG,GAAiB,IAAI,CAAA;QAE5B,IAAI,CAAC;YACD,GAAG,GAAG,MAAM,IAAI,EAAE,CAAA;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,GAAG,CAAU,CAAA;QACpB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAA;QAEd,IAAI,GAAG;YAAE,MAAM,GAAG,CAAA;QAElB,OAAO,GAAG,CAAA;IACd,CAAC;IAED,OAAO;QACH,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS;QACrD,IAAI,EAAE,UAAU;KACnB,CAAA;AACL,CAAC;AA9GD,kDA8GC","sourcesContent":["import { AsyncLock } from '../../utils/async-lock.js'\nimport { concatBuffers } from '../../utils/buffer-utils.js'\n\nexport function bufferToStream(buf: Uint8Array): ReadableStream<Uint8Array> {\n return new ReadableStream({\n start(controller) {\n controller.enqueue(buf)\n controller.close()\n },\n })\n}\n\nexport async function streamToBuffer(stream: ReadableStream<Uint8Array>): Promise<Uint8Array> {\n const chunks: Uint8Array[] = []\n\n const reader = stream.getReader()\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n chunks.push(value)\n }\n\n return concatBuffers(chunks)\n}\n\nexport function createChunkedReader(stream: ReadableStream<Uint8Array>, chunkSize: number) {\n const reader = stream.getReader()\n const lock = new AsyncLock()\n\n const buffer: Uint8Array[] = []\n let bufferLength = 0\n\n let next: Uint8Array | undefined = undefined\n let first = true\n\n async function readInner(): Promise<Uint8Array | undefined> {\n const { value } = await reader.read()\n\n if (first) {\n first = false\n const { value: nextValue } = await reader.read()\n\n next = nextValue\n\n return value\n }\n\n const tmp = next\n next = value\n\n return tmp\n }\n\n async function read(): Promise<Uint8Array | null> {\n if (bufferLength > chunkSize) {\n const chunks = []\n let length = 0\n\n while (length < chunkSize && buffer.length) {\n const chunk = buffer.shift()!\n length += chunk.length\n chunks.push(chunk)\n }\n\n if (length > chunkSize) {\n const lastChunk = chunks.pop()!\n const diff = length - chunkSize\n chunks.push(lastChunk.subarray(0, lastChunk.length - diff))\n buffer.unshift(lastChunk.subarray(lastChunk.length - diff))\n length = chunkSize\n }\n\n if (length === chunkSize) {\n bufferLength -= chunkSize\n\n return concatBuffers(chunks)\n }\n } else if (next === undefined && bufferLength > 0) {\n bufferLength = 0\n\n return concatBuffers(buffer)\n }\n\n const value = await readInner()\n if (!value) return null\n\n if (bufferLength > 0) {\n buffer.push(value)\n bufferLength += value.length\n\n // to avoid code duplication\n return read()\n }\n\n if (value.length > chunkSize) {\n const rest = value.subarray(chunkSize)\n buffer.push(rest)\n bufferLength += rest.length\n\n return value.subarray(0, chunkSize)\n }\n\n if (value.length === chunkSize) {\n return value\n }\n\n buffer.push(value)\n bufferLength += value.length\n\n return read()\n }\n\n async function readLocked() {\n await lock.acquire()\n\n let res: Uint8Array | null = null\n let err: Error | null = null\n\n try {\n res = await read()\n } catch (e) {\n err = e as Error\n }\n\n lock.release()\n\n if (err) throw err\n\n return res\n }\n\n return {\n ended: () => bufferLength === 0 && next === undefined,\n read: readLocked,\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- import { TlReaderMap } from '@mtcute/tl-runtime';
2
1
  import { DcOptions } from '../../utils/dcs.js';
3
2
  import { CurrentUserInfo } from '../storage/service/current-user.js';
4
3
  export interface StringSessionData {
@@ -9,4 +8,4 @@ export interface StringSessionData {
9
8
  authKey: Uint8Array;
10
9
  }
11
10
  export declare function writeStringSession(data: StringSessionData): string;
12
- export declare function readStringSession(readerMap: TlReaderMap, data: string): StringSessionData;
11
+ export declare function readStringSession(data: string): StringSessionData;
@@ -5,6 +5,26 @@ const tl_runtime_1 = require("@mtcute/tl-runtime");
5
5
  const platform_js_1 = require("../../platform.js");
6
6
  const index_js_1 = require("../../types/index.js");
7
7
  const dcs_js_1 = require("../../utils/dcs.js");
8
+ function readTlDcOption(reader) {
9
+ const ctorId = reader.uint();
10
+ if (ctorId !== 414687501) {
11
+ throw new index_js_1.MtArgumentError(`Invalid dcOption constructor id: ${ctorId}`);
12
+ }
13
+ const flags = reader.uint();
14
+ const id = reader.int();
15
+ const ipAddress = reader.string();
16
+ const port = reader.int();
17
+ if (flags & 1024) {
18
+ reader.bytes(); // skip secret
19
+ }
20
+ return {
21
+ id,
22
+ ipAddress,
23
+ port,
24
+ ipv6: Boolean(flags & 1),
25
+ mediaOnly: Boolean(flags & 2),
26
+ };
27
+ }
8
28
  function writeStringSession(data) {
9
29
  const writer = tl_runtime_1.TlBinaryWriter.manual(512);
10
30
  const version = data.version;
@@ -36,13 +56,16 @@ function writeStringSession(data) {
36
56
  return (0, platform_js_1.getPlatform)().base64Encode(writer.result(), true);
37
57
  }
38
58
  exports.writeStringSession = writeStringSession;
39
- function readStringSession(readerMap, data) {
59
+ function readStringSession(data) {
40
60
  const buf = (0, platform_js_1.getPlatform)().base64Decode(data, true);
41
61
  const version = buf[0];
42
62
  if (version !== 1 && version !== 2 && version !== 3) {
43
63
  throw new Error(`Invalid session string (version = ${version})`);
44
64
  }
45
- const reader = new tl_runtime_1.TlBinaryReader(readerMap, buf, 1);
65
+ if (version < 3) {
66
+ console.warn(`You are using a deprecated session string (${data.slice(0, 10)}...). Please update your session string, as it will stop working in the future.`);
67
+ }
68
+ const reader = tl_runtime_1.TlBinaryReader.manual(buf, 1);
46
69
  const flags = reader.int();
47
70
  const hasSelf = flags & 1;
48
71
  const testMode = Boolean(flags & 2);
@@ -50,11 +73,8 @@ function readStringSession(readerMap, data) {
50
73
  let primaryDc;
51
74
  let primaryMediaDc;
52
75
  if (version <= 2) {
53
- const primaryDc_ = reader.object();
54
- const primaryMediaDc_ = hasMedia ? reader.object() : primaryDc_;
55
- if (primaryDc_._ !== 'dcOption') {
56
- throw new index_js_1.MtArgumentError(`Invalid session string (dc._ = ${primaryDc_._})`);
57
- }
76
+ const primaryDc_ = readTlDcOption(reader);
77
+ const primaryMediaDc_ = hasMedia ? readTlDcOption(reader) : primaryDc_;
58
78
  primaryDc = primaryDc_;
59
79
  primaryMediaDc = primaryMediaDc_;
60
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"string-session.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/string-session.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter, TlReaderMap } from '@mtcute/tl-runtime'\n\nimport { getPlatform } from '../../platform.js'\nimport { MtArgumentError } from '../../types/index.js'\nimport { BasicDcOption, DcOptions, parseBasicDcOption, serializeBasicDcOption } from '../../utils/dcs.js'\nimport { CurrentUserInfo } from '../storage/service/current-user.js'\n\nexport interface StringSessionData {\n version: number\n testMode: boolean\n primaryDcs: DcOptions\n self?: CurrentUserInfo | null\n authKey: Uint8Array\n}\n\nexport function writeStringSession(data: StringSessionData): string {\n const writer = TlBinaryWriter.manual(512)\n\n const version = data.version\n\n if (version !== 3) {\n throw new MtArgumentError(`Unsupported string session version: ${version}`)\n }\n\n let flags = 0\n\n if (data.self) {\n flags |= 1\n }\n\n if (data.testMode) {\n flags |= 2\n }\n\n writer.uint8View[0] = version\n writer.pos += 1\n\n if (version >= 2 && data.primaryDcs.media !== data.primaryDcs.main) {\n flags |= 4\n }\n\n writer.int(flags)\n writer.bytes(serializeBasicDcOption(data.primaryDcs.main))\n\n if (version >= 2 && data.primaryDcs.media !== data.primaryDcs.main) {\n writer.bytes(serializeBasicDcOption(data.primaryDcs.media))\n }\n\n if (data.self) {\n writer.int53(data.self.userId)\n writer.boolean(data.self.isBot)\n }\n\n writer.bytes(data.authKey)\n\n return getPlatform().base64Encode(writer.result(), true)\n}\n\nexport function readStringSession(readerMap: TlReaderMap, data: string): StringSessionData {\n const buf = getPlatform().base64Decode(data, true)\n\n const version = buf[0]\n\n if (version !== 1 && version !== 2 && version !== 3) {\n throw new Error(`Invalid session string (version = ${version})`)\n }\n\n const reader = new TlBinaryReader(readerMap, buf, 1)\n\n const flags = reader.int()\n const hasSelf = flags & 1\n const testMode = Boolean(flags & 2)\n const hasMedia = version >= 2 && Boolean(flags & 4)\n\n let primaryDc: BasicDcOption\n let primaryMediaDc: BasicDcOption\n\n if (version <= 2) {\n const primaryDc_ = reader.object() as tl.TypeDcOption\n const primaryMediaDc_ = hasMedia ? (reader.object() as tl.TypeDcOption) : primaryDc_\n\n if (primaryDc_._ !== 'dcOption') {\n throw new MtArgumentError(`Invalid session string (dc._ = ${primaryDc_._})`)\n }\n\n primaryDc = primaryDc_\n primaryMediaDc = primaryMediaDc_\n } else if (version === 3) {\n const primaryDc_ = parseBasicDcOption(reader.bytes())\n\n if (primaryDc_ === null) {\n throw new MtArgumentError('Invalid session string (failed to parse primaryDc)')\n }\n\n const primaryMediaDc_ = hasMedia ? parseBasicDcOption(reader.bytes()) : primaryDc_\n\n if (primaryMediaDc_ === null) {\n throw new MtArgumentError('Invalid session string (failed to parse primaryMediaDc)')\n }\n\n primaryDc = primaryDc_\n primaryMediaDc = primaryMediaDc_\n } else {\n throw new Error() // unreachable\n }\n\n let self: CurrentUserInfo | null = null\n\n if (hasSelf) {\n const selfId = reader.int53()\n const selfBot = reader.boolean()\n\n self = {\n userId: selfId,\n isBot: selfBot,\n // todo: we should make sure we fetch this from the server at first start\n isPremium: false,\n usernames: [],\n }\n }\n\n const key = reader.bytes()\n\n return {\n version,\n testMode,\n primaryDcs: {\n main: primaryDc,\n media: primaryMediaDc,\n },\n self,\n authKey: key,\n }\n}\n"]}
1
+ {"version":3,"file":"string-session.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/string-session.ts"],"names":[],"mappings":"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","sourcesContent":["import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { getPlatform } from '../../platform.js'\nimport { MtArgumentError } from '../../types/index.js'\nimport { BasicDcOption, DcOptions, parseBasicDcOption, serializeBasicDcOption } from '../../utils/dcs.js'\nimport { CurrentUserInfo } from '../storage/service/current-user.js'\n\nexport interface StringSessionData {\n version: number\n testMode: boolean\n primaryDcs: DcOptions\n self?: CurrentUserInfo | null\n authKey: Uint8Array\n}\n\nfunction readTlDcOption(reader: TlBinaryReader): BasicDcOption {\n const ctorId = reader.uint()\n\n if (ctorId !== 414687501) {\n throw new MtArgumentError(`Invalid dcOption constructor id: ${ctorId}`)\n }\n\n const flags = reader.uint()\n const id = reader.int()\n const ipAddress = reader.string()\n const port = reader.int()\n\n if (flags & 1024) {\n reader.bytes() // skip secret\n }\n\n return {\n id,\n ipAddress,\n port,\n ipv6: Boolean(flags & 1),\n mediaOnly: Boolean(flags & 2),\n }\n}\n\nexport function writeStringSession(data: StringSessionData): string {\n const writer = TlBinaryWriter.manual(512)\n\n const version = data.version\n\n if (version !== 3) {\n throw new MtArgumentError(`Unsupported string session version: ${version}`)\n }\n\n let flags = 0\n\n if (data.self) {\n flags |= 1\n }\n\n if (data.testMode) {\n flags |= 2\n }\n\n writer.uint8View[0] = version\n writer.pos += 1\n\n if (version >= 2 && data.primaryDcs.media !== data.primaryDcs.main) {\n flags |= 4\n }\n\n writer.int(flags)\n writer.bytes(serializeBasicDcOption(data.primaryDcs.main))\n\n if (version >= 2 && data.primaryDcs.media !== data.primaryDcs.main) {\n writer.bytes(serializeBasicDcOption(data.primaryDcs.media))\n }\n\n if (data.self) {\n writer.int53(data.self.userId)\n writer.boolean(data.self.isBot)\n }\n\n writer.bytes(data.authKey)\n\n return getPlatform().base64Encode(writer.result(), true)\n}\n\nexport function readStringSession(data: string): StringSessionData {\n const buf = getPlatform().base64Decode(data, true)\n\n const version = buf[0]\n\n if (version !== 1 && version !== 2 && version !== 3) {\n throw new Error(`Invalid session string (version = ${version})`)\n }\n\n if (version < 3) {\n console.warn(\n `You are using a deprecated session string (${data.slice(\n 0,\n 10,\n )}...). Please update your session string, as it will stop working in the future.`,\n )\n }\n\n const reader = TlBinaryReader.manual(buf, 1)\n\n const flags = reader.int()\n const hasSelf = flags & 1\n const testMode = Boolean(flags & 2)\n const hasMedia = version >= 2 && Boolean(flags & 4)\n\n let primaryDc: BasicDcOption\n let primaryMediaDc: BasicDcOption\n\n if (version <= 2) {\n const primaryDc_ = readTlDcOption(reader)\n const primaryMediaDc_ = hasMedia ? readTlDcOption(reader) : primaryDc_\n\n primaryDc = primaryDc_\n primaryMediaDc = primaryMediaDc_\n } else if (version === 3) {\n const primaryDc_ = parseBasicDcOption(reader.bytes())\n\n if (primaryDc_ === null) {\n throw new MtArgumentError('Invalid session string (failed to parse primaryDc)')\n }\n\n const primaryMediaDc_ = hasMedia ? parseBasicDcOption(reader.bytes()) : primaryDc_\n\n if (primaryMediaDc_ === null) {\n throw new MtArgumentError('Invalid session string (failed to parse primaryMediaDc)')\n }\n\n primaryDc = primaryDc_\n primaryMediaDc = primaryMediaDc_\n } else {\n throw new Error() // unreachable\n }\n\n let self: CurrentUserInfo | null = null\n\n if (hasSelf) {\n const selfId = reader.int53()\n const selfBot = reader.boolean()\n\n self = {\n userId: selfId,\n isBot: selfBot,\n // todo: we should make sure we fetch this from the server at first start\n isPremium: false,\n usernames: [],\n }\n }\n\n const key = reader.bytes()\n\n return {\n version,\n testMode,\n primaryDcs: {\n main: primaryDc,\n media: primaryMediaDc,\n },\n self,\n authKey: key,\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"voice-utils.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/voice-utils.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAEhE;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,EAAc;IACzC,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/B,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAA;IAE3B,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAA;IAE/B,yDAAyD;IACzD,6EAA6E;IAC7E,6FAA6F;IAC7F,EAAE;IACF,4FAA4F;IAC5F,qFAAqF;IACrF,+FAA+F;IAC/F,mEAAmE;IAEnE,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,EAAE,GAAG,IAAA,oCAAkB,EAAC,EAAE,CAAC,CAAA;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,OAAO,CAAA;KAClE;IAED,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACzC,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,WAAW,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IACnG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,YAAY,CAAC,GAAG,OAAO,CAAA;IAEvD,OAAO,MAAM,CAAA;AACjB,CAAC;AAhCD,wCAgCC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,EAAY;IACvC,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;IAC7C,MAAM,EAAE,GAAG,IAAA,oCAAkB,EAAC,MAAM,CAAC,CAAA;IAErC,oDAAoD;IACpD,4EAA4E;IAC5E,8EAA8E;IAE9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAC/C,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;QACtB,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,QAAQ,CAAA;QAE3C,2CAA2C;QAC3C,6CAA6C;QAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAA;KACnE;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AACtC,CAAC;AArBD,wCAqBC","sourcesContent":["import { dataViewFromBuffer } from '../../utils/buffer-utils.js'\n\n/**\n * Decode 5-bit encoded voice message waveform into\n * an array of waveform values (0-32).\n *\n * @param wf Encoded waveform\n */\nexport function decodeWaveform(wf: Uint8Array): number[] {\n const bitsCount = wf.length * 8\n const valuesCount = ~~(bitsCount / 5)\n\n if (!valuesCount) return []\n\n const lastIdx = valuesCount - 1\n\n // Read each 5 bit of encoded 5bit as 0-31 unsigned char.\n // We count the index of the byte in which the desired 5-bit sequence starts.\n // And then we read a uint16 starting from that byte to guarantee to get all of those 5 bits.\n //\n // BUT! if it is the last byte we have, we're not allowed to read a uint16 starting with it.\n // Because it will be an overflow (we'll access one byte after the available memory).\n // We see, that only the last 5 bits could start in the last available byte and be problematic.\n // So we read in a general way all the entries except the last one.\n\n const result: number[] = []\n const dv = dataViewFromBuffer(wf)\n\n for (let i = 0, j = 0; i < lastIdx; i++, j += 5) {\n const byteIdx = ~~(j / 8)\n const bitShift = j % 8\n result[i] = (dv.getUint16(byteIdx, true) >> bitShift) & 0b11111\n }\n\n const lastByteIdx = ~~((lastIdx * 5) / 8)\n const lastBitShift = (lastIdx * 5) % 8\n const lastValue = lastByteIdx === wf.length - 1 ? wf[lastByteIdx] : dv.getUint16(lastByteIdx, true)\n result[lastIdx] = (lastValue >> lastBitShift) & 0b11111\n\n return result\n}\n\n/**\n * Encode an array of waveform values into\n * 5-bit encoded voice message waveform into\n *\n * @param wf Waveform values\n */\nexport function encodeWaveform(wf: number[]): Uint8Array {\n const bitsCount = wf.length * 5\n const bytesCount = ~~(bitsCount + 7) / 8\n const result = new Uint8Array(bytesCount + 1)\n const dv = dataViewFromBuffer(result)\n\n // Write each 0-31 unsigned char as 5 bit to result.\n // We reserve one extra byte to be able to dereference any of required bytes\n // as a uint16 without overflowing, even the byte with index \"bytesCount - 1\".\n\n for (let i = 0, j = 0; i < wf.length; i++, j += 5) {\n const byteIdx = ~~(j / 8)\n const bitShift = j % 8\n const value = (wf[i] & 0b11111) << bitShift\n\n // const old = result.readUInt16LE(byteIdx)\n // result.writeUInt16LE(old | value, byteIdx)\n dv.setUint16(byteIdx, dv.getUint16(byteIdx, true) | value, true)\n }\n\n return result.slice(0, bytesCount)\n}\n"]}
1
+ {"version":3,"file":"voice-utils.js","sourceRoot":"","sources":["../../../../src/highlevel/utils/voice-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { dataViewFromBuffer } from '../../utils/buffer-utils.js'\n\n/**\n * Decode 5-bit encoded voice message waveform into\n * an array of waveform values (0-32).\n *\n * @param wf Encoded waveform\n */\nexport function decodeWaveform(wf: Uint8Array): number[] {\n const bitsCount = wf.length * 8\n const valuesCount = ~~(bitsCount / 5)\n\n if (!valuesCount) return []\n\n const lastIdx = valuesCount - 1\n\n // Read each 5 bit of encoded 5bit as 0-31 unsigned char.\n // We count the index of the byte in which the desired 5-bit sequence starts.\n // And then we read a uint16 starting from that byte to guarantee to get all of those 5 bits.\n //\n // BUT! if it is the last byte we have, we're not allowed to read a uint16 starting with it.\n // Because it will be an overflow (we'll access one byte after the available memory).\n // We see, that only the last 5 bits could start in the last available byte and be problematic.\n // So we read in a general way all the entries except the last one.\n\n const result: number[] = []\n const dv = dataViewFromBuffer(wf)\n\n for (let i = 0, j = 0; i < lastIdx; i++, j += 5) {\n const byteIdx = ~~(j / 8)\n const bitShift = j % 8\n result[i] = (dv.getUint16(byteIdx, true) >> bitShift) & 0b11111\n }\n\n const lastByteIdx = ~~((lastIdx * 5) / 8)\n const lastBitShift = (lastIdx * 5) % 8\n const lastValue = lastByteIdx === wf.length - 1 ? wf[lastByteIdx] : dv.getUint16(lastByteIdx, true)\n result[lastIdx] = (lastValue >> lastBitShift) & 0b11111\n\n return result\n}\n\n/**\n * Encode an array of waveform values into\n * 5-bit encoded voice message waveform into\n *\n * @param wf Waveform values\n */\nexport function encodeWaveform(wf: number[]): Uint8Array {\n const bitsCount = wf.length * 5\n const bytesCount = ~~(bitsCount + 7) / 8\n const result = new Uint8Array(bytesCount + 1)\n const dv = dataViewFromBuffer(result)\n\n // Write each 0-31 unsigned char as 5 bit to result.\n // We reserve one extra byte to be able to dereference any of required bytes\n // as a uint16 without overflowing, even the byte with index \"bytesCount - 1\".\n\n for (let i = 0, j = 0; i < wf.length; i++, j += 5) {\n const byteIdx = ~~(j / 8)\n const bitShift = j % 8\n const value = (wf[i] & 0b11111) << bitShift\n\n // const old = result.readUInt16LE(byteIdx)\n // result.writeUInt16LE(old | value, byteIdx)\n dv.setUint16(byteIdx, dv.getUint16(byteIdx, true) | value, true)\n }\n\n return result.slice(0, bytesCount)\n}\n"]}
@@ -3,11 +3,10 @@ import { AppConfigManager } from '../managers/app-config-manager.js';
3
3
  import { WorkerInvoker } from './invoker.js';
4
4
  export declare class AppConfigManagerProxy implements PublicPart<AppConfigManager> {
5
5
  readonly invoker: WorkerInvoker;
6
- constructor(invoker: WorkerInvoker);
7
- private _bind;
8
- readonly get: () => Promise<import("../index.js").AppConfigSchema>;
6
+ readonly get: AppConfigManager['get'];
9
7
  readonly getField: {
10
8
  <K extends keyof import("../index.js").AppConfigSchema>(field: K): Promise<import("../index.js").AppConfigSchema[K]>;
11
9
  <K_1 extends keyof import("../index.js").AppConfigSchema>(field: K_1, fallback: NonNullable<import("../index.js").AppConfigSchema[K_1]>): Promise<NonNullable<import("../index.js").AppConfigSchema[K_1]>>;
12
10
  };
11
+ constructor(invoker: WorkerInvoker);
13
12
  }
@@ -2,11 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AppConfigManagerProxy = void 0;
4
4
  class AppConfigManagerProxy {
5
+ invoker;
6
+ get;
7
+ getField;
5
8
  constructor(invoker) {
6
9
  this.invoker = invoker;
7
- this._bind = this.invoker.makeBinder('app-config');
8
- this.get = this._bind('get');
9
- this.getField = this._bind('getField');
10
+ const bind = invoker.makeBinder('app-config');
11
+ this.get = bind('get');
12
+ this.getField = bind('getField');
10
13
  }
11
14
  }
12
15
  exports.AppConfigManagerProxy = AppConfigManagerProxy;
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/app-config.ts"],"names":[],"mappings":";;;AAIA,MAAa,qBAAqB;IAC9B,YAAqB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QAEnC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAmB,YAAY,CAAC,CAAA;QAE9D,QAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvB,aAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IALI,CAAC;CAMlD;AAPD,sDAOC","sourcesContent":["import { PublicPart } from '../../types/utils.js'\nimport { AppConfigManager } from '../managers/app-config-manager.js'\nimport { WorkerInvoker } from './invoker.js'\n\nexport class AppConfigManagerProxy implements PublicPart<AppConfigManager> {\n constructor(readonly invoker: WorkerInvoker) {}\n\n private _bind = this.invoker.makeBinder<AppConfigManager>('app-config')\n\n readonly get = this._bind('get')\n readonly getField = this._bind('getField')\n}\n"]}
1
+ {"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/app-config.ts"],"names":[],"mappings":";;;AAIA,MAAa,qBAAqB;IAIT;IAHZ,GAAG,CAAyB;IAC5B,QAAQ,CAAA;IAEjB,YAAqB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAmB,YAAY,CAAC,CAAA;QAE/D,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC;CACJ;AAVD,sDAUC","sourcesContent":["import { PublicPart } from '../../types/utils.js'\nimport { AppConfigManager } from '../managers/app-config-manager.js'\nimport { WorkerInvoker } from './invoker.js'\n\nexport class AppConfigManagerProxy implements PublicPart<AppConfigManager> {\n readonly get: AppConfigManager['get']\n readonly getField\n\n constructor(readonly invoker: WorkerInvoker) {\n const bind = invoker.makeBinder<AppConfigManager>('app-config')\n\n this.get = bind('get')\n this.getField = bind('getField')\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/errors.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport {\n MtArgumentError,\n MtcuteError,\n MtSecurityError,\n MtTimeoutError,\n MtTypeAssertionError,\n MtUnsupportedError,\n} from '../../types/errors.js'\nimport { MtEmptyError, MtInvalidPeerTypeError, MtMessageNotFoundError, MtPeerNotFoundError } from '../types/errors.js'\n\nexport interface SerializedError {\n name: string\n message: string\n stack?: string\n custom?: Record<string, unknown>\n}\n\nexport function serializeError(error: unknown): SerializedError {\n if (!(error instanceof Error)) return { name: 'Error', message: String(error) }\n\n const res: SerializedError = {\n name: 'Error',\n message: error.message,\n stack: error.stack,\n }\n\n const ctor = error.constructor\n\n if (ctor === MtTypeAssertionError) {\n const _error = error as MtTypeAssertionError\n res.name = 'MtTypeAssertionError'\n res.custom = {\n context: _error.context,\n expected: _error.expected,\n actual: _error.actual,\n }\n } else if (ctor === MtTimeoutError) {\n const _error = error as MtTimeoutError\n res.name = 'MtTimeoutError'\n res.custom = {\n timeout: _error.timeout,\n }\n } else if (ctor === MtMessageNotFoundError) {\n const _error = error as MtMessageNotFoundError\n res.name = 'MtMessageNotFoundError'\n res.custom = {\n peerId: _error.peerId,\n messageId: _error.messageId,\n context: _error.context,\n }\n } else if (ctor === tl.RpcError) {\n res.name = 'RpcError'\n res.custom = { ...error }\n } else if (ctor === MtArgumentError) res.name = 'MtArgumentError'\n else if (ctor === MtSecurityError) res.name = 'MtSecurityError'\n else if (ctor === MtUnsupportedError) res.name = 'MtUnsupportedError'\n else if (ctor === MtPeerNotFoundError) res.name = 'MtPeerNotFoundError'\n else if (ctor === MtInvalidPeerTypeError) res.name = 'MtInvalidPeerTypeError'\n else if (ctor === MtEmptyError) res.name = 'MtEmptyError'\n else if (ctor instanceof MtcuteError) res.name = 'MtcuteError'\n\n return res\n}\n\nexport function deserializeError(error: SerializedError): Error {\n let err2: Error\n\n switch (error.name) {\n case 'MtTypeAssertionError': {\n const custom = error.custom as { context: string; expected: string; actual: string }\n\n err2 = new MtTypeAssertionError(custom.context, custom.expected, custom.actual)\n break\n }\n case 'MtTimeoutError': {\n const custom = error.custom as { timeout?: number }\n\n err2 = new MtTimeoutError(custom.timeout)\n break\n }\n case 'MtMessageNotFoundError': {\n const custom = error.custom as { peerId: number; messageId: number; context?: string }\n\n err2 = new MtMessageNotFoundError(custom.peerId, custom.messageId, custom.context)\n break\n }\n case 'RpcError': {\n const custom = error.custom as unknown as tl.RpcError\n err2 = new tl.RpcError(custom.code, custom.text)\n err2.message = error.message // may have been formatted\n\n for (const key in custom) {\n if (key === 'code' || key === 'text') continue\n // @ts-expect-error lol\n err2[key] = custom[key] // eslint-disable-line\n }\n break\n }\n case 'MtArgumentError':\n err2 = new MtArgumentError()\n break\n case 'MtSecurityError':\n err2 = new MtSecurityError()\n break\n case 'MtUnsupportedError':\n err2 = new MtUnsupportedError()\n break\n case 'MtPeerNotFoundError':\n err2 = new MtPeerNotFoundError()\n break\n case 'MtInvalidPeerTypeError':\n err2 = new MtInvalidPeerTypeError('', '')\n err2.message = error.message // lol\n break\n case 'MtEmptyError':\n err2 = new MtEmptyError()\n break\n case 'MtcuteError':\n err2 = new MtcuteError()\n break\n default:\n err2 = new Error(error.message)\n }\n\n err2.stack = error.stack\n\n return err2\n}\n"]}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/errors.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,qDAO8B;AAC9B,kDAAsH;AAStH,SAAgB,cAAc,CAAC,KAAc;IACzC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAE/E,MAAM,GAAG,GAAoB;QACzB,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;KACrB,CAAA;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;IAE9B,IAAI,IAAI,KAAK,gCAAoB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAA6B,CAAA;QAC5C,GAAG,CAAC,IAAI,GAAG,sBAAsB,CAAA;QACjC,GAAG,CAAC,MAAM,GAAG;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACxB,CAAA;IACL,CAAC;SAAM,IAAI,IAAI,KAAK,0BAAc,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,KAAuB,CAAA;QACtC,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC3B,GAAG,CAAC,MAAM,GAAG;YACT,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAA;IACL,CAAC;SAAM,IAAI,IAAI,KAAK,kCAAsB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,KAA+B,CAAA;QAC9C,GAAG,CAAC,IAAI,GAAG,wBAAwB,CAAA;QACnC,GAAG,CAAC,MAAM,GAAG;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;SAC1B,CAAA;IACL,CAAC;SAAM,IAAI,IAAI,KAAK,OAAE,CAAC,QAAQ,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,GAAG,UAAU,CAAA;QACrB,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;IAC7B,CAAC;SAAM,IAAI,IAAI,KAAK,2BAAe;QAAE,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAA;SAC5D,IAAI,IAAI,KAAK,2BAAe;QAAE,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAA;SAC1D,IAAI,IAAI,KAAK,8BAAkB;QAAE,GAAG,CAAC,IAAI,GAAG,oBAAoB,CAAA;SAChE,IAAI,IAAI,KAAK,+BAAmB;QAAE,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;SAClE,IAAI,IAAI,KAAK,kCAAsB;QAAE,GAAG,CAAC,IAAI,GAAG,wBAAwB,CAAA;SACxE,IAAI,IAAI,KAAK,wBAAY;QAAE,GAAG,CAAC,IAAI,GAAG,cAAc,CAAA;SACpD,IAAI,IAAI,YAAY,uBAAW;QAAE,GAAG,CAAC,IAAI,GAAG,aAAa,CAAA;IAE9D,OAAO,GAAG,CAAA;AACd,CAAC;AA7CD,wCA6CC;AAED,SAAgB,gBAAgB,CAAC,KAAsB;IACnD,IAAI,IAAW,CAAA;IAEf,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,MAA+D,CAAA;YAEpF,IAAI,GAAG,IAAI,gCAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/E,MAAK;QACT,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA8B,CAAA;YAEnD,IAAI,GAAG,IAAI,0BAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACzC,MAAK;QACT,CAAC;QACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiE,CAAA;YAEtF,IAAI,GAAG,IAAI,kCAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;YAClF,MAAK;QACT,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgC,CAAA;YACrD,IAAI,GAAG,IAAI,OAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YAChD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA,CAAC,0BAA0B;YAEvD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;oBAAE,SAAQ;gBAC9C,uBAAuB;gBACvB,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC,sBAAsB;YAClD,CAAC;YACD,MAAK;QACT,CAAC;QACD,KAAK,iBAAiB;YAClB,IAAI,GAAG,IAAI,2BAAe,EAAE,CAAA;YAC5B,MAAK;QACT,KAAK,iBAAiB;YAClB,IAAI,GAAG,IAAI,2BAAe,EAAE,CAAA;YAC5B,MAAK;QACT,KAAK,oBAAoB;YACrB,IAAI,GAAG,IAAI,8BAAkB,EAAE,CAAA;YAC/B,MAAK;QACT,KAAK,qBAAqB;YACtB,IAAI,GAAG,IAAI,+BAAmB,EAAE,CAAA;YAChC,MAAK;QACT,KAAK,wBAAwB;YACzB,IAAI,GAAG,IAAI,kCAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACzC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA,CAAC,MAAM;YACnC,MAAK;QACT,KAAK,cAAc;YACf,IAAI,GAAG,IAAI,wBAAY,EAAE,CAAA;YACzB,MAAK;QACT,KAAK,aAAa;YACd,IAAI,GAAG,IAAI,uBAAW,EAAE,CAAA;YACxB,MAAK;QACT;YACI,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IAExB,OAAO,IAAI,CAAA;AACf,CAAC;AA/DD,4CA+DC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport {\n MtArgumentError,\n MtcuteError,\n MtSecurityError,\n MtTimeoutError,\n MtTypeAssertionError,\n MtUnsupportedError,\n} from '../../types/errors.js'\nimport { MtEmptyError, MtInvalidPeerTypeError, MtMessageNotFoundError, MtPeerNotFoundError } from '../types/errors.js'\n\nexport interface SerializedError {\n name: string\n message: string\n stack?: string\n custom?: Record<string, unknown>\n}\n\nexport function serializeError(error: unknown): SerializedError {\n if (!(error instanceof Error)) return { name: 'Error', message: String(error) }\n\n const res: SerializedError = {\n name: 'Error',\n message: error.message,\n stack: error.stack,\n }\n\n const ctor = error.constructor\n\n if (ctor === MtTypeAssertionError) {\n const _error = error as MtTypeAssertionError\n res.name = 'MtTypeAssertionError'\n res.custom = {\n context: _error.context,\n expected: _error.expected,\n actual: _error.actual,\n }\n } else if (ctor === MtTimeoutError) {\n const _error = error as MtTimeoutError\n res.name = 'MtTimeoutError'\n res.custom = {\n timeout: _error.timeout,\n }\n } else if (ctor === MtMessageNotFoundError) {\n const _error = error as MtMessageNotFoundError\n res.name = 'MtMessageNotFoundError'\n res.custom = {\n peerId: _error.peerId,\n messageId: _error.messageId,\n context: _error.context,\n }\n } else if (ctor === tl.RpcError) {\n res.name = 'RpcError'\n res.custom = { ...error }\n } else if (ctor === MtArgumentError) res.name = 'MtArgumentError'\n else if (ctor === MtSecurityError) res.name = 'MtSecurityError'\n else if (ctor === MtUnsupportedError) res.name = 'MtUnsupportedError'\n else if (ctor === MtPeerNotFoundError) res.name = 'MtPeerNotFoundError'\n else if (ctor === MtInvalidPeerTypeError) res.name = 'MtInvalidPeerTypeError'\n else if (ctor === MtEmptyError) res.name = 'MtEmptyError'\n else if (ctor instanceof MtcuteError) res.name = 'MtcuteError'\n\n return res\n}\n\nexport function deserializeError(error: SerializedError): Error {\n let err2: Error\n\n switch (error.name) {\n case 'MtTypeAssertionError': {\n const custom = error.custom as { context: string; expected: string; actual: string }\n\n err2 = new MtTypeAssertionError(custom.context, custom.expected, custom.actual)\n break\n }\n case 'MtTimeoutError': {\n const custom = error.custom as { timeout?: number }\n\n err2 = new MtTimeoutError(custom.timeout)\n break\n }\n case 'MtMessageNotFoundError': {\n const custom = error.custom as { peerId: number; messageId: number; context?: string }\n\n err2 = new MtMessageNotFoundError(custom.peerId, custom.messageId, custom.context)\n break\n }\n case 'RpcError': {\n const custom = error.custom as unknown as tl.RpcError\n err2 = new tl.RpcError(custom.code, custom.text)\n err2.message = error.message // may have been formatted\n\n for (const key in custom) {\n if (key === 'code' || key === 'text') continue\n // @ts-expect-error lol\n err2[key] = custom[key] // eslint-disable-line\n }\n break\n }\n case 'MtArgumentError':\n err2 = new MtArgumentError()\n break\n case 'MtSecurityError':\n err2 = new MtSecurityError()\n break\n case 'MtUnsupportedError':\n err2 = new MtUnsupportedError()\n break\n case 'MtPeerNotFoundError':\n err2 = new MtPeerNotFoundError()\n break\n case 'MtInvalidPeerTypeError':\n err2 = new MtInvalidPeerTypeError('', '')\n err2.message = error.message // lol\n break\n case 'MtEmptyError':\n err2 = new MtEmptyError()\n break\n case 'MtcuteError':\n err2 = new MtcuteError()\n break\n default:\n err2 = new Error(error.message)\n }\n\n err2.stack = error.stack\n\n return err2\n}\n"]}
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ if (typeof globalThis !== 'undefined' && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
3
+ globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true
4
+ console.warn("[@mtcute/core] CommonJS support is deprecated and will be removed soon. Please consider switching to ESM, it's "+(new Date()).getFullYear()+" already.")
5
+ console.warn("[@mtcute/core] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c")
6
+ }
7
+ "use strict";
2
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
9
  if (k2 === undefined) k2 = k;
4
10
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -4,11 +4,12 @@ exports.WorkerInvoker = void 0;
4
4
  const controllable_promise_js_1 = require("../../utils/controllable-promise.js");
5
5
  const errors_js_1 = require("./errors.js");
6
6
  class WorkerInvoker {
7
+ send;
7
8
  constructor(send) {
8
9
  this.send = send;
9
- this._nextId = 0;
10
- this._pending = new Map();
11
10
  }
11
+ _nextId = 0;
12
+ _pending = new Map();
12
13
  _invoke(target, method, args, isVoid) {
13
14
  const id = this._nextId++;
14
15
  this.send({
@@ -1 +1 @@
1
- {"version":3,"file":"invoker.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/invoker.ts"],"names":[],"mappings":";;;AAAA,iFAAoG;AACpG,2CAA8C;AAK9C,MAAa,aAAa;IACtB,YAAoB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAExB,YAAO,GAAG,CAAC,CAAA;QACX,aAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;IAHtB,CAAC;IAK5B,OAAO,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAe,EAAE,MAAe;QAClF,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAEzB,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,MAAM;YACN,MAAM;YACN,IAAI;YACJ,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,OAAO,GAAG,IAAA,mDAAyB,GAAE,CAAA;YAE3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAE9B,OAAO,OAAO,CAAA;SACjB;IACL,CAAC;IAED,MAAM,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAe;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAqB,CAAA;IACxE,CAAC;IAED,UAAU,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAe;QAC5D,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,YAAY,CAAC,GAAuD;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,IAAI,GAAG,CAAC,KAAK,EAAE;YACX,OAAO,CAAC,MAAM,CAAC,IAAA,4BAAgB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;SAC9C;aAAM;YACH,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SAC9B;IACL,CAAC;IAED,UAAU,CAAI,MAAoB;QAC9B,OAAO,CAAoB,MAAS,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;YACpD,IAAI,EAAE,CAAA;YAEN,IAAI,MAAM,EAAE;gBACR,EAAE,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAgB,EAAE,IAAI,CAAC,CAAA;aAC/E;iBAAM;gBACH,EAAE,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAgB,EAAE,IAAI,CAAC,CAAA;aAC3E;YAED,OAAO,EAAU,CAAA;QACrB,CAAC,CAAA;IACL,CAAC;CACJ;AA5DD,sCA4DC","sourcesContent":["import { ControllablePromise, createControllablePromise } from '../../utils/controllable-promise.js'\nimport { deserializeError } from './errors.js'\nimport { SendFn, WorkerInboundMessage, WorkerOutboundMessage } from './protocol.js'\n\nexport type InvokeTarget = Extract<WorkerInboundMessage, { type: 'invoke' }>['target']\n\nexport class WorkerInvoker {\n constructor(private send: SendFn) {}\n\n private _nextId = 0\n private _pending = new Map<number, ControllablePromise>()\n\n private _invoke(target: InvokeTarget, method: string, args: unknown[], isVoid: boolean) {\n const id = this._nextId++\n\n this.send({\n type: 'invoke',\n id,\n target,\n method,\n args,\n void: isVoid,\n })\n\n if (!isVoid) {\n const promise = createControllablePromise()\n\n this._pending.set(id, promise)\n\n return promise\n }\n }\n\n invoke(target: InvokeTarget, method: string, args: unknown[]): Promise<unknown> {\n return this._invoke(target, method, args, false) as Promise<unknown>\n }\n\n invokeVoid(target: InvokeTarget, method: string, args: unknown[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._invoke(target, method, args, true)\n }\n\n handleResult(msg: Extract<WorkerOutboundMessage, { type: 'result' }>) {\n const promise = this._pending.get(msg.id)\n if (!promise) return\n\n if (msg.error) {\n promise.reject(deserializeError(msg.error))\n } else {\n promise.resolve(msg.result)\n }\n }\n\n makeBinder<T>(target: InvokeTarget) {\n return <K extends keyof T>(method: K, isVoid = false) => {\n let fn\n\n if (isVoid) {\n fn = (...args: unknown[]) => this.invokeVoid(target, method as string, args)\n } else {\n fn = (...args: unknown[]) => this.invoke(target, method as string, args)\n }\n\n return fn as T[K]\n }\n }\n}\n"]}
1
+ {"version":3,"file":"invoker.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/invoker.ts"],"names":[],"mappings":";;;AAAA,iFAAoG;AACpG,2CAA8C;AAK9C,MAAa,aAAa;IACF;IAApB,YAAoB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE5B,OAAO,GAAG,CAAC,CAAA;IACX,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAA;IAEjD,OAAO,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAe,EAAE,MAAe;QAClF,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;QAEzB,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,MAAM;YACN,MAAM;YACN,IAAI;YACJ,IAAI,EAAE,MAAM;SACf,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,IAAA,mDAAyB,GAAE,CAAA;YAE3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;YAE9B,OAAO,OAAO,CAAA;QAClB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAe;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAqB,CAAA;IACxE,CAAC;IAED,UAAU,CAAC,MAAoB,EAAE,MAAc,EAAE,IAAe;QAC5D,mEAAmE;QACnE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC;IAED,YAAY,CAAC,GAAuD;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,IAAA,4BAAgB,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;IACL,CAAC;IAED,UAAU,CAAI,MAAoB;QAC9B,OAAO,CAAoB,MAAS,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE;YACpD,IAAI,EAAE,CAAA;YAEN,IAAI,MAAM,EAAE,CAAC;gBACT,EAAE,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAgB,EAAE,IAAI,CAAC,CAAA;YAChF,CAAC;iBAAM,CAAC;gBACJ,EAAE,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAgB,EAAE,IAAI,CAAC,CAAA;YAC5E,CAAC;YAED,OAAO,EAAU,CAAA;QACrB,CAAC,CAAA;IACL,CAAC;CACJ;AA5DD,sCA4DC","sourcesContent":["import { ControllablePromise, createControllablePromise } from '../../utils/controllable-promise.js'\nimport { deserializeError } from './errors.js'\nimport { SendFn, WorkerInboundMessage, WorkerOutboundMessage } from './protocol.js'\n\nexport type InvokeTarget = Extract<WorkerInboundMessage, { type: 'invoke' }>['target']\n\nexport class WorkerInvoker {\n constructor(private send: SendFn) {}\n\n private _nextId = 0\n private _pending = new Map<number, ControllablePromise>()\n\n private _invoke(target: InvokeTarget, method: string, args: unknown[], isVoid: boolean) {\n const id = this._nextId++\n\n this.send({\n type: 'invoke',\n id,\n target,\n method,\n args,\n void: isVoid,\n })\n\n if (!isVoid) {\n const promise = createControllablePromise()\n\n this._pending.set(id, promise)\n\n return promise\n }\n }\n\n invoke(target: InvokeTarget, method: string, args: unknown[]): Promise<unknown> {\n return this._invoke(target, method, args, false) as Promise<unknown>\n }\n\n invokeVoid(target: InvokeTarget, method: string, args: unknown[]): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._invoke(target, method, args, true)\n }\n\n handleResult(msg: Extract<WorkerOutboundMessage, { type: 'result' }>) {\n const promise = this._pending.get(msg.id)\n if (!promise) return\n\n if (msg.error) {\n promise.reject(deserializeError(msg.error))\n } else {\n promise.resolve(msg.result)\n }\n }\n\n makeBinder<T>(target: InvokeTarget) {\n return <K extends keyof T>(method: K, isVoid = false) => {\n let fn\n\n if (isVoid) {\n fn = (...args: unknown[]) => this.invokeVoid(target, method as string, args)\n } else {\n fn = (...args: unknown[]) => this.invoke(target, method as string, args)\n }\n\n return fn as T[K]\n }\n }\n}\n"]}
@@ -10,30 +10,13 @@ export interface TelegramWorkerPortOptions {
10
10
  }
11
11
  export declare abstract class TelegramWorkerPort<Custom extends WorkerCustomMethods> implements ITelegramClient {
12
12
  readonly options: TelegramWorkerPortOptions;
13
- constructor(options: TelegramWorkerPortOptions);
14
- abstract connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void];
15
13
  readonly log: LogManager;
16
- private _serverUpdatesHandler;
17
- onServerUpdate(handler: (updates: tl.TypeUpdates) => void): void;
18
- private _errorHandler;
19
- onError(handler: (err: unknown) => void): void;
20
- emitError(err: unknown): void;
21
- private _updateHandler;
22
- onUpdate(handler: RawUpdateHandler): void;
23
- private _connectionStateHandler;
24
- onConnectionState(handler: (state: ConnectionState) => void): void;
25
- private _onMessage;
26
14
  private _connection;
27
15
  private _invoker;
28
- private _bind;
29
16
  readonly storage: TelegramStorageProxy;
30
17
  readonly appConfig: AppConfigManagerProxy;
31
- private _destroyed;
32
- destroy(terminate?: boolean): void;
33
- invokeCustom<T extends keyof Custom>(method: T, ...args: Parameters<Custom[T]>): Promise<ReturnType<Custom[T]>>;
34
18
  readonly prepare: () => Promise<void>;
35
19
  private _connect;
36
- connect(): Promise<void>;
37
20
  readonly close: () => Promise<void>;
38
21
  readonly notifyLoggedIn: (auth: tl.RawUser | tl.auth.TypeAuthorization) => Promise<tl.RawUser>;
39
22
  readonly notifyLoggedOut: () => Promise<void>;
@@ -53,4 +36,20 @@ export declare abstract class TelegramWorkerPort<Custom extends WorkerCustomMeth
53
36
  readonly computeNewPasswordHash: (algo: tl.TypePasswordKdfAlgo, password: string) => Promise<Uint8Array>;
54
37
  readonly startUpdatesLoop: () => Promise<void>;
55
38
  readonly stopUpdatesLoop: () => Promise<void>;
39
+ constructor(options: TelegramWorkerPortOptions);
40
+ abstract connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void];
41
+ private _serverUpdatesHandler;
42
+ onServerUpdate(handler: (updates: tl.TypeUpdates) => void): void;
43
+ private _errorHandler;
44
+ onError(handler: (err: unknown) => void): void;
45
+ emitError(err: unknown): void;
46
+ private _updateHandler;
47
+ onUpdate(handler: RawUpdateHandler): void;
48
+ private _connectionStateHandler;
49
+ onConnectionState(handler: (state: ConnectionState) => void): void;
50
+ private _onMessage;
51
+ private _destroyed;
52
+ destroy(terminate?: boolean): void;
53
+ invokeCustom<T extends keyof Custom>(method: T, ...args: Parameters<Custom[T]>): Promise<ReturnType<Custom[T]>>;
54
+ connect(): Promise<void>;
56
55
  }
@@ -7,78 +7,103 @@ const app_config_js_1 = require("./app-config.js");
7
7
  const invoker_js_1 = require("./invoker.js");
8
8
  const storage_js_1 = require("./storage.js");
9
9
  class TelegramWorkerPort {
10
+ options;
11
+ log;
12
+ _connection;
13
+ _invoker;
14
+ storage;
15
+ appConfig;
16
+ // bound methods
17
+ prepare;
18
+ _connect;
19
+ close;
20
+ notifyLoggedIn;
21
+ notifyLoggedOut;
22
+ notifyChannelOpened;
23
+ notifyChannelClosed;
24
+ call;
25
+ importSession;
26
+ exportSession;
27
+ handleClientUpdate;
28
+ getApiCrenetials;
29
+ getPoolSize;
30
+ getPrimaryDcId;
31
+ computeSrpParams;
32
+ computeNewPasswordHash;
33
+ startUpdatesLoop;
34
+ stopUpdatesLoop;
10
35
  constructor(options) {
11
36
  this.options = options;
12
37
  this.log = new logger_js_1.LogManager('worker');
13
- this._serverUpdatesHandler = () => { };
14
- this._errorHandler = () => { };
15
- this._updateHandler = () => { };
16
- this._connectionStateHandler = () => { };
17
- this._onMessage = (message) => {
18
- switch (message.type) {
19
- case 'log':
20
- this.log.handler(message.color, message.level, message.tag, message.fmt, message.args);
21
- break;
22
- case 'server_update':
23
- this._serverUpdatesHandler(message.update);
24
- break;
25
- case 'conn_state':
26
- this._connectionStateHandler(message.state);
27
- break;
28
- case 'update': {
29
- const peers = new peers_index_js_1.PeersIndex(message.users, message.chats);
30
- peers.hasMin = message.hasMin;
31
- this._updateHandler(message.update, peers);
32
- break;
33
- }
34
- case 'result':
35
- this._invoker.handleResult(message);
36
- break;
37
- case 'error':
38
- this.emitError(message.error);
39
- break;
40
- }
41
- };
42
38
  this._connection = this.connectToWorker(this.options.worker, this._onMessage);
43
39
  this._invoker = new invoker_js_1.WorkerInvoker(this._connection[0]);
44
- this._bind = this._invoker.makeBinder('client');
45
40
  this.storage = new storage_js_1.TelegramStorageProxy(this._invoker);
46
41
  this.appConfig = new app_config_js_1.AppConfigManagerProxy(this._invoker);
47
- this._destroyed = false;
48
- this.prepare = this._bind('prepare');
49
- this._connect = this._bind('connect');
50
- this.close = this._bind('close');
51
- this.notifyLoggedIn = this._bind('notifyLoggedIn');
52
- this.notifyLoggedOut = this._bind('notifyLoggedOut');
53
- this.notifyChannelOpened = this._bind('notifyChannelOpened');
54
- this.notifyChannelClosed = this._bind('notifyChannelClosed');
55
- this.call = this._bind('call');
56
- this.importSession = this._bind('importSession');
57
- this.exportSession = this._bind('exportSession');
58
- this.handleClientUpdate = this._bind('handleClientUpdate', true);
59
- this.getApiCrenetials = this._bind('getApiCrenetials');
60
- this.getPoolSize = this._bind('getPoolSize');
61
- this.getPrimaryDcId = this._bind('getPrimaryDcId');
62
- this.computeSrpParams = this._bind('computeSrpParams');
63
- this.computeNewPasswordHash = this._bind('computeNewPasswordHash');
64
- this.startUpdatesLoop = this._bind('startUpdatesLoop');
65
- this.stopUpdatesLoop = this._bind('stopUpdatesLoop');
42
+ const bind = this._invoker.makeBinder('client');
43
+ this.prepare = bind('prepare');
44
+ this._connect = bind('connect');
45
+ this.close = bind('close');
46
+ this.notifyLoggedIn = bind('notifyLoggedIn');
47
+ this.notifyLoggedOut = bind('notifyLoggedOut');
48
+ this.notifyChannelOpened = bind('notifyChannelOpened');
49
+ this.notifyChannelClosed = bind('notifyChannelClosed');
50
+ this.call = bind('call');
51
+ this.importSession = bind('importSession');
52
+ this.exportSession = bind('exportSession');
53
+ this.handleClientUpdate = bind('handleClientUpdate', true);
54
+ this.getApiCrenetials = bind('getApiCrenetials');
55
+ this.getPoolSize = bind('getPoolSize');
56
+ this.getPrimaryDcId = bind('getPrimaryDcId');
57
+ this.computeSrpParams = bind('computeSrpParams');
58
+ this.computeNewPasswordHash = bind('computeNewPasswordHash');
59
+ this.startUpdatesLoop = bind('startUpdatesLoop');
60
+ this.stopUpdatesLoop = bind('stopUpdatesLoop');
66
61
  }
62
+ _serverUpdatesHandler = () => { };
67
63
  onServerUpdate(handler) {
68
64
  this._serverUpdatesHandler = handler;
69
65
  }
66
+ _errorHandler = () => { };
70
67
  onError(handler) {
71
68
  this._errorHandler = handler;
72
69
  }
73
70
  emitError(err) {
74
71
  this._errorHandler(err);
75
72
  }
73
+ _updateHandler = () => { };
76
74
  onUpdate(handler) {
77
75
  this._updateHandler = handler;
78
76
  }
77
+ _connectionStateHandler = () => { };
79
78
  onConnectionState(handler) {
80
79
  this._connectionStateHandler = handler;
81
80
  }
81
+ _onMessage = (message) => {
82
+ switch (message.type) {
83
+ case 'log':
84
+ this.log.handler(message.color, message.level, message.tag, message.fmt, message.args);
85
+ break;
86
+ case 'server_update':
87
+ this._serverUpdatesHandler(message.update);
88
+ break;
89
+ case 'conn_state':
90
+ this._connectionStateHandler(message.state);
91
+ break;
92
+ case 'update': {
93
+ const peers = new peers_index_js_1.PeersIndex(message.users, message.chats);
94
+ peers.hasMin = message.hasMin;
95
+ this._updateHandler(message.update, peers);
96
+ break;
97
+ }
98
+ case 'result':
99
+ this._invoker.handleResult(message);
100
+ break;
101
+ case 'error':
102
+ this.emitError(message.error);
103
+ break;
104
+ }
105
+ };
106
+ _destroyed = false;
82
107
  destroy(terminate = false) {
83
108
  if (this._destroyed)
84
109
  return;