@mtcute/core 0.10.2 → 0.11.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 (963) 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 +3 -2
  5. package/cjs/highlevel/client.js +1 -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/_init.js.map +1 -1
  10. package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
  11. package/cjs/highlevel/methods/auth/start.js.map +1 -1
  12. package/cjs/highlevel/methods/auth/utils.js.map +1 -1
  13. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  14. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  15. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
  17. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
  18. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  19. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
  20. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  21. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
  22. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  23. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
  24. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
  25. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  26. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
  27. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  28. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  29. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  30. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  31. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  32. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
  33. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  34. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
  35. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
  36. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  37. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  38. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
  39. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
  40. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  41. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
  42. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  43. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  44. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  45. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  46. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  47. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  48. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  49. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  50. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  51. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
  52. package/cjs/highlevel/methods/files/download-iterable.js +1 -1
  53. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  54. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
  55. package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
  56. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  57. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
  58. package/cjs/highlevel/methods/files/normalize-input-media.js +1 -2
  59. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  60. package/cjs/highlevel/methods/files/upload-file.js +7 -6
  61. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  62. package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
  63. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  64. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  65. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  66. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  67. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  68. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
  69. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  70. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  71. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  72. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  73. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  74. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  75. package/cjs/highlevel/methods/messages/get-history.js +5 -1
  76. package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
  77. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  78. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
  79. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  80. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
  81. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
  82. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
  83. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  84. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  85. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  86. package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
  87. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
  88. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
  89. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  90. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
  91. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
  92. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  93. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  94. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
  95. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  96. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  97. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
  98. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
  99. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  100. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  101. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
  102. package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
  103. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
  104. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  105. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  106. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  107. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
  108. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  109. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  110. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  111. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  112. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
  113. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
  114. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
  115. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  116. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  117. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  118. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  119. package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
  120. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  121. package/cjs/highlevel/methods/users/get-users.js.map +1 -1
  122. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  123. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  124. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
  125. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  126. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  127. package/cjs/highlevel/storage/service/current-user.js +2 -0
  128. package/cjs/highlevel/storage/service/current-user.js.map +1 -1
  129. package/cjs/highlevel/storage/service/peers.js +5 -1
  130. package/cjs/highlevel/storage/service/peers.js.map +1 -1
  131. package/cjs/highlevel/storage/service/ref-messages.js +3 -0
  132. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
  133. package/cjs/highlevel/storage/service/updates.js +1 -0
  134. package/cjs/highlevel/storage/service/updates.js.map +1 -1
  135. package/cjs/highlevel/storage/storage.d.ts +1 -1
  136. package/cjs/highlevel/storage/storage.js +17 -4
  137. package/cjs/highlevel/storage/storage.js.map +1 -1
  138. package/cjs/highlevel/types/auth/sent-code.js +1 -0
  139. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  140. package/cjs/highlevel/types/bots/game-high-score.js +2 -0
  141. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
  142. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
  143. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
  144. package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
  145. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
  146. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
  147. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
  148. package/cjs/highlevel/types/conversation.js +13 -7
  149. package/cjs/highlevel/types/conversation.js.map +1 -1
  150. package/cjs/highlevel/types/errors.js +3 -0
  151. package/cjs/highlevel/types/errors.js.map +1 -1
  152. package/cjs/highlevel/types/files/file-location.js +3 -0
  153. package/cjs/highlevel/types/files/file-location.js.map +1 -1
  154. package/cjs/highlevel/types/files/uploaded-file.js +1 -1
  155. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
  156. package/cjs/highlevel/types/files/utils.d.ts +3 -3
  157. package/cjs/highlevel/types/files/utils.js.map +1 -1
  158. package/cjs/highlevel/types/files/web-document.js +1 -0
  159. package/cjs/highlevel/types/files/web-document.js.map +1 -1
  160. package/cjs/highlevel/types/media/audio.js +3 -2
  161. package/cjs/highlevel/types/media/audio.js.map +1 -1
  162. package/cjs/highlevel/types/media/contact.js +2 -1
  163. package/cjs/highlevel/types/media/contact.js.map +1 -1
  164. package/cjs/highlevel/types/media/dice.js +125 -124
  165. package/cjs/highlevel/types/media/dice.js.map +1 -1
  166. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  167. package/cjs/highlevel/types/media/document.js +2 -4
  168. package/cjs/highlevel/types/media/document.js.map +1 -1
  169. package/cjs/highlevel/types/media/game.js +2 -1
  170. package/cjs/highlevel/types/media/game.js.map +1 -1
  171. package/cjs/highlevel/types/media/invoice.js +4 -1
  172. package/cjs/highlevel/types/media/invoice.js.map +1 -1
  173. package/cjs/highlevel/types/media/location.js +4 -5
  174. package/cjs/highlevel/types/media/location.js.map +1 -1
  175. package/cjs/highlevel/types/media/photo.js +8 -1
  176. package/cjs/highlevel/types/media/photo.js.map +1 -1
  177. package/cjs/highlevel/types/media/poll.js +4 -1
  178. package/cjs/highlevel/types/media/poll.js.map +1 -1
  179. package/cjs/highlevel/types/media/sticker.js +3 -1
  180. package/cjs/highlevel/types/media/sticker.js.map +1 -1
  181. package/cjs/highlevel/types/media/story.js +3 -1
  182. package/cjs/highlevel/types/media/story.js.map +1 -1
  183. package/cjs/highlevel/types/media/thumbnail.js +35 -22
  184. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  185. package/cjs/highlevel/types/media/venue.js +2 -1
  186. package/cjs/highlevel/types/media/venue.js.map +1 -1
  187. package/cjs/highlevel/types/media/video.js +3 -1
  188. package/cjs/highlevel/types/media/video.js.map +1 -1
  189. package/cjs/highlevel/types/media/voice.js +2 -1
  190. package/cjs/highlevel/types/media/voice.js.map +1 -1
  191. package/cjs/highlevel/types/media/web-page.js +2 -1
  192. package/cjs/highlevel/types/media/web-page.js.map +1 -1
  193. package/cjs/highlevel/types/messages/dialog.js +3 -0
  194. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  195. package/cjs/highlevel/types/messages/draft-message.js +1 -0
  196. package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
  197. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  198. package/cjs/highlevel/types/messages/message-entity.js +2 -0
  199. package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
  200. package/cjs/highlevel/types/messages/message-forward.js +2 -0
  201. package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
  202. package/cjs/highlevel/types/messages/message-media.js.map +1 -1
  203. package/cjs/highlevel/types/messages/message-reactions.js +4 -0
  204. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
  205. package/cjs/highlevel/types/messages/message-replies.js +2 -0
  206. package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
  207. package/cjs/highlevel/types/messages/message.js +6 -0
  208. package/cjs/highlevel/types/messages/message.js.map +1 -1
  209. package/cjs/highlevel/types/messages/replied-message.js +2 -0
  210. package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
  211. package/cjs/highlevel/types/misc/sticker-set.js +7 -1
  212. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  213. package/cjs/highlevel/types/misc/takeout-session.js +5 -0
  214. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
  215. package/cjs/highlevel/types/peers/chat-colors.js +2 -0
  216. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
  217. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
  218. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
  219. package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
  220. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
  221. package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
  222. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  223. package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
  224. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
  225. package/cjs/highlevel/types/peers/chat-location.js +1 -0
  226. package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
  227. package/cjs/highlevel/types/peers/chat-member.js +2 -0
  228. package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
  229. package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
  230. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
  231. package/cjs/highlevel/types/peers/chat-photo.js +5 -0
  232. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  233. package/cjs/highlevel/types/peers/chat-preview.js +2 -0
  234. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
  235. package/cjs/highlevel/types/peers/chat.js +12 -1
  236. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  237. package/cjs/highlevel/types/peers/forum-topic.js +9 -6
  238. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
  239. package/cjs/highlevel/types/peers/peer.js.map +1 -1
  240. package/cjs/highlevel/types/peers/peers-index.js +3 -1
  241. package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
  242. package/cjs/highlevel/types/peers/user.js +5 -1
  243. package/cjs/highlevel/types/peers/user.js.map +1 -1
  244. package/cjs/highlevel/types/premium/boost-slot.js +2 -0
  245. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
  246. package/cjs/highlevel/types/premium/boost-stats.js +1 -0
  247. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
  248. package/cjs/highlevel/types/premium/boost.js +2 -0
  249. package/cjs/highlevel/types/premium/boost.js.map +1 -1
  250. package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
  251. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
  252. package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
  253. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
  254. package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
  255. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
  256. package/cjs/highlevel/types/reactions/types.js.map +1 -1
  257. package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
  258. package/cjs/highlevel/types/stories/all-stories.js +3 -1
  259. package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
  260. package/cjs/highlevel/types/stories/interactive/base.js +1 -0
  261. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
  262. package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
  263. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  264. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
  265. package/cjs/highlevel/types/stories/interactive/input.js +1 -0
  266. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
  267. package/cjs/highlevel/types/stories/interactive/location.js +2 -1
  268. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
  269. package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
  270. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
  271. package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
  272. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
  273. package/cjs/highlevel/types/stories/peer-stories.js +2 -0
  274. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
  275. package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
  276. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
  277. package/cjs/highlevel/types/stories/story-interactions.js +2 -0
  278. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
  279. package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
  280. package/cjs/highlevel/types/stories/story-viewer.js +6 -0
  281. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
  282. package/cjs/highlevel/types/stories/story.js +2 -0
  283. package/cjs/highlevel/types/stories/story.js.map +1 -1
  284. package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
  285. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  286. package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
  287. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
  288. package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
  289. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
  290. package/cjs/highlevel/types/updates/callback-query.js +4 -0
  291. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  292. package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
  293. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
  294. package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
  295. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
  296. package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
  297. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  298. package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
  299. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
  300. package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
  301. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
  302. package/cjs/highlevel/types/updates/history-read-update.js +1 -0
  303. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
  304. package/cjs/highlevel/types/updates/inline-query.js +2 -0
  305. package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
  306. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  307. package/cjs/highlevel/types/updates/poll-update.js +2 -0
  308. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  309. package/cjs/highlevel/types/updates/poll-vote.js +2 -0
  310. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
  311. package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
  312. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  313. package/cjs/highlevel/types/updates/story-update.js +2 -0
  314. package/cjs/highlevel/types/updates/story-update.js.map +1 -1
  315. package/cjs/highlevel/types/updates/user-status-update.js +1 -0
  316. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  317. package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
  318. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
  319. package/cjs/highlevel/updates/manager.d.ts +1 -1
  320. package/cjs/highlevel/updates/manager.js +50 -28
  321. package/cjs/highlevel/updates/manager.js.map +1 -1
  322. package/cjs/highlevel/updates/parsed.js.map +1 -1
  323. package/cjs/highlevel/updates/utils.js.map +1 -1
  324. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  325. package/cjs/highlevel/utils/entities.js.map +1 -1
  326. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  327. package/cjs/highlevel/utils/file-type.js +35 -1
  328. package/cjs/highlevel/utils/file-type.js.map +1 -1
  329. package/cjs/highlevel/utils/file-utils.js +1 -1
  330. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  331. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  332. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  333. package/cjs/highlevel/utils/memoize.js.map +1 -1
  334. package/cjs/highlevel/utils/peer-utils.js.map +1 -1
  335. package/cjs/highlevel/utils/query-batcher.js.map +1 -1
  336. package/cjs/highlevel/utils/rps-meter.js +3 -0
  337. package/cjs/highlevel/utils/rps-meter.js.map +1 -1
  338. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  339. package/cjs/highlevel/utils/string-session.d.ts +1 -2
  340. package/cjs/highlevel/utils/string-session.js +27 -7
  341. package/cjs/highlevel/utils/string-session.js.map +1 -1
  342. package/cjs/highlevel/utils/voice-utils.js.map +1 -1
  343. package/cjs/highlevel/worker/app-config.d.ts +2 -3
  344. package/cjs/highlevel/worker/app-config.js +6 -3
  345. package/cjs/highlevel/worker/app-config.js.map +1 -1
  346. package/cjs/highlevel/worker/errors.js.map +1 -1
  347. package/cjs/highlevel/worker/invoker.js +3 -2
  348. package/cjs/highlevel/worker/invoker.js.map +1 -1
  349. package/cjs/highlevel/worker/port.d.ts +16 -17
  350. package/cjs/highlevel/worker/port.js +74 -49
  351. package/cjs/highlevel/worker/port.js.map +1 -1
  352. package/cjs/highlevel/worker/protocol.d.ts +2 -2
  353. package/cjs/highlevel/worker/protocol.js.map +1 -1
  354. package/cjs/highlevel/worker/storage.d.ts +9 -13
  355. package/cjs/highlevel/worker/storage.js +34 -19
  356. package/cjs/highlevel/worker/storage.js.map +1 -1
  357. package/cjs/highlevel/worker/worker.js +3 -0
  358. package/cjs/highlevel/worker/worker.js.map +1 -1
  359. package/cjs/network/auth-key.js +8 -1
  360. package/cjs/network/auth-key.js.map +1 -1
  361. package/cjs/network/authorization.js.map +1 -1
  362. package/cjs/network/client.d.ts +1 -1
  363. package/cjs/network/client.js +39 -14
  364. package/cjs/network/client.js.map +1 -1
  365. package/cjs/network/config-manager.js.map +1 -1
  366. package/cjs/network/mtproto-session.d.ts +1 -1
  367. package/cjs/network/mtproto-session.js +40 -30
  368. package/cjs/network/mtproto-session.js.map +1 -1
  369. package/cjs/network/multi-session-connection.d.ts +2 -2
  370. package/cjs/network/multi-session-connection.js +13 -7
  371. package/cjs/network/multi-session-connection.js.map +1 -1
  372. package/cjs/network/network-manager.d.ts +2 -3
  373. package/cjs/network/network-manager.js +49 -28
  374. package/cjs/network/network-manager.js.map +1 -1
  375. package/cjs/network/persistent-connection.d.ts +3 -3
  376. package/cjs/network/persistent-connection.js +33 -22
  377. package/cjs/network/persistent-connection.js.map +1 -1
  378. package/cjs/network/server-salt.js +4 -5
  379. package/cjs/network/server-salt.js.map +1 -1
  380. package/cjs/network/session-connection.d.ts +1 -1
  381. package/cjs/network/session-connection.js +22 -12
  382. package/cjs/network/session-connection.js.map +1 -1
  383. package/cjs/network/transports/abstract.d.ts +2 -2
  384. package/cjs/network/transports/abstract.js +1 -0
  385. package/cjs/network/transports/abstract.js.map +1 -1
  386. package/cjs/network/transports/intermediate.js +1 -0
  387. package/cjs/network/transports/intermediate.js.map +1 -1
  388. package/cjs/network/transports/obfuscated.js +3 -0
  389. package/cjs/network/transports/obfuscated.js.map +1 -1
  390. package/cjs/network/transports/streamed.d.ts +1 -1
  391. package/cjs/network/transports/streamed.js +1 -4
  392. package/cjs/network/transports/streamed.js.map +1 -1
  393. package/cjs/network/transports/wrapped.d.ts +1 -1
  394. package/cjs/network/transports/wrapped.js +2 -0
  395. package/cjs/network/transports/wrapped.js.map +1 -1
  396. package/cjs/platform.js.map +1 -1
  397. package/cjs/storage/driver.js +3 -4
  398. package/cjs/storage/driver.js.map +1 -1
  399. package/cjs/storage/memory/driver.js +1 -3
  400. package/cjs/storage/memory/driver.js.map +1 -1
  401. package/cjs/storage/memory/index.js +5 -7
  402. package/cjs/storage/memory/index.js.map +1 -1
  403. package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
  404. package/cjs/storage/memory/repository/auth-keys.js +2 -0
  405. package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
  406. package/cjs/storage/memory/repository/kv.d.ts +1 -1
  407. package/cjs/storage/memory/repository/kv.js +2 -0
  408. package/cjs/storage/memory/repository/kv.js.map +1 -1
  409. package/cjs/storage/memory/repository/peers.d.ts +1 -1
  410. package/cjs/storage/memory/repository/peers.js +2 -0
  411. package/cjs/storage/memory/repository/peers.js.map +1 -1
  412. package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
  413. package/cjs/storage/memory/repository/ref-messages.js +2 -0
  414. package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
  415. package/cjs/storage/service/auth-keys.js +2 -0
  416. package/cjs/storage/service/auth-keys.js.map +1 -1
  417. package/cjs/storage/service/base.js +4 -0
  418. package/cjs/storage/service/base.js.map +1 -1
  419. package/cjs/storage/service/default-dcs.js +2 -0
  420. package/cjs/storage/service/default-dcs.js.map +1 -1
  421. package/cjs/storage/service/future-salts.js +2 -1
  422. package/cjs/storage/service/future-salts.js.map +1 -1
  423. package/cjs/storage/sqlite/driver.js +10 -10
  424. package/cjs/storage/sqlite/driver.js.map +1 -1
  425. package/cjs/storage/sqlite/index.d.ts +1 -1
  426. package/cjs/storage/sqlite/index.js +5 -0
  427. package/cjs/storage/sqlite/index.js.map +1 -1
  428. package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
  429. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
  430. package/cjs/storage/sqlite/repository/kv.js +5 -0
  431. package/cjs/storage/sqlite/repository/kv.js.map +1 -1
  432. package/cjs/storage/sqlite/repository/peers.js +6 -0
  433. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  434. package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
  435. package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
  436. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
  437. package/cjs/storage/storage.d.ts +1 -3
  438. package/cjs/storage/storage.js +21 -13
  439. package/cjs/storage/storage.js.map +1 -1
  440. package/cjs/types/errors.js +13 -0
  441. package/cjs/types/errors.js.map +1 -1
  442. package/cjs/utils/async-lock.js +1 -3
  443. package/cjs/utils/async-lock.js.map +1 -1
  444. package/cjs/utils/bigint-utils.js.map +1 -1
  445. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  446. package/cjs/utils/buffer-utils.js.map +1 -1
  447. package/cjs/utils/condition-variable.js +2 -0
  448. package/cjs/utils/condition-variable.js.map +1 -1
  449. package/cjs/utils/crypto/factorization.js.map +1 -1
  450. package/cjs/utils/crypto/keys.js.map +1 -1
  451. package/cjs/utils/crypto/miller-rabin.js.map +1 -1
  452. package/cjs/utils/crypto/password.js.map +1 -1
  453. package/cjs/utils/crypto/utils.js.map +1 -1
  454. package/cjs/utils/dcs.js +1 -1
  455. package/cjs/utils/dcs.js.map +1 -1
  456. package/cjs/utils/deque.js +8 -2
  457. package/cjs/utils/deque.js.map +1 -1
  458. package/cjs/utils/early-timer.js +4 -1
  459. package/cjs/utils/early-timer.js.map +1 -1
  460. package/cjs/utils/error-reporting.js.map +1 -1
  461. package/cjs/utils/function-utils.js.map +1 -1
  462. package/cjs/utils/linked-list.js +4 -1
  463. package/cjs/utils/linked-list.js.map +1 -1
  464. package/cjs/utils/links/bots.js.map +1 -1
  465. package/cjs/utils/links/chat.js.map +1 -1
  466. package/cjs/utils/links/common.js.map +1 -1
  467. package/cjs/utils/links/misc.js.map +1 -1
  468. package/cjs/utils/logger.d.ts +2 -2
  469. package/cjs/utils/logger.js +21 -14
  470. package/cjs/utils/logger.js.map +1 -1
  471. package/cjs/utils/long-utils.js +2 -6
  472. package/cjs/utils/long-utils.js.map +1 -1
  473. package/cjs/utils/lru-map.js +5 -1
  474. package/cjs/utils/lru-map.js.map +1 -1
  475. package/cjs/utils/lru-set.js +4 -0
  476. package/cjs/utils/lru-set.js.map +1 -1
  477. package/cjs/utils/peer-utils.js.map +1 -1
  478. package/cjs/utils/reloadable.d.ts +1 -1
  479. package/cjs/utils/reloadable.js +10 -7
  480. package/cjs/utils/reloadable.js.map +1 -1
  481. package/cjs/utils/sorted-array.js +2 -0
  482. package/cjs/utils/sorted-array.js.map +1 -1
  483. package/cjs/utils/tl-json.js.map +1 -1
  484. package/cjs/utils/type-assertions.js.map +1 -1
  485. package/esm/highlevel/base.d.ts +1 -1
  486. package/esm/highlevel/base.js +29 -23
  487. package/esm/highlevel/base.js.map +1 -1
  488. package/esm/highlevel/client.d.ts +2 -1
  489. package/esm/highlevel/client.js +1 -0
  490. package/esm/highlevel/client.js.map +1 -1
  491. package/esm/highlevel/managers/app-config-manager.js +7 -5
  492. package/esm/highlevel/managers/app-config-manager.js.map +1 -1
  493. package/esm/highlevel/methods/_init.js.map +1 -1
  494. package/esm/highlevel/methods/auth/start-test.js.map +1 -1
  495. package/esm/highlevel/methods/auth/start.js.map +1 -1
  496. package/esm/highlevel/methods/auth/utils.js.map +1 -1
  497. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  498. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  499. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  500. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
  501. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
  502. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  503. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
  504. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  505. package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
  506. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  507. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
  508. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
  509. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  510. package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
  511. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  512. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  513. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  514. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  515. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  516. package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
  517. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  518. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
  519. package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
  520. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  521. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  522. package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
  523. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
  524. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  525. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
  526. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  527. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  528. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  529. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  530. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  531. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  532. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  533. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  534. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  535. package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
  536. package/esm/highlevel/methods/files/download-iterable.js +1 -1
  537. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  538. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
  539. package/esm/highlevel/methods/files/download-stream.js.map +1 -1
  540. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  541. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
  542. package/esm/highlevel/methods/files/normalize-input-media.js +1 -2
  543. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  544. package/esm/highlevel/methods/files/upload-file.js +8 -7
  545. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  546. package/esm/highlevel/methods/files/upload-media.js.map +1 -1
  547. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  548. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  549. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  550. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  551. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  552. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
  553. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  554. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  555. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  556. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  557. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  558. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  559. package/esm/highlevel/methods/messages/get-history.js +5 -1
  560. package/esm/highlevel/methods/messages/get-history.js.map +1 -1
  561. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  562. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
  563. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  564. package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
  565. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
  566. package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
  567. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  568. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  569. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  570. package/esm/highlevel/methods/messages/read-history.js.map +1 -1
  571. package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
  572. package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
  573. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  574. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
  575. package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
  576. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  577. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  578. package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
  579. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  580. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  581. package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
  582. package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
  583. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  584. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  585. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
  586. package/esm/highlevel/methods/misc/with-params.js.map +1 -1
  587. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
  588. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  589. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  590. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  591. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
  592. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  593. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  594. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  595. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  596. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
  597. package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
  598. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
  599. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  600. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  601. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  602. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  603. package/esm/highlevel/methods/stories/send-story.js.map +1 -1
  604. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  605. package/esm/highlevel/methods/users/get-users.js.map +1 -1
  606. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  607. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  608. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
  609. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  610. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  611. package/esm/highlevel/storage/service/current-user.js +2 -0
  612. package/esm/highlevel/storage/service/current-user.js.map +1 -1
  613. package/esm/highlevel/storage/service/peers.js +5 -1
  614. package/esm/highlevel/storage/service/peers.js.map +1 -1
  615. package/esm/highlevel/storage/service/ref-messages.js +3 -0
  616. package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
  617. package/esm/highlevel/storage/service/updates.js +1 -0
  618. package/esm/highlevel/storage/service/updates.js.map +1 -1
  619. package/esm/highlevel/storage/storage.d.ts +1 -1
  620. package/esm/highlevel/storage/storage.js +17 -4
  621. package/esm/highlevel/storage/storage.js.map +1 -1
  622. package/esm/highlevel/types/auth/sent-code.js +1 -0
  623. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  624. package/esm/highlevel/types/bots/game-high-score.js +2 -0
  625. package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
  626. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
  627. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
  628. package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
  629. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
  630. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
  631. package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
  632. package/esm/highlevel/types/conversation.js +13 -7
  633. package/esm/highlevel/types/conversation.js.map +1 -1
  634. package/esm/highlevel/types/errors.js +3 -0
  635. package/esm/highlevel/types/errors.js.map +1 -1
  636. package/esm/highlevel/types/files/file-location.js +3 -0
  637. package/esm/highlevel/types/files/file-location.js.map +1 -1
  638. package/esm/highlevel/types/files/uploaded-file.js +1 -1
  639. package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
  640. package/esm/highlevel/types/files/utils.d.ts +1 -1
  641. package/esm/highlevel/types/files/utils.js.map +1 -1
  642. package/esm/highlevel/types/files/web-document.js +1 -0
  643. package/esm/highlevel/types/files/web-document.js.map +1 -1
  644. package/esm/highlevel/types/media/audio.js +3 -2
  645. package/esm/highlevel/types/media/audio.js.map +1 -1
  646. package/esm/highlevel/types/media/contact.js +2 -1
  647. package/esm/highlevel/types/media/contact.js.map +1 -1
  648. package/esm/highlevel/types/media/dice.js +125 -124
  649. package/esm/highlevel/types/media/dice.js.map +1 -1
  650. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  651. package/esm/highlevel/types/media/document.js +2 -4
  652. package/esm/highlevel/types/media/document.js.map +1 -1
  653. package/esm/highlevel/types/media/game.js +2 -1
  654. package/esm/highlevel/types/media/game.js.map +1 -1
  655. package/esm/highlevel/types/media/invoice.js +4 -1
  656. package/esm/highlevel/types/media/invoice.js.map +1 -1
  657. package/esm/highlevel/types/media/location.js +4 -5
  658. package/esm/highlevel/types/media/location.js.map +1 -1
  659. package/esm/highlevel/types/media/photo.js +8 -1
  660. package/esm/highlevel/types/media/photo.js.map +1 -1
  661. package/esm/highlevel/types/media/poll.js +4 -1
  662. package/esm/highlevel/types/media/poll.js.map +1 -1
  663. package/esm/highlevel/types/media/sticker.js +3 -1
  664. package/esm/highlevel/types/media/sticker.js.map +1 -1
  665. package/esm/highlevel/types/media/story.js +3 -1
  666. package/esm/highlevel/types/media/story.js.map +1 -1
  667. package/esm/highlevel/types/media/thumbnail.js +35 -22
  668. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  669. package/esm/highlevel/types/media/venue.js +2 -1
  670. package/esm/highlevel/types/media/venue.js.map +1 -1
  671. package/esm/highlevel/types/media/video.js +3 -1
  672. package/esm/highlevel/types/media/video.js.map +1 -1
  673. package/esm/highlevel/types/media/voice.js +2 -1
  674. package/esm/highlevel/types/media/voice.js.map +1 -1
  675. package/esm/highlevel/types/media/web-page.js +2 -1
  676. package/esm/highlevel/types/media/web-page.js.map +1 -1
  677. package/esm/highlevel/types/messages/dialog.js +3 -0
  678. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  679. package/esm/highlevel/types/messages/draft-message.js +1 -0
  680. package/esm/highlevel/types/messages/draft-message.js.map +1 -1
  681. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  682. package/esm/highlevel/types/messages/message-entity.js +2 -0
  683. package/esm/highlevel/types/messages/message-entity.js.map +1 -1
  684. package/esm/highlevel/types/messages/message-forward.js +2 -0
  685. package/esm/highlevel/types/messages/message-forward.js.map +1 -1
  686. package/esm/highlevel/types/messages/message-media.js.map +1 -1
  687. package/esm/highlevel/types/messages/message-reactions.js +4 -0
  688. package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
  689. package/esm/highlevel/types/messages/message-replies.js +2 -0
  690. package/esm/highlevel/types/messages/message-replies.js.map +1 -1
  691. package/esm/highlevel/types/messages/message.js +6 -0
  692. package/esm/highlevel/types/messages/message.js.map +1 -1
  693. package/esm/highlevel/types/messages/replied-message.js +2 -0
  694. package/esm/highlevel/types/messages/replied-message.js.map +1 -1
  695. package/esm/highlevel/types/misc/sticker-set.js +7 -1
  696. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  697. package/esm/highlevel/types/misc/takeout-session.js +5 -0
  698. package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
  699. package/esm/highlevel/types/peers/chat-colors.js +2 -0
  700. package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
  701. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
  702. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
  703. package/esm/highlevel/types/peers/chat-event/index.js +2 -0
  704. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
  705. package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
  706. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  707. package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
  708. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
  709. package/esm/highlevel/types/peers/chat-location.js +1 -0
  710. package/esm/highlevel/types/peers/chat-location.js.map +1 -1
  711. package/esm/highlevel/types/peers/chat-member.js +2 -0
  712. package/esm/highlevel/types/peers/chat-member.js.map +1 -1
  713. package/esm/highlevel/types/peers/chat-permissions.js +1 -0
  714. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
  715. package/esm/highlevel/types/peers/chat-photo.js +5 -0
  716. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  717. package/esm/highlevel/types/peers/chat-preview.js +2 -0
  718. package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
  719. package/esm/highlevel/types/peers/chat.js +12 -1
  720. package/esm/highlevel/types/peers/chat.js.map +1 -1
  721. package/esm/highlevel/types/peers/forum-topic.js +9 -6
  722. package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
  723. package/esm/highlevel/types/peers/peer.js.map +1 -1
  724. package/esm/highlevel/types/peers/peers-index.js +3 -1
  725. package/esm/highlevel/types/peers/peers-index.js.map +1 -1
  726. package/esm/highlevel/types/peers/user.js +5 -1
  727. package/esm/highlevel/types/peers/user.js.map +1 -1
  728. package/esm/highlevel/types/premium/boost-slot.js +2 -0
  729. package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
  730. package/esm/highlevel/types/premium/boost-stats.js +1 -0
  731. package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
  732. package/esm/highlevel/types/premium/boost.js +2 -0
  733. package/esm/highlevel/types/premium/boost.js.map +1 -1
  734. package/esm/highlevel/types/reactions/emoji-status.js +1 -0
  735. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
  736. package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
  737. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
  738. package/esm/highlevel/types/reactions/reaction-count.js +1 -0
  739. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
  740. package/esm/highlevel/types/reactions/types.js.map +1 -1
  741. package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
  742. package/esm/highlevel/types/stories/all-stories.js +3 -1
  743. package/esm/highlevel/types/stories/all-stories.js.map +1 -1
  744. package/esm/highlevel/types/stories/interactive/base.js +1 -0
  745. package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
  746. package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
  747. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  748. package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
  749. package/esm/highlevel/types/stories/interactive/input.js +1 -0
  750. package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
  751. package/esm/highlevel/types/stories/interactive/location.js +2 -1
  752. package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
  753. package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
  754. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
  755. package/esm/highlevel/types/stories/interactive/venue.js +2 -1
  756. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
  757. package/esm/highlevel/types/stories/peer-stories.js +2 -0
  758. package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
  759. package/esm/highlevel/types/stories/stealth-mode.js +1 -0
  760. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
  761. package/esm/highlevel/types/stories/story-interactions.js +2 -0
  762. package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
  763. package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
  764. package/esm/highlevel/types/stories/story-viewer.js +6 -0
  765. package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
  766. package/esm/highlevel/types/stories/story.js +2 -0
  767. package/esm/highlevel/types/stories/story.js.map +1 -1
  768. package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
  769. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  770. package/esm/highlevel/types/updates/bot-reaction.js +4 -0
  771. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
  772. package/esm/highlevel/types/updates/bot-stopped.js +2 -0
  773. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
  774. package/esm/highlevel/types/updates/callback-query.js +4 -0
  775. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  776. package/esm/highlevel/types/updates/chat-join-request.js +2 -0
  777. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
  778. package/esm/highlevel/types/updates/chat-member-update.js +2 -0
  779. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
  780. package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
  781. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  782. package/esm/highlevel/types/updates/delete-message-update.js +1 -0
  783. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
  784. package/esm/highlevel/types/updates/delete-story-update.js +2 -0
  785. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
  786. package/esm/highlevel/types/updates/history-read-update.js +1 -0
  787. package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
  788. package/esm/highlevel/types/updates/inline-query.js +2 -0
  789. package/esm/highlevel/types/updates/inline-query.js.map +1 -1
  790. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  791. package/esm/highlevel/types/updates/poll-update.js +2 -0
  792. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  793. package/esm/highlevel/types/updates/poll-vote.js +2 -0
  794. package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
  795. package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
  796. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  797. package/esm/highlevel/types/updates/story-update.js +2 -0
  798. package/esm/highlevel/types/updates/story-update.js.map +1 -1
  799. package/esm/highlevel/types/updates/user-status-update.js +1 -0
  800. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  801. package/esm/highlevel/types/updates/user-typing-update.js +1 -0
  802. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
  803. package/esm/highlevel/updates/manager.js +50 -28
  804. package/esm/highlevel/updates/manager.js.map +1 -1
  805. package/esm/highlevel/updates/parsed.js.map +1 -1
  806. package/esm/highlevel/updates/utils.js.map +1 -1
  807. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  808. package/esm/highlevel/utils/entities.js.map +1 -1
  809. package/esm/highlevel/utils/file-type.d.ts +1 -0
  810. package/esm/highlevel/utils/file-type.js +34 -0
  811. package/esm/highlevel/utils/file-type.js.map +1 -1
  812. package/esm/highlevel/utils/file-utils.js +1 -1
  813. package/esm/highlevel/utils/file-utils.js.map +1 -1
  814. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  815. package/esm/highlevel/utils/inspectable.js.map +1 -1
  816. package/esm/highlevel/utils/memoize.js.map +1 -1
  817. package/esm/highlevel/utils/peer-utils.js.map +1 -1
  818. package/esm/highlevel/utils/query-batcher.js.map +1 -1
  819. package/esm/highlevel/utils/rps-meter.js +3 -0
  820. package/esm/highlevel/utils/rps-meter.js.map +1 -1
  821. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  822. package/esm/highlevel/utils/string-session.d.ts +1 -2
  823. package/esm/highlevel/utils/string-session.js +27 -7
  824. package/esm/highlevel/utils/string-session.js.map +1 -1
  825. package/esm/highlevel/utils/voice-utils.js.map +1 -1
  826. package/esm/highlevel/worker/app-config.d.ts +2 -3
  827. package/esm/highlevel/worker/app-config.js +6 -3
  828. package/esm/highlevel/worker/app-config.js.map +1 -1
  829. package/esm/highlevel/worker/errors.js.map +1 -1
  830. package/esm/highlevel/worker/invoker.js +3 -2
  831. package/esm/highlevel/worker/invoker.js.map +1 -1
  832. package/esm/highlevel/worker/port.d.ts +16 -17
  833. package/esm/highlevel/worker/port.js +74 -49
  834. package/esm/highlevel/worker/port.js.map +1 -1
  835. package/esm/highlevel/worker/protocol.d.ts +1 -1
  836. package/esm/highlevel/worker/protocol.js.map +1 -1
  837. package/esm/highlevel/worker/storage.d.ts +9 -13
  838. package/esm/highlevel/worker/storage.js +34 -19
  839. package/esm/highlevel/worker/storage.js.map +1 -1
  840. package/esm/highlevel/worker/worker.js +3 -0
  841. package/esm/highlevel/worker/worker.js.map +1 -1
  842. package/esm/network/auth-key.js +8 -1
  843. package/esm/network/auth-key.js.map +1 -1
  844. package/esm/network/authorization.js.map +1 -1
  845. package/esm/network/client.js +39 -14
  846. package/esm/network/client.js.map +1 -1
  847. package/esm/network/config-manager.js.map +1 -1
  848. package/esm/network/mtproto-session.js +40 -30
  849. package/esm/network/mtproto-session.js.map +1 -1
  850. package/esm/network/multi-session-connection.d.ts +1 -1
  851. package/esm/network/multi-session-connection.js +13 -7
  852. package/esm/network/multi-session-connection.js.map +1 -1
  853. package/esm/network/network-manager.d.ts +2 -3
  854. package/esm/network/network-manager.js +49 -28
  855. package/esm/network/network-manager.js.map +1 -1
  856. package/esm/network/persistent-connection.d.ts +2 -2
  857. package/esm/network/persistent-connection.js +33 -22
  858. package/esm/network/persistent-connection.js.map +1 -1
  859. package/esm/network/server-salt.js +4 -5
  860. package/esm/network/server-salt.js.map +1 -1
  861. package/esm/network/session-connection.d.ts +1 -1
  862. package/esm/network/session-connection.js +22 -12
  863. package/esm/network/session-connection.js.map +1 -1
  864. package/esm/network/transports/abstract.d.ts +1 -1
  865. package/esm/network/transports/abstract.js +1 -0
  866. package/esm/network/transports/abstract.js.map +1 -1
  867. package/esm/network/transports/intermediate.js +1 -0
  868. package/esm/network/transports/intermediate.js.map +1 -1
  869. package/esm/network/transports/obfuscated.js +3 -0
  870. package/esm/network/transports/obfuscated.js.map +1 -1
  871. package/esm/network/transports/streamed.js +1 -4
  872. package/esm/network/transports/streamed.js.map +1 -1
  873. package/esm/network/transports/wrapped.js +2 -0
  874. package/esm/network/transports/wrapped.js.map +1 -1
  875. package/esm/platform.js.map +1 -1
  876. package/esm/storage/driver.js +3 -4
  877. package/esm/storage/driver.js.map +1 -1
  878. package/esm/storage/memory/driver.js +1 -3
  879. package/esm/storage/memory/driver.js.map +1 -1
  880. package/esm/storage/memory/index.js +5 -7
  881. package/esm/storage/memory/index.js.map +1 -1
  882. package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
  883. package/esm/storage/memory/repository/auth-keys.js +2 -0
  884. package/esm/storage/memory/repository/auth-keys.js.map +1 -1
  885. package/esm/storage/memory/repository/kv.d.ts +1 -1
  886. package/esm/storage/memory/repository/kv.js +2 -0
  887. package/esm/storage/memory/repository/kv.js.map +1 -1
  888. package/esm/storage/memory/repository/peers.d.ts +1 -1
  889. package/esm/storage/memory/repository/peers.js +2 -0
  890. package/esm/storage/memory/repository/peers.js.map +1 -1
  891. package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
  892. package/esm/storage/memory/repository/ref-messages.js +2 -0
  893. package/esm/storage/memory/repository/ref-messages.js.map +1 -1
  894. package/esm/storage/service/auth-keys.js +2 -0
  895. package/esm/storage/service/auth-keys.js.map +1 -1
  896. package/esm/storage/service/base.js +4 -0
  897. package/esm/storage/service/base.js.map +1 -1
  898. package/esm/storage/service/default-dcs.js +2 -0
  899. package/esm/storage/service/default-dcs.js.map +1 -1
  900. package/esm/storage/service/future-salts.js +2 -1
  901. package/esm/storage/service/future-salts.js.map +1 -1
  902. package/esm/storage/sqlite/driver.js +10 -10
  903. package/esm/storage/sqlite/driver.js.map +1 -1
  904. package/esm/storage/sqlite/index.d.ts +1 -1
  905. package/esm/storage/sqlite/index.js +5 -0
  906. package/esm/storage/sqlite/index.js.map +1 -1
  907. package/esm/storage/sqlite/repository/auth-keys.js +9 -0
  908. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
  909. package/esm/storage/sqlite/repository/kv.js +5 -0
  910. package/esm/storage/sqlite/repository/kv.js.map +1 -1
  911. package/esm/storage/sqlite/repository/peers.js +6 -0
  912. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  913. package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
  914. package/esm/storage/sqlite/repository/ref-messages.js +6 -0
  915. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
  916. package/esm/storage/storage.d.ts +1 -3
  917. package/esm/storage/storage.js +21 -13
  918. package/esm/storage/storage.js.map +1 -1
  919. package/esm/types/errors.js +13 -0
  920. package/esm/types/errors.js.map +1 -1
  921. package/esm/utils/async-lock.js +1 -3
  922. package/esm/utils/async-lock.js.map +1 -1
  923. package/esm/utils/bigint-utils.js.map +1 -1
  924. package/esm/utils/binary/asn1-parser.js.map +1 -1
  925. package/esm/utils/buffer-utils.js.map +1 -1
  926. package/esm/utils/condition-variable.js +2 -0
  927. package/esm/utils/condition-variable.js.map +1 -1
  928. package/esm/utils/crypto/factorization.js.map +1 -1
  929. package/esm/utils/crypto/keys.js.map +1 -1
  930. package/esm/utils/crypto/miller-rabin.js.map +1 -1
  931. package/esm/utils/crypto/password.js.map +1 -1
  932. package/esm/utils/crypto/utils.js.map +1 -1
  933. package/esm/utils/dcs.js +1 -1
  934. package/esm/utils/dcs.js.map +1 -1
  935. package/esm/utils/deque.js +8 -2
  936. package/esm/utils/deque.js.map +1 -1
  937. package/esm/utils/early-timer.js +4 -1
  938. package/esm/utils/early-timer.js.map +1 -1
  939. package/esm/utils/error-reporting.js.map +1 -1
  940. package/esm/utils/function-utils.js.map +1 -1
  941. package/esm/utils/linked-list.js +4 -1
  942. package/esm/utils/linked-list.js.map +1 -1
  943. package/esm/utils/links/bots.js.map +1 -1
  944. package/esm/utils/links/chat.js.map +1 -1
  945. package/esm/utils/links/common.js.map +1 -1
  946. package/esm/utils/links/misc.js.map +1 -1
  947. package/esm/utils/logger.d.ts +2 -2
  948. package/esm/utils/logger.js +21 -14
  949. package/esm/utils/logger.js.map +1 -1
  950. package/esm/utils/long-utils.js +2 -6
  951. package/esm/utils/long-utils.js.map +1 -1
  952. package/esm/utils/lru-map.js +5 -1
  953. package/esm/utils/lru-map.js.map +1 -1
  954. package/esm/utils/lru-set.js +4 -0
  955. package/esm/utils/lru-set.js.map +1 -1
  956. package/esm/utils/peer-utils.js.map +1 -1
  957. package/esm/utils/reloadable.js +10 -7
  958. package/esm/utils/reloadable.js.map +1 -1
  959. package/esm/utils/sorted-array.js +2 -0
  960. package/esm/utils/sorted-array.js.map +1 -1
  961. package/esm/utils/tl-json.js.map +1 -1
  962. package/esm/utils/type-assertions.js.map +1 -1
  963. package/package.json +11 -11
