@mtcute/core 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1309) hide show
  1. package/cjs/highlevel/base.d.ts +1 -1
  2. package/cjs/highlevel/base.js +29 -23
  3. package/cjs/highlevel/base.js.map +1 -1
  4. package/cjs/highlevel/client.d.ts +199 -18
  5. package/cjs/highlevel/client.js +54 -0
  6. package/cjs/highlevel/client.js.map +1 -1
  7. package/cjs/highlevel/managers/app-config-manager.js +7 -5
  8. package/cjs/highlevel/managers/app-config-manager.js.map +1 -1
  9. package/cjs/highlevel/methods/_imports.js.map +1 -1
  10. package/cjs/highlevel/methods/_init.js.map +1 -1
  11. package/cjs/highlevel/methods/auth/start-test.js.map +1 -1
  12. package/cjs/highlevel/methods/auth/start.js.map +1 -1
  13. package/cjs/highlevel/methods/auth/utils.d.ts +3 -0
  14. package/cjs/highlevel/methods/auth/utils.js.map +1 -1
  15. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  17. package/cjs/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  18. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  19. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -1
  20. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
  21. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  22. package/cjs/highlevel/methods/chats/batched-queries.d.ts +10 -1
  23. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -1
  24. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  25. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -1
  26. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  27. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -1
  28. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -1
  29. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  30. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -1
  31. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  32. package/cjs/highlevel/methods/chats/get-full-chat.js +1 -1
  33. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -1
  34. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  35. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  36. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  37. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  38. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -1
  39. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  40. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -1
  41. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
  42. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  43. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  44. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -1
  45. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -1
  46. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  47. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -1
  48. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  49. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  50. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  51. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  52. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  53. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  54. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  55. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  56. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  57. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  58. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -1
  59. package/cjs/highlevel/methods/files/download-iterable.js +1 -1
  60. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  61. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -1
  62. package/cjs/highlevel/methods/files/download-stream.js.map +1 -1
  63. package/cjs/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  64. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  65. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -1
  66. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  67. package/cjs/highlevel/methods/files/normalize-input-media.js +12 -12
  68. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  69. package/cjs/highlevel/methods/files/upload-file.js +7 -6
  70. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  71. package/cjs/highlevel/methods/files/upload-media.js.map +1 -1
  72. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  73. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  74. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  75. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  76. package/cjs/highlevel/methods/messages/_business-connection.d.ts +7 -0
  77. package/cjs/highlevel/methods/messages/_business-connection.js +42 -0
  78. package/cjs/highlevel/methods/messages/_business-connection.js.map +1 -0
  79. package/cjs/highlevel/methods/messages/close-poll.js +1 -1
  80. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -1
  81. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -1
  82. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  83. package/cjs/highlevel/methods/messages/edit-message.d.ts +1 -0
  84. package/cjs/highlevel/methods/messages/edit-message.js +2 -1
  85. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -1
  86. package/cjs/highlevel/methods/messages/find-in-update.d.ts +13 -1
  87. package/cjs/highlevel/methods/messages/find-in-update.js +7 -2
  88. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  89. package/cjs/highlevel/methods/messages/forward-messages.d.ts +5 -0
  90. package/cjs/highlevel/methods/messages/forward-messages.js +2 -0
  91. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -1
  92. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  93. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js +32 -0
  94. package/cjs/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  95. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  96. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  97. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  98. package/cjs/highlevel/methods/messages/get-history.js +5 -1
  99. package/cjs/highlevel/methods/messages/get-history.js.map +1 -1
  100. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  101. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -1
  102. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  103. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -1
  104. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -1
  105. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -1
  106. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  107. package/cjs/highlevel/methods/messages/iter-search-global.js +2 -1
  108. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -1
  109. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  110. package/cjs/highlevel/methods/messages/read-history.js.map +1 -1
  111. package/cjs/highlevel/methods/messages/search-global.d.ts +4 -0
  112. package/cjs/highlevel/methods/messages/search-global.js +2 -1
  113. package/cjs/highlevel/methods/messages/search-global.js.map +1 -1
  114. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -1
  115. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -1
  116. package/cjs/highlevel/methods/messages/send-common.d.ts +28 -0
  117. package/cjs/highlevel/methods/messages/send-common.js +21 -1
  118. package/cjs/highlevel/methods/messages/send-common.js.map +1 -1
  119. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -1
  120. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -1
  121. package/cjs/highlevel/methods/messages/send-media-group.js +5 -2
  122. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  123. package/cjs/highlevel/methods/messages/send-media.js +4 -2
  124. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  125. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -1
  126. package/cjs/highlevel/methods/messages/send-text.js +4 -2
  127. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  128. package/cjs/highlevel/methods/messages/send-typing.d.ts +4 -0
  129. package/cjs/highlevel/methods/messages/send-typing.js +2 -1
  130. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -1
  131. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -1
  132. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -1
  133. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  134. package/cjs/highlevel/methods/misc/chain-id.d.ts +4 -1
  135. package/cjs/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  136. package/cjs/highlevel/methods/misc/get-collectible-info.js +26 -0
  137. package/cjs/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  138. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  139. package/cjs/highlevel/methods/misc/normalize-text.d.ts +5 -1
  140. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -1
  141. package/cjs/highlevel/methods/misc/with-params.js.map +1 -1
  142. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -1
  143. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  144. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  145. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  146. package/cjs/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  147. package/cjs/highlevel/methods/premium/create-business-chat-link.js +26 -0
  148. package/cjs/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  149. package/cjs/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  150. package/cjs/highlevel/methods/premium/edit-business-chat-link.js +42 -0
  151. package/cjs/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  152. package/cjs/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  153. package/cjs/highlevel/methods/premium/get-business-chat-links.js +14 -0
  154. package/cjs/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  155. package/cjs/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  156. package/cjs/highlevel/methods/premium/get-business-connection.js +25 -0
  157. package/cjs/highlevel/methods/premium/get-business-connection.js.map +1 -0
  158. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -1
  159. package/cjs/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  160. package/cjs/highlevel/methods/premium/set-business-intro.js +42 -0
  161. package/cjs/highlevel/methods/premium/set-business-intro.js.map +1 -0
  162. package/cjs/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  163. package/cjs/highlevel/methods/premium/set-business-work-hours.js +33 -0
  164. package/cjs/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  165. package/cjs/highlevel/methods/stickers/_utils.d.ts +10 -0
  166. package/cjs/highlevel/methods/stickers/_utils.js +27 -0
  167. package/cjs/highlevel/methods/stickers/_utils.js.map +1 -0
  168. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  169. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +3 -17
  170. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  171. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  172. package/cjs/highlevel/methods/stickers/create-sticker-set.js +2 -19
  173. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  174. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  175. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  176. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  177. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  178. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  179. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  180. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  181. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  182. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js +24 -0
  183. package/cjs/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  184. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  185. package/cjs/highlevel/methods/stickers/get-sticker-set.js +2 -2
  186. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  187. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  188. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  189. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  190. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  191. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js +32 -0
  192. package/cjs/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  193. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -1
  194. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -1
  195. package/cjs/highlevel/methods/stories/find-in-update.d.ts +5 -1
  196. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -1
  197. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  198. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  199. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  200. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  201. package/cjs/highlevel/methods/stories/send-story.js.map +1 -1
  202. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  203. package/cjs/highlevel/methods/users/get-users.js.map +1 -1
  204. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  205. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  206. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -1
  207. package/cjs/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  208. package/cjs/highlevel/methods/users/set-my-birthday.js +22 -0
  209. package/cjs/highlevel/methods/users/set-my-birthday.js.map +1 -0
  210. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  211. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  212. package/cjs/highlevel/methods.d.ts +12 -0
  213. package/cjs/highlevel/methods.js +33 -3
  214. package/cjs/highlevel/methods.js.map +1 -1
  215. package/cjs/highlevel/storage/service/current-user.js +2 -0
  216. package/cjs/highlevel/storage/service/current-user.js.map +1 -1
  217. package/cjs/highlevel/storage/service/peers.js +5 -1
  218. package/cjs/highlevel/storage/service/peers.js.map +1 -1
  219. package/cjs/highlevel/storage/service/ref-messages.js +3 -0
  220. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -1
  221. package/cjs/highlevel/storage/service/updates.js +1 -0
  222. package/cjs/highlevel/storage/service/updates.js.map +1 -1
  223. package/cjs/highlevel/storage/storage.d.ts +8 -3
  224. package/cjs/highlevel/storage/storage.js +17 -4
  225. package/cjs/highlevel/storage/storage.js.map +1 -1
  226. package/cjs/highlevel/types/auth/sent-code.d.ts +7 -2
  227. package/cjs/highlevel/types/auth/sent-code.js +15 -0
  228. package/cjs/highlevel/types/auth/sent-code.js.map +1 -1
  229. package/cjs/highlevel/types/bots/game-high-score.js +2 -0
  230. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -1
  231. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  232. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -1
  233. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  234. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -1
  235. package/cjs/highlevel/types/bots/keyboards/builder.js +2 -1
  236. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -1
  237. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  238. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -1
  239. package/cjs/highlevel/types/calls/discard-reason.d.ts +5 -0
  240. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -1
  241. package/cjs/highlevel/types/conversation.js +13 -7
  242. package/cjs/highlevel/types/conversation.js.map +1 -1
  243. package/cjs/highlevel/types/errors.js +3 -0
  244. package/cjs/highlevel/types/errors.js.map +1 -1
  245. package/cjs/highlevel/types/files/file-location.js +3 -0
  246. package/cjs/highlevel/types/files/file-location.js.map +1 -1
  247. package/cjs/highlevel/types/files/uploaded-file.d.ts +2 -0
  248. package/cjs/highlevel/types/files/uploaded-file.js +1 -1
  249. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -1
  250. package/cjs/highlevel/types/files/utils.d.ts +6 -5
  251. package/cjs/highlevel/types/files/utils.js.map +1 -1
  252. package/cjs/highlevel/types/files/web-document.js +1 -0
  253. package/cjs/highlevel/types/files/web-document.js.map +1 -1
  254. package/cjs/highlevel/types/media/audio.js +3 -2
  255. package/cjs/highlevel/types/media/audio.js.map +1 -1
  256. package/cjs/highlevel/types/media/contact.js +2 -1
  257. package/cjs/highlevel/types/media/contact.js.map +1 -1
  258. package/cjs/highlevel/types/media/dice.js +125 -124
  259. package/cjs/highlevel/types/media/dice.js.map +1 -1
  260. package/cjs/highlevel/types/media/document-utils.d.ts +5 -0
  261. package/cjs/highlevel/types/media/document-utils.js +9 -2
  262. package/cjs/highlevel/types/media/document-utils.js.map +1 -1
  263. package/cjs/highlevel/types/media/document.js +2 -4
  264. package/cjs/highlevel/types/media/document.js.map +1 -1
  265. package/cjs/highlevel/types/media/game.js +2 -1
  266. package/cjs/highlevel/types/media/game.js.map +1 -1
  267. package/cjs/highlevel/types/media/input-media/types.d.ts +2 -2
  268. package/cjs/highlevel/types/media/input-media/types.js.map +1 -1
  269. package/cjs/highlevel/types/media/invoice.js +4 -1
  270. package/cjs/highlevel/types/media/invoice.js.map +1 -1
  271. package/cjs/highlevel/types/media/location.js +4 -5
  272. package/cjs/highlevel/types/media/location.js.map +1 -1
  273. package/cjs/highlevel/types/media/photo.js +8 -1
  274. package/cjs/highlevel/types/media/photo.js.map +1 -1
  275. package/cjs/highlevel/types/media/poll.d.ts +17 -6
  276. package/cjs/highlevel/types/media/poll.js +69 -19
  277. package/cjs/highlevel/types/media/poll.js.map +1 -1
  278. package/cjs/highlevel/types/media/sticker.js +3 -1
  279. package/cjs/highlevel/types/media/sticker.js.map +1 -1
  280. package/cjs/highlevel/types/media/story.js +3 -1
  281. package/cjs/highlevel/types/media/story.js.map +1 -1
  282. package/cjs/highlevel/types/media/thumbnail.js +35 -22
  283. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  284. package/cjs/highlevel/types/media/venue.js +2 -1
  285. package/cjs/highlevel/types/media/venue.js.map +1 -1
  286. package/cjs/highlevel/types/media/video.js +3 -1
  287. package/cjs/highlevel/types/media/video.js.map +1 -1
  288. package/cjs/highlevel/types/media/voice.js +2 -1
  289. package/cjs/highlevel/types/media/voice.js.map +1 -1
  290. package/cjs/highlevel/types/media/web-page.js +2 -1
  291. package/cjs/highlevel/types/media/web-page.js.map +1 -1
  292. package/cjs/highlevel/types/messages/dialog.js +4 -12
  293. package/cjs/highlevel/types/messages/dialog.js.map +1 -1
  294. package/cjs/highlevel/types/messages/draft-message.js +1 -0
  295. package/cjs/highlevel/types/messages/draft-message.js.map +1 -1
  296. package/cjs/highlevel/types/messages/input-message-id.d.ts +5 -0
  297. package/cjs/highlevel/types/messages/message-action.d.ts +19 -2
  298. package/cjs/highlevel/types/messages/message-action.js +6 -0
  299. package/cjs/highlevel/types/messages/message-action.js.map +1 -1
  300. package/cjs/highlevel/types/messages/message-entity.js +2 -0
  301. package/cjs/highlevel/types/messages/message-entity.js.map +1 -1
  302. package/cjs/highlevel/types/messages/message-forward.js +2 -0
  303. package/cjs/highlevel/types/messages/message-forward.js.map +1 -1
  304. package/cjs/highlevel/types/messages/message-media.d.ts +4 -0
  305. package/cjs/highlevel/types/messages/message-media.js.map +1 -1
  306. package/cjs/highlevel/types/messages/message-reactions.js +4 -0
  307. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -1
  308. package/cjs/highlevel/types/messages/message-replies.js +2 -0
  309. package/cjs/highlevel/types/messages/message-replies.js.map +1 -1
  310. package/cjs/highlevel/types/messages/message.d.ts +59 -1
  311. package/cjs/highlevel/types/messages/message.js +102 -1
  312. package/cjs/highlevel/types/messages/message.js.map +1 -1
  313. package/cjs/highlevel/types/messages/replied-message.js +2 -0
  314. package/cjs/highlevel/types/messages/replied-message.js.map +1 -1
  315. package/cjs/highlevel/types/misc/collectible-info.d.ts +27 -0
  316. package/cjs/highlevel/types/misc/collectible-info.js +46 -0
  317. package/cjs/highlevel/types/misc/collectible-info.js.map +1 -0
  318. package/cjs/highlevel/types/misc/entities.d.ts +7 -0
  319. package/cjs/highlevel/types/misc/entities.js +15 -0
  320. package/cjs/highlevel/types/misc/entities.js.map +1 -1
  321. package/cjs/highlevel/types/misc/index.d.ts +1 -0
  322. package/cjs/highlevel/types/misc/index.js +1 -0
  323. package/cjs/highlevel/types/misc/index.js.map +1 -1
  324. package/cjs/highlevel/types/misc/sticker-set.d.ts +8 -1
  325. package/cjs/highlevel/types/misc/sticker-set.js +43 -6
  326. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -1
  327. package/cjs/highlevel/types/misc/takeout-session.js +5 -0
  328. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -1
  329. package/cjs/highlevel/types/peers/chat-colors.js +2 -0
  330. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -1
  331. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  332. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -1
  333. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  334. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -1
  335. package/cjs/highlevel/types/peers/chat-event/index.js +2 -0
  336. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -1
  337. package/cjs/highlevel/types/peers/chat-invite-link-member.js +2 -0
  338. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  339. package/cjs/highlevel/types/peers/chat-invite-link.js +2 -0
  340. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -1
  341. package/cjs/highlevel/types/peers/chat-location.js +1 -0
  342. package/cjs/highlevel/types/peers/chat-location.js.map +1 -1
  343. package/cjs/highlevel/types/peers/chat-member.js +2 -0
  344. package/cjs/highlevel/types/peers/chat-member.js.map +1 -1
  345. package/cjs/highlevel/types/peers/chat-permissions.js +1 -0
  346. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -1
  347. package/cjs/highlevel/types/peers/chat-photo.js +5 -0
  348. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  349. package/cjs/highlevel/types/peers/chat-preview.js +2 -0
  350. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -1
  351. package/cjs/highlevel/types/peers/chat.d.ts +7 -93
  352. package/cjs/highlevel/types/peers/chat.js +10 -192
  353. package/cjs/highlevel/types/peers/chat.js.map +1 -1
  354. package/cjs/highlevel/types/peers/forum-topic.js +9 -6
  355. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -1
  356. package/cjs/highlevel/types/peers/full-chat.d.ts +103 -0
  357. package/cjs/highlevel/types/peers/full-chat.js +237 -0
  358. package/cjs/highlevel/types/peers/full-chat.js.map +1 -0
  359. package/cjs/highlevel/types/peers/index.d.ts +1 -0
  360. package/cjs/highlevel/types/peers/index.js +1 -0
  361. package/cjs/highlevel/types/peers/index.js.map +1 -1
  362. package/cjs/highlevel/types/peers/peer.js.map +1 -1
  363. package/cjs/highlevel/types/peers/peers-index.js +3 -1
  364. package/cjs/highlevel/types/peers/peers-index.js.map +1 -1
  365. package/cjs/highlevel/types/peers/user.d.ts +5 -0
  366. package/cjs/highlevel/types/peers/user.js +12 -1
  367. package/cjs/highlevel/types/peers/user.js.map +1 -1
  368. package/cjs/highlevel/types/premium/boost-slot.js +2 -0
  369. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -1
  370. package/cjs/highlevel/types/premium/boost-stats.js +1 -0
  371. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -1
  372. package/cjs/highlevel/types/premium/boost.js +2 -0
  373. package/cjs/highlevel/types/premium/boost.js.map +1 -1
  374. package/cjs/highlevel/types/premium/business-account.d.ts +19 -0
  375. package/cjs/highlevel/types/premium/business-account.js +45 -0
  376. package/cjs/highlevel/types/premium/business-account.js.map +1 -0
  377. package/cjs/highlevel/types/premium/business-chat-link.d.ts +19 -0
  378. package/cjs/highlevel/types/premium/business-chat-link.js +39 -0
  379. package/cjs/highlevel/types/premium/business-chat-link.js.map +1 -0
  380. package/cjs/highlevel/types/premium/business-connection.d.ts +23 -0
  381. package/cjs/highlevel/types/premium/business-connection.js +45 -0
  382. package/cjs/highlevel/types/premium/business-connection.js.map +1 -0
  383. package/cjs/highlevel/types/premium/business-intro.d.ts +22 -0
  384. package/cjs/highlevel/types/premium/business-intro.js +43 -0
  385. package/cjs/highlevel/types/premium/business-intro.js.map +1 -0
  386. package/cjs/highlevel/types/premium/business-location.d.ts +10 -0
  387. package/cjs/highlevel/types/premium/business-location.js +26 -0
  388. package/cjs/highlevel/types/premium/business-location.js.map +1 -0
  389. package/cjs/highlevel/types/premium/business-work-hours.d.ts +42 -0
  390. package/cjs/highlevel/types/premium/business-work-hours.js +141 -0
  391. package/cjs/highlevel/types/premium/business-work-hours.js.map +1 -0
  392. package/cjs/highlevel/types/premium/index.d.ts +5 -0
  393. package/cjs/highlevel/types/premium/index.js +5 -0
  394. package/cjs/highlevel/types/premium/index.js.map +1 -1
  395. package/cjs/highlevel/types/reactions/emoji-status.js +1 -0
  396. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -1
  397. package/cjs/highlevel/types/reactions/peer-reaction.js +2 -0
  398. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -1
  399. package/cjs/highlevel/types/reactions/reaction-count.js +1 -0
  400. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -1
  401. package/cjs/highlevel/types/reactions/types.js.map +1 -1
  402. package/cjs/highlevel/types/stories/all-stories.d.ts +2 -2
  403. package/cjs/highlevel/types/stories/all-stories.js +3 -1
  404. package/cjs/highlevel/types/stories/all-stories.js.map +1 -1
  405. package/cjs/highlevel/types/stories/interactive/base.js +1 -0
  406. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -1
  407. package/cjs/highlevel/types/stories/interactive/channel-post.js +3 -1
  408. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  409. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -1
  410. package/cjs/highlevel/types/stories/interactive/input.js +1 -0
  411. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -1
  412. package/cjs/highlevel/types/stories/interactive/location.js +2 -1
  413. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -1
  414. package/cjs/highlevel/types/stories/interactive/reaction.js +2 -1
  415. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -1
  416. package/cjs/highlevel/types/stories/interactive/venue.js +2 -1
  417. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -1
  418. package/cjs/highlevel/types/stories/peer-stories.js +2 -0
  419. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -1
  420. package/cjs/highlevel/types/stories/stealth-mode.js +1 -0
  421. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -1
  422. package/cjs/highlevel/types/stories/story-interactions.js +2 -0
  423. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -1
  424. package/cjs/highlevel/types/stories/story-viewer.d.ts +1 -1
  425. package/cjs/highlevel/types/stories/story-viewer.js +6 -0
  426. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -1
  427. package/cjs/highlevel/types/stories/story.js +2 -0
  428. package/cjs/highlevel/types/stories/story.js.map +1 -1
  429. package/cjs/highlevel/types/updates/bot-chat-join-request.js +2 -0
  430. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  431. package/cjs/highlevel/types/updates/bot-reaction.js +4 -0
  432. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -1
  433. package/cjs/highlevel/types/updates/bot-stopped.js +2 -0
  434. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -1
  435. package/cjs/highlevel/types/updates/business-message.d.ts +18 -0
  436. package/cjs/highlevel/types/updates/business-message.js +35 -0
  437. package/cjs/highlevel/types/updates/business-message.js.map +1 -0
  438. package/cjs/highlevel/types/updates/callback-query.js +4 -0
  439. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  440. package/cjs/highlevel/types/updates/chat-join-request.js +2 -0
  441. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -1
  442. package/cjs/highlevel/types/updates/chat-member-update.js +2 -0
  443. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -1
  444. package/cjs/highlevel/types/updates/chosen-inline-result.js +2 -0
  445. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  446. package/cjs/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  447. package/cjs/highlevel/types/updates/delete-business-message-update.js +37 -0
  448. package/cjs/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  449. package/cjs/highlevel/types/updates/delete-message-update.js +1 -0
  450. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -1
  451. package/cjs/highlevel/types/updates/delete-story-update.js +2 -0
  452. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -1
  453. package/cjs/highlevel/types/updates/history-read-update.js +1 -0
  454. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -1
  455. package/cjs/highlevel/types/updates/index.d.ts +19 -2
  456. package/cjs/highlevel/types/updates/index.js +5 -1
  457. package/cjs/highlevel/types/updates/index.js.map +1 -1
  458. package/cjs/highlevel/types/updates/inline-query.js +2 -0
  459. package/cjs/highlevel/types/updates/inline-query.js.map +1 -1
  460. package/cjs/highlevel/types/updates/parse-update.d.ts +4 -1
  461. package/cjs/highlevel/types/updates/parse-update.js +8 -0
  462. package/cjs/highlevel/types/updates/parse-update.js.map +1 -1
  463. package/cjs/highlevel/types/updates/poll-update.js +4 -2
  464. package/cjs/highlevel/types/updates/poll-update.js.map +1 -1
  465. package/cjs/highlevel/types/updates/poll-vote.js +2 -0
  466. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -1
  467. package/cjs/highlevel/types/updates/pre-checkout-query.js +2 -0
  468. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  469. package/cjs/highlevel/types/updates/story-update.js +2 -0
  470. package/cjs/highlevel/types/updates/story-update.js.map +1 -1
  471. package/cjs/highlevel/types/updates/user-status-update.js +1 -0
  472. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  473. package/cjs/highlevel/types/updates/user-typing-update.js +1 -0
  474. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -1
  475. package/cjs/highlevel/updates/manager.d.ts +0 -1
  476. package/cjs/highlevel/updates/manager.js +57 -30
  477. package/cjs/highlevel/updates/manager.js.map +1 -1
  478. package/cjs/highlevel/updates/parsed.js +8 -2
  479. package/cjs/highlevel/updates/parsed.js.map +1 -1
  480. package/cjs/highlevel/updates/types.d.ts +57 -0
  481. package/cjs/highlevel/updates/utils.d.ts +2 -0
  482. package/cjs/highlevel/updates/utils.js.map +1 -1
  483. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  484. package/cjs/highlevel/utils/entities.js.map +1 -1
  485. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  486. package/cjs/highlevel/utils/file-type.js +35 -1
  487. package/cjs/highlevel/utils/file-type.js.map +1 -1
  488. package/cjs/highlevel/utils/file-utils.js +1 -1
  489. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  490. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  491. package/cjs/highlevel/utils/inspectable.js +7 -0
  492. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  493. package/cjs/highlevel/utils/memoize.js.map +1 -1
  494. package/cjs/highlevel/utils/peer-utils.js.map +1 -1
  495. package/cjs/highlevel/utils/query-batcher.js.map +1 -1
  496. package/cjs/highlevel/utils/rps-meter.js +3 -0
  497. package/cjs/highlevel/utils/rps-meter.js.map +1 -1
  498. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  499. package/cjs/highlevel/utils/string-session.d.ts +1 -2
  500. package/cjs/highlevel/utils/string-session.js +27 -7
  501. package/cjs/highlevel/utils/string-session.js.map +1 -1
  502. package/cjs/highlevel/utils/voice-utils.js.map +1 -1
  503. package/cjs/highlevel/worker/app-config.d.ts +2 -3
  504. package/cjs/highlevel/worker/app-config.js +6 -3
  505. package/cjs/highlevel/worker/app-config.js.map +1 -1
  506. package/cjs/highlevel/worker/errors.js.map +1 -1
  507. package/cjs/highlevel/worker/index.js +6 -0
  508. package/cjs/highlevel/worker/invoker.js +3 -2
  509. package/cjs/highlevel/worker/invoker.js.map +1 -1
  510. package/cjs/highlevel/worker/port.d.ts +16 -17
  511. package/cjs/highlevel/worker/port.js +74 -49
  512. package/cjs/highlevel/worker/port.js.map +1 -1
  513. package/cjs/highlevel/worker/protocol.d.ts +1 -2
  514. package/cjs/highlevel/worker/protocol.js.map +1 -1
  515. package/cjs/highlevel/worker/storage.d.ts +9 -13
  516. package/cjs/highlevel/worker/storage.js +34 -19
  517. package/cjs/highlevel/worker/storage.js.map +1 -1
  518. package/cjs/highlevel/worker/worker.js +3 -0
  519. package/cjs/highlevel/worker/worker.js.map +1 -1
  520. package/cjs/index.js +6 -0
  521. package/cjs/network/auth-key.js +8 -1
  522. package/cjs/network/auth-key.js.map +1 -1
  523. package/cjs/network/authorization.js.map +1 -1
  524. package/cjs/network/client.d.ts +0 -1
  525. package/cjs/network/client.js +39 -14
  526. package/cjs/network/client.js.map +1 -1
  527. package/cjs/network/config-manager.js.map +1 -1
  528. package/cjs/network/mtproto-session.d.ts +0 -1
  529. package/cjs/network/mtproto-session.js +40 -30
  530. package/cjs/network/mtproto-session.js.map +1 -1
  531. package/cjs/network/multi-session-connection.d.ts +1 -2
  532. package/cjs/network/multi-session-connection.js +13 -7
  533. package/cjs/network/multi-session-connection.js.map +1 -1
  534. package/cjs/network/network-manager.d.ts +10 -3
  535. package/cjs/network/network-manager.js +57 -31
  536. package/cjs/network/network-manager.js.map +1 -1
  537. package/cjs/network/persistent-connection.d.ts +2 -3
  538. package/cjs/network/persistent-connection.js +33 -22
  539. package/cjs/network/persistent-connection.js.map +1 -1
  540. package/cjs/network/server-salt.js +4 -5
  541. package/cjs/network/server-salt.js.map +1 -1
  542. package/cjs/network/session-connection.d.ts +1 -1
  543. package/cjs/network/session-connection.js +32 -12
  544. package/cjs/network/session-connection.js.map +1 -1
  545. package/cjs/network/transports/abstract.d.ts +1 -2
  546. package/cjs/network/transports/abstract.js +1 -0
  547. package/cjs/network/transports/abstract.js.map +1 -1
  548. package/cjs/network/transports/intermediate.js +1 -0
  549. package/cjs/network/transports/intermediate.js.map +1 -1
  550. package/cjs/network/transports/obfuscated.js +3 -0
  551. package/cjs/network/transports/obfuscated.js.map +1 -1
  552. package/cjs/network/transports/streamed.d.ts +0 -1
  553. package/cjs/network/transports/streamed.js +1 -4
  554. package/cjs/network/transports/streamed.js.map +1 -1
  555. package/cjs/network/transports/wrapped.d.ts +0 -1
  556. package/cjs/network/transports/wrapped.js +2 -0
  557. package/cjs/network/transports/wrapped.js.map +1 -1
  558. package/cjs/platform.js +6 -0
  559. package/cjs/platform.js.map +1 -1
  560. package/cjs/storage/driver.js +3 -4
  561. package/cjs/storage/driver.js.map +1 -1
  562. package/cjs/storage/memory/driver.js +1 -3
  563. package/cjs/storage/memory/driver.js.map +1 -1
  564. package/cjs/storage/memory/index.js +5 -7
  565. package/cjs/storage/memory/index.js.map +1 -1
  566. package/cjs/storage/memory/repository/auth-keys.d.ts +1 -1
  567. package/cjs/storage/memory/repository/auth-keys.js +2 -0
  568. package/cjs/storage/memory/repository/auth-keys.js.map +1 -1
  569. package/cjs/storage/memory/repository/kv.d.ts +1 -1
  570. package/cjs/storage/memory/repository/kv.js +2 -0
  571. package/cjs/storage/memory/repository/kv.js.map +1 -1
  572. package/cjs/storage/memory/repository/peers.d.ts +1 -1
  573. package/cjs/storage/memory/repository/peers.js +2 -0
  574. package/cjs/storage/memory/repository/peers.js.map +1 -1
  575. package/cjs/storage/memory/repository/ref-messages.d.ts +1 -1
  576. package/cjs/storage/memory/repository/ref-messages.js +2 -0
  577. package/cjs/storage/memory/repository/ref-messages.js.map +1 -1
  578. package/cjs/storage/service/auth-keys.js +2 -0
  579. package/cjs/storage/service/auth-keys.js.map +1 -1
  580. package/cjs/storage/service/base.js +4 -0
  581. package/cjs/storage/service/base.js.map +1 -1
  582. package/cjs/storage/service/default-dcs.js +2 -0
  583. package/cjs/storage/service/default-dcs.js.map +1 -1
  584. package/cjs/storage/service/future-salts.js +2 -1
  585. package/cjs/storage/service/future-salts.js.map +1 -1
  586. package/cjs/storage/sqlite/driver.js +10 -10
  587. package/cjs/storage/sqlite/driver.js.map +1 -1
  588. package/cjs/storage/sqlite/index.d.ts +1 -1
  589. package/cjs/storage/sqlite/index.js +5 -0
  590. package/cjs/storage/sqlite/index.js.map +1 -1
  591. package/cjs/storage/sqlite/repository/auth-keys.js +9 -0
  592. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -1
  593. package/cjs/storage/sqlite/repository/kv.js +5 -0
  594. package/cjs/storage/sqlite/repository/kv.js.map +1 -1
  595. package/cjs/storage/sqlite/repository/peers.js +7 -2
  596. package/cjs/storage/sqlite/repository/peers.js.map +1 -1
  597. package/cjs/storage/sqlite/repository/ref-messages.d.ts +1 -1
  598. package/cjs/storage/sqlite/repository/ref-messages.js +6 -0
  599. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -1
  600. package/cjs/storage/storage.d.ts +22 -3
  601. package/cjs/storage/storage.js +21 -13
  602. package/cjs/storage/storage.js.map +1 -1
  603. package/cjs/types/errors.js +13 -0
  604. package/cjs/types/errors.js.map +1 -1
  605. package/cjs/types/utils.d.ts +1 -0
  606. package/cjs/types/utils.js.map +1 -1
  607. package/cjs/utils/async-lock.js +1 -3
  608. package/cjs/utils/async-lock.js.map +1 -1
  609. package/cjs/utils/bigint-utils.js.map +1 -1
  610. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  611. package/cjs/utils/buffer-utils.js.map +1 -1
  612. package/cjs/utils/condition-variable.js +2 -0
  613. package/cjs/utils/condition-variable.js.map +1 -1
  614. package/cjs/utils/crypto/factorization.js.map +1 -1
  615. package/cjs/utils/crypto/keys.js.map +1 -1
  616. package/cjs/utils/crypto/miller-rabin.js.map +1 -1
  617. package/cjs/utils/crypto/password.js.map +1 -1
  618. package/cjs/utils/crypto/utils.js.map +1 -1
  619. package/cjs/utils/dcs.js +1 -1
  620. package/cjs/utils/dcs.js.map +1 -1
  621. package/cjs/utils/deque.js +8 -2
  622. package/cjs/utils/deque.js.map +1 -1
  623. package/cjs/utils/early-timer.js +4 -1
  624. package/cjs/utils/early-timer.js.map +1 -1
  625. package/cjs/utils/error-reporting.js.map +1 -1
  626. package/cjs/utils/function-utils.js.map +1 -1
  627. package/cjs/utils/index.js +6 -0
  628. package/cjs/utils/linked-list.js +4 -1
  629. package/cjs/utils/linked-list.js.map +1 -1
  630. package/cjs/utils/links/bots.js.map +1 -1
  631. package/cjs/utils/links/chat.js.map +1 -1
  632. package/cjs/utils/links/common.js.map +1 -1
  633. package/cjs/utils/links/misc.js.map +1 -1
  634. package/cjs/utils/logger.d.ts +2 -2
  635. package/cjs/utils/logger.js +21 -14
  636. package/cjs/utils/logger.js.map +1 -1
  637. package/cjs/utils/long-utils.js +2 -6
  638. package/cjs/utils/long-utils.js.map +1 -1
  639. package/cjs/utils/lru-map.js +5 -1
  640. package/cjs/utils/lru-map.js.map +1 -1
  641. package/cjs/utils/lru-set.js +4 -0
  642. package/cjs/utils/lru-set.js.map +1 -1
  643. package/cjs/utils/peer-utils.js.map +1 -1
  644. package/cjs/utils/reloadable.d.ts +0 -1
  645. package/cjs/utils/reloadable.js +10 -7
  646. package/cjs/utils/reloadable.js.map +1 -1
  647. package/cjs/utils/sorted-array.js +2 -0
  648. package/cjs/utils/sorted-array.js.map +1 -1
  649. package/cjs/utils/tl-json.js.map +1 -1
  650. package/cjs/utils/type-assertions.js.map +1 -1
  651. package/client.d.ts +1 -0
  652. package/client.js +1 -0
  653. package/esm/highlevel/base.d.ts +1 -1
  654. package/esm/highlevel/base.js +29 -23
  655. package/esm/highlevel/base.js.map +1 -1
  656. package/esm/highlevel/client.d.ts +199 -18
  657. package/esm/highlevel/client.js +48 -0
  658. package/esm/highlevel/client.js.map +1 -1
  659. package/esm/highlevel/managers/app-config-manager.js +7 -5
  660. package/esm/highlevel/managers/app-config-manager.js.map +1 -1
  661. package/esm/highlevel/methods/_imports.js.map +1 -1
  662. package/esm/highlevel/methods/_init.js.map +1 -1
  663. package/esm/highlevel/methods/auth/start-test.js.map +1 -1
  664. package/esm/highlevel/methods/auth/start.js.map +1 -1
  665. package/esm/highlevel/methods/auth/utils.d.ts +3 -0
  666. package/esm/highlevel/methods/auth/utils.js.map +1 -1
  667. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  668. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -1
  669. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +5 -1
  670. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -1
  671. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -1
  672. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
  673. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -1
  674. package/esm/highlevel/methods/chats/batched-queries.d.ts +10 -1
  675. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -1
  676. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -1
  677. package/esm/highlevel/methods/chats/delete-history.js.map +1 -1
  678. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -1
  679. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -1
  680. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -1
  681. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -1
  682. package/esm/highlevel/methods/chats/get-chat.js.map +1 -1
  683. package/esm/highlevel/methods/chats/get-full-chat.d.ts +2 -2
  684. package/esm/highlevel/methods/chats/get-full-chat.js +2 -2
  685. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -1
  686. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -1
  687. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -1
  688. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -1
  689. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -1
  690. package/esm/highlevel/methods/chats/join-chat.js.map +1 -1
  691. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -1
  692. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -1
  693. package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
  694. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -1
  695. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -1
  696. package/esm/highlevel/methods/chats/save-draft.js.map +1 -1
  697. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -1
  698. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -1
  699. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -1
  700. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -1
  701. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -1
  702. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -1
  703. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -1
  704. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  705. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  706. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  707. package/esm/highlevel/methods/dialogs/get-folders.d.ts +3 -0
  708. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  709. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -1
  710. package/esm/highlevel/methods/files/download-buffer.js.map +1 -1
  711. package/esm/highlevel/methods/files/download-iterable.js +1 -1
  712. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  713. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -1
  714. package/esm/highlevel/methods/files/download-stream.js.map +1 -1
  715. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +9 -1
  716. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -1
  717. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -1
  718. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -0
  719. package/esm/highlevel/methods/files/normalize-input-media.js +12 -12
  720. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  721. package/esm/highlevel/methods/files/upload-file.js +8 -7
  722. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  723. package/esm/highlevel/methods/files/upload-media.js.map +1 -1
  724. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -1
  725. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -1
  726. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -1
  727. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -1
  728. package/esm/highlevel/methods/messages/_business-connection.d.ts +7 -0
  729. package/esm/highlevel/methods/messages/_business-connection.js +38 -0
  730. package/esm/highlevel/methods/messages/_business-connection.js.map +1 -0
  731. package/esm/highlevel/methods/messages/close-poll.js +1 -1
  732. package/esm/highlevel/methods/messages/close-poll.js.map +1 -1
  733. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -1
  734. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -1
  735. package/esm/highlevel/methods/messages/edit-message.d.ts +1 -0
  736. package/esm/highlevel/methods/messages/edit-message.js +2 -1
  737. package/esm/highlevel/methods/messages/edit-message.js.map +1 -1
  738. package/esm/highlevel/methods/messages/find-in-update.d.ts +13 -1
  739. package/esm/highlevel/methods/messages/find-in-update.js +7 -2
  740. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  741. package/esm/highlevel/methods/messages/forward-messages.d.ts +5 -0
  742. package/esm/highlevel/methods/messages/forward-messages.js +2 -0
  743. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -1
  744. package/esm/highlevel/methods/messages/get-all-scheduled-messages.d.ts +8 -0
  745. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js +25 -0
  746. package/esm/highlevel/methods/messages/get-all-scheduled-messages.js.map +1 -0
  747. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -1
  748. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +4 -0
  749. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -1
  750. package/esm/highlevel/methods/messages/get-history.js +5 -1
  751. package/esm/highlevel/methods/messages/get-history.js.map +1 -1
  752. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -1
  753. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -1
  754. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -1
  755. package/esm/highlevel/methods/messages/get-messages.js.map +1 -1
  756. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -1
  757. package/esm/highlevel/methods/messages/iter-history.js.map +1 -1
  758. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -1
  759. package/esm/highlevel/methods/messages/iter-search-global.js +2 -1
  760. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -1
  761. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -1
  762. package/esm/highlevel/methods/messages/read-history.js.map +1 -1
  763. package/esm/highlevel/methods/messages/search-global.d.ts +4 -0
  764. package/esm/highlevel/methods/messages/search-global.js +2 -1
  765. package/esm/highlevel/methods/messages/search-global.js.map +1 -1
  766. package/esm/highlevel/methods/messages/send-answer.js.map +1 -1
  767. package/esm/highlevel/methods/messages/send-comment.js.map +1 -1
  768. package/esm/highlevel/methods/messages/send-common.d.ts +28 -0
  769. package/esm/highlevel/methods/messages/send-common.js +19 -0
  770. package/esm/highlevel/methods/messages/send-common.js.map +1 -1
  771. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -1
  772. package/esm/highlevel/methods/messages/send-copy.js.map +1 -1
  773. package/esm/highlevel/methods/messages/send-media-group.js +5 -2
  774. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  775. package/esm/highlevel/methods/messages/send-media.js +4 -2
  776. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  777. package/esm/highlevel/methods/messages/send-quote.js.map +1 -1
  778. package/esm/highlevel/methods/messages/send-text.js +4 -2
  779. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  780. package/esm/highlevel/methods/messages/send-typing.d.ts +4 -0
  781. package/esm/highlevel/methods/messages/send-typing.js +2 -1
  782. package/esm/highlevel/methods/messages/send-typing.js.map +1 -1
  783. package/esm/highlevel/methods/messages/send-vote.js.map +1 -1
  784. package/esm/highlevel/methods/messages/translate-text.js.map +1 -1
  785. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -1
  786. package/esm/highlevel/methods/misc/chain-id.d.ts +4 -1
  787. package/esm/highlevel/methods/misc/get-collectible-info.d.ts +6 -0
  788. package/esm/highlevel/methods/misc/get-collectible-info.js +22 -0
  789. package/esm/highlevel/methods/misc/get-collectible-info.js.map +1 -0
  790. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -1
  791. package/esm/highlevel/methods/misc/normalize-text.d.ts +5 -1
  792. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -1
  793. package/esm/highlevel/methods/misc/with-params.js.map +1 -1
  794. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -1
  795. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -1
  796. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -1
  797. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -1
  798. package/esm/highlevel/methods/premium/create-business-chat-link.d.ts +12 -0
  799. package/esm/highlevel/methods/premium/create-business-chat-link.js +22 -0
  800. package/esm/highlevel/methods/premium/create-business-chat-link.js.map +1 -0
  801. package/esm/highlevel/methods/premium/edit-business-chat-link.d.ts +20 -0
  802. package/esm/highlevel/methods/premium/edit-business-chat-link.js +37 -0
  803. package/esm/highlevel/methods/premium/edit-business-chat-link.js.map +1 -0
  804. package/esm/highlevel/methods/premium/get-business-chat-links.d.ts +6 -0
  805. package/esm/highlevel/methods/premium/get-business-chat-links.js +10 -0
  806. package/esm/highlevel/methods/premium/get-business-chat-links.js.map +1 -0
  807. package/esm/highlevel/methods/premium/get-business-connection.d.ts +8 -0
  808. package/esm/highlevel/methods/premium/get-business-connection.js +21 -0
  809. package/esm/highlevel/methods/premium/get-business-connection.js.map +1 -0
  810. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -1
  811. package/esm/highlevel/methods/premium/set-business-intro.d.ts +22 -0
  812. package/esm/highlevel/methods/premium/set-business-intro.js +38 -0
  813. package/esm/highlevel/methods/premium/set-business-intro.js.map +1 -0
  814. package/esm/highlevel/methods/premium/set-business-work-hours.d.ts +18 -0
  815. package/esm/highlevel/methods/premium/set-business-work-hours.js +29 -0
  816. package/esm/highlevel/methods/premium/set-business-work-hours.js.map +1 -0
  817. package/esm/highlevel/methods/stickers/_utils.d.ts +10 -0
  818. package/esm/highlevel/methods/stickers/_utils.js +23 -0
  819. package/esm/highlevel/methods/stickers/_utils.js.map +1 -0
  820. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +1 -2
  821. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +4 -18
  822. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -1
  823. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +0 -3
  824. package/esm/highlevel/methods/stickers/create-sticker-set.js +3 -20
  825. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -1
  826. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +1 -2
  827. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +1 -2
  828. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -1
  829. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -1
  830. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +1 -2
  831. package/esm/highlevel/methods/stickers/get-installed-stickers.js +1 -2
  832. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -1
  833. package/esm/highlevel/methods/stickers/get-my-sticker-sets.d.ts +13 -0
  834. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js +17 -0
  835. package/esm/highlevel/methods/stickers/get-my-sticker-sets.js.map +1 -0
  836. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +2 -2
  837. package/esm/highlevel/methods/stickers/get-sticker-set.js +2 -2
  838. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -1
  839. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +2 -3
  840. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +2 -3
  841. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -1
  842. package/esm/highlevel/methods/stickers/replace-sticker-in-set.d.ts +24 -0
  843. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js +28 -0
  844. package/esm/highlevel/methods/stickers/replace-sticker-in-set.js.map +1 -0
  845. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -1
  846. package/esm/highlevel/methods/stories/edit-story.js.map +1 -1
  847. package/esm/highlevel/methods/stories/find-in-update.d.ts +5 -1
  848. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -1
  849. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -1
  850. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -1
  851. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -1
  852. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -1
  853. package/esm/highlevel/methods/stories/send-story.js.map +1 -1
  854. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -1
  855. package/esm/highlevel/methods/users/get-users.js.map +1 -1
  856. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -1
  857. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -1
  858. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -1
  859. package/esm/highlevel/methods/users/set-my-birthday.d.ts +12 -0
  860. package/esm/highlevel/methods/users/set-my-birthday.js +18 -0
  861. package/esm/highlevel/methods/users/set-my-birthday.js.map +1 -0
  862. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -1
  863. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -1
  864. package/esm/highlevel/methods.d.ts +12 -0
  865. package/esm/highlevel/methods.js +12 -0
  866. package/esm/highlevel/methods.js.map +1 -1
  867. package/esm/highlevel/storage/service/current-user.js +2 -0
  868. package/esm/highlevel/storage/service/current-user.js.map +1 -1
  869. package/esm/highlevel/storage/service/peers.js +5 -1
  870. package/esm/highlevel/storage/service/peers.js.map +1 -1
  871. package/esm/highlevel/storage/service/ref-messages.js +3 -0
  872. package/esm/highlevel/storage/service/ref-messages.js.map +1 -1
  873. package/esm/highlevel/storage/service/updates.js +1 -0
  874. package/esm/highlevel/storage/service/updates.js.map +1 -1
  875. package/esm/highlevel/storage/storage.d.ts +8 -3
  876. package/esm/highlevel/storage/storage.js +17 -4
  877. package/esm/highlevel/storage/storage.js.map +1 -1
  878. package/esm/highlevel/types/auth/sent-code.d.ts +7 -2
  879. package/esm/highlevel/types/auth/sent-code.js +15 -0
  880. package/esm/highlevel/types/auth/sent-code.js.map +1 -1
  881. package/esm/highlevel/types/bots/game-high-score.js +2 -0
  882. package/esm/highlevel/types/bots/game-high-score.js.map +1 -1
  883. package/esm/highlevel/types/bots/inline-message/factories.d.ts +5 -1
  884. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -1
  885. package/esm/highlevel/types/bots/inline-result/factories.d.ts +4 -1
  886. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -1
  887. package/esm/highlevel/types/bots/keyboards/builder.js +2 -1
  888. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -1
  889. package/esm/highlevel/types/bots/keyboards/factories.d.ts +7 -1
  890. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -1
  891. package/esm/highlevel/types/calls/discard-reason.d.ts +5 -0
  892. package/esm/highlevel/types/calls/discard-reason.js.map +1 -1
  893. package/esm/highlevel/types/conversation.js +13 -7
  894. package/esm/highlevel/types/conversation.js.map +1 -1
  895. package/esm/highlevel/types/errors.js +3 -0
  896. package/esm/highlevel/types/errors.js.map +1 -1
  897. package/esm/highlevel/types/files/file-location.js +3 -0
  898. package/esm/highlevel/types/files/file-location.js.map +1 -1
  899. package/esm/highlevel/types/files/uploaded-file.d.ts +2 -0
  900. package/esm/highlevel/types/files/uploaded-file.js +1 -1
  901. package/esm/highlevel/types/files/uploaded-file.js.map +1 -1
  902. package/esm/highlevel/types/files/utils.d.ts +6 -5
  903. package/esm/highlevel/types/files/utils.js.map +1 -1
  904. package/esm/highlevel/types/files/web-document.js +1 -0
  905. package/esm/highlevel/types/files/web-document.js.map +1 -1
  906. package/esm/highlevel/types/media/audio.js +3 -2
  907. package/esm/highlevel/types/media/audio.js.map +1 -1
  908. package/esm/highlevel/types/media/contact.js +2 -1
  909. package/esm/highlevel/types/media/contact.js.map +1 -1
  910. package/esm/highlevel/types/media/dice.js +125 -124
  911. package/esm/highlevel/types/media/dice.js.map +1 -1
  912. package/esm/highlevel/types/media/document-utils.d.ts +5 -0
  913. package/esm/highlevel/types/media/document-utils.js +7 -1
  914. package/esm/highlevel/types/media/document-utils.js.map +1 -1
  915. package/esm/highlevel/types/media/document.js +2 -4
  916. package/esm/highlevel/types/media/document.js.map +1 -1
  917. package/esm/highlevel/types/media/game.js +2 -1
  918. package/esm/highlevel/types/media/game.js.map +1 -1
  919. package/esm/highlevel/types/media/input-media/types.d.ts +2 -2
  920. package/esm/highlevel/types/media/input-media/types.js.map +1 -1
  921. package/esm/highlevel/types/media/invoice.js +4 -1
  922. package/esm/highlevel/types/media/invoice.js.map +1 -1
  923. package/esm/highlevel/types/media/location.js +4 -5
  924. package/esm/highlevel/types/media/location.js.map +1 -1
  925. package/esm/highlevel/types/media/photo.js +8 -1
  926. package/esm/highlevel/types/media/photo.js.map +1 -1
  927. package/esm/highlevel/types/media/poll.d.ts +17 -6
  928. package/esm/highlevel/types/media/poll.js +68 -18
  929. package/esm/highlevel/types/media/poll.js.map +1 -1
  930. package/esm/highlevel/types/media/sticker.js +3 -1
  931. package/esm/highlevel/types/media/sticker.js.map +1 -1
  932. package/esm/highlevel/types/media/story.js +3 -1
  933. package/esm/highlevel/types/media/story.js.map +1 -1
  934. package/esm/highlevel/types/media/thumbnail.js +35 -22
  935. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  936. package/esm/highlevel/types/media/venue.js +2 -1
  937. package/esm/highlevel/types/media/venue.js.map +1 -1
  938. package/esm/highlevel/types/media/video.js +3 -1
  939. package/esm/highlevel/types/media/video.js.map +1 -1
  940. package/esm/highlevel/types/media/voice.js +2 -1
  941. package/esm/highlevel/types/media/voice.js.map +1 -1
  942. package/esm/highlevel/types/media/web-page.js +2 -1
  943. package/esm/highlevel/types/media/web-page.js.map +1 -1
  944. package/esm/highlevel/types/messages/dialog.js +4 -12
  945. package/esm/highlevel/types/messages/dialog.js.map +1 -1
  946. package/esm/highlevel/types/messages/draft-message.js +1 -0
  947. package/esm/highlevel/types/messages/draft-message.js.map +1 -1
  948. package/esm/highlevel/types/messages/input-message-id.d.ts +5 -0
  949. package/esm/highlevel/types/messages/message-action.d.ts +19 -2
  950. package/esm/highlevel/types/messages/message-action.js +6 -0
  951. package/esm/highlevel/types/messages/message-action.js.map +1 -1
  952. package/esm/highlevel/types/messages/message-entity.js +2 -0
  953. package/esm/highlevel/types/messages/message-entity.js.map +1 -1
  954. package/esm/highlevel/types/messages/message-forward.js +2 -0
  955. package/esm/highlevel/types/messages/message-forward.js.map +1 -1
  956. package/esm/highlevel/types/messages/message-media.d.ts +4 -0
  957. package/esm/highlevel/types/messages/message-media.js.map +1 -1
  958. package/esm/highlevel/types/messages/message-reactions.js +4 -0
  959. package/esm/highlevel/types/messages/message-reactions.js.map +1 -1
  960. package/esm/highlevel/types/messages/message-replies.js +2 -0
  961. package/esm/highlevel/types/messages/message-replies.js.map +1 -1
  962. package/esm/highlevel/types/messages/message.d.ts +59 -1
  963. package/esm/highlevel/types/messages/message.js +102 -1
  964. package/esm/highlevel/types/messages/message.js.map +1 -1
  965. package/esm/highlevel/types/messages/replied-message.js +2 -0
  966. package/esm/highlevel/types/messages/replied-message.js.map +1 -1
  967. package/esm/highlevel/types/misc/collectible-info.d.ts +27 -0
  968. package/esm/highlevel/types/misc/collectible-info.js +43 -0
  969. package/esm/highlevel/types/misc/collectible-info.js.map +1 -0
  970. package/esm/highlevel/types/misc/entities.d.ts +7 -0
  971. package/esm/highlevel/types/misc/entities.js +13 -1
  972. package/esm/highlevel/types/misc/entities.js.map +1 -1
  973. package/esm/highlevel/types/misc/index.d.ts +1 -0
  974. package/esm/highlevel/types/misc/index.js +1 -0
  975. package/esm/highlevel/types/misc/index.js.map +1 -1
  976. package/esm/highlevel/types/misc/sticker-set.d.ts +8 -1
  977. package/esm/highlevel/types/misc/sticker-set.js +45 -8
  978. package/esm/highlevel/types/misc/sticker-set.js.map +1 -1
  979. package/esm/highlevel/types/misc/takeout-session.js +5 -0
  980. package/esm/highlevel/types/misc/takeout-session.js.map +1 -1
  981. package/esm/highlevel/types/peers/chat-colors.js +2 -0
  982. package/esm/highlevel/types/peers/chat-colors.js.map +1 -1
  983. package/esm/highlevel/types/peers/chat-event/actions.d.ts +3 -0
  984. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -1
  985. package/esm/highlevel/types/peers/chat-event/filters.d.ts +2 -0
  986. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -1
  987. package/esm/highlevel/types/peers/chat-event/index.js +2 -0
  988. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -1
  989. package/esm/highlevel/types/peers/chat-invite-link-member.js +2 -0
  990. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -1
  991. package/esm/highlevel/types/peers/chat-invite-link.js +2 -0
  992. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -1
  993. package/esm/highlevel/types/peers/chat-location.js +1 -0
  994. package/esm/highlevel/types/peers/chat-location.js.map +1 -1
  995. package/esm/highlevel/types/peers/chat-member.js +2 -0
  996. package/esm/highlevel/types/peers/chat-member.js.map +1 -1
  997. package/esm/highlevel/types/peers/chat-permissions.js +1 -0
  998. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -1
  999. package/esm/highlevel/types/peers/chat-photo.js +5 -0
  1000. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  1001. package/esm/highlevel/types/peers/chat-preview.js +2 -0
  1002. package/esm/highlevel/types/peers/chat-preview.js.map +1 -1
  1003. package/esm/highlevel/types/peers/chat.d.ts +7 -93
  1004. package/esm/highlevel/types/peers/chat.js +10 -192
  1005. package/esm/highlevel/types/peers/chat.js.map +1 -1
  1006. package/esm/highlevel/types/peers/forum-topic.js +9 -6
  1007. package/esm/highlevel/types/peers/forum-topic.js.map +1 -1
  1008. package/esm/highlevel/types/peers/full-chat.d.ts +103 -0
  1009. package/esm/highlevel/types/peers/full-chat.js +234 -0
  1010. package/esm/highlevel/types/peers/full-chat.js.map +1 -0
  1011. package/esm/highlevel/types/peers/index.d.ts +1 -0
  1012. package/esm/highlevel/types/peers/index.js +1 -0
  1013. package/esm/highlevel/types/peers/index.js.map +1 -1
  1014. package/esm/highlevel/types/peers/peer.js.map +1 -1
  1015. package/esm/highlevel/types/peers/peers-index.js +3 -1
  1016. package/esm/highlevel/types/peers/peers-index.js.map +1 -1
  1017. package/esm/highlevel/types/peers/user.d.ts +5 -0
  1018. package/esm/highlevel/types/peers/user.js +12 -1
  1019. package/esm/highlevel/types/peers/user.js.map +1 -1
  1020. package/esm/highlevel/types/premium/boost-slot.js +2 -0
  1021. package/esm/highlevel/types/premium/boost-slot.js.map +1 -1
  1022. package/esm/highlevel/types/premium/boost-stats.js +1 -0
  1023. package/esm/highlevel/types/premium/boost-stats.js.map +1 -1
  1024. package/esm/highlevel/types/premium/boost.js +2 -0
  1025. package/esm/highlevel/types/premium/boost.js.map +1 -1
  1026. package/esm/highlevel/types/premium/business-account.d.ts +19 -0
  1027. package/esm/highlevel/types/premium/business-account.js +42 -0
  1028. package/esm/highlevel/types/premium/business-account.js.map +1 -0
  1029. package/esm/highlevel/types/premium/business-chat-link.d.ts +19 -0
  1030. package/esm/highlevel/types/premium/business-chat-link.js +36 -0
  1031. package/esm/highlevel/types/premium/business-chat-link.js.map +1 -0
  1032. package/esm/highlevel/types/premium/business-connection.d.ts +23 -0
  1033. package/esm/highlevel/types/premium/business-connection.js +42 -0
  1034. package/esm/highlevel/types/premium/business-connection.js.map +1 -0
  1035. package/esm/highlevel/types/premium/business-intro.d.ts +22 -0
  1036. package/esm/highlevel/types/premium/business-intro.js +40 -0
  1037. package/esm/highlevel/types/premium/business-intro.js.map +1 -0
  1038. package/esm/highlevel/types/premium/business-location.d.ts +10 -0
  1039. package/esm/highlevel/types/premium/business-location.js +23 -0
  1040. package/esm/highlevel/types/premium/business-location.js.map +1 -0
  1041. package/esm/highlevel/types/premium/business-work-hours.d.ts +42 -0
  1042. package/esm/highlevel/types/premium/business-work-hours.js +137 -0
  1043. package/esm/highlevel/types/premium/business-work-hours.js.map +1 -0
  1044. package/esm/highlevel/types/premium/index.d.ts +5 -0
  1045. package/esm/highlevel/types/premium/index.js +5 -0
  1046. package/esm/highlevel/types/premium/index.js.map +1 -1
  1047. package/esm/highlevel/types/reactions/emoji-status.js +1 -0
  1048. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -1
  1049. package/esm/highlevel/types/reactions/peer-reaction.js +2 -0
  1050. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -1
  1051. package/esm/highlevel/types/reactions/reaction-count.js +1 -0
  1052. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -1
  1053. package/esm/highlevel/types/reactions/types.js.map +1 -1
  1054. package/esm/highlevel/types/stories/all-stories.d.ts +2 -2
  1055. package/esm/highlevel/types/stories/all-stories.js +3 -1
  1056. package/esm/highlevel/types/stories/all-stories.js.map +1 -1
  1057. package/esm/highlevel/types/stories/interactive/base.js +1 -0
  1058. package/esm/highlevel/types/stories/interactive/base.js.map +1 -1
  1059. package/esm/highlevel/types/stories/interactive/channel-post.js +3 -1
  1060. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -1
  1061. package/esm/highlevel/types/stories/interactive/index.js.map +1 -1
  1062. package/esm/highlevel/types/stories/interactive/input.js +1 -0
  1063. package/esm/highlevel/types/stories/interactive/input.js.map +1 -1
  1064. package/esm/highlevel/types/stories/interactive/location.js +2 -1
  1065. package/esm/highlevel/types/stories/interactive/location.js.map +1 -1
  1066. package/esm/highlevel/types/stories/interactive/reaction.js +2 -1
  1067. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -1
  1068. package/esm/highlevel/types/stories/interactive/venue.js +2 -1
  1069. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -1
  1070. package/esm/highlevel/types/stories/peer-stories.js +2 -0
  1071. package/esm/highlevel/types/stories/peer-stories.js.map +1 -1
  1072. package/esm/highlevel/types/stories/stealth-mode.js +1 -0
  1073. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -1
  1074. package/esm/highlevel/types/stories/story-interactions.js +2 -0
  1075. package/esm/highlevel/types/stories/story-interactions.js.map +1 -1
  1076. package/esm/highlevel/types/stories/story-viewer.d.ts +1 -1
  1077. package/esm/highlevel/types/stories/story-viewer.js +6 -0
  1078. package/esm/highlevel/types/stories/story-viewer.js.map +1 -1
  1079. package/esm/highlevel/types/stories/story.js +2 -0
  1080. package/esm/highlevel/types/stories/story.js.map +1 -1
  1081. package/esm/highlevel/types/updates/bot-chat-join-request.js +2 -0
  1082. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -1
  1083. package/esm/highlevel/types/updates/bot-reaction.js +4 -0
  1084. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -1
  1085. package/esm/highlevel/types/updates/bot-stopped.js +2 -0
  1086. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -1
  1087. package/esm/highlevel/types/updates/business-message.d.ts +18 -0
  1088. package/esm/highlevel/types/updates/business-message.js +31 -0
  1089. package/esm/highlevel/types/updates/business-message.js.map +1 -0
  1090. package/esm/highlevel/types/updates/callback-query.js +4 -0
  1091. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  1092. package/esm/highlevel/types/updates/chat-join-request.js +2 -0
  1093. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -1
  1094. package/esm/highlevel/types/updates/chat-member-update.js +2 -0
  1095. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -1
  1096. package/esm/highlevel/types/updates/chosen-inline-result.js +2 -0
  1097. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -1
  1098. package/esm/highlevel/types/updates/delete-business-message-update.d.ts +21 -0
  1099. package/esm/highlevel/types/updates/delete-business-message-update.js +34 -0
  1100. package/esm/highlevel/types/updates/delete-business-message-update.js.map +1 -0
  1101. package/esm/highlevel/types/updates/delete-message-update.js +1 -0
  1102. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -1
  1103. package/esm/highlevel/types/updates/delete-story-update.js +2 -0
  1104. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -1
  1105. package/esm/highlevel/types/updates/history-read-update.js +1 -0
  1106. package/esm/highlevel/types/updates/history-read-update.js.map +1 -1
  1107. package/esm/highlevel/types/updates/index.d.ts +19 -2
  1108. package/esm/highlevel/types/updates/index.js +3 -1
  1109. package/esm/highlevel/types/updates/index.js.map +1 -1
  1110. package/esm/highlevel/types/updates/inline-query.js +2 -0
  1111. package/esm/highlevel/types/updates/inline-query.js.map +1 -1
  1112. package/esm/highlevel/types/updates/parse-update.d.ts +4 -1
  1113. package/esm/highlevel/types/updates/parse-update.js +9 -1
  1114. package/esm/highlevel/types/updates/parse-update.js.map +1 -1
  1115. package/esm/highlevel/types/updates/poll-update.js +4 -2
  1116. package/esm/highlevel/types/updates/poll-update.js.map +1 -1
  1117. package/esm/highlevel/types/updates/poll-vote.js +2 -0
  1118. package/esm/highlevel/types/updates/poll-vote.js.map +1 -1
  1119. package/esm/highlevel/types/updates/pre-checkout-query.js +2 -0
  1120. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -1
  1121. package/esm/highlevel/types/updates/story-update.js +2 -0
  1122. package/esm/highlevel/types/updates/story-update.js.map +1 -1
  1123. package/esm/highlevel/types/updates/user-status-update.js +1 -0
  1124. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  1125. package/esm/highlevel/types/updates/user-typing-update.js +1 -0
  1126. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -1
  1127. package/esm/highlevel/updates/manager.d.ts +0 -1
  1128. package/esm/highlevel/updates/manager.js +57 -30
  1129. package/esm/highlevel/updates/manager.js.map +1 -1
  1130. package/esm/highlevel/updates/parsed.js +8 -2
  1131. package/esm/highlevel/updates/parsed.js.map +1 -1
  1132. package/esm/highlevel/updates/types.d.ts +57 -0
  1133. package/esm/highlevel/updates/utils.d.ts +2 -0
  1134. package/esm/highlevel/updates/utils.js.map +1 -1
  1135. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  1136. package/esm/highlevel/utils/entities.js.map +1 -1
  1137. package/esm/highlevel/utils/file-type.d.ts +1 -0
  1138. package/esm/highlevel/utils/file-type.js +34 -0
  1139. package/esm/highlevel/utils/file-type.js.map +1 -1
  1140. package/esm/highlevel/utils/file-utils.js +1 -1
  1141. package/esm/highlevel/utils/file-utils.js.map +1 -1
  1142. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  1143. package/esm/highlevel/utils/inspectable.js +4 -0
  1144. package/esm/highlevel/utils/inspectable.js.map +1 -1
  1145. package/esm/highlevel/utils/memoize.js.map +1 -1
  1146. package/esm/highlevel/utils/peer-utils.js.map +1 -1
  1147. package/esm/highlevel/utils/query-batcher.js.map +1 -1
  1148. package/esm/highlevel/utils/rps-meter.js +3 -0
  1149. package/esm/highlevel/utils/rps-meter.js.map +1 -1
  1150. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  1151. package/esm/highlevel/utils/string-session.d.ts +1 -2
  1152. package/esm/highlevel/utils/string-session.js +27 -7
  1153. package/esm/highlevel/utils/string-session.js.map +1 -1
  1154. package/esm/highlevel/utils/voice-utils.js.map +1 -1
  1155. package/esm/highlevel/worker/app-config.d.ts +2 -3
  1156. package/esm/highlevel/worker/app-config.js +6 -3
  1157. package/esm/highlevel/worker/app-config.js.map +1 -1
  1158. package/esm/highlevel/worker/errors.js.map +1 -1
  1159. package/esm/highlevel/worker/invoker.js +3 -2
  1160. package/esm/highlevel/worker/invoker.js.map +1 -1
  1161. package/esm/highlevel/worker/port.d.ts +16 -17
  1162. package/esm/highlevel/worker/port.js +74 -49
  1163. package/esm/highlevel/worker/port.js.map +1 -1
  1164. package/esm/highlevel/worker/protocol.d.ts +1 -2
  1165. package/esm/highlevel/worker/protocol.js.map +1 -1
  1166. package/esm/highlevel/worker/storage.d.ts +9 -13
  1167. package/esm/highlevel/worker/storage.js +34 -19
  1168. package/esm/highlevel/worker/storage.js.map +1 -1
  1169. package/esm/highlevel/worker/worker.js +3 -0
  1170. package/esm/highlevel/worker/worker.js.map +1 -1
  1171. package/esm/network/auth-key.js +8 -1
  1172. package/esm/network/auth-key.js.map +1 -1
  1173. package/esm/network/authorization.js.map +1 -1
  1174. package/esm/network/client.d.ts +0 -1
  1175. package/esm/network/client.js +39 -14
  1176. package/esm/network/client.js.map +1 -1
  1177. package/esm/network/config-manager.js.map +1 -1
  1178. package/esm/network/mtproto-session.d.ts +0 -1
  1179. package/esm/network/mtproto-session.js +40 -30
  1180. package/esm/network/mtproto-session.js.map +1 -1
  1181. package/esm/network/multi-session-connection.d.ts +1 -2
  1182. package/esm/network/multi-session-connection.js +13 -7
  1183. package/esm/network/multi-session-connection.js.map +1 -1
  1184. package/esm/network/network-manager.d.ts +10 -3
  1185. package/esm/network/network-manager.js +57 -31
  1186. package/esm/network/network-manager.js.map +1 -1
  1187. package/esm/network/persistent-connection.d.ts +2 -3
  1188. package/esm/network/persistent-connection.js +33 -22
  1189. package/esm/network/persistent-connection.js.map +1 -1
  1190. package/esm/network/server-salt.js +4 -5
  1191. package/esm/network/server-salt.js.map +1 -1
  1192. package/esm/network/session-connection.d.ts +1 -1
  1193. package/esm/network/session-connection.js +32 -12
  1194. package/esm/network/session-connection.js.map +1 -1
  1195. package/esm/network/transports/abstract.d.ts +1 -2
  1196. package/esm/network/transports/abstract.js +1 -0
  1197. package/esm/network/transports/abstract.js.map +1 -1
  1198. package/esm/network/transports/intermediate.js +1 -0
  1199. package/esm/network/transports/intermediate.js.map +1 -1
  1200. package/esm/network/transports/obfuscated.js +3 -0
  1201. package/esm/network/transports/obfuscated.js.map +1 -1
  1202. package/esm/network/transports/streamed.d.ts +0 -1
  1203. package/esm/network/transports/streamed.js +1 -4
  1204. package/esm/network/transports/streamed.js.map +1 -1
  1205. package/esm/network/transports/wrapped.d.ts +0 -1
  1206. package/esm/network/transports/wrapped.js +2 -0
  1207. package/esm/network/transports/wrapped.js.map +1 -1
  1208. package/esm/platform.js.map +1 -1
  1209. package/esm/storage/driver.js +3 -4
  1210. package/esm/storage/driver.js.map +1 -1
  1211. package/esm/storage/memory/driver.js +1 -3
  1212. package/esm/storage/memory/driver.js.map +1 -1
  1213. package/esm/storage/memory/index.js +5 -7
  1214. package/esm/storage/memory/index.js.map +1 -1
  1215. package/esm/storage/memory/repository/auth-keys.d.ts +1 -1
  1216. package/esm/storage/memory/repository/auth-keys.js +2 -0
  1217. package/esm/storage/memory/repository/auth-keys.js.map +1 -1
  1218. package/esm/storage/memory/repository/kv.d.ts +1 -1
  1219. package/esm/storage/memory/repository/kv.js +2 -0
  1220. package/esm/storage/memory/repository/kv.js.map +1 -1
  1221. package/esm/storage/memory/repository/peers.d.ts +1 -1
  1222. package/esm/storage/memory/repository/peers.js +2 -0
  1223. package/esm/storage/memory/repository/peers.js.map +1 -1
  1224. package/esm/storage/memory/repository/ref-messages.d.ts +1 -1
  1225. package/esm/storage/memory/repository/ref-messages.js +2 -0
  1226. package/esm/storage/memory/repository/ref-messages.js.map +1 -1
  1227. package/esm/storage/service/auth-keys.js +2 -0
  1228. package/esm/storage/service/auth-keys.js.map +1 -1
  1229. package/esm/storage/service/base.js +4 -0
  1230. package/esm/storage/service/base.js.map +1 -1
  1231. package/esm/storage/service/default-dcs.js +2 -0
  1232. package/esm/storage/service/default-dcs.js.map +1 -1
  1233. package/esm/storage/service/future-salts.js +2 -1
  1234. package/esm/storage/service/future-salts.js.map +1 -1
  1235. package/esm/storage/sqlite/driver.js +10 -10
  1236. package/esm/storage/sqlite/driver.js.map +1 -1
  1237. package/esm/storage/sqlite/index.d.ts +1 -1
  1238. package/esm/storage/sqlite/index.js +5 -0
  1239. package/esm/storage/sqlite/index.js.map +1 -1
  1240. package/esm/storage/sqlite/repository/auth-keys.js +9 -0
  1241. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -1
  1242. package/esm/storage/sqlite/repository/kv.js +5 -0
  1243. package/esm/storage/sqlite/repository/kv.js.map +1 -1
  1244. package/esm/storage/sqlite/repository/peers.js +7 -2
  1245. package/esm/storage/sqlite/repository/peers.js.map +1 -1
  1246. package/esm/storage/sqlite/repository/ref-messages.d.ts +1 -1
  1247. package/esm/storage/sqlite/repository/ref-messages.js +6 -0
  1248. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -1
  1249. package/esm/storage/storage.d.ts +22 -3
  1250. package/esm/storage/storage.js +21 -13
  1251. package/esm/storage/storage.js.map +1 -1
  1252. package/esm/types/errors.js +13 -0
  1253. package/esm/types/errors.js.map +1 -1
  1254. package/esm/types/utils.d.ts +1 -0
  1255. package/esm/types/utils.js.map +1 -1
  1256. package/esm/utils/async-lock.js +1 -3
  1257. package/esm/utils/async-lock.js.map +1 -1
  1258. package/esm/utils/bigint-utils.js.map +1 -1
  1259. package/esm/utils/binary/asn1-parser.js.map +1 -1
  1260. package/esm/utils/buffer-utils.js.map +1 -1
  1261. package/esm/utils/condition-variable.js +2 -0
  1262. package/esm/utils/condition-variable.js.map +1 -1
  1263. package/esm/utils/crypto/factorization.js.map +1 -1
  1264. package/esm/utils/crypto/keys.js.map +1 -1
  1265. package/esm/utils/crypto/miller-rabin.js.map +1 -1
  1266. package/esm/utils/crypto/password.js.map +1 -1
  1267. package/esm/utils/crypto/utils.js.map +1 -1
  1268. package/esm/utils/dcs.js +1 -1
  1269. package/esm/utils/dcs.js.map +1 -1
  1270. package/esm/utils/deque.js +8 -2
  1271. package/esm/utils/deque.js.map +1 -1
  1272. package/esm/utils/early-timer.js +4 -1
  1273. package/esm/utils/early-timer.js.map +1 -1
  1274. package/esm/utils/error-reporting.js.map +1 -1
  1275. package/esm/utils/function-utils.js.map +1 -1
  1276. package/esm/utils/linked-list.js +4 -1
  1277. package/esm/utils/linked-list.js.map +1 -1
  1278. package/esm/utils/links/bots.js.map +1 -1
  1279. package/esm/utils/links/chat.js.map +1 -1
  1280. package/esm/utils/links/common.js.map +1 -1
  1281. package/esm/utils/links/misc.js.map +1 -1
  1282. package/esm/utils/logger.d.ts +2 -2
  1283. package/esm/utils/logger.js +21 -14
  1284. package/esm/utils/logger.js.map +1 -1
  1285. package/esm/utils/long-utils.js +2 -6
  1286. package/esm/utils/long-utils.js.map +1 -1
  1287. package/esm/utils/lru-map.js +5 -1
  1288. package/esm/utils/lru-map.js.map +1 -1
  1289. package/esm/utils/lru-set.js +4 -0
  1290. package/esm/utils/lru-set.js.map +1 -1
  1291. package/esm/utils/peer-utils.js.map +1 -1
  1292. package/esm/utils/reloadable.d.ts +0 -1
  1293. package/esm/utils/reloadable.js +10 -7
  1294. package/esm/utils/reloadable.js.map +1 -1
  1295. package/esm/utils/sorted-array.js +2 -0
  1296. package/esm/utils/sorted-array.js.map +1 -1
  1297. package/esm/utils/tl-json.js.map +1 -1
  1298. package/esm/utils/type-assertions.js.map +1 -1
  1299. package/index.d.ts +1 -0
  1300. package/index.js +1 -0
  1301. package/methods.d.ts +1 -0
  1302. package/methods.js +1 -0
  1303. package/package.json +13 -13
  1304. package/platform.d.ts +1 -0
  1305. package/platform.js +1 -0
  1306. package/utils.d.ts +1 -0
  1307. package/utils.js +1 -0
  1308. package/worker.d.ts +1 -0
  1309. package/worker.js +1 -0
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import EventEmitter from 'events';
3
2
  import { tl } from '@mtcute/tl';