@@ -2,6 +2,26 @@ import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime';
2
2
  import { getPlatform } from '../../platform.js';
3
3
  import { MtArgumentError } from '../../types/index.js';
4
4
  import { parseBasicDcOption, serializeBasicDcOption } from '../../utils/dcs.js';
5
+ function readTlDcOption(reader) {
6
+ const ctorId = reader.uint();
7
+ if (ctorId !== 414687501) {
8
+ throw new MtArgumentError(`Invalid dcOption constructor id: ${ctorId}`);
9
+ }
10
+ const flags = reader.uint();
11
+ const id = reader.int();
12
+ const ipAddress = reader.string();
13
+ const port = reader.int();
14
+ if (flags & 1024) {
15
+ reader.bytes(); // skip secret
16
+ }
17
+ return {
18
+ id,
19
+ ipAddress,
20
+ port,
21
+ ipv6: Boolean(flags & 1),
22
+ mediaOnly: Boolean(flags & 2),
23
+ };
24
+ }
5
25
  export function writeStringSession(data) {
6
26
  const writer = TlBinaryWriter.manual(512);
7
27
  const version = data.version;
@@ -32,13 +52,16 @@ export function writeStringSession(data) {
32
52
  writer.bytes(data.authKey);
33
53
  return getPlatform().base64Encode(writer.result(), true);
34
54
  }
35
- export function readStringSession(readerMap, data) {
55
+ export function readStringSession(data) {
36
56
  const buf = getPlatform().base64Decode(data, true);
37
57
  const version = buf[0];
38
58
  if (version !== 1 && version !== 2 && version !== 3) {
39
59
  throw new Error(`Invalid session string (version = ${version})`);
40
60
  }
41
- const reader = new TlBinaryReader(readerMap, buf, 1);
61
+ if (version < 3) {
62
+ 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.`);
63
+ }
64
+ const reader = TlBinaryReader.manual(buf, 1);
42
65
  const flags = reader.int();
43
66
  const hasSelf = flags & 1;
44
67
  const testMode = Boolean(flags & 2);
@@ -46,11 +69,8 @@ export function readStringSession(readerMap, data) {
46
69
  let primaryDc;
47
70
  let primaryMediaDc;
48
71
  if (version <= 2) {
49
- const primaryDc_ = reader.object();
50
- const primaryMediaDc_ = hasMedia ? reader.object() : primaryDc_;
51
- if (primaryDc_._ !== 'dcOption') {
52
- throw new MtArgumentError(`Invalid session string (dc._ = ${primaryDc_._})`);
53
- }
72
+ const primaryDc_ = readTlDcOption(reader);
73
+ const primaryMediaDc_ = hasMedia ? readTlDcOption(reader) : primaryDc_;
54
74
  primaryDc = primaryDc_;
55
75
  primaryMediaDc = primaryMediaDc_;
56
76
  }
@@ -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":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAA4B,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAWzG,SAAS,cAAc,CAAC,MAAsB;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAE5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,eAAe,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IACvB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAEzB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,EAAE,CAAA,CAAC,cAAc;IACjC,CAAC;IAED,OAAO;QACH,EAAE;QACF,SAAS;QACT,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;KAChC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAuB;IACtD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAE5B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,eAAe,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,CAAA;IACd,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;IAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;IAEf,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACjE,KAAK,IAAI,CAAC,CAAA;IACd,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1D,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAE1B,OAAO,WAAW,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAElD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IAEtB,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAA;IACpE,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CACR,8CAA8C,IAAI,CAAC,KAAK,CACpD,CAAC,EACD,EAAE,CACL,iFAAiF,CACrF,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAE5C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAA;IACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAEnD,IAAI,SAAwB,CAAA;IAC5B,IAAI,cAA6B,CAAA;IAEjC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;QAEtE,SAAS,GAAG,UAAU,CAAA;QACtB,cAAc,GAAG,eAAe,CAAA;IACpC,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAErD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,eAAe,CAAC,oDAAoD,CAAC,CAAA;QACnF,CAAC;QAED,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;QAElF,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,eAAe,CAAC,yDAAyD,CAAC,CAAA;QACxF,CAAC;QAED,SAAS,GAAG,UAAU,CAAA;QACtB,cAAc,GAAG,eAAe,CAAA;IACpC,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,EAAE,CAAA,CAAC,cAAc;IACpC,CAAC;IAED,IAAI,IAAI,GAA2B,IAAI,CAAA;IAEvC,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAEhC,IAAI,GAAG;YACH,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,OAAO;YACd,yEAAyE;YACzE,SAAS,EAAE,KAAK;YAChB,SAAS,EAAE,EAAE;SAChB,CAAA;IACL,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;IAE1B,OAAO;QACH,OAAO;QACP,QAAQ;QACR,UAAU,EAAE;YACR,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,cAAc;SACxB;QACD,IAAI;QACJ,OAAO,EAAE,GAAG;KACf,CAAA;AACL,CAAC","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,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,UAAU,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,kBAAkB,CAAC,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;AAED;;;;;GAKG;AACH,MAAM,UAAU,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,kBAAkB,CAAC,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","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
  }
@@ -1,9 +1,12 @@
1
1
  export class AppConfigManagerProxy {
2
+ invoker;
3
+ get;
4
+ getField;
2
5
  constructor(invoker) {
3
6
  this.invoker = invoker;
4
- this._bind = this.invoker.makeBinder('app-config');
5
- this.get = this._bind('get');
6
- this.getField = this._bind('getField');
7
+ const bind = invoker.makeBinder('app-config');
8
+ this.get = bind('get');
9
+ this.getField = bind('getField');
7
10
  }
8
11
  }
9
12
  //# sourceMappingURL=app-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/app-config.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,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","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,MAAM,OAAO,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","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":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B,OAAO,EACH,eAAe,EACf,WAAW,EACX,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAStH,MAAM,UAAU,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,oBAAoB,EAAE;QAC/B,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;KACJ;SAAM,IAAI,IAAI,KAAK,cAAc,EAAE;QAChC,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;KACJ;SAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE;QACxC,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;KACJ;SAAM,IAAI,IAAI,KAAK,EAAE,CAAC,QAAQ,EAAE;QAC7B,GAAG,CAAC,IAAI,GAAG,UAAU,CAAA;QACrB,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;KAC5B;SAAM,IAAI,IAAI,KAAK,eAAe;QAAE,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAA;SAC5D,IAAI,IAAI,KAAK,eAAe;QAAE,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAA;SAC1D,IAAI,IAAI,KAAK,kBAAkB;QAAE,GAAG,CAAC,IAAI,GAAG,oBAAoB,CAAA;SAChE,IAAI,IAAI,KAAK,mBAAmB;QAAE,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAA;SAClE,IAAI,IAAI,KAAK,sBAAsB;QAAE,GAAG,CAAC,IAAI,GAAG,wBAAwB,CAAA;SACxE,IAAI,IAAI,KAAK,YAAY;QAAE,GAAG,CAAC,IAAI,GAAG,cAAc,CAAA;SACpD,IAAI,IAAI,YAAY,WAAW;QAAE,GAAG,CAAC,IAAI,GAAG,aAAa,CAAA;IAE9D,OAAO,GAAG,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACnD,IAAI,IAAW,CAAA;IAEf,QAAQ,KAAK,CAAC,IAAI,EAAE;QAChB,KAAK,sBAAsB,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA+D,CAAA;YAEpF,IAAI,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAC/E,MAAK;SACR;QACD,KAAK,gBAAgB,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,KAAK,CAAC,MAA8B,CAAA;YAEnD,IAAI,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACzC,MAAK;SACR;QACD,KAAK,wBAAwB,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiE,CAAA;YAEtF,IAAI,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;YAClF,MAAK;SACR;QACD,KAAK,UAAU,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgC,CAAA;YACrD,IAAI,GAAG,IAAI,EAAE,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;gBACtB,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;aACjD;YACD,MAAK;SACR;QACD,KAAK,iBAAiB;YAClB,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;YAC5B,MAAK;QACT,KAAK,iBAAiB;YAClB,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;YAC5B,MAAK;QACT,KAAK,oBAAoB;YACrB,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAA;YAC/B,MAAK;QACT,KAAK,qBAAqB;YACtB,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAA;YAChC,MAAK;QACT,KAAK,wBAAwB;YACzB,IAAI,GAAG,IAAI,sBAAsB,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,YAAY,EAAE,CAAA;YACzB,MAAK;QACT,KAAK,aAAa;YACd,IAAI,GAAG,IAAI,WAAW,EAAE,CAAA;YACxB,MAAK;QACT;YACI,IAAI,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KACtC;IAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;IAExB,OAAO,IAAI,CAAA;AACf,CAAC","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":"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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,11 +1,12 @@
1
1
  import { createControllablePromise } from '../../utils/controllable-promise.js';
2
2
  import { deserializeError } from './errors.js';
3
3
  export class WorkerInvoker {
4
+ send;
4
5
  constructor(send) {
5
6
  this.send = send;
6
- this._nextId = 0;
7
- this._pending = new Map();
8
7
  }
8
+ _nextId = 0;
9
+ _pending = new Map();
9
10
  _invoke(target, method, args, isVoid) {
10
11
  const id = this._nextId++;
11
12
  this.send({
@@ -1 +1 @@
1
- {"version":3,"file":"invoker.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/invoker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAK9C,MAAM,OAAO,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,yBAAyB,EAAE,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,gBAAgB,CAAC,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","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,OAAO,EAAuB,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAK9C,MAAM,OAAO,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,yBAAyB,EAAE,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,gBAAgB,CAAC,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","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
  }
@@ -4,78 +4,103 @@ import { AppConfigManagerProxy } from './app-config.js';
4
4
  import { WorkerInvoker } from './invoker.js';
5
5
  import { TelegramStorageProxy } from './storage.js';
6
6
  export class TelegramWorkerPort {
7
+ options;
8
+ log;
9
+ _connection;
10
+ _invoker;
11
+ storage;
12
+ appConfig;
13
+ // bound methods
14
+ prepare;
15
+ _connect;
16
+ close;
17
+ notifyLoggedIn;
18
+ notifyLoggedOut;
19
+ notifyChannelOpened;
20
+ notifyChannelClosed;
21
+ call;
22
+ importSession;
23
+ exportSession;
24
+ handleClientUpdate;
25
+ getApiCrenetials;
26
+ getPoolSize;
27
+ getPrimaryDcId;
28
+ computeSrpParams;
29
+ computeNewPasswordHash;
30
+ startUpdatesLoop;
31
+ stopUpdatesLoop;
7
32
  constructor(options) {
8
33
  this.options = options;
9
34
  this.log = new LogManager('worker');
10
- this._serverUpdatesHandler = () => { };
11
- this._errorHandler = () => { };
12
- this._updateHandler = () => { };
13
- this._connectionStateHandler = () => { };
14
- this._onMessage = (message) => {
15
- switch (message.type) {
16
- case 'log':
17
- this.log.handler(message.color, message.level, message.tag, message.fmt, message.args);
18
- break;
19
- case 'server_update':
20
- this._serverUpdatesHandler(message.update);
21
- break;
22
- case 'conn_state':
23
- this._connectionStateHandler(message.state);
24
- break;
25
- case 'update': {
26
- const peers = new PeersIndex(message.users, message.chats);
27
- peers.hasMin = message.hasMin;
28
- this._updateHandler(message.update, peers);
29
- break;
30
- }
31
- case 'result':
32
- this._invoker.handleResult(message);
33
- break;
34
- case 'error':
35
- this.emitError(message.error);
36
- break;
37
- }
38
- };
39
35
  this._connection = this.connectToWorker(this.options.worker, this._onMessage);
40
36
  this._invoker = new WorkerInvoker(this._connection[0]);
41
- this._bind = this._invoker.makeBinder('client');
42
37
  this.storage = new TelegramStorageProxy(this._invoker);
43
38
  this.appConfig = new AppConfigManagerProxy(this._invoker);
44
- this._destroyed = false;
45
- this.prepare = this._bind('prepare');
46
- this._connect = this._bind('connect');
47
- this.close = this._bind('close');
48
- this.notifyLoggedIn = this._bind('notifyLoggedIn');
49
- this.notifyLoggedOut = this._bind('notifyLoggedOut');
50
- this.notifyChannelOpened = this._bind('notifyChannelOpened');
51
- this.notifyChannelClosed = this._bind('notifyChannelClosed');
52
- this.call = this._bind('call');
53
- this.importSession = this._bind('importSession');
54
- this.exportSession = this._bind('exportSession');
55
- this.handleClientUpdate = this._bind('handleClientUpdate', true);
56
- this.getApiCrenetials = this._bind('getApiCrenetials');
57
- this.getPoolSize = this._bind('getPoolSize');
58
- this.getPrimaryDcId = this._bind('getPrimaryDcId');
59
- this.computeSrpParams = this._bind('computeSrpParams');
60
- this.computeNewPasswordHash = this._bind('computeNewPasswordHash');
61
- this.startUpdatesLoop = this._bind('startUpdatesLoop');
62
- this.stopUpdatesLoop = this._bind('stopUpdatesLoop');
39
+ const bind = this._invoker.makeBinder('client');
40
+ this.prepare = bind('prepare');
41
+ this._connect = bind('connect');
42
+ this.close = bind('close');
43
+ this.notifyLoggedIn = bind('notifyLoggedIn');
44
+ this.notifyLoggedOut = bind('notifyLoggedOut');
45
+ this.notifyChannelOpened = bind('notifyChannelOpened');
46
+ this.notifyChannelClosed = bind('notifyChannelClosed');
47
+ this.call = bind('call');
48
+ this.importSession = bind('importSession');
49
+ this.exportSession = bind('exportSession');
50
+ this.handleClientUpdate = bind('handleClientUpdate', true);
51
+ this.getApiCrenetials = bind('getApiCrenetials');
52
+ this.getPoolSize = bind('getPoolSize');
53
+ this.getPrimaryDcId = bind('getPrimaryDcId');
54
+ this.computeSrpParams = bind('computeSrpParams');
55
+ this.computeNewPasswordHash = bind('computeNewPasswordHash');
56
+ this.startUpdatesLoop = bind('startUpdatesLoop');
57
+ this.stopUpdatesLoop = bind('stopUpdatesLoop');
63
58
  }
59
+ _serverUpdatesHandler = () => { };
64
60
  onServerUpdate(handler) {
65
61
  this._serverUpdatesHandler = handler;
66
62
  }
63
+ _errorHandler = () => { };
67
64
  onError(handler) {
68
65
  this._errorHandler = handler;
69
66
  }
70
67
  emitError(err) {
71
68
  this._errorHandler(err);
72
69
  }
70
+ _updateHandler = () => { };
73
71
  onUpdate(handler) {
74
72
  this._updateHandler = handler;
75
73
  }
74
+ _connectionStateHandler = () => { };
76
75
  onConnectionState(handler) {
77
76
  this._connectionStateHandler = handler;
78
77
  }
78
+ _onMessage = (message) => {
79
+ switch (message.type) {
80
+ case 'log':
81
+ this.log.handler(message.color, message.level, message.tag, message.fmt, message.args);
82
+ break;
83
+ case 'server_update':
84
+ this._serverUpdatesHandler(message.update);
85
+ break;
86
+ case 'conn_state':
87
+ this._connectionStateHandler(message.state);
88
+ break;
89
+ case 'update': {
90
+ const peers = new PeersIndex(message.users, message.chats);
91
+ peers.hasMin = message.hasMin;
92
+ this._updateHandler(message.update, peers);
93
+ break;
94
+ }
95
+ case 'result':
96
+ this._invoker.handleResult(message);
97
+ break;
98
+ case 'error':
99
+ this.emitError(message.error);
100
+ break;
101
+ }
102
+ };
103
+ _destroyed = false;
79
104
  destroy(terminate = false) {
80
105
  if (this._destroyed)
81
106
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/port.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { LogManager } from '../../utils/logger.js'\nimport { ConnectionState, ITelegramClient } from '../client.types.js'\nimport { PeersIndex } from '../types/peers/peers-index.js'\nimport { RawUpdateHandler } from '../updates/types.js'\nimport { AppConfigManagerProxy } from './app-config.js'\nimport { WorkerInvoker } from './invoker.js'\nimport { ClientMessageHandler, SendFn, SomeWorker, WorkerCustomMethods } from './protocol.js'\nimport { TelegramStorageProxy } from './storage.js'\n\nexport interface TelegramWorkerPortOptions {\n worker: SomeWorker\n}\n\nexport abstract class TelegramWorkerPort<Custom extends WorkerCustomMethods> implements ITelegramClient {\n constructor(readonly options: TelegramWorkerPortOptions) {}\n\n abstract connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void]\n\n readonly log = new LogManager('worker')\n\n private _serverUpdatesHandler: (updates: tl.TypeUpdates) => void = () => {}\n onServerUpdate(handler: (updates: tl.TypeUpdates) => void): void {\n this._serverUpdatesHandler = handler\n }\n\n private _errorHandler: (err: unknown) => void = () => {}\n onError(handler: (err: unknown) => void): void {\n this._errorHandler = handler\n }\n emitError(err: unknown): void {\n this._errorHandler(err)\n }\n\n private _updateHandler: RawUpdateHandler = () => {}\n onUpdate(handler: RawUpdateHandler): void {\n this._updateHandler = handler\n }\n\n private _connectionStateHandler: (state: ConnectionState) => void = () => {}\n onConnectionState(handler: (state: ConnectionState) => void): void {\n this._connectionStateHandler = handler\n }\n\n private _onMessage: ClientMessageHandler = (message) => {\n switch (message.type) {\n case 'log':\n this.log.handler(message.color, message.level, message.tag, message.fmt, message.args)\n break\n case 'server_update':\n this._serverUpdatesHandler(message.update)\n break\n case 'conn_state':\n this._connectionStateHandler(message.state)\n break\n case 'update': {\n const peers = new PeersIndex(message.users, message.chats)\n peers.hasMin = message.hasMin\n this._updateHandler(message.update, peers)\n break\n }\n case 'result':\n this._invoker.handleResult(message)\n break\n case 'error':\n this.emitError(message.error)\n break\n }\n }\n\n private _connection = this.connectToWorker(this.options.worker, this._onMessage)\n private _invoker = new WorkerInvoker(this._connection[0])\n private _bind = this._invoker.makeBinder<ITelegramClient>('client')\n\n readonly storage = new TelegramStorageProxy(this._invoker)\n readonly appConfig = new AppConfigManagerProxy(this._invoker)\n\n private _destroyed = false\n destroy(terminate = false): void {\n if (this._destroyed) return\n this._connection[1]()\n this._destroyed = true\n\n if (terminate && 'terminate' in this.options.worker) {\n Promise.resolve(this.options.worker.terminate()).catch(() => {})\n }\n }\n\n invokeCustom<T extends keyof Custom>(method: T, ...args: Parameters<Custom[T]>): Promise<ReturnType<Custom[T]>> {\n return this._invoker.invoke('custom', method as string, args) as Promise<ReturnType<Custom[T]>>\n }\n\n readonly prepare = this._bind('prepare')\n private _connect = this._bind('connect')\n async connect(): Promise<void> {\n await this._connect()\n await this.storage.self.fetch() // force cache self locally\n }\n readonly close = this._bind('close')\n readonly notifyLoggedIn = this._bind('notifyLoggedIn')\n readonly notifyLoggedOut = this._bind('notifyLoggedOut')\n readonly notifyChannelOpened = this._bind('notifyChannelOpened')\n readonly notifyChannelClosed = this._bind('notifyChannelClosed')\n readonly call = this._bind('call')\n readonly importSession = this._bind('importSession')\n readonly exportSession = this._bind('exportSession')\n readonly handleClientUpdate = this._bind('handleClientUpdate', true)\n readonly getApiCrenetials = this._bind('getApiCrenetials')\n readonly getPoolSize = this._bind('getPoolSize')\n readonly getPrimaryDcId = this._bind('getPrimaryDcId')\n readonly computeSrpParams = this._bind('computeSrpParams')\n readonly computeNewPasswordHash = this._bind('computeNewPasswordHash')\n readonly startUpdatesLoop = this._bind('startUpdatesLoop')\n readonly stopUpdatesLoop = this._bind('stopUpdatesLoop')\n}\n"]}
1
+ {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/port.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { LogManager } from '../../utils/logger.js'\nimport { ConnectionState, ITelegramClient } from '../client.types.js'\nimport { PeersIndex } from '../types/peers/peers-index.js'\nimport { RawUpdateHandler } from '../updates/types.js'\nimport { AppConfigManagerProxy } from './app-config.js'\nimport { WorkerInvoker } from './invoker.js'\nimport { ClientMessageHandler, SendFn, SomeWorker, WorkerCustomMethods } from './protocol.js'\nimport { TelegramStorageProxy } from './storage.js'\n\nexport interface TelegramWorkerPortOptions {\n worker: SomeWorker\n}\n\nexport abstract class TelegramWorkerPort<Custom extends WorkerCustomMethods> implements ITelegramClient {\n readonly log\n\n private _connection\n private _invoker\n\n readonly storage\n readonly appConfig\n\n // bound methods\n readonly prepare\n private _connect\n readonly close\n readonly notifyLoggedIn\n readonly notifyLoggedOut\n readonly notifyChannelOpened\n readonly notifyChannelClosed\n readonly call\n readonly importSession\n readonly exportSession\n readonly handleClientUpdate\n readonly getApiCrenetials\n readonly getPoolSize\n readonly getPrimaryDcId\n readonly computeSrpParams\n readonly computeNewPasswordHash\n readonly startUpdatesLoop\n readonly stopUpdatesLoop\n\n constructor(readonly options: TelegramWorkerPortOptions) {\n this.log = new LogManager('worker')\n\n this._connection = this.connectToWorker(this.options.worker, this._onMessage)\n this._invoker = new WorkerInvoker(this._connection[0])\n\n this.storage = new TelegramStorageProxy(this._invoker)\n this.appConfig = new AppConfigManagerProxy(this._invoker)\n\n const bind = this._invoker.makeBinder<ITelegramClient>('client')\n\n this.prepare = bind('prepare')\n this._connect = bind('connect')\n\n this.close = bind('close')\n this.notifyLoggedIn = bind('notifyLoggedIn')\n this.notifyLoggedOut = bind('notifyLoggedOut')\n this.notifyChannelOpened = bind('notifyChannelOpened')\n this.notifyChannelClosed = bind('notifyChannelClosed')\n this.call = bind('call')\n this.importSession = bind('importSession')\n this.exportSession = bind('exportSession')\n this.handleClientUpdate = bind('handleClientUpdate', true)\n this.getApiCrenetials = bind('getApiCrenetials')\n this.getPoolSize = bind('getPoolSize')\n this.getPrimaryDcId = bind('getPrimaryDcId')\n this.computeSrpParams = bind('computeSrpParams')\n this.computeNewPasswordHash = bind('computeNewPasswordHash')\n this.startUpdatesLoop = bind('startUpdatesLoop')\n this.stopUpdatesLoop = bind('stopUpdatesLoop')\n }\n\n abstract connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void]\n\n private _serverUpdatesHandler: (updates: tl.TypeUpdates) => void = () => {}\n onServerUpdate(handler: (updates: tl.TypeUpdates) => void): void {\n this._serverUpdatesHandler = handler\n }\n\n private _errorHandler: (err: unknown) => void = () => {}\n onError(handler: (err: unknown) => void): void {\n this._errorHandler = handler\n }\n emitError(err: unknown): void {\n this._errorHandler(err)\n }\n\n private _updateHandler: RawUpdateHandler = () => {}\n onUpdate(handler: RawUpdateHandler): void {\n this._updateHandler = handler\n }\n\n private _connectionStateHandler: (state: ConnectionState) => void = () => {}\n onConnectionState(handler: (state: ConnectionState) => void): void {\n this._connectionStateHandler = handler\n }\n\n private _onMessage: ClientMessageHandler = (message) => {\n switch (message.type) {\n case 'log':\n this.log.handler(message.color, message.level, message.tag, message.fmt, message.args)\n break\n case 'server_update':\n this._serverUpdatesHandler(message.update)\n break\n case 'conn_state':\n this._connectionStateHandler(message.state)\n break\n case 'update': {\n const peers = new PeersIndex(message.users, message.chats)\n peers.hasMin = message.hasMin\n this._updateHandler(message.update, peers)\n break\n }\n case 'result':\n this._invoker.handleResult(message)\n break\n case 'error':\n this.emitError(message.error)\n break\n }\n }\n\n private _destroyed = false\n destroy(terminate = false): void {\n if (this._destroyed) return\n this._connection[1]()\n this._destroyed = true\n\n if (terminate && 'terminate' in this.options.worker) {\n Promise.resolve(this.options.worker.terminate()).catch(() => {})\n }\n }\n\n invokeCustom<T extends keyof Custom>(method: T, ...args: Parameters<Custom[T]>): Promise<ReturnType<Custom[T]>> {\n return this._invoker.invoke('custom', method as string, args) as Promise<ReturnType<Custom[T]>>\n }\n\n async connect(): Promise<void> {\n await this._connect()\n await this.storage.self.fetch() // force cache self locally\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import type { Worker as NodeWorker } from 'worker_threads';
2
+ import type { Worker as NodeWorker } from 'node:worker_threads';
3
3
  import { tl } from '@mtcute/tl';
4
4
  import { ConnectionState } from '../client.types.js';
5
5
  import { SerializedError } from './errors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/protocol.ts"],"names":[],"mappings":"","sourcesContent":["import type { Worker as NodeWorker } from 'worker_threads'\n\nimport { tl } from '@mtcute/tl'\n\nimport { ConnectionState } from '../client.types.js'\nimport { SerializedError } from './errors.js'\n\nexport type WorkerInboundMessage = {\n type: 'invoke'\n id: number\n target: 'custom' | 'client' | 'storage' | 'storage-self' | 'storage-peers' | 'app-config'\n method: string\n args: unknown[]\n void: boolean\n}\n\nexport type WorkerOutboundMessage =\n | { type: 'server_update'; update: tl.TypeUpdates }\n | {\n type: 'update'\n update: tl.TypeUpdate\n users: Map<number, tl.TypeUser>\n chats: Map<number, tl.TypeChat>\n hasMin: boolean\n }\n | { type: 'error'; error: unknown }\n | { type: 'conn_state'; state: ConnectionState }\n | {\n type: 'log'\n color: number\n level: number\n tag: string\n fmt: string\n args: unknown[]\n }\n | {\n type: 'result'\n id: number\n result?: unknown\n error?: SerializedError\n }\n\nexport type SomeWorker = NodeWorker | Worker | SharedWorker\n\nexport type SendFn = (message: WorkerInboundMessage) => void\nexport type ClientMessageHandler = (message: WorkerOutboundMessage) => void\n\nexport type RespondFn = (message: WorkerOutboundMessage) => void\nexport type WorkerMessageHandler = (message: WorkerInboundMessage, respond: RespondFn) => void\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type WorkerCustomMethods = Record<string, (...args: any[]) => Promise<any>>\n"]}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../src/highlevel/worker/protocol.ts"],"names":[],"mappings":"","sourcesContent":["import type { Worker as NodeWorker } from 'node:worker_threads'\n\nimport { tl } from '@mtcute/tl'\n\nimport { ConnectionState } from '../client.types.js'\nimport { SerializedError } from './errors.js'\n\nexport type WorkerInboundMessage = {\n type: 'invoke'\n id: number\n target: 'custom' | 'client' | 'storage' | 'storage-self' | 'storage-peers' | 'app-config'\n method: string\n args: unknown[]\n void: boolean\n}\n\nexport type WorkerOutboundMessage =\n | { type: 'server_update'; update: tl.TypeUpdates }\n | {\n type: 'update'\n update: tl.TypeUpdate\n users: Map<number, tl.TypeUser>\n chats: Map<number, tl.TypeChat>\n hasMin: boolean\n }\n | { type: 'error'; error: unknown }\n | { type: 'conn_state'; state: ConnectionState }\n | {\n type: 'log'\n color: number\n level: number\n tag: string\n fmt: string\n args: unknown[]\n }\n | {\n type: 'result'\n id: number\n result?: unknown\n error?: SerializedError\n }\n\nexport type SomeWorker = NodeWorker | Worker | SharedWorker\n\nexport type SendFn = (message: WorkerInboundMessage) => void\nexport type ClientMessageHandler = (message: WorkerOutboundMessage) => void\n\nexport type RespondFn = (message: WorkerOutboundMessage) => void\nexport type WorkerMessageHandler = (message: WorkerInboundMessage, respond: RespondFn) => void\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type WorkerCustomMethods = Record<string, (...args: any[]) => Promise<any>>\n"]}
@@ -5,39 +5,35 @@ import type { PeersService } from '../storage/service/peers.js';
5
5
  import { TelegramStorageManager } from '../storage/storage.js';
6
6
  import { WorkerInvoker } from './invoker.js';
7
7
  declare class CurrentUserServiceProxy implements PublicPart<CurrentUserService> {
8
- private _invoker;
9
- constructor(_invoker: WorkerInvoker);
10
- private _bind;
11
- private _cached?;
12
8
  private _store;
13
- store(info: CurrentUserInfo | null): Promise<void>;
14
9
  private _storeFrom;
15
- storeFrom(user: tl.TypeUser): Promise<CurrentUserInfo>;
16
10
  private _fetch;
11
+ private _update;
12
+ constructor(invoker: WorkerInvoker);
13
+ private _cached?;
14
+ store(info: CurrentUserInfo | null): Promise<void>;
15
+ storeFrom(user: tl.TypeUser): Promise<CurrentUserInfo>;
17
16
  fetch(): Promise<CurrentUserInfo | null>;
18
17
  getCached(safe?: boolean): CurrentUserInfo | null;
19
- private _update;
20
18
  update(params: Parameters<CurrentUserService['update']>[0]): Promise<void>;
21
19
  }
22
20
  declare class PeersServiceProxy implements PublicPart<PeersService> {
23
21
  private _invoker;
24
- constructor(_invoker: WorkerInvoker);
25
- private _bind;
26
22
  readonly updatePeersFrom: (obj: tl.TlObject | tl.TlObject[]) => Promise<boolean>;
27
23
  readonly store: (peer: tl.TypeUser | tl.TypeChat) => Promise<void>;
28
24
  readonly getById: (id: number, allowRefs?: boolean) => Promise<tl.TypeInputPeer | null>;
29
25
  readonly getByPhone: (phone: string) => Promise<tl.TypeInputPeer | null>;
30
26
  readonly getByUsername: (username: string) => Promise<tl.TypeInputPeer | null>;
31
27
  readonly getCompleteById: (id: number) => Promise<tl.TypeUser | tl.TypeChat | null>;
28
+ constructor(_invoker: WorkerInvoker);
32
29
  }
33
30
  export declare class TelegramStorageProxy implements PublicPart<TelegramStorageManager> {
34
31
  private _invoker;
35
- constructor(_invoker: WorkerInvoker);
36
- private _bind;
37
- readonly updates: never;
38
- readonly refMsgs: never;
39
32
  readonly self: CurrentUserServiceProxy;
40
33
  readonly peers: PeersServiceProxy;
41
34
  readonly clear: (withAuthKeys?: boolean) => Promise<void>;
35
+ constructor(_invoker: WorkerInvoker);
36
+ readonly updates: never;
37
+ readonly refMsgs: never;
42
38
  }
43
39
  export {};