4
3
  import { MaybePromise } from '../../types/index.js';
@@ -44,7 +43,7 @@ export interface ITelegramTransport extends EventEmitter {
44
43
  */
45
44
  connect(dc: BasicDcOption, testMode: boolean): void;
46
45
  /** call to close existing connection to some DC */
47
- close(): void;
46
+ close(): MaybePromise<void>;
48
47
  /** send a message */
49
48
  send(data: Uint8Array): Promise<void>;
50
49
  /**
@@ -26,6 +26,7 @@ export var TransportState;
26
26
  * More: https://core.telegram.org/mtproto/mtproto-transports#transport-errors
27
27
  */
28
28
  export class TransportError extends Error {
29
+ code;
29
30
  constructor(code) {
30
31
  super(`Transport error: ${code}`);
31
32
  this.code = code;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/network/transports/abstract.ts"],"names":[],"mappings":"AAOA,qCAAqC;AACrC,MAAM,CAAN,IAAY,cAkBX;AAlBD,WAAY,cAAc;IACtB;;;;;;;OAOG;IACH,+BAAa,CAAA;IACb;;OAEG;IACH,2CAAyB,CAAA;IACzB;;OAEG;IACH,iCAAe,CAAA;AACnB,CAAC,EAlBW,cAAc,KAAd,cAAc,QAkBzB;AA6ED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGrC,YAAY,IAAY;QACpB,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;CACJ","sourcesContent":["import EventEmitter from 'events'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MaybePromise } from '../../types/index.js'\nimport { BasicDcOption, ICryptoProvider, Logger } from '../../utils/index.js'\n\n/** Current state of the transport */\nexport enum TransportState {\n /**\n * Transport has no active connections nor trying to connect to anything\n * Can be a result of network failure, close() call, or connect() call was\n * never called on this instance of Transport.\n *\n * This state is usually immediately handled by more higher-level components,\n * thus rarely seen\n */\n Idle = 'idle',\n /**\n * Transport has no active connections, but is trying to connect to something\n */\n Connecting = 'connecting',\n /**\n * Transport has an active connection\n */\n Ready = 'ready',\n}\n\n/**\n * Interface implementing a transport to interact with Telegram servers.\n *\n * Events:\n * - `ready` event is emitted once connection has been established: `() => void`\n * - `close` event is emitted once connection has been closed: `() => void`\n * - `error` event is event is emitted when there was some error\n * (either mtproto related or network related): `(error: Error) => void`\n * - `message` event is emitted when a mtproto message is received: `(message: Buffer) => void`\n */\nexport interface ITelegramTransport extends EventEmitter {\n /** returns current state */\n state(): TransportState\n /** returns current DC. should return null if state == IDLE */\n currentDc(): BasicDcOption | null\n\n /**\n * Start trying to connect to a specified DC.\n * Will throw an error if state != IDLE\n */\n connect(dc: BasicDcOption, testMode: boolean): void\n /** call to close existing connection to some DC */\n close(): void\n /** send a message */\n send(data: Uint8Array): Promise<void>\n\n /**\n * Provides crypto and logging for the transport.\n * Not done in constructor to simplify factory.\n *\n * This method is called before any other.\n */\n setup?(crypto: ICryptoProvider, log: Logger): void\n\n getMtproxyInfo?(): tl.RawInputClientProxy\n}\n\n/** Transport factory function */\nexport type TransportFactory = () => ITelegramTransport\n\n/**\n * Interface declaring handling of received packets.\n * When receiving a packet, its content is sent to feed(),\n * and codec is supposed to emit `packet` or `error` event when packet is parsed.\n */\nexport interface IPacketCodec {\n /** Initial tag of the codec. Will be sent immediately once connected. */\n tag(): MaybePromise<Uint8Array>\n\n /** Encodes and frames a single packet */\n encode(packet: Uint8Array): MaybePromise<Uint8Array>\n\n /** Feed packet to the codec. Once packet is processed, codec is supposed to emit `packet` or `error` */\n feed(data: Uint8Array): void\n /** Reset codec state (for example, reset buffer) */\n reset(): void\n\n /** Remove all listeners from a codec, used to safely dispose it */\n removeAllListeners(): void\n\n /**\n * Emitted when a packet containing a\n * (Transport error)[https://core.telegram.org/mtproto/mtproto-transports#transport-errors] is encountered.\n */\n on(event: 'error', handler: (error: Error) => void): void\n /** Emitted when a full packet has been processed. */\n on(event: 'packet', handler: (packet: Uint8Array) => void): void\n\n /**\n * For codecs that use crypto functions and/or logging.\n * This method is called before any other.\n */\n setup?(crypto: ICryptoProvider, log: Logger): void\n}\n\n/**\n * Error that represents an error in an underlying transport\n * (and usually means either server-side problems or bug in library)\n *\n * More: https://core.telegram.org/mtproto/mtproto-transports#transport-errors\n */\nexport class TransportError extends Error {\n code: number\n\n constructor(code: number) {\n super(`Transport error: ${code}`)\n this.code = code\n }\n}\n"]}
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/network/transports/abstract.ts"],"names":[],"mappings":"AAOA,qCAAqC;AACrC,MAAM,CAAN,IAAY,cAkBX;AAlBD,WAAY,cAAc;IACtB;;;;;;;OAOG;IACH,+BAAa,CAAA;IACb;;OAEG;IACH,2CAAyB,CAAA;IACzB;;OAEG;IACH,iCAAe,CAAA;AACnB,CAAC,EAlBW,cAAc,KAAd,cAAc,QAkBzB;AA6ED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACrC,IAAI,CAAQ;IAEZ,YAAY,IAAY;QACpB,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;CACJ","sourcesContent":["import EventEmitter from 'events'\n\nimport { tl } from '@mtcute/tl'\n\nimport { MaybePromise } from '../../types/index.js'\nimport { BasicDcOption, ICryptoProvider, Logger } from '../../utils/index.js'\n\n/** Current state of the transport */\nexport enum TransportState {\n /**\n * Transport has no active connections nor trying to connect to anything\n * Can be a result of network failure, close() call, or connect() call was\n * never called on this instance of Transport.\n *\n * This state is usually immediately handled by more higher-level components,\n * thus rarely seen\n */\n Idle = 'idle',\n /**\n * Transport has no active connections, but is trying to connect to something\n */\n Connecting = 'connecting',\n /**\n * Transport has an active connection\n */\n Ready = 'ready',\n}\n\n/**\n * Interface implementing a transport to interact with Telegram servers.\n *\n * Events:\n * - `ready` event is emitted once connection has been established: `() => void`\n * - `close` event is emitted once connection has been closed: `() => void`\n * - `error` event is event is emitted when there was some error\n * (either mtproto related or network related): `(error: Error) => void`\n * - `message` event is emitted when a mtproto message is received: `(message: Buffer) => void`\n */\nexport interface ITelegramTransport extends EventEmitter {\n /** returns current state */\n state(): TransportState\n /** returns current DC. should return null if state == IDLE */\n currentDc(): BasicDcOption | null\n\n /**\n * Start trying to connect to a specified DC.\n * Will throw an error if state != IDLE\n */\n connect(dc: BasicDcOption, testMode: boolean): void\n /** call to close existing connection to some DC */\n close(): MaybePromise<void>\n /** send a message */\n send(data: Uint8Array): Promise<void>\n\n /**\n * Provides crypto and logging for the transport.\n * Not done in constructor to simplify factory.\n *\n * This method is called before any other.\n */\n setup?(crypto: ICryptoProvider, log: Logger): void\n\n getMtproxyInfo?(): tl.RawInputClientProxy\n}\n\n/** Transport factory function */\nexport type TransportFactory = () => ITelegramTransport\n\n/**\n * Interface declaring handling of received packets.\n * When receiving a packet, its content is sent to feed(),\n * and codec is supposed to emit `packet` or `error` event when packet is parsed.\n */\nexport interface IPacketCodec {\n /** Initial tag of the codec. Will be sent immediately once connected. */\n tag(): MaybePromise<Uint8Array>\n\n /** Encodes and frames a single packet */\n encode(packet: Uint8Array): MaybePromise<Uint8Array>\n\n /** Feed packet to the codec. Once packet is processed, codec is supposed to emit `packet` or `error` */\n feed(data: Uint8Array): void\n /** Reset codec state (for example, reset buffer) */\n reset(): void\n\n /** Remove all listeners from a codec, used to safely dispose it */\n removeAllListeners(): void\n\n /**\n * Emitted when a packet containing a\n * (Transport error)[https://core.telegram.org/mtproto/mtproto-transports#transport-errors] is encountered.\n */\n on(event: 'error', handler: (error: Error) => void): void\n /** Emitted when a full packet has been processed. */\n on(event: 'packet', handler: (packet: Uint8Array) => void): void\n\n /**\n * For codecs that use crypto functions and/or logging.\n * This method is called before any other.\n */\n setup?(crypto: ICryptoProvider, log: Logger): void\n}\n\n/**\n * Error that represents an error in an underlying transport\n * (and usually means either server-side problems or bug in library)\n *\n * More: https://core.telegram.org/mtproto/mtproto-transports#transport-errors\n */\nexport class TransportError extends Error {\n code: number\n\n constructor(code: number) {\n super(`Transport error: ${code}`)\n this.code = code\n }\n}\n"]}
@@ -47,6 +47,7 @@ export class PaddedIntermediatePacketCodec extends IntermediatePacketCodec {
47
47
  tag() {
48
48
  return PADDED_TAG;
49
49
  }
50
+ _crypto;
50
51
  setup(crypto) {
51
52
  this._crypto = crypto;
52
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"intermediate.js","sourceRoot":"","sources":["../../../../src/network/transports/intermediate.ts"],"names":[],"mappings":"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","sourcesContent":["import { dataViewFromBuffer, getRandomInt, ICryptoProvider } from '../../utils/index.js'\nimport { IPacketCodec, TransportError } from './abstract.js'\nimport { StreamedCodec } from './streamed.js'\n\nconst TAG = new Uint8Array([0xee, 0xee, 0xee, 0xee])\nconst PADDED_TAG = new Uint8Array([0xdd, 0xdd, 0xdd, 0xdd])\n\n/**\n * Intermediate packet codec.\n * See https://core.telegram.org/mtproto/mtproto-transports#intermediate\n */\nexport class IntermediatePacketCodec extends StreamedCodec implements IPacketCodec {\n tag(): Uint8Array {\n return TAG\n }\n\n encode(packet: Uint8Array): Uint8Array {\n const ret = new Uint8Array(packet.length + 4)\n const dv = dataViewFromBuffer(ret)\n dv.setUint32(0, packet.length, true)\n ret.set(packet, 4)\n\n return ret\n }\n\n protected _packetAvailable(): boolean {\n return this._stream.length >= 8\n }\n\n protected _handlePacket(): boolean {\n const dv = dataViewFromBuffer(this._stream)\n const payloadLength = dv.getUint32(0, true)\n\n if (payloadLength <= this._stream.length - 4) {\n if (payloadLength === 4) {\n const code = dv.getInt32(4, true) * -1\n this.emit('error', new TransportError(code))\n } else {\n const payload = this._stream.subarray(4, payloadLength + 4)\n this.emit('packet', payload)\n }\n\n this._stream = this._stream.subarray(payloadLength + 4)\n\n return true\n }\n\n return false\n }\n}\n\n/**\n * Padded intermediate packet codec.\n * See https://core.telegram.org/mtproto/mtproto-transports#padded-intermediate\n */\nexport class PaddedIntermediatePacketCodec extends IntermediatePacketCodec {\n tag(): Uint8Array {\n return PADDED_TAG\n }\n\n private _crypto!: ICryptoProvider\n setup?(crypto: ICryptoProvider) {\n this._crypto = crypto\n }\n\n encode(packet: Uint8Array): Uint8Array {\n // padding size, 0-15\n const padSize = getRandomInt(16)\n\n const ret = new Uint8Array(packet.length + 4 + padSize)\n const dv = dataViewFromBuffer(ret)\n dv.setUint32(0, packet.length + padSize, true)\n ret.set(packet, 4)\n this._crypto.randomFill(ret.subarray(4 + packet.length))\n\n return ret\n }\n}\n"]}
1
+ {"version":3,"file":"intermediate.js","sourceRoot":"","sources":["../../../../src/network/transports/intermediate.ts"],"names":[],"mappings":"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","sourcesContent":["import { dataViewFromBuffer, getRandomInt, ICryptoProvider } from '../../utils/index.js'\nimport { IPacketCodec, TransportError } from './abstract.js'\nimport { StreamedCodec } from './streamed.js'\n\nconst TAG = new Uint8Array([0xee, 0xee, 0xee, 0xee])\nconst PADDED_TAG = new Uint8Array([0xdd, 0xdd, 0xdd, 0xdd])\n\n/**\n * Intermediate packet codec.\n * See https://core.telegram.org/mtproto/mtproto-transports#intermediate\n */\nexport class IntermediatePacketCodec extends StreamedCodec implements IPacketCodec {\n tag(): Uint8Array {\n return TAG\n }\n\n encode(packet: Uint8Array): Uint8Array {\n const ret = new Uint8Array(packet.length + 4)\n const dv = dataViewFromBuffer(ret)\n dv.setUint32(0, packet.length, true)\n ret.set(packet, 4)\n\n return ret\n }\n\n protected _packetAvailable(): boolean {\n return this._stream.length >= 8\n }\n\n protected _handlePacket(): boolean {\n const dv = dataViewFromBuffer(this._stream)\n const payloadLength = dv.getUint32(0, true)\n\n if (payloadLength <= this._stream.length - 4) {\n if (payloadLength === 4) {\n const code = dv.getInt32(4, true) * -1\n this.emit('error', new TransportError(code))\n } else {\n const payload = this._stream.subarray(4, payloadLength + 4)\n this.emit('packet', payload)\n }\n\n this._stream = this._stream.subarray(payloadLength + 4)\n\n return true\n }\n\n return false\n }\n}\n\n/**\n * Padded intermediate packet codec.\n * See https://core.telegram.org/mtproto/mtproto-transports#padded-intermediate\n */\nexport class PaddedIntermediatePacketCodec extends IntermediatePacketCodec {\n tag(): Uint8Array {\n return PADDED_TAG\n }\n\n private _crypto!: ICryptoProvider\n setup?(crypto: ICryptoProvider) {\n this._crypto = crypto\n }\n\n encode(packet: Uint8Array): Uint8Array {\n // padding size, 0-15\n const padSize = getRandomInt(16)\n\n const ret = new Uint8Array(packet.length + 4 + padSize)\n const dv = dataViewFromBuffer(ret)\n dv.setUint32(0, packet.length + padSize, true)\n ret.set(packet, 4)\n this._crypto.randomFill(ret.subarray(4 + packet.length))\n\n return ret\n }\n}\n"]}
@@ -1,6 +1,9 @@
1
1
  import { bufferToReversed, concatBuffers, dataViewFromBuffer } from '../../utils/buffer-utils.js';
2
2
  import { WrappedCodec } from './wrapped.js';
3
3
  export class ObfuscatedPacketCodec extends WrappedCodec {
4
+ _encryptor;
5
+ _decryptor;
6
+ _proxy;
4
7
  constructor(inner, proxy) {
5
8
  super(inner);
6
9
  this._proxy = proxy;
@@ -1 +1 @@
1
- {"version":3,"file":"obfuscated.js","sourceRoot":"","sources":["../../../../src/network/transports/obfuscated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGjG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAS3C,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IAMnD,YAAY,KAAmB,EAAE,KAAmB;QAChD,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,GAAG;QACL,IAAI,MAAkB,CAAA;QACtB,IAAI,EAAY,CAAA;QAEhB,SAAS;YACL,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YACrC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,SAAQ;YAEhC,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAEtC,IACI,QAAQ,KAAK,UAAU,IAAI,OAAO;gBAClC,QAAQ,KAAK,UAAU,IAAI,OAAO;gBAClC,QAAQ,KAAK,UAAU,IAAI,aAAa;gBACxC,QAAQ,KAAK,UAAU,IAAI,OAAO;gBAClC,QAAQ,KAAK,UAAU,IAAI,sBAAsB;gBACjD,QAAQ,KAAK,UAAU,IAAI,eAAe;gBAC1C,QAAQ,KAAK,UAAU,CAAC,4BAA4B;cACtD;gBACE,SAAQ;aACX;YACD,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAQ;YAExC,MAAK;SACR;QAED,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;QAEtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YACrB,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SAC1C;QACD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAExB,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,IAAI,IAAI,KAAK,CAAA;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,IAAI,GAAG,CAAC,IAAI,CAAA;YAEnC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;SAC9B;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAEjD,IAAI,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEzC,IAAI,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAE5C,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjF,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;SACpF;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QAEzE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAE1C,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAkB;QAC3B,OAAO,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,IAAI,CAAC,IAAgB;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAA;QAC1B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAA;QAE1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;IAC/B,CAAC;CACJ","sourcesContent":["import { bufferToReversed, concatBuffers, dataViewFromBuffer } from '../../utils/buffer-utils.js'\nimport { IAesCtr } from '../../utils/index.js'\nimport { IPacketCodec } from './abstract.js'\nimport { WrappedCodec } from './wrapped.js'\n\nexport interface MtProxyInfo {\n dcId: number\n secret: Uint8Array\n test: boolean\n media: boolean\n}\n\nexport class ObfuscatedPacketCodec extends WrappedCodec implements IPacketCodec {\n private _encryptor?: IAesCtr\n private _decryptor?: IAesCtr\n\n private _proxy?: MtProxyInfo\n\n constructor(inner: IPacketCodec, proxy?: MtProxyInfo) {\n super(inner)\n this._proxy = proxy\n }\n\n async tag(): Promise<Uint8Array> {\n let random: Uint8Array\n let dv: DataView\n\n for (;;) {\n random = this._crypto.randomBytes(64)\n if (random[0] === 0xef) continue\n\n dv = dataViewFromBuffer(random)\n const firstInt = dv.getUint32(0, true)\n\n if (\n firstInt === 0x44414548 || // HEAD\n firstInt === 0x54534f50 || // POST\n firstInt === 0x20544547 || // GET(space)\n firstInt === 0x4954504f || // OPTI\n firstInt === 0xdddddddd || // padded intermediate\n firstInt === 0xeeeeeeee || // intermediate\n firstInt === 0x02010316 // no idea, taken from tdlib\n ) {\n continue\n }\n if (dv.getInt32(4, true) === 0) continue\n\n break\n }\n\n let innerTag = await this._inner.tag()\n\n if (innerTag.length !== 4) {\n const b = innerTag[0]\n innerTag = new Uint8Array([b, b, b, b])\n }\n random.set(innerTag, 56)\n\n if (this._proxy) {\n let dcId = this._proxy.dcId\n if (this._proxy.test) dcId += 10000\n if (this._proxy.media) dcId = -dcId\n\n dv.setInt16(60, dcId, true)\n }\n\n const randomRev = bufferToReversed(random, 8, 56)\n\n let encryptKey = random.subarray(8, 40)\n const encryptIv = random.subarray(40, 56)\n\n let decryptKey = randomRev.subarray(0, 32)\n const decryptIv = randomRev.subarray(32, 48)\n\n if (this._proxy) {\n encryptKey = this._crypto.sha256(concatBuffers([encryptKey, this._proxy.secret]))\n decryptKey = this._crypto.sha256(concatBuffers([decryptKey, this._proxy.secret]))\n }\n\n this._encryptor = this._crypto.createAesCtr(encryptKey, encryptIv, true)\n this._decryptor = this._crypto.createAesCtr(decryptKey, decryptIv, false)\n\n const encrypted = this._encryptor.process(random)\n random.set(encrypted.subarray(56, 64), 56)\n\n return random\n }\n\n async encode(packet: Uint8Array): Promise<Uint8Array> {\n return this._encryptor!.process(await this._inner.encode(packet))\n }\n\n feed(data: Uint8Array): void {\n const dec = this._decryptor!.process(data)\n\n this._inner.feed(dec)\n }\n\n reset(): void {\n this._inner.reset()\n this._encryptor?.close?.()\n this._decryptor?.close?.()\n\n this._encryptor = undefined\n this._decryptor = undefined\n }\n}\n"]}
1
+ {"version":3,"file":"obfuscated.js","sourceRoot":"","sources":["../../../../src/network/transports/obfuscated.ts"],"names":[],"mappings":"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","sourcesContent":["import { bufferToReversed, concatBuffers, dataViewFromBuffer } from '../../utils/buffer-utils.js'\nimport { IAesCtr } from '../../utils/index.js'\nimport { IPacketCodec } from './abstract.js'\nimport { WrappedCodec } from './wrapped.js'\n\nexport interface MtProxyInfo {\n dcId: number\n secret: Uint8Array\n test: boolean\n media: boolean\n}\n\nexport class ObfuscatedPacketCodec extends WrappedCodec implements IPacketCodec {\n private _encryptor?: IAesCtr\n private _decryptor?: IAesCtr\n\n private _proxy?: MtProxyInfo\n\n constructor(inner: IPacketCodec, proxy?: MtProxyInfo) {\n super(inner)\n this._proxy = proxy\n }\n\n async tag(): Promise<Uint8Array> {\n let random: Uint8Array\n let dv: DataView\n\n for (;;) {\n random = this._crypto.randomBytes(64)\n if (random[0] === 0xef) continue\n\n dv = dataViewFromBuffer(random)\n const firstInt = dv.getUint32(0, true)\n\n if (\n firstInt === 0x44414548 || // HEAD\n firstInt === 0x54534f50 || // POST\n firstInt === 0x20544547 || // GET(space)\n firstInt === 0x4954504f || // OPTI\n firstInt === 0xdddddddd || // padded intermediate\n firstInt === 0xeeeeeeee || // intermediate\n firstInt === 0x02010316 // no idea, taken from tdlib\n ) {\n continue\n }\n if (dv.getInt32(4, true) === 0) continue\n\n break\n }\n\n let innerTag = await this._inner.tag()\n\n if (innerTag.length !== 4) {\n const b = innerTag[0]\n innerTag = new Uint8Array([b, b, b, b])\n }\n random.set(innerTag, 56)\n\n if (this._proxy) {\n let dcId = this._proxy.dcId\n if (this._proxy.test) dcId += 10000\n if (this._proxy.media) dcId = -dcId\n\n dv.setInt16(60, dcId, true)\n }\n\n const randomRev = bufferToReversed(random, 8, 56)\n\n let encryptKey = random.subarray(8, 40)\n const encryptIv = random.subarray(40, 56)\n\n let decryptKey = randomRev.subarray(0, 32)\n const decryptIv = randomRev.subarray(32, 48)\n\n if (this._proxy) {\n encryptKey = this._crypto.sha256(concatBuffers([encryptKey, this._proxy.secret]))\n decryptKey = this._crypto.sha256(concatBuffers([decryptKey, this._proxy.secret]))\n }\n\n this._encryptor = this._crypto.createAesCtr(encryptKey, encryptIv, true)\n this._decryptor = this._crypto.createAesCtr(decryptKey, decryptIv, false)\n\n const encrypted = this._encryptor.process(random)\n random.set(encrypted.subarray(56, 64), 56)\n\n return random\n }\n\n async encode(packet: Uint8Array): Promise<Uint8Array> {\n return this._encryptor!.process(await this._inner.encode(packet))\n }\n\n feed(data: Uint8Array): void {\n const dec = this._decryptor!.process(data)\n\n this._inner.feed(dec)\n }\n\n reset(): void {\n this._inner.reset()\n this._encryptor?.close?.()\n this._decryptor?.close?.()\n\n this._encryptor = undefined\n this._decryptor = undefined\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import EventEmitter from 'events';
3
2
  /**
4
3
  * Base for streamed codecs.
@@ -7,10 +7,7 @@ import { concatBuffers } from '../../utils/index.js';
7
7
  * multiple transport packets.
8
8
  */
9
9
  export class StreamedCodec extends EventEmitter {
10
- constructor() {
11
- super(...arguments);
12
- this._stream = new Uint8Array(0);
13
- }
10
+ _stream = new Uint8Array(0);
14
11
  feed(data) {
15
12
  this._stream = concatBuffers([this._stream, data]);
16
13
  while (this._packetAvailable()) {
@@ -1 +1 @@
1
- {"version":3,"file":"streamed.js","sourceRoot":"","sources":["../../../../src/network/transports/streamed.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,OAAgB,aAAc,SAAQ,YAAY;IAAxD;;QACc,YAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IA0BzC,CAAC;IAXG,IAAI,CAAC,IAAgB;QACjB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QAElD,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAAE,MAAK;SACnC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import EventEmitter from 'events'\n\nimport { concatBuffers } from '../../utils/index.js'\n\n/**\n * Base for streamed codecs.\n *\n * Streamed means that MTProto packet can be divided into\n * multiple transport packets.\n */\nexport abstract class StreamedCodec extends EventEmitter {\n protected _stream = new Uint8Array(0)\n\n /**\n * Should return whether a full packet is available\n * in `_stream` buffer\n */\n protected abstract _packetAvailable(): boolean\n\n /**\n * Handle a single (!) packet from `_stream` and emit `packet` or `error`.\n *\n * Should return true if there are more packets available, false otherwise\n */\n protected abstract _handlePacket(): boolean\n\n feed(data: Uint8Array): void {\n this._stream = concatBuffers([this._stream, data])\n\n while (this._packetAvailable()) {\n if (!this._handlePacket()) break\n }\n }\n\n reset(): void {\n this._stream = new Uint8Array(0)\n }\n}\n"]}
1
+ {"version":3,"file":"streamed.js","sourceRoot":"","sources":["../../../../src/network/transports/streamed.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,OAAgB,aAAc,SAAQ,YAAY;IAC1C,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IAerC,IAAI,CAAC,IAAgB;QACjB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QAElD,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAAE,MAAK;QACpC,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import EventEmitter from 'events'\n\nimport { concatBuffers } from '../../utils/index.js'\n\n/**\n * Base for streamed codecs.\n *\n * Streamed means that MTProto packet can be divided into\n * multiple transport packets.\n */\nexport abstract class StreamedCodec extends EventEmitter {\n protected _stream = new Uint8Array(0)\n\n /**\n * Should return whether a full packet is available\n * in `_stream` buffer\n */\n protected abstract _packetAvailable(): boolean\n\n /**\n * Handle a single (!) packet from `_stream` and emit `packet` or `error`.\n *\n * Should return true if there are more packets available, false otherwise\n */\n protected abstract _handlePacket(): boolean\n\n feed(data: Uint8Array): void {\n this._stream = concatBuffers([this._stream, data])\n\n while (this._packetAvailable()) {\n if (!this._handlePacket()) break\n }\n }\n\n reset(): void {\n this._stream = new Uint8Array(0)\n }\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import EventEmitter from 'events';
3
2
  import { ICryptoProvider, Logger } from '../../utils/index.js';
4
3
  import { IPacketCodec } from './abstract.js';
@@ -1,5 +1,7 @@
1
1
  import EventEmitter from 'events';
2
2
  export class WrappedCodec extends EventEmitter {
3
+ _crypto;
4
+ _inner;
3
5
  constructor(inner) {
4
6
  super();
5
7
  this._inner = inner;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapped.js","sourceRoot":"","sources":["../../../../src/network/transports/wrapped.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAKjC,MAAM,OAAgB,YAAa,SAAQ,YAAY;IAInD,YAAY,KAAmB;QAC3B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,kBAAkB;QACd,KAAK,CAAC,kBAAkB,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAEhC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,MAAuB,EAAE,GAAW;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import EventEmitter from 'events'\n\nimport { ICryptoProvider, Logger } from '../../utils/index.js'\nimport { IPacketCodec } from './abstract.js'\n\nexport abstract class WrappedCodec extends EventEmitter {\n protected _crypto!: ICryptoProvider\n protected _inner: IPacketCodec\n\n constructor(inner: IPacketCodec) {\n super()\n this._inner = inner\n this._inner.on('error', (err) => this.emit('error', err))\n this._inner.on('packet', (buf) => this.emit('packet', buf))\n }\n\n removeAllListeners(): this {\n super.removeAllListeners()\n this._inner.removeAllListeners()\n\n return this\n }\n\n setup(crypto: ICryptoProvider, log: Logger): void {\n this._crypto = crypto\n this._inner.setup?.(crypto, log)\n }\n}\n"]}
1
+ {"version":3,"file":"wrapped.js","sourceRoot":"","sources":["../../../../src/network/transports/wrapped.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAA;AAKjC,MAAM,OAAgB,YAAa,SAAQ,YAAY;IACzC,OAAO,CAAkB;IACzB,MAAM,CAAc;IAE9B,YAAY,KAAmB;QAC3B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/D,CAAC;IAED,kBAAkB;QACd,KAAK,CAAC,kBAAkB,EAAE,CAAA;QAC1B,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAA;QAEhC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,MAAuB,EAAE,GAAW;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import EventEmitter from 'events'\n\nimport { ICryptoProvider, Logger } from '../../utils/index.js'\nimport { IPacketCodec } from './abstract.js'\n\nexport abstract class WrappedCodec extends EventEmitter {\n protected _crypto!: ICryptoProvider\n protected _inner: IPacketCodec\n\n constructor(inner: IPacketCodec) {\n super()\n this._inner = inner\n this._inner.on('error', (err) => this.emit('error', err))\n this._inner.on('packet', (buf) => this.emit('packet', buf))\n }\n\n removeAllListeners(): this {\n super.removeAllListeners()\n this._inner.removeAllListeners()\n\n return this\n }\n\n setup(crypto: ICryptoProvider, log: Logger): void {\n this._crypto = crypto\n this._inner.setup?.(crypto, log)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAiBtD,2BAA2B;AAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtC,yGAAyG;AACzG,6FAA6F;AAC7F,iEAAiE;AACjE,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAA;AAEzG,mEAAmE;AACnE,IAAI,SAAS,GAAyB,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAA;AAEzE,MAAM,UAAU,WAAW,CAAC,QAAuB;IAC/C,IAAI,SAAS,EAAE;QACX,IAAI,SAAS,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,EAAE;YAChD,MAAM,IAAI,kBAAkB,CAAC,yCAAyC,CAAC,CAAA;SAC1E;QAED,OAAM;KACT;IAED,SAAS,GAAG,QAAQ,CAAA;IACpB,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAClC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAElC,IAAI,YAAY,EAAE;QACd,YAAY,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAA;KACvC;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACvB,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,kBAAkB,CAAC,wDAAwD,CAAC,CAAA;KACzF;IAED,OAAO,SAAS,CAAA;AACpB,CAAC","sourcesContent":["import { ITlPlatform, TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { UploadFileLike } from './highlevel/types/files/utils.js'\nimport { MtUnsupportedError } from './types/errors.js'\nimport { MaybePromise } from './types/index.js'\n\nexport interface ICorePlatform extends ITlPlatform {\n beforeExit(fn: () => void): () => void\n log(color: number, level: number, tag: string, fmt: string, args: unknown[]): void\n getDefaultLogLevel(): number | null\n getDeviceModel(): string\n normalizeFile?(file: UploadFileLike): MaybePromise<{\n file?: UploadFileLike\n fileSize?: number\n fileName?: string\n } | null>\n onNetworkChanged?(fn: (connected: boolean) => void): () => void\n isOnline?(): boolean\n}\n\n// eslint-disable-next-line\nconst globalObject = (0, eval)('this')\n\n// NB: when using with some bundlers (e.g. vite) re-importing this module will not return the same object\n// so we need to store the platform in a global object to be able to survive hot-reloads etc.\n// try to use Symbol if available, otherwise fallback to a string\nconst platformKey = typeof Symbol !== 'undefined' ? Symbol.for('mtcute.platform') : '__MTCUTE_PLATFORM__'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nlet _platform: ICorePlatform | null = globalObject?.[platformKey] ?? null\n\nexport function setPlatform(platform: ICorePlatform): void {\n if (_platform) {\n if (_platform.constructor !== platform.constructor) {\n throw new MtUnsupportedError('Platform may not be changed at runtime!')\n }\n\n return\n }\n\n _platform = platform\n TlBinaryReader.platform = platform\n TlBinaryWriter.platform = platform\n\n if (globalObject) {\n globalObject[platformKey] = platform\n }\n}\n\nexport function getPlatform(): ICorePlatform {\n if (!_platform) {\n throw new MtUnsupportedError('Platform is not set! Have you instantiated the client?')\n }\n\n return _platform\n}\n"]}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAiBtD,2BAA2B;AAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtC,yGAAyG;AACzG,6FAA6F;AAC7F,iEAAiE;AACjE,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAA;AAEzG,mEAAmE;AACnE,IAAI,SAAS,GAAyB,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAA;AAEzE,MAAM,UAAU,WAAW,CAAC,QAAuB;IAC/C,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,SAAS,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,IAAI,kBAAkB,CAAC,yCAAyC,CAAC,CAAA;QAC3E,CAAC;QAED,OAAM;IACV,CAAC;IAED,SAAS,GAAG,QAAQ,CAAA;IACpB,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAClC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAElC,IAAI,YAAY,EAAE,CAAC;QACf,YAAY,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAA;IACxC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,kBAAkB,CAAC,wDAAwD,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,SAAS,CAAA;AACpB,CAAC","sourcesContent":["import { ITlPlatform, TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { UploadFileLike } from './highlevel/types/files/utils.js'\nimport { MtUnsupportedError } from './types/errors.js'\nimport { MaybePromise } from './types/index.js'\n\nexport interface ICorePlatform extends ITlPlatform {\n beforeExit(fn: () => void): () => void\n log(color: number, level: number, tag: string, fmt: string, args: unknown[]): void\n getDefaultLogLevel(): number | null\n getDeviceModel(): string\n normalizeFile?(file: UploadFileLike): MaybePromise<{\n file?: UploadFileLike\n fileSize?: number\n fileName?: string\n } | null>\n onNetworkChanged?(fn: (connected: boolean) => void): () => void\n isOnline?(): boolean\n}\n\n// eslint-disable-next-line\nconst globalObject = (0, eval)('this')\n\n// NB: when using with some bundlers (e.g. vite) re-importing this module will not return the same object\n// so we need to store the platform in a global object to be able to survive hot-reloads etc.\n// try to use Symbol if available, otherwise fallback to a string\nconst platformKey = typeof Symbol !== 'undefined' ? Symbol.for('mtcute.platform') : '__MTCUTE_PLATFORM__'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nlet _platform: ICorePlatform | null = globalObject?.[platformKey] ?? null\n\nexport function setPlatform(platform: ICorePlatform): void {\n if (_platform) {\n if (_platform.constructor !== platform.constructor) {\n throw new MtUnsupportedError('Platform may not be changed at runtime!')\n }\n\n return\n }\n\n _platform = platform\n TlBinaryReader.platform = platform\n TlBinaryWriter.platform = platform\n\n if (globalObject) {\n globalObject[platformKey] = platform\n }\n}\n\nexport function getPlatform(): ICorePlatform {\n if (!_platform) {\n throw new MtUnsupportedError('Platform is not set! Have you instantiated the client?')\n }\n\n return _platform\n}\n"]}
@@ -3,10 +3,9 @@
3
3
  * and handling the lifecycle for you
4
4
  */
5
5
  export class BaseStorageDriver {
6
- constructor() {
7
- this._loadedTimes = 0;
8
- this._destroyed = false;
9
- }
6
+ _loadedTimes = 0;
7
+ _destroyed = false;
8
+ _log;
10
9
  setup(log) {
11
10
  this._log = log;
12
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/storage/driver.ts"],"names":[],"mappings":"AA0CA;;;GAGG;AACH,MAAM,OAAgB,iBAAiB;IAAvC;QAKY,iBAAY,GAAG,CAAC,CAAA;QAChB,eAAU,GAAG,KAAK,CAAA;IAqC9B,CAAC;IAjCG,KAAK,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,IAAc,MAAM;QAChB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;SAC1B;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAM;SACT;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;SACzB;IACL,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;IACzB,CAAC;CACJ","sourcesContent":["import { MaybePromise } from '../types/utils.js'\nimport { Logger } from '../utils/logger.js'\n\n/**\n * Basic storage driver interface,\n * describing the lifecycle of a storage driver\n */\nexport interface IStorageDriver {\n /**\n * Load session from some external storage.\n * Should be used either to load data from file/network/etc\n * to memory, or to open required connections to fetch data on demand\n *\n * May be called more than once, handle this with care\n * (or use {@link BaseStorageDriver} that handles this for you)\n */\n load?(): MaybePromise<void>\n /**\n * Save session to some external storage.\n * Should be used to commit pending changes in the session.\n * For example, saving session content to file/network/etc,\n * or committing a database transaction\n *\n * It is safe to batch all changes and only commit them here,\n * unless stated otherwise in the method description\n */\n save?(): MaybePromise<void>\n /**\n * Cleanup session and release all used resources.\n *\n * May be called more than once, handle this with care\n * (or use {@link BaseStorageDriver} that handles this for you)\n */\n destroy?(): MaybePromise<void>\n\n /**\n * Setup the driver, passing the logger instance,\n * in case your driver needs it\n */\n setup?(log: Logger): void\n}\n\n/**\n * Base storage driver class, implementing {@link IStorageDriver}\n * and handling the lifecycle for you\n */\nexport abstract class BaseStorageDriver implements IStorageDriver {\n abstract _load(): MaybePromise<void>\n abstract _destroy(): MaybePromise<void>\n abstract _save?(): MaybePromise<void>\n\n private _loadedTimes = 0\n private _destroyed = false\n\n protected _log!: Logger\n\n setup(log: Logger): void {\n this._log = log\n }\n\n protected get loaded(): boolean {\n return this._loadedTimes > 0\n }\n\n async load(): Promise<void> {\n if (this._loadedTimes === 0) {\n await this._load()\n this._destroyed = false\n }\n\n this._loadedTimes++\n }\n\n async destroy(): Promise<void> {\n if (this._destroyed) {\n return\n }\n\n this._loadedTimes--\n\n if (this._loadedTimes === 0) {\n await this._destroy()\n this._destroyed = true\n }\n }\n\n save(): MaybePromise<void> {\n return this._save?.()\n }\n}\n"]}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../src/storage/driver.ts"],"names":[],"mappings":"AA0CA;;;GAGG;AACH,MAAM,OAAgB,iBAAiB;IAK3B,YAAY,GAAG,CAAC,CAAA;IAChB,UAAU,GAAG,KAAK,CAAA;IAEhB,IAAI,CAAS;IAEvB,KAAK,CAAC,GAAW;QACb,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,IAAc,MAAM;QAChB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QAC3B,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAM;QACV,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAA;QAEnB,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QAC1B,CAAC;IACL,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;IACzB,CAAC;CACJ","sourcesContent":["import { MaybePromise } from '../types/utils.js'\nimport { Logger } from '../utils/logger.js'\n\n/**\n * Basic storage driver interface,\n * describing the lifecycle of a storage driver\n */\nexport interface IStorageDriver {\n /**\n * Load session from some external storage.\n * Should be used either to load data from file/network/etc\n * to memory, or to open required connections to fetch data on demand\n *\n * May be called more than once, handle this with care\n * (or use {@link BaseStorageDriver} that handles this for you)\n */\n load?(): MaybePromise<void>\n /**\n * Save session to some external storage.\n * Should be used to commit pending changes in the session.\n * For example, saving session content to file/network/etc,\n * or committing a database transaction\n *\n * It is safe to batch all changes and only commit them here,\n * unless stated otherwise in the method description\n */\n save?(): MaybePromise<void>\n /**\n * Cleanup session and release all used resources.\n *\n * May be called more than once, handle this with care\n * (or use {@link BaseStorageDriver} that handles this for you)\n */\n destroy?(): MaybePromise<void>\n\n /**\n * Setup the driver, passing the logger instance,\n * in case your driver needs it\n */\n setup?(log: Logger): void\n}\n\n/**\n * Base storage driver class, implementing {@link IStorageDriver}\n * and handling the lifecycle for you\n */\nexport abstract class BaseStorageDriver implements IStorageDriver {\n abstract _load(): MaybePromise<void>\n abstract _destroy(): MaybePromise<void>\n abstract _save?(): MaybePromise<void>\n\n private _loadedTimes = 0\n private _destroyed = false\n\n protected _log!: Logger\n\n setup(log: Logger): void {\n this._log = log\n }\n\n protected get loaded(): boolean {\n return this._loadedTimes > 0\n }\n\n async load(): Promise<void> {\n if (this._loadedTimes === 0) {\n await this._load()\n this._destroyed = false\n }\n\n this._loadedTimes++\n }\n\n async destroy(): Promise<void> {\n if (this._destroyed) {\n return\n }\n\n this._loadedTimes--\n\n if (this._loadedTimes === 0) {\n await this._destroy()\n this._destroyed = true\n }\n }\n\n save(): MaybePromise<void> {\n return this._save?.()\n }\n}\n"]}
@@ -1,7 +1,5 @@
1
1
  export class MemoryStorageDriver {
2
- constructor() {
3
- this.states = new Map();
4
- }
2
+ states = new Map();
5
3
  getState(repo, def) {
6
4
  if (!this.states.has(repo)) {
7
5
  this.states.set(repo, def());
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../src/storage/memory/driver.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAAhC;QACa,WAAM,GAAwB,IAAI,GAAG,EAAE,CAAA;IAWpD,CAAC;IATG,QAAQ,CAAmB,IAAY,EAAE,GAAY;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;SAC/B;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAM,CAAA;IACrC,CAAC;IAED,IAAI,KAAI,CAAC;CACZ","sourcesContent":["import { IStorageDriver } from '../driver.js'\n\nexport class MemoryStorageDriver implements IStorageDriver {\n readonly states: Map<string, object> = new Map()\n\n getState<T extends object>(repo: string, def: () => T) {\n if (!this.states.has(repo)) {\n this.states.set(repo, def())\n }\n\n return this.states.get(repo) as T\n }\n\n load() {}\n}\n"]}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../src/storage/memory/driver.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IACnB,MAAM,GAAwB,IAAI,GAAG,EAAE,CAAA;IAEhD,QAAQ,CAAmB,IAAY,EAAE,GAAY;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;QAChC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAM,CAAA;IACrC,CAAC;IAED,IAAI,KAAI,CAAC;CACZ","sourcesContent":["import { IStorageDriver } from '../driver.js'\n\nexport class MemoryStorageDriver implements IStorageDriver {\n readonly states: Map<string, object> = new Map()\n\n getState<T extends object>(repo: string, def: () => T) {\n if (!this.states.has(repo)) {\n this.states.set(repo, def())\n }\n\n return this.states.get(repo) as T\n }\n\n load() {}\n}\n"]}
@@ -12,12 +12,10 @@ export { MemoryStorageDriver } from './driver.js';
12
12
  * or if you know exactly what you're doing.
13
13
  */
14
14
  export class MemoryStorage {
15
- constructor() {
16
- this.driver = new MemoryStorageDriver();
17
- this.kv = new MemoryKeyValueRepository(this.driver);
18
- this.authKeys = new MemoryAuthKeysRepository(this.driver);
19
- this.peers = new MemoryPeersRepository(this.driver);
20
- this.refMessages = new MemoryRefMessagesRepository(this.driver);
21
- }
15
+ driver = new MemoryStorageDriver();
16
+ kv = new MemoryKeyValueRepository(this.driver);
17
+ authKeys = new MemoryAuthKeysRepository(this.driver);
18
+ peers = new MemoryPeersRepository(this.driver);
19
+ refMessages = new MemoryRefMessagesRepository(this.driver);
22
20
  }
23
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/storage/memory/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAA1B;QACa,WAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;QAClC,OAAE,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,aAAQ,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,UAAK,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,gBAAW,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvE,CAAC;CAAA","sourcesContent":["import { ITelegramStorageProvider } from '../../highlevel/storage/provider.js'\nimport { IMtStorageProvider } from '../provider.js'\nimport { MemoryStorageDriver } from './driver.js'\nimport { MemoryAuthKeysRepository } from './repository/auth-keys.js'\nimport { MemoryKeyValueRepository } from './repository/kv.js'\nimport { MemoryPeersRepository } from './repository/peers.js'\nimport { MemoryRefMessagesRepository } from './repository/ref-messages.js'\n\nexport { MemoryStorageDriver } from './driver.js'\n\n/**\n * In-memory storage driver implementation for mtcute.\n *\n * This storage is **not persistent**, meaning that all data\n * **will** be lost on restart. Only use this storage for testing,\n * or if you know exactly what you're doing.\n */\nexport class MemoryStorage implements IMtStorageProvider, ITelegramStorageProvider {\n readonly driver = new MemoryStorageDriver()\n readonly kv = new MemoryKeyValueRepository(this.driver)\n readonly authKeys = new MemoryAuthKeysRepository(this.driver)\n readonly peers = new MemoryPeersRepository(this.driver)\n readonly refMessages = new MemoryRefMessagesRepository(this.driver)\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/storage/memory/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACb,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;IAClC,EAAE,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,QAAQ,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpD,KAAK,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,WAAW,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;CACtE","sourcesContent":["import { ITelegramStorageProvider } from '../../highlevel/storage/provider.js'\nimport { IMtStorageProvider } from '../provider.js'\nimport { MemoryStorageDriver } from './driver.js'\nimport { MemoryAuthKeysRepository } from './repository/auth-keys.js'\nimport { MemoryKeyValueRepository } from './repository/kv.js'\nimport { MemoryPeersRepository } from './repository/peers.js'\nimport { MemoryRefMessagesRepository } from './repository/ref-messages.js'\n\nexport { MemoryStorageDriver } from './driver.js'\n\n/**\n * In-memory storage driver implementation for mtcute.\n *\n * This storage is **not persistent**, meaning that all data\n * **will** be lost on restart. Only use this storage for testing,\n * or if you know exactly what you're doing.\n */\nexport class MemoryStorage implements IMtStorageProvider, ITelegramStorageProvider {\n readonly driver = new MemoryStorageDriver()\n readonly kv = new MemoryKeyValueRepository(this.driver)\n readonly authKeys = new MemoryAuthKeysRepository(this.driver)\n readonly peers = new MemoryPeersRepository(this.driver)\n readonly refMessages = new MemoryRefMessagesRepository(this.driver)\n}\n"]}
@@ -7,8 +7,8 @@ interface AuthKeysState {
7
7
  }
8
8
  export declare class MemoryAuthKeysRepository implements IAuthKeysRepository {
9
9
  readonly _driver: MemoryStorageDriver;
10
- constructor(_driver: MemoryStorageDriver);
11
10
  readonly state: AuthKeysState;
11
+ constructor(_driver: MemoryStorageDriver);
12
12
  set(dc: number, key: Uint8Array | null): void;
13
13
  get(dc: number): Uint8Array | null;
14
14
  setTemp(dc: number, idx: number, key: Uint8Array | null, expires: number): void;
@@ -1,4 +1,6 @@
1
1
  export class MemoryAuthKeysRepository {
2
+ _driver;
3
+ state;
2
4
  constructor(_driver) {
3
5
  this._driver = _driver;
4
6
  this.state = this._driver.getState('authKeys', () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"auth-keys.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/auth-keys.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAgB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,YAAY,EAAE,IAAI,GAAG,EAAE;YACvB,kBAAkB,EAAE,IAAI,GAAG,EAAE;SAChC,CAAC,CAAC,CAAA;IANiD,CAAC;IAQrD,GAAG,CAAC,EAAU,EAAE,GAAsB;QAClC,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SACnC;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SACjC;IACL,CAAC;IAED,GAAG,CAAC,EAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,GAAW,EAAE,GAAsB,EAAE,OAAe;QACpE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;QAExB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;SAChD;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;SAC1C;IACL,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,GAAW,EAAE,GAAW;QACxC,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;QAExB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;YACnD,OAAO,IAAI,CAAA;SACd;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACjD,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC5C;SACJ;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QAC/B,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;IACzC,CAAC;CACJ","sourcesContent":["import { IAuthKeysRepository } from '../../repository/auth-keys.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface AuthKeysState {\n authKeys: Map<number, Uint8Array>\n authKeysTemp: Map<string, Uint8Array>\n authKeysTempExpiry: Map<string, number>\n}\n\nexport class MemoryAuthKeysRepository implements IAuthKeysRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<AuthKeysState>('authKeys', () => ({\n authKeys: new Map(),\n authKeysTemp: new Map(),\n authKeysTempExpiry: new Map(),\n }))\n\n set(dc: number, key: Uint8Array | null): void {\n if (key) {\n this.state.authKeys.set(dc, key)\n } else {\n this.state.authKeys.delete(dc)\n }\n }\n\n get(dc: number): Uint8Array | null {\n return this.state.authKeys.get(dc) ?? null\n }\n\n setTemp(dc: number, idx: number, key: Uint8Array | null, expires: number): void {\n const k = `${dc}:${idx}`\n\n if (key) {\n this.state.authKeysTemp.set(k, key)\n this.state.authKeysTempExpiry.set(k, expires)\n } else {\n this.state.authKeysTemp.delete(k)\n this.state.authKeysTempExpiry.delete(k)\n }\n }\n\n getTemp(dc: number, idx: number, now: number): Uint8Array | null {\n const k = `${dc}:${idx}`\n\n if (now > (this.state.authKeysTempExpiry.get(k) ?? 0)) {\n return null\n }\n\n return this.state.authKeysTemp.get(k) ?? null\n }\n\n deleteByDc(dc: number): void {\n this.state.authKeys.delete(dc)\n\n for (const key of this.state.authKeysTemp.keys()) {\n if (key.startsWith(`${dc}:`)) {\n this.state.authKeysTemp.delete(key)\n this.state.authKeysTempExpiry.delete(key)\n }\n }\n }\n\n deleteAll(): void {\n this.state.authKeys.clear()\n this.state.authKeysTemp.clear()\n this.state.authKeysTempExpiry.clear()\n }\n}\n"]}
1
+ {"version":3,"file":"auth-keys.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/auth-keys.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,wBAAwB;IAEZ;IADZ,KAAK,CAAA;IACd,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAgB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACjE,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,YAAY,EAAE,IAAI,GAAG,EAAE;YACvB,kBAAkB,EAAE,IAAI,GAAG,EAAE;SAChC,CAAC,CAAC,CAAA;IACP,CAAC;IAED,GAAG,CAAC,EAAU,EAAE,GAAsB;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACpC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,EAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,GAAW,EAAE,GAAsB,EAAE,OAAe;QACpE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;QAExB,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QACjD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,GAAW,EAAE,GAAW;QACxC,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;QAExB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACjD,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QAC/B,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;IACzC,CAAC;CACJ","sourcesContent":["import { IAuthKeysRepository } from '../../repository/auth-keys.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface AuthKeysState {\n authKeys: Map<number, Uint8Array>\n authKeysTemp: Map<string, Uint8Array>\n authKeysTempExpiry: Map<string, number>\n}\n\nexport class MemoryAuthKeysRepository implements IAuthKeysRepository {\n readonly state\n constructor(readonly _driver: MemoryStorageDriver) {\n this.state = this._driver.getState<AuthKeysState>('authKeys', () => ({\n authKeys: new Map(),\n authKeysTemp: new Map(),\n authKeysTempExpiry: new Map(),\n }))\n }\n\n set(dc: number, key: Uint8Array | null): void {\n if (key) {\n this.state.authKeys.set(dc, key)\n } else {\n this.state.authKeys.delete(dc)\n }\n }\n\n get(dc: number): Uint8Array | null {\n return this.state.authKeys.get(dc) ?? null\n }\n\n setTemp(dc: number, idx: number, key: Uint8Array | null, expires: number): void {\n const k = `${dc}:${idx}`\n\n if (key) {\n this.state.authKeysTemp.set(k, key)\n this.state.authKeysTempExpiry.set(k, expires)\n } else {\n this.state.authKeysTemp.delete(k)\n this.state.authKeysTempExpiry.delete(k)\n }\n }\n\n getTemp(dc: number, idx: number, now: number): Uint8Array | null {\n const k = `${dc}:${idx}`\n\n if (now > (this.state.authKeysTempExpiry.get(k) ?? 0)) {\n return null\n }\n\n return this.state.authKeysTemp.get(k) ?? null\n }\n\n deleteByDc(dc: number): void {\n this.state.authKeys.delete(dc)\n\n for (const key of this.state.authKeysTemp.keys()) {\n if (key.startsWith(`${dc}:`)) {\n this.state.authKeysTemp.delete(key)\n this.state.authKeysTempExpiry.delete(key)\n }\n }\n }\n\n deleteAll(): void {\n this.state.authKeys.clear()\n this.state.authKeysTemp.clear()\n this.state.authKeysTempExpiry.clear()\n }\n}\n"]}
@@ -2,8 +2,8 @@ import { IKeyValueRepository } from '../../repository/key-value.js';
2
2
  import { MemoryStorageDriver } from '../driver.js';
3
3
  export declare class MemoryKeyValueRepository implements IKeyValueRepository {
4
4
  readonly _driver: MemoryStorageDriver;
5
- constructor(_driver: MemoryStorageDriver);
6
5
  readonly state: Map<string, Uint8Array>;
6
+ constructor(_driver: MemoryStorageDriver);
7
7
  set(key: string, value: Uint8Array): void;
8
8
  get(key: string): Uint8Array | null;
9
9
  delete(key: string): void;
@@ -1,4 +1,6 @@
1
1
  export class MemoryKeyValueRepository {
2
+ _driver;
3
+ state;
2
4
  constructor(_driver) {
3
5
  this._driver = _driver;
4
6
  this.state = this._driver.getState('kv', () => new Map());
@@ -1 +1 @@
1
- {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/kv.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAA0B,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAFlC,CAAC;IAIrD,GAAG,CAAC,GAAW,EAAE,KAAiB;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAW;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACJ","sourcesContent":["import { IKeyValueRepository } from '../../repository/key-value.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\nexport class MemoryKeyValueRepository implements IKeyValueRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<Map<string, Uint8Array>>('kv', () => new Map())\n\n set(key: string, value: Uint8Array): void {\n this.state.set(key, value)\n }\n\n get(key: string): Uint8Array | null {\n return this.state.get(key) ?? null\n }\n\n delete(key: string): void {\n this.state.delete(key)\n }\n\n deleteAll(): void {\n this.state.clear()\n }\n}\n"]}
1
+ {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/kv.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IAEZ;IADZ,KAAK,CAAA;IACd,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAA0B,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IACtF,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAiB;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAW;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACJ","sourcesContent":["import { IKeyValueRepository } from '../../repository/key-value.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\nexport class MemoryKeyValueRepository implements IKeyValueRepository {\n readonly state\n constructor(readonly _driver: MemoryStorageDriver) {\n this.state = this._driver.getState<Map<string, Uint8Array>>('kv', () => new Map())\n }\n\n set(key: string, value: Uint8Array): void {\n this.state.set(key, value)\n }\n\n get(key: string): Uint8Array | null {\n return this.state.get(key) ?? null\n }\n\n delete(key: string): void {\n this.state.delete(key)\n }\n\n deleteAll(): void {\n this.state.clear()\n }\n}\n"]}
@@ -7,8 +7,8 @@ interface PeersState {
7
7
  }
8
8
  export declare class MemoryPeersRepository implements IPeersRepository {
9
9
  readonly _driver: MemoryStorageDriver;
10
- constructor(_driver: MemoryStorageDriver);
11
10
  readonly state: PeersState;
11
+ constructor(_driver: MemoryStorageDriver);
12
12
  store(peer: IPeersRepository.PeerInfo): void;
13
13
  getById(id: number): IPeersRepository.PeerInfo | null;
14
14
  getByUsername(username: string): IPeersRepository.PeerInfo | null;
@@ -1,4 +1,6 @@
1
1
  export class MemoryPeersRepository {
2
+ _driver;
3
+ state;
2
4
  constructor(_driver) {
3
5
  this._driver = _driver;
4
6
  this.state = this._driver.getState('peers', () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/peers.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,qBAAqB;IAC9B,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAa,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/D,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,UAAU,EAAE,IAAI,GAAG,EAAE;SACxB,CAAC,CAAC,CAAA;IANiD,CAAC;IAQrD,KAAK,CAAC,IAA+B;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE5C,IAAI,GAAG,EAAE;YACL,qCAAqC;YACrC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC,CAAC,CAAA;YAEF,IAAI,GAAG,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aAC1C;SACJ;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;aAClD;SACJ;QAED,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAE9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,UAAU,CAAC,KAAa;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface PeersState {\n entities: Map<number, IPeersRepository.PeerInfo>\n usernameIndex: Map<string, number>\n phoneIndex: Map<string, number>\n}\n\nexport class MemoryPeersRepository implements IPeersRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<PeersState>('peers', () => ({\n entities: new Map(),\n usernameIndex: new Map(),\n phoneIndex: new Map(),\n }))\n\n store(peer: IPeersRepository.PeerInfo): void {\n const old = this.state.entities.get(peer.id)\n\n if (old) {\n // delete old index entries if needed\n old.usernames.forEach((username) => {\n this.state.usernameIndex.delete(username)\n })\n\n if (old.phone) {\n this.state.phoneIndex.delete(old.phone)\n }\n }\n\n if (peer.usernames) {\n for (const username of peer.usernames) {\n this.state.usernameIndex.set(username, peer.id)\n }\n }\n\n if (peer.phone) this.state.phoneIndex.set(peer.phone, peer.id)\n\n this.state.entities.set(peer.id, peer)\n }\n\n getById(id: number): IPeersRepository.PeerInfo | null {\n return this.state.entities.get(id) ?? null\n }\n\n getByUsername(username: string): IPeersRepository.PeerInfo | null {\n const id = this.state.usernameIndex.get(username.toLowerCase())\n if (!id) return null\n\n return this.state.entities.get(id) ?? null\n }\n\n getByPhone(phone: string): IPeersRepository.PeerInfo | null {\n const id = this.state.phoneIndex.get(phone)\n if (!id) return null\n\n return this.state.entities.get(id) ?? null\n }\n\n deleteAll(): void {\n this.state.entities.clear()\n this.state.phoneIndex.clear()\n this.state.usernameIndex.clear()\n }\n}\n"]}
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/peers.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,qBAAqB;IAET;IADZ,KAAK,CAAA;IACd,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAa,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,UAAU,EAAE,IAAI,GAAG,EAAE;SACxB,CAAC,CAAC,CAAA;IACP,CAAC;IAED,KAAK,CAAC,IAA+B;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE5C,IAAI,GAAG,EAAE,CAAC;YACN,qCAAqC;YACrC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC,CAAC,CAAA;YAEF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC3C,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;YACnD,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAE9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,UAAU,CAAC,KAAa;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface PeersState {\n entities: Map<number, IPeersRepository.PeerInfo>\n usernameIndex: Map<string, number>\n phoneIndex: Map<string, number>\n}\n\nexport class MemoryPeersRepository implements IPeersRepository {\n readonly state\n constructor(readonly _driver: MemoryStorageDriver) {\n this.state = this._driver.getState<PeersState>('peers', () => ({\n entities: new Map(),\n usernameIndex: new Map(),\n phoneIndex: new Map(),\n }))\n }\n\n store(peer: IPeersRepository.PeerInfo): void {\n const old = this.state.entities.get(peer.id)\n\n if (old) {\n // delete old index entries if needed\n old.usernames.forEach((username) => {\n this.state.usernameIndex.delete(username)\n })\n\n if (old.phone) {\n this.state.phoneIndex.delete(old.phone)\n }\n }\n\n if (peer.usernames) {\n for (const username of peer.usernames) {\n this.state.usernameIndex.set(username, peer.id)\n }\n }\n\n if (peer.phone) this.state.phoneIndex.set(peer.phone, peer.id)\n\n this.state.entities.set(peer.id, peer)\n }\n\n getById(id: number): IPeersRepository.PeerInfo | null {\n return this.state.entities.get(id) ?? null\n }\n\n getByUsername(username: string): IPeersRepository.PeerInfo | null {\n const id = this.state.usernameIndex.get(username.toLowerCase())\n if (!id) return null\n\n return this.state.entities.get(id) ?? null\n }\n\n getByPhone(phone: string): IPeersRepository.PeerInfo | null {\n const id = this.state.phoneIndex.get(phone)\n if (!id) return null\n\n return this.state.entities.get(id) ?? null\n }\n\n deleteAll(): void {\n this.state.entities.clear()\n this.state.phoneIndex.clear()\n this.state.usernameIndex.clear()\n }\n}\n"]}
@@ -5,8 +5,8 @@ interface RefMessagesState {
5
5
  }
6
6
  export declare class MemoryRefMessagesRepository implements IReferenceMessagesRepository {
7
7
  readonly _driver: MemoryStorageDriver;
8
- constructor(_driver: MemoryStorageDriver);
9
8
  readonly state: RefMessagesState;
9
+ constructor(_driver: MemoryStorageDriver);
10
10
  store(peerId: number, chatId: number, msgId: number): void;
11
11
  getByPeer(peerId: number): [number, number] | null;
12
12
  delete(chatId: number, msgIds: number[]): void;
@@ -1,4 +1,6 @@
1
1
  export class MemoryRefMessagesRepository {
2
+ _driver;
3
+ state;
2
4
  constructor(_driver) {
3
5
  this._driver = _driver;
4
6
  this.state = this._driver.getState('refMessages', () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"ref-messages.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/ref-messages.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,2BAA2B;IACpC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAmB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,IAAI,EAAE,IAAI,GAAG,EAAE;SAClB,CAAC,CAAC,CAAA;IAJiD,CAAC;IAMrD,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SACzC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,EAAE,IAAI;YAAE,OAAO,IAAI,CAAA;QAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QAElB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAgB;QACnC,4CAA4C;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;aAClC;SACJ;IACL,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACJ","sourcesContent":["import { IReferenceMessagesRepository } from '../../../highlevel/storage/repository/ref-messages.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface RefMessagesState {\n refs: Map<number, Set<string>>\n}\n\nexport class MemoryRefMessagesRepository implements IReferenceMessagesRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<RefMessagesState>('refMessages', () => ({\n refs: new Map(),\n }))\n\n store(peerId: number, chatId: number, msgId: number): void {\n if (!this.state.refs.has(peerId)) {\n this.state.refs.set(peerId, new Set())\n }\n\n this.state.refs.get(peerId)!.add(`${chatId}:${msgId}`)\n }\n\n getByPeer(peerId: number): [number, number] | null {\n const refs = this.state.refs.get(peerId)\n if (!refs?.size) return null\n const [ref] = refs\n\n const [chatId, msgId] = ref.split(':')\n\n return [Number(chatId), Number(msgId)]\n }\n\n delete(chatId: number, msgIds: number[]): void {\n // not the most efficient way, but it's fine\n for (const refs of this.state.refs.values()) {\n for (const msg of msgIds) {\n refs.delete(`${chatId}:${msg}`)\n }\n }\n }\n\n deleteByPeer(peerId: number): void {\n this.state.refs.delete(peerId)\n }\n\n deleteAll(): void {\n this.state.refs.clear()\n }\n}\n"]}
1
+ {"version":3,"file":"ref-messages.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/ref-messages.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,2BAA2B;IAEf;IADZ,KAAK,CAAA;IACd,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAmB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,IAAI,EAAE,IAAI,GAAG,EAAE;SAClB,CAAC,CAAC,CAAA;IACP,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,EAAE,IAAI;YAAE,OAAO,IAAI,CAAA;QAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QAElB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAgB;QACnC,4CAA4C;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACJ","sourcesContent":["import { IReferenceMessagesRepository } from '../../../highlevel/storage/repository/ref-messages.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface RefMessagesState {\n refs: Map<number, Set<string>>\n}\n\nexport class MemoryRefMessagesRepository implements IReferenceMessagesRepository {\n readonly state\n constructor(readonly _driver: MemoryStorageDriver) {\n this.state = this._driver.getState<RefMessagesState>('refMessages', () => ({\n refs: new Map(),\n }))\n }\n\n store(peerId: number, chatId: number, msgId: number): void {\n if (!this.state.refs.has(peerId)) {\n this.state.refs.set(peerId, new Set())\n }\n\n this.state.refs.get(peerId)!.add(`${chatId}:${msgId}`)\n }\n\n getByPeer(peerId: number): [number, number] | null {\n const refs = this.state.refs.get(peerId)\n if (!refs?.size) return null\n const [ref] = refs\n\n const [chatId, msgId] = ref.split(':')\n\n return [Number(chatId), Number(msgId)]\n }\n\n delete(chatId: number, msgIds: number[]): void {\n // not the most efficient way, but it's fine\n for (const refs of this.state.refs.values()) {\n for (const msg of msgIds) {\n refs.delete(`${chatId}:${msg}`)\n }\n }\n }\n\n deleteByPeer(peerId: number): void {\n this.state.refs.delete(peerId)\n }\n\n deleteAll(): void {\n this.state.refs.clear()\n }\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  import { BaseService } from './base.js';
2
2
  export class AuthKeysService extends BaseService {
3
+ _keys;
4
+ _salts;
3
5
  constructor(_keys, _salts, opts) {
4
6
  super(opts);
5
7
  this._keys = _keys;
@@ -1 +1 @@
1
- {"version":3,"file":"auth-keys.js","sourceRoot":"","sources":["../../../../src/storage/service/auth-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAA;AAGvD,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC5C,YACa,KAA0B,EAC1B,MAA0B,EACnC,IAAoB;QAEpB,KAAK,CAAC,IAAI,CAAC,CAAA;QAJF,UAAK,GAAL,KAAK,CAAqB;QAC1B,WAAM,GAAN,MAAM,CAAoB;IAIvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACvB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;CACJ","sourcesContent":["import { IAuthKeysRepository } from '../repository/auth-keys.js'\nimport { BaseService, ServiceOptions } from './base.js'\nimport { FutureSaltsService } from './future-salts.js'\n\nexport class AuthKeysService extends BaseService {\n constructor(\n readonly _keys: IAuthKeysRepository,\n readonly _salts: FutureSaltsService,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n async deleteByDc(dc: number): Promise<void> {\n await this._keys.deleteByDc(dc)\n await this._salts.delete(dc)\n }\n}\n"]}
1
+ {"version":3,"file":"auth-keys.js","sourceRoot":"","sources":["../../../../src/storage/service/auth-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAA;AAGvD,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAE/B;IACA;IAFb,YACa,KAA0B,EAC1B,MAA0B,EACnC,IAAoB;QAEpB,KAAK,CAAC,IAAI,CAAC,CAAA;QAJF,UAAK,GAAL,KAAK,CAAqB;QAC1B,WAAM,GAAN,MAAM,CAAoB;IAIvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU;QACvB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;CACJ","sourcesContent":["import { IAuthKeysRepository } from '../repository/auth-keys.js'\nimport { BaseService, ServiceOptions } from './base.js'\nimport { FutureSaltsService } from './future-salts.js'\n\nexport class AuthKeysService extends BaseService {\n constructor(\n readonly _keys: IAuthKeysRepository,\n readonly _salts: FutureSaltsService,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n async deleteByDc(dc: number): Promise<void> {\n await this._keys.deleteByDc(dc)\n await this._salts.delete(dc)\n }\n}\n"]}
@@ -1,5 +1,9 @@
1
1
  import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime';
2
2
  export class BaseService {
3
+ _driver;
4
+ _readerMap;
5
+ _writerMap;
6
+ _log;
3
7
  constructor(opts) {
4
8
  this._driver = opts.driver;
5
9
  this._readerMap = opts.readerMap;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/storage/service/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAA4B,MAAM,oBAAoB,CAAA;AAY7F,MAAM,OAAO,WAAW;IAMpB,YAAY,IAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;IACxB,CAAC;IAES,YAAY,CAAC,GAAgB;QACnC,OAAO,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IAES,cAAc,CAAC,IAAgB;QACrC,IAAI;YACA,OAAO,cAAc,CAAC,iBAAiB,CAAc,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;SAC9E;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,IAAI,CAAA;SACd;IACL,CAAC;CACJ","sourcesContent":["import { tl } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter, TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { Logger } from '../../utils/logger.js'\nimport { IStorageDriver } from '../driver.js'\n\nexport interface ServiceOptions {\n driver: IStorageDriver\n readerMap: TlReaderMap\n writerMap: TlWriterMap\n log: Logger\n}\n\nexport class BaseService {\n protected _driver: IStorageDriver\n protected _readerMap: TlReaderMap\n protected _writerMap: TlWriterMap\n protected _log: Logger\n\n constructor(opts: ServiceOptions) {\n this._driver = opts.driver\n this._readerMap = opts.readerMap\n this._writerMap = opts.writerMap\n this._log = opts.log\n }\n\n protected _serializeTl(obj: tl.TlObject): Uint8Array {\n return TlBinaryWriter.serializeObject(this._writerMap, obj)\n }\n\n protected _deserializeTl(data: Uint8Array): tl.TlObject | null {\n try {\n return TlBinaryReader.deserializeObject<tl.TlObject>(this._readerMap, data)\n } catch (e) {\n return null\n }\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/storage/service/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAA4B,MAAM,oBAAoB,CAAA;AAY7F,MAAM,OAAO,WAAW;IACV,OAAO,CAAgB;IACvB,UAAU,CAAa;IACvB,UAAU,CAAa;IACvB,IAAI,CAAQ;IAEtB,YAAY,IAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAA;IACxB,CAAC;IAES,YAAY,CAAC,GAAgB;QACnC,OAAO,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC/D,CAAC;IAES,cAAc,CAAC,IAAgB;QACrC,IAAI,CAAC;YACD,OAAO,cAAc,CAAC,iBAAiB,CAAc,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;CACJ","sourcesContent":["import { tl } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter, TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { Logger } from '../../utils/logger.js'\nimport { IStorageDriver } from '../driver.js'\n\nexport interface ServiceOptions {\n driver: IStorageDriver\n readerMap: TlReaderMap\n writerMap: TlWriterMap\n log: Logger\n}\n\nexport class BaseService {\n protected _driver: IStorageDriver\n protected _readerMap: TlReaderMap\n protected _writerMap: TlWriterMap\n protected _log: Logger\n\n constructor(opts: ServiceOptions) {\n this._driver = opts.driver\n this._readerMap = opts.readerMap\n this._writerMap = opts.writerMap\n this._log = opts.log\n }\n\n protected _serializeTl(obj: tl.TlObject): Uint8Array {\n return TlBinaryWriter.serializeObject(this._writerMap, obj)\n }\n\n protected _deserializeTl(data: Uint8Array): tl.TlObject | null {\n try {\n return TlBinaryReader.deserializeObject<tl.TlObject>(this._readerMap, data)\n } catch (e) {\n return null\n }\n }\n}\n"]}
@@ -3,10 +3,12 @@ import { BaseService } from './base.js';
3
3
  const KV_MAIN = 'dc_main';
4
4
  const KV_MEDIA = 'dc_media';
5
5
  export class DefaultDcsService extends BaseService {
6
+ _kv;
6
7
  constructor(_kv, opts) {
7
8
  super(opts);
8
9
  this._kv = _kv;
9
10
  }
11
+ _cached;
10
12
  async store(dcs) {
11
13
  if (this._cached) {
12
14
  if (this._cached.main === dcs.main &&
@@ -1 +1 @@
1
- {"version":3,"file":"default-dcs.js","sourceRoot":"","sources":["../../../../src/storage/service/default-dcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE1F,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAA;AAEvD,MAAM,OAAO,GAAG,SAAS,CAAA;AACzB,MAAM,QAAQ,GAAG,UAAU,CAAA;AAE3B,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAC9C,YACa,GAAwB,EACjC,IAAoB;QAEpB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHF,QAAG,GAAH,GAAG,CAAqB;IAIrC,CAAC;IAID,KAAK,CAAC,KAAK,CAAC,GAAc;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IACI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;gBAClC,OAAM;SACX;QAED,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAElB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QAC3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAErC,IAAI,KAAK,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;SAC1C;aAAM;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;SAClC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QAErC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;SACzB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAE1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,MAAM,GAAG,GAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QAE5C,IAAI,SAAS,EAAE;YACX,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YAE3C,IAAI,KAAK,EAAE;gBACP,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;aACpB;SACJ;QAED,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAElB,OAAO,GAAG,CAAA;IACd,CAAC;CACJ","sourcesContent":["import { DcOptions, parseBasicDcOption, serializeBasicDcOption } from '../../utils/dcs.js'\nimport { IKeyValueRepository } from '../repository/key-value.js'\nimport { BaseService, ServiceOptions } from './base.js'\n\nconst KV_MAIN = 'dc_main'\nconst KV_MEDIA = 'dc_media'\n\nexport class DefaultDcsService extends BaseService {\n constructor(\n readonly _kv: IKeyValueRepository,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n private _cached?: DcOptions\n\n async store(dcs: DcOptions): Promise<void> {\n if (this._cached) {\n if (\n this._cached.main === dcs.main &&\n this._cached.media === dcs.media\n ) return\n }\n\n this._cached = dcs\n\n const { main, media } = dcs\n const mainData = serializeBasicDcOption(main)\n await this._kv.set(KV_MAIN, mainData)\n\n if (media !== main) {\n const mediaData = serializeBasicDcOption(media)\n await this._kv.set(KV_MEDIA, mediaData)\n } else {\n await this._kv.delete(KV_MEDIA)\n }\n }\n\n async fetch(): Promise<DcOptions | null> {\n if (this._cached) return this._cached\n\n const [mainData, mediaData] = await Promise.all([\n this._kv.get(KV_MAIN),\n this._kv.get(KV_MEDIA),\n ])\n\n if (!mainData) return null\n\n const main = parseBasicDcOption(mainData)\n if (!main) return null\n\n const dcs: DcOptions = { main, media: main }\n\n if (mediaData) {\n const media = parseBasicDcOption(mediaData)\n\n if (media) {\n dcs.media = media\n }\n }\n\n this._cached = dcs\n\n return dcs\n }\n}\n"]}
1
+ {"version":3,"file":"default-dcs.js","sourceRoot":"","sources":["../../../../src/storage/service/default-dcs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE1F,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAA;AAEvD,MAAM,OAAO,GAAG,SAAS,CAAA;AACzB,MAAM,QAAQ,GAAG,UAAU,CAAA;AAE3B,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAEjC;IADb,YACa,GAAwB,EACjC,IAAoB;QAEpB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHF,QAAG,GAAH,GAAG,CAAqB;IAIrC,CAAC;IAEO,OAAO,CAAY;IAE3B,KAAK,CAAC,KAAK,CAAC,GAAc;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IACI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;gBAClC,OAAM;QACZ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAElB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;QAC3B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAErC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QAErC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;SACzB,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAE1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,MAAM,GAAG,GAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QAE5C,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YAE3C,IAAI,KAAK,EAAE,CAAC;gBACR,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;YACrB,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAElB,OAAO,GAAG,CAAA;IACd,CAAC;CACJ","sourcesContent":["import { DcOptions, parseBasicDcOption, serializeBasicDcOption } from '../../utils/dcs.js'\nimport { IKeyValueRepository } from '../repository/key-value.js'\nimport { BaseService, ServiceOptions } from './base.js'\n\nconst KV_MAIN = 'dc_main'\nconst KV_MEDIA = 'dc_media'\n\nexport class DefaultDcsService extends BaseService {\n constructor(\n readonly _kv: IKeyValueRepository,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n private _cached?: DcOptions\n\n async store(dcs: DcOptions): Promise<void> {\n if (this._cached) {\n if (\n this._cached.main === dcs.main &&\n this._cached.media === dcs.media\n ) return\n }\n\n this._cached = dcs\n\n const { main, media } = dcs\n const mainData = serializeBasicDcOption(main)\n await this._kv.set(KV_MAIN, mainData)\n\n if (media !== main) {\n const mediaData = serializeBasicDcOption(media)\n await this._kv.set(KV_MEDIA, mediaData)\n } else {\n await this._kv.delete(KV_MEDIA)\n }\n }\n\n async fetch(): Promise<DcOptions | null> {\n if (this._cached) return this._cached\n\n const [mainData, mediaData] = await Promise.all([\n this._kv.get(KV_MAIN),\n this._kv.get(KV_MEDIA),\n ])\n\n if (!mainData) return null\n\n const main = parseBasicDcOption(mainData)\n if (!main) return null\n\n const dcs: DcOptions = { main, media: main }\n\n if (mediaData) {\n const media = parseBasicDcOption(mediaData)\n\n if (media) {\n dcs.media = media\n }\n }\n\n this._cached = dcs\n\n return dcs\n }\n}\n"]}
@@ -2,11 +2,12 @@ import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime';
2
2
  import { BaseService } from './base.js';
3
3
  const KV_PREFIX = 'salts:';
4
4
  export class FutureSaltsService extends BaseService {
5
+ _kv;
5
6
  constructor(_kv, opts) {
6
7
  super(opts);
7
8
  this._kv = _kv;
8
- this._cached = new Map();
9
9
  }
10
+ _cached = new Map();
10
11
  async store(dcId, salts) {
11
12
  if (this._cached.get(dcId) === salts)
12
13
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"future-salts.js","sourceRoot":"","sources":["../../../../src/storage/service/future-salts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAA;AAEvD,MAAM,SAAS,GAAG,QAAQ,CAAA;AAE1B,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAC/C,YACa,GAAwB,EACjC,IAAoB;QAEpB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHF,QAAG,GAAH,GAAG,CAAqB;QAM7B,YAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;IAF5D,CAAC;IAID,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,KAA8B;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAM;QAE5C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAEnC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;QACjD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAK,IAAsB,CAAC,CAAC,KAAK,gBAAgB;gBAAE,OAAO,IAAI,CAAA;SAClE;QAED,MAAM,MAAM,GAAG,KAAgC,CAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE9B,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3C,CAAC;CACJ","sourcesContent":["import { mtp } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { IKeyValueRepository } from '../repository/key-value.js'\nimport { BaseService, ServiceOptions } from './base.js'\n\nconst KV_PREFIX = 'salts:'\n\nexport class FutureSaltsService extends BaseService {\n constructor(\n readonly _kv: IKeyValueRepository,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n private _cached = new Map<number, mtp.RawMt_future_salt[]>()\n\n async store(dcId: number, salts: mtp.RawMt_future_salt[]): Promise<void> {\n if (this._cached.get(dcId) === salts) return\n\n const writer = TlBinaryWriter.alloc(this._writerMap, 8 + 20 * salts.length)\n writer.vector(writer.object, salts)\n\n await this._kv.set(KV_PREFIX + dcId, writer.result())\n }\n\n async fetch(dcId: number): Promise<mtp.RawMt_future_salt[] | null> {\n const cached = this._cached.get(dcId)\n if (cached) return cached\n\n const data = await this._kv.get(KV_PREFIX + dcId)\n if (!data) return null\n\n const reader = new TlBinaryReader(this._readerMap, data)\n const salts = reader.vector()\n\n for (const salt of salts) {\n if ((salt as { _: string })._ !== 'mt_future_salt') return null\n }\n\n const salts_ = salts as mtp.RawMt_future_salt[]\n this._cached.set(dcId, salts_)\n\n return salts_\n }\n\n async delete(dcId: number): Promise<void> {\n this._cached.delete(dcId)\n await this._kv.delete(KV_PREFIX + dcId)\n }\n}\n"]}
1
+ {"version":3,"file":"future-salts.js","sourceRoot":"","sources":["../../../../src/storage/service/future-salts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAA;AAEvD,MAAM,SAAS,GAAG,QAAQ,CAAA;AAE1B,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAElC;IADb,YACa,GAAwB,EACjC,IAAoB;QAEpB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHF,QAAG,GAAH,GAAG,CAAqB;IAIrC,CAAC;IAEO,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;IAE5D,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,KAA8B;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK;YAAE,OAAM;QAE5C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAEnC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;QACjD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAK,IAAsB,CAAC,CAAC,KAAK,gBAAgB;gBAAE,OAAO,IAAI,CAAA;QACnE,CAAC;QAED,MAAM,MAAM,GAAG,KAAgC,CAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE9B,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC3C,CAAC;CACJ","sourcesContent":["import { mtp } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { IKeyValueRepository } from '../repository/key-value.js'\nimport { BaseService, ServiceOptions } from './base.js'\n\nconst KV_PREFIX = 'salts:'\n\nexport class FutureSaltsService extends BaseService {\n constructor(\n readonly _kv: IKeyValueRepository,\n opts: ServiceOptions,\n ) {\n super(opts)\n }\n\n private _cached = new Map<number, mtp.RawMt_future_salt[]>()\n\n async store(dcId: number, salts: mtp.RawMt_future_salt[]): Promise<void> {\n if (this._cached.get(dcId) === salts) return\n\n const writer = TlBinaryWriter.alloc(this._writerMap, 8 + 20 * salts.length)\n writer.vector(writer.object, salts)\n\n await this._kv.set(KV_PREFIX + dcId, writer.result())\n }\n\n async fetch(dcId: number): Promise<mtp.RawMt_future_salt[] | null> {\n const cached = this._cached.get(dcId)\n if (cached) return cached\n\n const data = await this._kv.get(KV_PREFIX + dcId)\n if (!data) return null\n\n const reader = new TlBinaryReader(this._readerMap, data)\n const salts = reader.vector()\n\n for (const salt of salts) {\n if ((salt as { _: string })._ !== 'mt_future_salt') return null\n }\n\n const salts_ = salts as mtp.RawMt_future_salt[]\n this._cached.set(dcId, salts_)\n\n return salts_\n }\n\n async delete(dcId: number): Promise<void> {\n this._cached.delete(dcId)\n await this._kv.delete(KV_PREFIX + dcId)\n }\n}\n"]}