@mtcute/core 0.6.0 → 0.7.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 (2857) hide show
  1. package/cjs/highlevel/base.d.ts +111 -0
  2. package/cjs/highlevel/base.js +228 -0
  3. package/cjs/highlevel/base.js.map +1 -0
  4. package/cjs/highlevel/client.d.ts +4412 -0
  5. package/cjs/highlevel/client.js +1069 -0
  6. package/cjs/highlevel/client.js.map +1 -0
  7. package/cjs/highlevel/client.types.d.ts +38 -0
  8. package/cjs/highlevel/client.types.js +3 -0
  9. package/cjs/highlevel/client.types.js.map +1 -0
  10. package/cjs/highlevel/index.d.ts +6 -0
  11. package/cjs/highlevel/index.js +23 -0
  12. package/cjs/highlevel/index.js.map +1 -0
  13. package/cjs/highlevel/managers/app-config-manager.d.ts +12 -0
  14. package/cjs/highlevel/managers/app-config-manager.js +41 -0
  15. package/cjs/highlevel/managers/app-config-manager.js.map +1 -0
  16. package/cjs/highlevel/methods/_imports.js +4 -0
  17. package/cjs/highlevel/methods/_imports.js.map +1 -0
  18. package/cjs/highlevel/methods/_init.js +67 -0
  19. package/cjs/highlevel/methods/_init.js.map +1 -0
  20. package/cjs/highlevel/methods/auth/check-password.d.ts +10 -0
  21. package/cjs/highlevel/methods/auth/check-password.js +22 -0
  22. package/cjs/highlevel/methods/auth/check-password.js.map +1 -0
  23. package/cjs/highlevel/methods/auth/get-password-hint.d.ts +7 -0
  24. package/cjs/highlevel/methods/auth/get-password-hint.js +17 -0
  25. package/cjs/highlevel/methods/auth/get-password-hint.js.map +1 -0
  26. package/cjs/highlevel/methods/auth/log-out.d.ts +10 -0
  27. package/cjs/highlevel/methods/auth/log-out.js +18 -0
  28. package/cjs/highlevel/methods/auth/log-out.js.map +1 -0
  29. package/cjs/highlevel/methods/auth/recover-password.d.ts +12 -0
  30. package/cjs/highlevel/methods/auth/recover-password.js +20 -0
  31. package/cjs/highlevel/methods/auth/recover-password.js.map +1 -0
  32. package/cjs/highlevel/methods/auth/resend-code.d.ts +14 -0
  33. package/cjs/highlevel/methods/auth/resend-code.js +24 -0
  34. package/cjs/highlevel/methods/auth/resend-code.js.map +1 -0
  35. package/cjs/highlevel/methods/auth/run.d.ts +15 -0
  36. package/cjs/highlevel/methods/auth/run.js +22 -0
  37. package/cjs/highlevel/methods/auth/run.js.map +1 -0
  38. package/cjs/highlevel/methods/auth/send-code.d.ts +11 -0
  39. package/cjs/highlevel/methods/auth/send-code.js +26 -0
  40. package/cjs/highlevel/methods/auth/send-code.js.map +1 -0
  41. package/cjs/highlevel/methods/auth/send-recovery-code.d.ts +7 -0
  42. package/cjs/highlevel/methods/auth/send-recovery-code.js +17 -0
  43. package/cjs/highlevel/methods/auth/send-recovery-code.js.map +1 -0
  44. package/cjs/highlevel/methods/auth/sign-in-bot.d.ts +10 -0
  45. package/cjs/highlevel/methods/auth/sign-in-bot.js +24 -0
  46. package/cjs/highlevel/methods/auth/sign-in-bot.js.map +1 -0
  47. package/cjs/highlevel/methods/auth/sign-in.d.ts +17 -0
  48. package/cjs/highlevel/methods/auth/sign-in.js +24 -0
  49. package/cjs/highlevel/methods/auth/sign-in.js.map +1 -0
  50. package/cjs/highlevel/methods/auth/start-test.d.ts +30 -0
  51. package/cjs/highlevel/methods/auth/start-test.js +66 -0
  52. package/cjs/highlevel/methods/auth/start-test.js.map +1 -0
  53. package/cjs/highlevel/methods/auth/start.d.ts +74 -0
  54. package/cjs/highlevel/methods/auth/start.js +136 -0
  55. package/cjs/highlevel/methods/auth/start.js.map +1 -0
  56. package/cjs/highlevel/methods/auth/utils.d.ts +6 -0
  57. package/cjs/highlevel/methods/auth/utils.js +33 -0
  58. package/cjs/highlevel/methods/auth/utils.js.map +1 -0
  59. package/cjs/highlevel/methods/bots/answer-callback-query.d.ts +41 -0
  60. package/cjs/highlevel/methods/bots/answer-callback-query.js +28 -0
  61. package/cjs/highlevel/methods/bots/answer-callback-query.js.map +1 -0
  62. package/cjs/highlevel/methods/bots/answer-inline-query.d.ts +88 -0
  63. package/cjs/highlevel/methods/bots/answer-inline-query.js +44 -0
  64. package/cjs/highlevel/methods/bots/answer-inline-query.js.map +1 -0
  65. package/cjs/highlevel/methods/bots/answer-pre-checkout-query.d.ts +12 -0
  66. package/cjs/highlevel/methods/bots/answer-pre-checkout-query.js +25 -0
  67. package/cjs/highlevel/methods/bots/answer-pre-checkout-query.js.map +1 -0
  68. package/cjs/highlevel/methods/bots/delete-my-commands.d.ts +22 -0
  69. package/cjs/highlevel/methods/bots/delete-my-commands.js +25 -0
  70. package/cjs/highlevel/methods/bots/delete-my-commands.js.map +1 -0
  71. package/cjs/highlevel/methods/bots/get-bot-info.d.ts +18 -0
  72. package/cjs/highlevel/methods/bots/get-bot-info.js +17 -0
  73. package/cjs/highlevel/methods/bots/get-bot-info.js.map +1 -0
  74. package/cjs/highlevel/methods/bots/get-bot-menu-button.d.ts +7 -0
  75. package/cjs/highlevel/methods/bots/get-bot-menu-button.js +15 -0
  76. package/cjs/highlevel/methods/bots/get-bot-menu-button.js.map +1 -0
  77. package/cjs/highlevel/methods/bots/get-callback-answer.d.ts +30 -0
  78. package/cjs/highlevel/methods/bots/get-callback-answer.js +31 -0
  79. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -0
  80. package/cjs/highlevel/methods/bots/get-game-high-scores.d.ts +17 -0
  81. package/cjs/highlevel/methods/bots/get-game-high-scores.js +55 -0
  82. package/cjs/highlevel/methods/bots/get-game-high-scores.js.map +1 -0
  83. package/cjs/highlevel/methods/bots/get-my-commands.d.ts +21 -0
  84. package/cjs/highlevel/methods/bots/get-my-commands.js +23 -0
  85. package/cjs/highlevel/methods/bots/get-my-commands.js.map +1 -0
  86. package/cjs/highlevel/methods/bots/normalize-command-scope.js +34 -0
  87. package/cjs/highlevel/methods/bots/normalize-command-scope.js.map +1 -0
  88. package/cjs/highlevel/methods/bots/set-bot-info.d.ts +23 -0
  89. package/cjs/highlevel/methods/bots/set-bot-info.js +22 -0
  90. package/cjs/highlevel/methods/bots/set-bot-info.js.map +1 -0
  91. package/cjs/highlevel/methods/bots/set-bot-menu-button.d.ts +7 -0
  92. package/cjs/highlevel/methods/bots/set-bot-menu-button.js +18 -0
  93. package/cjs/highlevel/methods/bots/set-bot-menu-button.js.map +1 -0
  94. package/cjs/highlevel/methods/bots/set-game-score.d.ts +54 -0
  95. package/cjs/highlevel/methods/bots/set-game-score.js +53 -0
  96. package/cjs/highlevel/methods/bots/set-game-score.js.map +1 -0
  97. package/cjs/highlevel/methods/bots/set-my-commands.d.ts +26 -0
  98. package/cjs/highlevel/methods/bots/set-my-commands.js +36 -0
  99. package/cjs/highlevel/methods/bots/set-my-commands.js.map +1 -0
  100. package/cjs/highlevel/methods/bots/set-my-default-rights.d.ts +11 -0
  101. package/cjs/highlevel/methods/bots/set-my-default-rights.js +20 -0
  102. package/cjs/highlevel/methods/bots/set-my-default-rights.js.map +1 -0
  103. package/cjs/highlevel/methods/chats/add-chat-members.d.ts +18 -0
  104. package/cjs/highlevel/methods/chats/add-chat-members.js +43 -0
  105. package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -0
  106. package/cjs/highlevel/methods/chats/archive-chats.d.ts +9 -0
  107. package/cjs/highlevel/methods/chats/archive-chats.js +25 -0
  108. package/cjs/highlevel/methods/chats/archive-chats.js.map +1 -0
  109. package/cjs/highlevel/methods/chats/ban-chat-member.d.ts +23 -0
  110. package/cjs/highlevel/methods/chats/ban-chat-member.js +48 -0
  111. package/cjs/highlevel/methods/chats/ban-chat-member.js.map +1 -0
  112. package/cjs/highlevel/methods/chats/batched-queries.js +125 -0
  113. package/cjs/highlevel/methods/chats/batched-queries.js.map +1 -0
  114. package/cjs/highlevel/methods/chats/create-channel.d.ts +17 -0
  115. package/cjs/highlevel/methods/chats/create-channel.js +24 -0
  116. package/cjs/highlevel/methods/chats/create-channel.js.map +1 -0
  117. package/cjs/highlevel/methods/chats/create-group.d.ts +26 -0
  118. package/cjs/highlevel/methods/chats/create-group.js +30 -0
  119. package/cjs/highlevel/methods/chats/create-group.js.map +1 -0
  120. package/cjs/highlevel/methods/chats/create-supergroup.d.ts +27 -0
  121. package/cjs/highlevel/methods/chats/create-supergroup.js +26 -0
  122. package/cjs/highlevel/methods/chats/create-supergroup.js.map +1 -0
  123. package/cjs/highlevel/methods/chats/delete-channel.d.ts +8 -0
  124. package/cjs/highlevel/methods/chats/delete-channel.js +19 -0
  125. package/cjs/highlevel/methods/chats/delete-channel.js.map +1 -0
  126. package/cjs/highlevel/methods/chats/delete-chat-photo.d.ts +10 -0
  127. package/cjs/highlevel/methods/chats/delete-chat-photo.js +36 -0
  128. package/cjs/highlevel/methods/chats/delete-chat-photo.js.map +1 -0
  129. package/cjs/highlevel/methods/chats/delete-group.d.ts +8 -0
  130. package/cjs/highlevel/methods/chats/delete-group.js +31 -0
  131. package/cjs/highlevel/methods/chats/delete-group.js.map +1 -0
  132. package/cjs/highlevel/methods/chats/delete-history.d.ts +24 -0
  133. package/cjs/highlevel/methods/chats/delete-history.js +28 -0
  134. package/cjs/highlevel/methods/chats/delete-history.js.map +1 -0
  135. package/cjs/highlevel/methods/chats/delete-user-history.d.ts +11 -0
  136. package/cjs/highlevel/methods/chats/delete-user-history.js +21 -0
  137. package/cjs/highlevel/methods/chats/delete-user-history.js.map +1 -0
  138. package/cjs/highlevel/methods/chats/edit-admin-rights.d.ts +16 -0
  139. package/cjs/highlevel/methods/chats/edit-admin-rights.js +25 -0
  140. package/cjs/highlevel/methods/chats/edit-admin-rights.js.map +1 -0
  141. package/cjs/highlevel/methods/chats/get-chat-event-log.d.ts +61 -0
  142. package/cjs/highlevel/methods/chats/get-chat-event-log.js +55 -0
  143. package/cjs/highlevel/methods/chats/get-chat-event-log.js.map +1 -0
  144. package/cjs/highlevel/methods/chats/get-chat-member.d.ts +15 -0
  145. package/cjs/highlevel/methods/chats/get-chat-member.js +60 -0
  146. package/cjs/highlevel/methods/chats/get-chat-member.js.map +1 -0
  147. package/cjs/highlevel/methods/chats/get-chat-members.d.ts +51 -0
  148. package/cjs/highlevel/methods/chats/get-chat-members.js +87 -0
  149. package/cjs/highlevel/methods/chats/get-chat-members.js.map +1 -0
  150. package/cjs/highlevel/methods/chats/get-chat-preview.d.ts +12 -0
  151. package/cjs/highlevel/methods/chats/get-chat-preview.js +30 -0
  152. package/cjs/highlevel/methods/chats/get-chat-preview.js.map +1 -0
  153. package/cjs/highlevel/methods/chats/get-chat.d.ts +11 -0
  154. package/cjs/highlevel/methods/chats/get-chat.js +39 -0
  155. package/cjs/highlevel/methods/chats/get-chat.js.map +1 -0
  156. package/cjs/highlevel/methods/chats/get-full-chat.d.ts +11 -0
  157. package/cjs/highlevel/methods/chats/get-full-chat.js +57 -0
  158. package/cjs/highlevel/methods/chats/get-full-chat.js.map +1 -0
  159. package/cjs/highlevel/methods/chats/get-nearby-chats.d.ts +9 -0
  160. package/cjs/highlevel/methods/chats/get-nearby-chats.js +42 -0
  161. package/cjs/highlevel/methods/chats/get-nearby-chats.js.map +1 -0
  162. package/cjs/highlevel/methods/chats/get-similar-channels.d.ts +12 -0
  163. package/cjs/highlevel/methods/chats/get-similar-channels.js +31 -0
  164. package/cjs/highlevel/methods/chats/get-similar-channels.js.map +1 -0
  165. package/cjs/highlevel/methods/chats/iter-chat-event-log.d.ts +26 -0
  166. package/cjs/highlevel/methods/chats/iter-chat-event-log.js +57 -0
  167. package/cjs/highlevel/methods/chats/iter-chat-event-log.js.map +1 -0
  168. package/cjs/highlevel/methods/chats/iter-chat-members.d.ts +22 -0
  169. package/cjs/highlevel/methods/chats/iter-chat-members.js +53 -0
  170. package/cjs/highlevel/methods/chats/iter-chat-members.js.map +1 -0
  171. package/cjs/highlevel/methods/chats/join-chat.d.ts +14 -0
  172. package/cjs/highlevel/methods/chats/join-chat.js +41 -0
  173. package/cjs/highlevel/methods/chats/join-chat.js.map +1 -0
  174. package/cjs/highlevel/methods/chats/kick-chat-member.d.ts +15 -0
  175. package/cjs/highlevel/methods/chats/kick-chat-member.js +30 -0
  176. package/cjs/highlevel/methods/chats/kick-chat-member.js.map +1 -0
  177. package/cjs/highlevel/methods/chats/leave-chat.d.ts +13 -0
  178. package/cjs/highlevel/methods/chats/leave-chat.js +37 -0
  179. package/cjs/highlevel/methods/chats/leave-chat.js.map +1 -0
  180. package/cjs/highlevel/methods/chats/mark-chat-unread.d.ts +8 -0
  181. package/cjs/highlevel/methods/chats/mark-chat-unread.js +23 -0
  182. package/cjs/highlevel/methods/chats/mark-chat-unread.js.map +1 -0
  183. package/cjs/highlevel/methods/chats/open-chat.d.ts +21 -0
  184. package/cjs/highlevel/methods/chats/open-chat.js +43 -0
  185. package/cjs/highlevel/methods/chats/open-chat.js.map +1 -0
  186. package/cjs/highlevel/methods/chats/reorder-usernames.d.ts +8 -0
  187. package/cjs/highlevel/methods/chats/reorder-usernames.js +44 -0
  188. package/cjs/highlevel/methods/chats/reorder-usernames.js.map +1 -0
  189. package/cjs/highlevel/methods/chats/restrict-chat-member.d.ts +28 -0
  190. package/cjs/highlevel/methods/chats/restrict-chat-member.js +31 -0
  191. package/cjs/highlevel/methods/chats/restrict-chat-member.js.map +1 -0
  192. package/cjs/highlevel/methods/chats/save-draft.d.ts +10 -0
  193. package/cjs/highlevel/methods/chats/save-draft.js +29 -0
  194. package/cjs/highlevel/methods/chats/save-draft.js.map +1 -0
  195. package/cjs/highlevel/methods/chats/set-chat-color.d.ts +38 -0
  196. package/cjs/highlevel/methods/chats/set-chat-color.js +42 -0
  197. package/cjs/highlevel/methods/chats/set-chat-color.js.map +1 -0
  198. package/cjs/highlevel/methods/chats/set-chat-default-permissions.d.ts +16 -0
  199. package/cjs/highlevel/methods/chats/set-chat-default-permissions.js +35 -0
  200. package/cjs/highlevel/methods/chats/set-chat-default-permissions.js.map +1 -0
  201. package/cjs/highlevel/methods/chats/set-chat-description.d.ts +11 -0
  202. package/cjs/highlevel/methods/chats/set-chat-description.js +24 -0
  203. package/cjs/highlevel/methods/chats/set-chat-description.js.map +1 -0
  204. package/cjs/highlevel/methods/chats/set-chat-photo.d.ts +20 -0
  205. package/cjs/highlevel/methods/chats/set-chat-photo.js +90 -0
  206. package/cjs/highlevel/methods/chats/set-chat-photo.js.map +1 -0
  207. package/cjs/highlevel/methods/chats/set-chat-title.d.ts +11 -0
  208. package/cjs/highlevel/methods/chats/set-chat-title.js +37 -0
  209. package/cjs/highlevel/methods/chats/set-chat-title.js.map +1 -0
  210. package/cjs/highlevel/methods/chats/set-chat-ttl.d.ts +9 -0
  211. package/cjs/highlevel/methods/chats/set-chat-ttl.js +19 -0
  212. package/cjs/highlevel/methods/chats/set-chat-ttl.js.map +1 -0
  213. package/cjs/highlevel/methods/chats/set-chat-username.d.ts +11 -0
  214. package/cjs/highlevel/methods/chats/set-chat-username.js +23 -0
  215. package/cjs/highlevel/methods/chats/set-chat-username.js.map +1 -0
  216. package/cjs/highlevel/methods/chats/set-slow-mode.d.ts +12 -0
  217. package/cjs/highlevel/methods/chats/set-slow-mode.js +23 -0
  218. package/cjs/highlevel/methods/chats/set-slow-mode.js.map +1 -0
  219. package/cjs/highlevel/methods/chats/toggle-content-protection.d.ts +9 -0
  220. package/cjs/highlevel/methods/chats/toggle-content-protection.js +20 -0
  221. package/cjs/highlevel/methods/chats/toggle-content-protection.js.map +1 -0
  222. package/cjs/highlevel/methods/chats/toggle-fragment-username.d.ts +20 -0
  223. package/cjs/highlevel/methods/chats/toggle-fragment-username.js +49 -0
  224. package/cjs/highlevel/methods/chats/toggle-fragment-username.js.map +1 -0
  225. package/cjs/highlevel/methods/chats/toggle-join-requests.d.ts +12 -0
  226. package/cjs/highlevel/methods/chats/toggle-join-requests.js +23 -0
  227. package/cjs/highlevel/methods/chats/toggle-join-requests.js.map +1 -0
  228. package/cjs/highlevel/methods/chats/toggle-join-to-send.d.ts +12 -0
  229. package/cjs/highlevel/methods/chats/toggle-join-to-send.js +23 -0
  230. package/cjs/highlevel/methods/chats/toggle-join-to-send.js.map +1 -0
  231. package/cjs/highlevel/methods/chats/unarchive-chats.d.ts +9 -0
  232. package/cjs/highlevel/methods/chats/unarchive-chats.js +28 -0
  233. package/cjs/highlevel/methods/chats/unarchive-chats.js.map +1 -0
  234. package/cjs/highlevel/methods/chats/unban-chat-member.d.ts +16 -0
  235. package/cjs/highlevel/methods/chats/unban-chat-member.js +39 -0
  236. package/cjs/highlevel/methods/chats/unban-chat-member.js.map +1 -0
  237. package/cjs/highlevel/methods/contacts/add-contact.d.ts +28 -0
  238. package/cjs/highlevel/methods/contacts/add-contact.js +26 -0
  239. package/cjs/highlevel/methods/contacts/add-contact.js.map +1 -0
  240. package/cjs/highlevel/methods/contacts/delete-contacts.d.ts +12 -0
  241. package/cjs/highlevel/methods/contacts/delete-contacts.js +32 -0
  242. package/cjs/highlevel/methods/contacts/delete-contacts.js.map +1 -0
  243. package/cjs/highlevel/methods/contacts/get-contacts.d.ts +6 -0
  244. package/cjs/highlevel/methods/contacts/get-contacts.js +22 -0
  245. package/cjs/highlevel/methods/contacts/get-contacts.js.map +1 -0
  246. package/cjs/highlevel/methods/contacts/import-contacts.d.ts +9 -0
  247. package/cjs/highlevel/methods/contacts/import-contacts.js +26 -0
  248. package/cjs/highlevel/methods/contacts/import-contacts.js.map +1 -0
  249. package/cjs/highlevel/methods/dialogs/create-folder.d.ts +13 -0
  250. package/cjs/highlevel/methods/dialogs/create-folder.js +45 -0
  251. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -0
  252. package/cjs/highlevel/methods/dialogs/delete-folder.d.ts +8 -0
  253. package/cjs/highlevel/methods/dialogs/delete-folder.js +18 -0
  254. package/cjs/highlevel/methods/dialogs/delete-folder.js.map +1 -0
  255. package/cjs/highlevel/methods/dialogs/edit-folder.d.ts +18 -0
  256. package/cjs/highlevel/methods/dialogs/edit-folder.js +39 -0
  257. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -0
  258. package/cjs/highlevel/methods/dialogs/find-folder.d.ts +19 -0
  259. package/cjs/highlevel/methods/dialogs/find-folder.js +33 -0
  260. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -0
  261. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +6 -0
  262. package/cjs/highlevel/methods/dialogs/get-folders.js +32 -0
  263. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -0
  264. package/cjs/highlevel/methods/dialogs/get-peer-dialogs.d.ts +10 -0
  265. package/cjs/highlevel/methods/dialogs/get-peer-dialogs.js +24 -0
  266. package/cjs/highlevel/methods/dialogs/get-peer-dialogs.js.map +1 -0
  267. package/cjs/highlevel/methods/dialogs/iter-dialogs.d.ts +103 -0
  268. package/cjs/highlevel/methods/dialogs/iter-dialogs.js +148 -0
  269. package/cjs/highlevel/methods/dialogs/iter-dialogs.js.map +1 -0
  270. package/cjs/highlevel/methods/dialogs/set-folders-order.d.ts +7 -0
  271. package/cjs/highlevel/methods/dialogs/set-folders-order.js +18 -0
  272. package/cjs/highlevel/methods/dialogs/set-folders-order.js.map +1 -0
  273. package/cjs/highlevel/methods/files/_platform.js +33 -0
  274. package/cjs/highlevel/methods/files/_platform.js.map +1 -0
  275. package/cjs/highlevel/methods/files/_platform.web.js +26 -0
  276. package/cjs/highlevel/methods/files/_platform.web.js.map +1 -0
  277. package/cjs/highlevel/methods/files/download-buffer.d.ts +11 -0
  278. package/cjs/highlevel/methods/files/download-buffer.js +26 -0
  279. package/cjs/highlevel/methods/files/download-buffer.js.map +1 -0
  280. package/cjs/highlevel/methods/files/download-file.d.ts +10 -0
  281. package/cjs/highlevel/methods/files/download-file.js +35 -0
  282. package/cjs/highlevel/methods/files/download-file.js.map +1 -0
  283. package/cjs/highlevel/methods/files/download-file.web.d.ts +1 -0
  284. package/cjs/highlevel/methods/files/download-file.web.js +9 -0
  285. package/cjs/highlevel/methods/files/download-file.web.js.map +1 -0
  286. package/cjs/highlevel/methods/files/download-iterable.d.ts +10 -0
  287. package/cjs/highlevel/methods/files/download-iterable.js +184 -0
  288. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -0
  289. package/cjs/highlevel/methods/files/download-stream.d.ts +9 -0
  290. package/cjs/highlevel/methods/files/download-stream.js +38 -0
  291. package/cjs/highlevel/methods/files/download-stream.js.map +1 -0
  292. package/cjs/highlevel/methods/files/normalize-file-to-document.js +23 -0
  293. package/cjs/highlevel/methods/files/normalize-file-to-document.js.map +1 -0
  294. package/cjs/highlevel/methods/files/normalize-input-file.d.ts +13 -0
  295. package/cjs/highlevel/methods/files/normalize-input-file.js +42 -0
  296. package/cjs/highlevel/methods/files/normalize-input-file.js.map +1 -0
  297. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +11 -0
  298. package/cjs/highlevel/methods/files/normalize-input-media.js +366 -0
  299. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -0
  300. package/cjs/highlevel/methods/files/upload-file.d.ts +67 -0
  301. package/cjs/highlevel/methods/files/upload-file.js +217 -0
  302. package/cjs/highlevel/methods/files/upload-file.js.map +1 -0
  303. package/cjs/highlevel/methods/files/upload-media.d.ts +28 -0
  304. package/cjs/highlevel/methods/files/upload-media.js +68 -0
  305. package/cjs/highlevel/methods/files/upload-media.js.map +1 -0
  306. package/cjs/highlevel/methods/forums/create-forum-topic.d.ts +36 -0
  307. package/cjs/highlevel/methods/forums/create-forum-topic.js +28 -0
  308. package/cjs/highlevel/methods/forums/create-forum-topic.js.map +1 -0
  309. package/cjs/highlevel/methods/forums/delete-forum-topic-history.d.ts +9 -0
  310. package/cjs/highlevel/methods/forums/delete-forum-topic-history.js +24 -0
  311. package/cjs/highlevel/methods/forums/delete-forum-topic-history.js.map +1 -0
  312. package/cjs/highlevel/methods/forums/edit-forum-topic.d.ts +34 -0
  313. package/cjs/highlevel/methods/forums/edit-forum-topic.js +31 -0
  314. package/cjs/highlevel/methods/forums/edit-forum-topic.js.map +1 -0
  315. package/cjs/highlevel/methods/forums/get-forum-topics-by-id.d.ts +9 -0
  316. package/cjs/highlevel/methods/forums/get-forum-topics-by-id.js +22 -0
  317. package/cjs/highlevel/methods/forums/get-forum-topics-by-id.js.map +1 -0
  318. package/cjs/highlevel/methods/forums/get-forum-topics.d.ts +28 -0
  319. package/cjs/highlevel/methods/forums/get-forum-topics.js +42 -0
  320. package/cjs/highlevel/methods/forums/get-forum-topics.js.map +1 -0
  321. package/cjs/highlevel/methods/forums/iter-forum-topics.d.ts +20 -0
  322. package/cjs/highlevel/methods/forums/iter-forum-topics.js +35 -0
  323. package/cjs/highlevel/methods/forums/iter-forum-topics.js.map +1 -0
  324. package/cjs/highlevel/methods/forums/reorder-pinned-forum-topics.d.ts +19 -0
  325. package/cjs/highlevel/methods/forums/reorder-pinned-forum-topics.js +20 -0
  326. package/cjs/highlevel/methods/forums/reorder-pinned-forum-topics.js.map +1 -0
  327. package/cjs/highlevel/methods/forums/toggle-forum-topic-closed.d.ts +22 -0
  328. package/cjs/highlevel/methods/forums/toggle-forum-topic-closed.js +24 -0
  329. package/cjs/highlevel/methods/forums/toggle-forum-topic-closed.js.map +1 -0
  330. package/cjs/highlevel/methods/forums/toggle-forum-topic-pinned.d.ts +15 -0
  331. package/cjs/highlevel/methods/forums/toggle-forum-topic-pinned.js +20 -0
  332. package/cjs/highlevel/methods/forums/toggle-forum-topic-pinned.js.map +1 -0
  333. package/cjs/highlevel/methods/forums/toggle-forum.d.ts +11 -0
  334. package/cjs/highlevel/methods/forums/toggle-forum.js +22 -0
  335. package/cjs/highlevel/methods/forums/toggle-forum.js.map +1 -0
  336. package/cjs/highlevel/methods/forums/toggle-general-topic-hidden.d.ts +20 -0
  337. package/cjs/highlevel/methods/forums/toggle-general-topic-hidden.js +24 -0
  338. package/cjs/highlevel/methods/forums/toggle-general-topic-hidden.js.map +1 -0
  339. package/cjs/highlevel/methods/invite-links/create-invite-link.d.ts +31 -0
  340. package/cjs/highlevel/methods/invite-links/create-invite-link.js +28 -0
  341. package/cjs/highlevel/methods/invite-links/create-invite-link.js.map +1 -0
  342. package/cjs/highlevel/methods/invite-links/edit-invite-link.d.ts +36 -0
  343. package/cjs/highlevel/methods/invite-links/edit-invite-link.js +32 -0
  344. package/cjs/highlevel/methods/invite-links/edit-invite-link.js.map +1 -0
  345. package/cjs/highlevel/methods/invite-links/export-invite-link.d.ts +12 -0
  346. package/cjs/highlevel/methods/invite-links/export-invite-link.js +24 -0
  347. package/cjs/highlevel/methods/invite-links/export-invite-link.js.map +1 -0
  348. package/cjs/highlevel/methods/invite-links/get-invite-link-members.d.ts +45 -0
  349. package/cjs/highlevel/methods/invite-links/get-invite-link-members.js +43 -0
  350. package/cjs/highlevel/methods/invite-links/get-invite-link-members.js.map +1 -0
  351. package/cjs/highlevel/methods/invite-links/get-invite-link.d.ts +9 -0
  352. package/cjs/highlevel/methods/invite-links/get-invite-link.js +22 -0
  353. package/cjs/highlevel/methods/invite-links/get-invite-link.js.map +1 -0
  354. package/cjs/highlevel/methods/invite-links/get-invite-links.d.ts +39 -0
  355. package/cjs/highlevel/methods/invite-links/get-invite-links.js +43 -0
  356. package/cjs/highlevel/methods/invite-links/get-invite-links.js.map +1 -0
  357. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.d.ts +8 -0
  358. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js +30 -0
  359. package/cjs/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -0
  360. package/cjs/highlevel/methods/invite-links/hide-all-join-requests.d.ts +13 -0
  361. package/cjs/highlevel/methods/invite-links/hide-all-join-requests.js +18 -0
  362. package/cjs/highlevel/methods/invite-links/hide-all-join-requests.js.map +1 -0
  363. package/cjs/highlevel/methods/invite-links/hide-join-request.d.ts +13 -0
  364. package/cjs/highlevel/methods/invite-links/hide-join-request.js +19 -0
  365. package/cjs/highlevel/methods/invite-links/hide-join-request.js.map +1 -0
  366. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.d.ts +25 -0
  367. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js +43 -0
  368. package/cjs/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -0
  369. package/cjs/highlevel/methods/invite-links/iter-invite-links.d.ts +27 -0
  370. package/cjs/highlevel/methods/invite-links/iter-invite-links.js +45 -0
  371. package/cjs/highlevel/methods/invite-links/iter-invite-links.js.map +1 -0
  372. package/cjs/highlevel/methods/invite-links/revoke-invite-link.d.ts +13 -0
  373. package/cjs/highlevel/methods/invite-links/revoke-invite-link.js +28 -0
  374. package/cjs/highlevel/methods/invite-links/revoke-invite-link.js.map +1 -0
  375. package/cjs/highlevel/methods/messages/close-poll.d.ts +15 -0
  376. package/cjs/highlevel/methods/messages/close-poll.js +47 -0
  377. package/cjs/highlevel/methods/messages/close-poll.js.map +1 -0
  378. package/cjs/highlevel/methods/messages/delete-messages.d.ts +24 -0
  379. package/cjs/highlevel/methods/messages/delete-messages.js +64 -0
  380. package/cjs/highlevel/methods/messages/delete-messages.js.map +1 -0
  381. package/cjs/highlevel/methods/messages/delete-scheduled-messages.d.ts +9 -0
  382. package/cjs/highlevel/methods/messages/delete-scheduled-messages.js +21 -0
  383. package/cjs/highlevel/methods/messages/delete-scheduled-messages.js.map +1 -0
  384. package/cjs/highlevel/methods/messages/edit-inline-message.d.ts +51 -0
  385. package/cjs/highlevel/methods/messages/edit-inline-message.js +57 -0
  386. package/cjs/highlevel/methods/messages/edit-inline-message.js.map +1 -0
  387. package/cjs/highlevel/methods/messages/edit-message.d.ts +54 -0
  388. package/cjs/highlevel/methods/messages/edit-message.js +46 -0
  389. package/cjs/highlevel/methods/messages/edit-message.js.map +1 -0
  390. package/cjs/highlevel/methods/messages/find-in-update.js +30 -0
  391. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -0
  392. package/cjs/highlevel/methods/messages/forward-messages.d.ts +73 -0
  393. package/cjs/highlevel/methods/messages/forward-messages.js +72 -0
  394. package/cjs/highlevel/methods/messages/forward-messages.js.map +1 -0
  395. package/cjs/highlevel/methods/messages/get-callback-query-message.d.ts +14 -0
  396. package/cjs/highlevel/methods/messages/get-callback-query-message.js +56 -0
  397. package/cjs/highlevel/methods/messages/get-callback-query-message.js.map +1 -0
  398. package/cjs/highlevel/methods/messages/get-discussion-message.d.ts +17 -0
  399. package/cjs/highlevel/methods/messages/get-discussion-message.js +63 -0
  400. package/cjs/highlevel/methods/messages/get-discussion-message.js.map +1 -0
  401. package/cjs/highlevel/methods/messages/get-history.d.ts +61 -0
  402. package/cjs/highlevel/methods/messages/get-history.js +54 -0
  403. package/cjs/highlevel/methods/messages/get-history.js.map +1 -0
  404. package/cjs/highlevel/methods/messages/get-message-by-link.d.ts +6 -0
  405. package/cjs/highlevel/methods/messages/get-message-by-link.js +34 -0
  406. package/cjs/highlevel/methods/messages/get-message-by-link.js.map +1 -0
  407. package/cjs/highlevel/methods/messages/get-message-group.d.ts +9 -0
  408. package/cjs/highlevel/methods/messages/get-message-group.js +36 -0
  409. package/cjs/highlevel/methods/messages/get-message-group.js.map +1 -0
  410. package/cjs/highlevel/methods/messages/get-message-reactions.d.ts +28 -0
  411. package/cjs/highlevel/methods/messages/get-message-reactions.js +58 -0
  412. package/cjs/highlevel/methods/messages/get-message-reactions.js.map +1 -0
  413. package/cjs/highlevel/methods/messages/get-messages-unsafe.d.ts +19 -0
  414. package/cjs/highlevel/methods/messages/get-messages-unsafe.js +42 -0
  415. package/cjs/highlevel/methods/messages/get-messages-unsafe.js.map +1 -0
  416. package/cjs/highlevel/methods/messages/get-messages.d.ts +17 -0
  417. package/cjs/highlevel/methods/messages/get-messages.js +76 -0
  418. package/cjs/highlevel/methods/messages/get-messages.js.map +1 -0
  419. package/cjs/highlevel/methods/messages/get-reaction-users.d.ts +24 -0
  420. package/cjs/highlevel/methods/messages/get-reaction-users.js +29 -0
  421. package/cjs/highlevel/methods/messages/get-reaction-users.js.map +1 -0
  422. package/cjs/highlevel/methods/messages/get-reply-to.d.ts +10 -0
  423. package/cjs/highlevel/methods/messages/get-reply-to.js +25 -0
  424. package/cjs/highlevel/methods/messages/get-reply-to.js.map +1 -0
  425. package/cjs/highlevel/methods/messages/get-scheduled-messages.d.ts +13 -0
  426. package/cjs/highlevel/methods/messages/get-scheduled-messages.js +35 -0
  427. package/cjs/highlevel/methods/messages/get-scheduled-messages.js.map +1 -0
  428. package/cjs/highlevel/methods/messages/iter-history.d.ts +23 -0
  429. package/cjs/highlevel/methods/messages/iter-history.js +41 -0
  430. package/cjs/highlevel/methods/messages/iter-history.js.map +1 -0
  431. package/cjs/highlevel/methods/messages/iter-reaction-users.d.ts +26 -0
  432. package/cjs/highlevel/methods/messages/iter-reaction-users.js +40 -0
  433. package/cjs/highlevel/methods/messages/iter-reaction-users.js.map +1 -0
  434. package/cjs/highlevel/methods/messages/iter-search-global.d.ts +27 -0
  435. package/cjs/highlevel/methods/messages/iter-search-global.js +46 -0
  436. package/cjs/highlevel/methods/messages/iter-search-global.js.map +1 -0
  437. package/cjs/highlevel/methods/messages/iter-search-messages.d.ts +26 -0
  438. package/cjs/highlevel/methods/messages/iter-search-messages.js +55 -0
  439. package/cjs/highlevel/methods/messages/iter-search-messages.js.map +1 -0
  440. package/cjs/highlevel/methods/messages/pin-message.d.ts +21 -0
  441. package/cjs/highlevel/methods/messages/pin-message.js +28 -0
  442. package/cjs/highlevel/methods/messages/pin-message.js.map +1 -0
  443. package/cjs/highlevel/methods/messages/read-history.d.ts +19 -0
  444. package/cjs/highlevel/methods/messages/read-history.js +46 -0
  445. package/cjs/highlevel/methods/messages/read-history.js.map +1 -0
  446. package/cjs/highlevel/methods/messages/read-reactions.d.ts +8 -0
  447. package/cjs/highlevel/methods/messages/read-reactions.js +19 -0
  448. package/cjs/highlevel/methods/messages/read-reactions.js.map +1 -0
  449. package/cjs/highlevel/methods/messages/search-global.d.ts +47 -0
  450. package/cjs/highlevel/methods/messages/search-global.js +50 -0
  451. package/cjs/highlevel/methods/messages/search-global.js.map +1 -0
  452. package/cjs/highlevel/methods/messages/search-messages.d.ts +93 -0
  453. package/cjs/highlevel/methods/messages/search-messages.js +50 -0
  454. package/cjs/highlevel/methods/messages/search-messages.js.map +1 -0
  455. package/cjs/highlevel/methods/messages/send-answer.d.ts +12 -0
  456. package/cjs/highlevel/methods/messages/send-answer.js +37 -0
  457. package/cjs/highlevel/methods/messages/send-answer.js.map +1 -0
  458. package/cjs/highlevel/methods/messages/send-comment.d.ts +39 -0
  459. package/cjs/highlevel/methods/messages/send-comment.js +75 -0
  460. package/cjs/highlevel/methods/messages/send-comment.js.map +1 -0
  461. package/cjs/highlevel/methods/messages/send-common.d.ts +83 -0
  462. package/cjs/highlevel/methods/messages/send-common.js +68 -0
  463. package/cjs/highlevel/methods/messages/send-common.js.map +1 -0
  464. package/cjs/highlevel/methods/messages/send-copy-group.d.ts +21 -0
  465. package/cjs/highlevel/methods/messages/send-copy-group.js +41 -0
  466. package/cjs/highlevel/methods/messages/send-copy-group.js.map +1 -0
  467. package/cjs/highlevel/methods/messages/send-copy.d.ts +32 -0
  468. package/cjs/highlevel/methods/messages/send-copy.js +57 -0
  469. package/cjs/highlevel/methods/messages/send-copy.js.map +1 -0
  470. package/cjs/highlevel/methods/messages/send-media-group.d.ts +35 -0
  471. package/cjs/highlevel/methods/messages/send-media-group.js +76 -0
  472. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -0
  473. package/cjs/highlevel/methods/messages/send-media.d.ts +48 -0
  474. package/cjs/highlevel/methods/messages/send-media.js +58 -0
  475. package/cjs/highlevel/methods/messages/send-media.js.map +1 -0
  476. package/cjs/highlevel/methods/messages/send-quote.d.ts +33 -0
  477. package/cjs/highlevel/methods/messages/send-quote.js +66 -0
  478. package/cjs/highlevel/methods/messages/send-quote.js.map +1 -0
  479. package/cjs/highlevel/methods/messages/send-reaction.d.ts +21 -0
  480. package/cjs/highlevel/methods/messages/send-reaction.js +39 -0
  481. package/cjs/highlevel/methods/messages/send-reaction.js.map +1 -0
  482. package/cjs/highlevel/methods/messages/send-reply.d.ts +12 -0
  483. package/cjs/highlevel/methods/messages/send-reply.js +28 -0
  484. package/cjs/highlevel/methods/messages/send-reply.js.map +1 -0
  485. package/cjs/highlevel/methods/messages/send-scheduled.d.ts +14 -0
  486. package/cjs/highlevel/methods/messages/send-scheduled.js +34 -0
  487. package/cjs/highlevel/methods/messages/send-scheduled.js.map +1 -0
  488. package/cjs/highlevel/methods/messages/send-text.d.ts +31 -0
  489. package/cjs/highlevel/methods/messages/send-text.js +95 -0
  490. package/cjs/highlevel/methods/messages/send-text.js.map +1 -0
  491. package/cjs/highlevel/methods/messages/send-text.test.d.ts +1 -0
  492. package/cjs/highlevel/methods/messages/send-text.test.js +140 -0
  493. package/cjs/highlevel/methods/messages/send-text.test.js.map +1 -0
  494. package/cjs/highlevel/methods/messages/send-typing.d.ts +25 -0
  495. package/cjs/highlevel/methods/messages/send-typing.js +84 -0
  496. package/cjs/highlevel/methods/messages/send-typing.js.map +1 -0
  497. package/cjs/highlevel/methods/messages/send-vote.d.ts +15 -0
  498. package/cjs/highlevel/methods/messages/send-vote.js +56 -0
  499. package/cjs/highlevel/methods/messages/send-vote.js.map +1 -0
  500. package/cjs/highlevel/methods/messages/translate-message.d.ts +11 -0
  501. package/cjs/highlevel/methods/messages/translate-message.js +26 -0
  502. package/cjs/highlevel/methods/messages/translate-message.js.map +1 -0
  503. package/cjs/highlevel/methods/messages/translate-text.d.ts +9 -0
  504. package/cjs/highlevel/methods/messages/translate-text.js +34 -0
  505. package/cjs/highlevel/methods/messages/translate-text.js.map +1 -0
  506. package/cjs/highlevel/methods/messages/unpin-all-messages.d.ts +13 -0
  507. package/cjs/highlevel/methods/messages/unpin-all-messages.js +28 -0
  508. package/cjs/highlevel/methods/messages/unpin-all-messages.js.map +1 -0
  509. package/cjs/highlevel/methods/messages/unpin-message.d.ts +12 -0
  510. package/cjs/highlevel/methods/messages/unpin-message.js +26 -0
  511. package/cjs/highlevel/methods/messages/unpin-message.js.map +1 -0
  512. package/cjs/highlevel/methods/misc/chain-id.d.ts +1 -0
  513. package/cjs/highlevel/methods/misc/chain-id.js +11 -0
  514. package/cjs/highlevel/methods/misc/chain-id.js.map +1 -0
  515. package/cjs/highlevel/methods/misc/init-takeout-session.d.ts +9 -0
  516. package/cjs/highlevel/methods/misc/init-takeout-session.js +17 -0
  517. package/cjs/highlevel/methods/misc/init-takeout-session.js.map +1 -0
  518. package/cjs/highlevel/methods/misc/normalize-privacy-rules.d.ts +8 -0
  519. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js +43 -0
  520. package/cjs/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -0
  521. package/cjs/highlevel/methods/misc/normalize-text.d.ts +1 -0
  522. package/cjs/highlevel/methods/misc/normalize-text.js +34 -0
  523. package/cjs/highlevel/methods/misc/normalize-text.js.map +1 -0
  524. package/cjs/highlevel/methods/password/change-cloud-password.d.ts +12 -0
  525. package/cjs/highlevel/methods/password/change-cloud-password.js +29 -0
  526. package/cjs/highlevel/methods/password/change-cloud-password.js.map +1 -0
  527. package/cjs/highlevel/methods/password/enable-cloud-password.d.ts +17 -0
  528. package/cjs/highlevel/methods/password/enable-cloud-password.js +36 -0
  529. package/cjs/highlevel/methods/password/enable-cloud-password.js.map +1 -0
  530. package/cjs/highlevel/methods/password/password-email.d.ts +15 -0
  531. package/cjs/highlevel/methods/password/password-email.js +38 -0
  532. package/cjs/highlevel/methods/password/password-email.js.map +1 -0
  533. package/cjs/highlevel/methods/password/remove-cloud-password.d.ts +7 -0
  534. package/cjs/highlevel/methods/password/remove-cloud-password.js +28 -0
  535. package/cjs/highlevel/methods/password/remove-cloud-password.js.map +1 -0
  536. package/cjs/highlevel/methods/premium/apply-boost.d.ts +8 -0
  537. package/cjs/highlevel/methods/premium/apply-boost.js +17 -0
  538. package/cjs/highlevel/methods/premium/apply-boost.js.map +1 -0
  539. package/cjs/highlevel/methods/premium/can-apply-boost.d.ts +29 -0
  540. package/cjs/highlevel/methods/premium/can-apply-boost.js +33 -0
  541. package/cjs/highlevel/methods/premium/can-apply-boost.js.map +1 -0
  542. package/cjs/highlevel/methods/premium/get-boost-stats.d.ts +9 -0
  543. package/cjs/highlevel/methods/premium/get-boost-stats.js +20 -0
  544. package/cjs/highlevel/methods/premium/get-boost-stats.js.map +1 -0
  545. package/cjs/highlevel/methods/premium/get-boosts.d.ts +18 -0
  546. package/cjs/highlevel/methods/premium/get-boosts.js +23 -0
  547. package/cjs/highlevel/methods/premium/get-boosts.js.map +1 -0
  548. package/cjs/highlevel/methods/premium/get-my-boost-slots.d.ts +9 -0
  549. package/cjs/highlevel/methods/premium/get-my-boost-slots.js +20 -0
  550. package/cjs/highlevel/methods/premium/get-my-boost-slots.js.map +1 -0
  551. package/cjs/highlevel/methods/premium/iter-boosters.d.ts +26 -0
  552. package/cjs/highlevel/methods/premium/iter-boosters.js +36 -0
  553. package/cjs/highlevel/methods/premium/iter-boosters.js.map +1 -0
  554. package/cjs/highlevel/methods/stickers/add-sticker-to-set.d.ts +22 -0
  555. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js +39 -0
  556. package/cjs/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -0
  557. package/cjs/highlevel/methods/stickers/create-sticker-set.d.ts +75 -0
  558. package/cjs/highlevel/methods/stickers/create-sticker-set.js +56 -0
  559. package/cjs/highlevel/methods/stickers/create-sticker-set.js.map +1 -0
  560. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.d.ts +16 -0
  561. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js +29 -0
  562. package/cjs/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -0
  563. package/cjs/highlevel/methods/stickers/get-custom-emojis.d.ts +14 -0
  564. package/cjs/highlevel/methods/stickers/get-custom-emojis.js +50 -0
  565. package/cjs/highlevel/methods/stickers/get-custom-emojis.js.map +1 -0
  566. package/cjs/highlevel/methods/stickers/get-installed-stickers.d.ts +11 -0
  567. package/cjs/highlevel/methods/stickers/get-installed-stickers.js +27 -0
  568. package/cjs/highlevel/methods/stickers/get-installed-stickers.js.map +1 -0
  569. package/cjs/highlevel/methods/stickers/get-sticker-set.d.ts +8 -0
  570. package/cjs/highlevel/methods/stickers/get-sticker-set.js +19 -0
  571. package/cjs/highlevel/methods/stickers/get-sticker-set.js.map +1 -0
  572. package/cjs/highlevel/methods/stickers/move-sticker-in-set.d.ts +18 -0
  573. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js +32 -0
  574. package/cjs/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -0
  575. package/cjs/highlevel/methods/stickers/set-chat-sticker-set.d.ts +11 -0
  576. package/cjs/highlevel/methods/stickers/set-chat-sticker-set.js +24 -0
  577. package/cjs/highlevel/methods/stickers/set-chat-sticker-set.js.map +1 -0
  578. package/cjs/highlevel/methods/stickers/set-sticker-set-thumb.d.ts +20 -0
  579. package/cjs/highlevel/methods/stickers/set-sticker-set-thumb.js +23 -0
  580. package/cjs/highlevel/methods/stickers/set-sticker-set-thumb.js.map +1 -0
  581. package/cjs/highlevel/methods/stories/can-send-story.d.ts +13 -0
  582. package/cjs/highlevel/methods/stories/can-send-story.js +36 -0
  583. package/cjs/highlevel/methods/stories/can-send-story.js.map +1 -0
  584. package/cjs/highlevel/methods/stories/delete-stories.d.ts +20 -0
  585. package/cjs/highlevel/methods/stories/delete-stories.js +19 -0
  586. package/cjs/highlevel/methods/stories/delete-stories.js.map +1 -0
  587. package/cjs/highlevel/methods/stories/edit-story.d.ts +38 -0
  588. package/cjs/highlevel/methods/stories/edit-story.js +44 -0
  589. package/cjs/highlevel/methods/stories/edit-story.js.map +1 -0
  590. package/cjs/highlevel/methods/stories/find-in-update.d.ts +1 -0
  591. package/cjs/highlevel/methods/stories/find-in-update.js +21 -0
  592. package/cjs/highlevel/methods/stories/find-in-update.js.map +1 -0
  593. package/cjs/highlevel/methods/stories/get-all-stories.d.ts +15 -0
  594. package/cjs/highlevel/methods/stories/get-all-stories.js +23 -0
  595. package/cjs/highlevel/methods/stories/get-all-stories.js.map +1 -0
  596. package/cjs/highlevel/methods/stories/get-peer-stories.d.ts +8 -0
  597. package/cjs/highlevel/methods/stories/get-peer-stories.js +20 -0
  598. package/cjs/highlevel/methods/stories/get-peer-stories.js.map +1 -0
  599. package/cjs/highlevel/methods/stories/get-profile-stories.d.ts +25 -0
  600. package/cjs/highlevel/methods/stories/get-profile-stories.js +31 -0
  601. package/cjs/highlevel/methods/stories/get-profile-stories.js.map +1 -0
  602. package/cjs/highlevel/methods/stories/get-stories-by-id.d.ts +10 -0
  603. package/cjs/highlevel/methods/stories/get-stories-by-id.js +29 -0
  604. package/cjs/highlevel/methods/stories/get-stories-by-id.js.map +1 -0
  605. package/cjs/highlevel/methods/stories/get-stories-interactions.d.ts +9 -0
  606. package/cjs/highlevel/methods/stories/get-stories-interactions.js +24 -0
  607. package/cjs/highlevel/methods/stories/get-stories-interactions.js.map +1 -0
  608. package/cjs/highlevel/methods/stories/get-story-link.d.ts +11 -0
  609. package/cjs/highlevel/methods/stories/get-story-link.js +23 -0
  610. package/cjs/highlevel/methods/stories/get-story-link.js.map +1 -0
  611. package/cjs/highlevel/methods/stories/get-story-viewers.d.ts +33 -0
  612. package/cjs/highlevel/methods/stories/get-story-viewers.js +26 -0
  613. package/cjs/highlevel/methods/stories/get-story-viewers.js.map +1 -0
  614. package/cjs/highlevel/methods/stories/hide-my-stories-views.d.ts +21 -0
  615. package/cjs/highlevel/methods/stories/hide-my-stories-views.js +29 -0
  616. package/cjs/highlevel/methods/stories/hide-my-stories-views.js.map +1 -0
  617. package/cjs/highlevel/methods/stories/increment-stories-views.d.ts +13 -0
  618. package/cjs/highlevel/methods/stories/increment-stories-views.js +24 -0
  619. package/cjs/highlevel/methods/stories/increment-stories-views.js.map +1 -0
  620. package/cjs/highlevel/methods/stories/iter-all-stories.d.ts +16 -0
  621. package/cjs/highlevel/methods/stories/iter-all-stories.js +32 -0
  622. package/cjs/highlevel/methods/stories/iter-all-stories.js.map +1 -0
  623. package/cjs/highlevel/methods/stories/iter-profile-stories.d.ts +21 -0
  624. package/cjs/highlevel/methods/stories/iter-profile-stories.js +33 -0
  625. package/cjs/highlevel/methods/stories/iter-profile-stories.js.map +1 -0
  626. package/cjs/highlevel/methods/stories/iter-story-viewers.d.ts +22 -0
  627. package/cjs/highlevel/methods/stories/iter-story-viewers.js +36 -0
  628. package/cjs/highlevel/methods/stories/iter-story-viewers.js.map +1 -0
  629. package/cjs/highlevel/methods/stories/read-stories.d.ts +11 -0
  630. package/cjs/highlevel/methods/stories/read-stories.js +21 -0
  631. package/cjs/highlevel/methods/stories/read-stories.js.map +1 -0
  632. package/cjs/highlevel/methods/stories/report-story.d.ts +19 -0
  633. package/cjs/highlevel/methods/stories/report-story.js +21 -0
  634. package/cjs/highlevel/methods/stories/report-story.js.map +1 -0
  635. package/cjs/highlevel/methods/stories/send-story-reaction.d.ts +14 -0
  636. package/cjs/highlevel/methods/stories/send-story-reaction.js +21 -0
  637. package/cjs/highlevel/methods/stories/send-story-reaction.js.map +1 -0
  638. package/cjs/highlevel/methods/stories/send-story.d.ts +51 -0
  639. package/cjs/highlevel/methods/stories/send-story.js +48 -0
  640. package/cjs/highlevel/methods/stories/send-story.js.map +1 -0
  641. package/cjs/highlevel/methods/stories/toggle-peer-stories-archived.d.ts +8 -0
  642. package/cjs/highlevel/methods/stories/toggle-peer-stories-archived.js +20 -0
  643. package/cjs/highlevel/methods/stories/toggle-peer-stories-archived.js.map +1 -0
  644. package/cjs/highlevel/methods/stories/toggle-stories-pinned.d.ts +24 -0
  645. package/cjs/highlevel/methods/stories/toggle-stories-pinned.js +20 -0
  646. package/cjs/highlevel/methods/stories/toggle-stories-pinned.js.map +1 -0
  647. package/cjs/highlevel/methods/users/block-user.d.ts +8 -0
  648. package/cjs/highlevel/methods/users/block-user.js +19 -0
  649. package/cjs/highlevel/methods/users/block-user.js.map +1 -0
  650. package/cjs/highlevel/methods/users/delete-profile-photos.d.ts +9 -0
  651. package/cjs/highlevel/methods/users/delete-profile-photos.js +25 -0
  652. package/cjs/highlevel/methods/users/delete-profile-photos.js.map +1 -0
  653. package/cjs/highlevel/methods/users/edit-close-friends.d.ts +14 -0
  654. package/cjs/highlevel/methods/users/edit-close-friends.js +37 -0
  655. package/cjs/highlevel/methods/users/edit-close-friends.js.map +1 -0
  656. package/cjs/highlevel/methods/users/get-common-chats.d.ts +9 -0
  657. package/cjs/highlevel/methods/users/get-common-chats.js +23 -0
  658. package/cjs/highlevel/methods/users/get-common-chats.js.map +1 -0
  659. package/cjs/highlevel/methods/users/get-global-ttl.d.ts +5 -0
  660. package/cjs/highlevel/methods/users/get-global-ttl.js +15 -0
  661. package/cjs/highlevel/methods/users/get-global-ttl.js.map +1 -0
  662. package/cjs/highlevel/methods/users/get-me.d.ts +6 -0
  663. package/cjs/highlevel/methods/users/get-me.js +26 -0
  664. package/cjs/highlevel/methods/users/get-me.js.map +1 -0
  665. package/cjs/highlevel/methods/users/get-my-username.d.ts +8 -0
  666. package/cjs/highlevel/methods/users/get-my-username.js +14 -0
  667. package/cjs/highlevel/methods/users/get-my-username.js.map +1 -0
  668. package/cjs/highlevel/methods/users/get-profile-photo.d.ts +11 -0
  669. package/cjs/highlevel/methods/users/get-profile-photo.js +27 -0
  670. package/cjs/highlevel/methods/users/get-profile-photo.js.map +1 -0
  671. package/cjs/highlevel/methods/users/get-profile-photos.d.ts +22 -0
  672. package/cjs/highlevel/methods/users/get-profile-photos.js +35 -0
  673. package/cjs/highlevel/methods/users/get-profile-photos.js.map +1 -0
  674. package/cjs/highlevel/methods/users/get-users.d.ts +12 -0
  675. package/cjs/highlevel/methods/users/get-users.js +29 -0
  676. package/cjs/highlevel/methods/users/get-users.js.map +1 -0
  677. package/cjs/highlevel/methods/users/get-users.test.d.ts +1 -0
  678. package/cjs/highlevel/methods/users/get-users.test.js +33 -0
  679. package/cjs/highlevel/methods/users/get-users.test.js.map +1 -0
  680. package/cjs/highlevel/methods/users/iter-profile-photos.d.ts +23 -0
  681. package/cjs/highlevel/methods/users/iter-profile-photos.js +35 -0
  682. package/cjs/highlevel/methods/users/iter-profile-photos.js.map +1 -0
  683. package/cjs/highlevel/methods/users/resolve-peer-many.d.ts +22 -0
  684. package/cjs/highlevel/methods/users/resolve-peer-many.js +70 -0
  685. package/cjs/highlevel/methods/users/resolve-peer-many.js.map +1 -0
  686. package/cjs/highlevel/methods/users/resolve-peer.d.ts +19 -0
  687. package/cjs/highlevel/methods/users/resolve-peer.js +163 -0
  688. package/cjs/highlevel/methods/users/resolve-peer.js.map +1 -0
  689. package/cjs/highlevel/methods/users/resolve-peer.test.d.ts +1 -0
  690. package/cjs/highlevel/methods/users/resolve-peer.test.js +307 -0
  691. package/cjs/highlevel/methods/users/resolve-peer.test.js.map +1 -0
  692. package/cjs/highlevel/methods/users/set-global-ttl.d.ts +8 -0
  693. package/cjs/highlevel/methods/users/set-global-ttl.js +19 -0
  694. package/cjs/highlevel/methods/users/set-global-ttl.js.map +1 -0
  695. package/cjs/highlevel/methods/users/set-my-emoji-status.d.ts +13 -0
  696. package/cjs/highlevel/methods/users/set-my-emoji-status.js +37 -0
  697. package/cjs/highlevel/methods/users/set-my-emoji-status.js.map +1 -0
  698. package/cjs/highlevel/methods/users/set-my-profile-photo.d.ts +16 -0
  699. package/cjs/highlevel/methods/users/set-my-profile-photo.js +42 -0
  700. package/cjs/highlevel/methods/users/set-my-profile-photo.js.map +1 -0
  701. package/cjs/highlevel/methods/users/set-my-username.d.ts +11 -0
  702. package/cjs/highlevel/methods/users/set-my-username.js +24 -0
  703. package/cjs/highlevel/methods/users/set-my-username.js.map +1 -0
  704. package/cjs/highlevel/methods/users/set-offline.d.ts +7 -0
  705. package/cjs/highlevel/methods/users/set-offline.js +18 -0
  706. package/cjs/highlevel/methods/users/set-offline.js.map +1 -0
  707. package/cjs/highlevel/methods/users/unblock-user.d.ts +8 -0
  708. package/cjs/highlevel/methods/users/unblock-user.js +19 -0
  709. package/cjs/highlevel/methods/users/unblock-user.js.map +1 -0
  710. package/cjs/highlevel/methods/users/update-profile.d.ts +23 -0
  711. package/cjs/highlevel/methods/users/update-profile.js +22 -0
  712. package/cjs/highlevel/methods/users/update-profile.js.map +1 -0
  713. package/cjs/highlevel/storage/index.d.ts +4 -0
  714. package/cjs/highlevel/storage/index.js +21 -0
  715. package/cjs/highlevel/storage/index.js.map +1 -0
  716. package/cjs/highlevel/storage/provider.d.ts +7 -0
  717. package/cjs/highlevel/storage/provider.js +3 -0
  718. package/cjs/highlevel/storage/provider.js.map +1 -0
  719. package/cjs/highlevel/storage/repository/peers.d.ts +32 -0
  720. package/cjs/highlevel/storage/repository/peers.js +3 -0
  721. package/cjs/highlevel/storage/repository/peers.js.map +1 -0
  722. package/cjs/highlevel/storage/repository/ref-messages.d.ts +20 -0
  723. package/cjs/highlevel/storage/repository/ref-messages.js +3 -0
  724. package/cjs/highlevel/storage/repository/ref-messages.js.map +1 -0
  725. package/cjs/highlevel/storage/service/current-user.d.ts +23 -0
  726. package/cjs/highlevel/storage/service/current-user.js +129 -0
  727. package/cjs/highlevel/storage/service/current-user.js.map +1 -0
  728. package/cjs/highlevel/storage/service/peers.d.ts +23 -0
  729. package/cjs/highlevel/storage/service/peers.js +217 -0
  730. package/cjs/highlevel/storage/service/peers.js.map +1 -0
  731. package/cjs/highlevel/storage/service/ref-messages.d.ts +15 -0
  732. package/cjs/highlevel/storage/service/ref-messages.js +40 -0
  733. package/cjs/highlevel/storage/service/ref-messages.js.map +1 -0
  734. package/cjs/highlevel/storage/service/updates.d.ts +16 -0
  735. package/cjs/highlevel/storage/service/updates.js +72 -0
  736. package/cjs/highlevel/storage/service/updates.js.map +1 -0
  737. package/cjs/highlevel/storage/storage.d.ts +22 -0
  738. package/cjs/highlevel/storage/storage.js +25 -0
  739. package/cjs/highlevel/storage/storage.js.map +1 -0
  740. package/cjs/highlevel/types/auth/index.d.ts +1 -0
  741. package/cjs/highlevel/types/auth/index.js +18 -0
  742. package/cjs/highlevel/types/auth/index.js.map +1 -0
  743. package/cjs/highlevel/types/auth/sent-code.d.ts +51 -0
  744. package/cjs/highlevel/types/auth/sent-code.js +65 -0
  745. package/cjs/highlevel/types/auth/sent-code.js.map +1 -0
  746. package/cjs/highlevel/types/bots/command-scope.d.ts +63 -0
  747. package/cjs/highlevel/types/bots/command-scope.js +87 -0
  748. package/cjs/highlevel/types/bots/command-scope.js.map +1 -0
  749. package/cjs/highlevel/types/bots/game-high-score.d.ts +23 -0
  750. package/cjs/highlevel/types/bots/game-high-score.js +37 -0
  751. package/cjs/highlevel/types/bots/game-high-score.js.map +1 -0
  752. package/cjs/highlevel/types/bots/index.d.ts +5 -0
  753. package/cjs/highlevel/types/bots/index.js +22 -0
  754. package/cjs/highlevel/types/bots/index.js.map +1 -0
  755. package/cjs/highlevel/types/bots/input/index.d.ts +2 -0
  756. package/cjs/highlevel/types/bots/input/index.js +19 -0
  757. package/cjs/highlevel/types/bots/input/index.js.map +1 -0
  758. package/cjs/highlevel/types/bots/input/input-inline-message.d.ts +157 -0
  759. package/cjs/highlevel/types/bots/input/input-inline-message.js +179 -0
  760. package/cjs/highlevel/types/bots/input/input-inline-message.js.map +1 -0
  761. package/cjs/highlevel/types/bots/input/input-inline-result.d.ts +511 -0
  762. package/cjs/highlevel/types/bots/input/input-inline-result.js +490 -0
  763. package/cjs/highlevel/types/bots/input/input-inline-result.js.map +1 -0
  764. package/cjs/highlevel/types/bots/keyboard-builder.d.ts +38 -0
  765. package/cjs/highlevel/types/bots/keyboard-builder.js +93 -0
  766. package/cjs/highlevel/types/bots/keyboard-builder.js.map +1 -0
  767. package/cjs/highlevel/types/bots/keyboard-builder.test.d.ts +1 -0
  768. package/cjs/highlevel/types/bots/keyboard-builder.test.js +162 -0
  769. package/cjs/highlevel/types/bots/keyboard-builder.test.js.map +1 -0
  770. package/cjs/highlevel/types/bots/keyboards.d.ts +239 -0
  771. package/cjs/highlevel/types/bots/keyboards.js +380 -0
  772. package/cjs/highlevel/types/bots/keyboards.js.map +1 -0
  773. package/cjs/highlevel/types/bots/keyboards.test.d.ts +1 -0
  774. package/cjs/highlevel/types/bots/keyboards.test.js +146 -0
  775. package/cjs/highlevel/types/bots/keyboards.test.js.map +1 -0
  776. package/cjs/highlevel/types/calls/discard-reason.d.ts +8 -0
  777. package/cjs/highlevel/types/calls/discard-reason.js +37 -0
  778. package/cjs/highlevel/types/calls/discard-reason.js.map +1 -0
  779. package/cjs/highlevel/types/calls/index.d.ts +1 -0
  780. package/cjs/highlevel/types/calls/index.js +18 -0
  781. package/cjs/highlevel/types/calls/index.js.map +1 -0
  782. package/cjs/highlevel/types/conversation.d.ts +210 -0
  783. package/cjs/highlevel/types/conversation.js +469 -0
  784. package/cjs/highlevel/types/conversation.js.map +1 -0
  785. package/cjs/highlevel/types/errors.d.ts +33 -0
  786. package/cjs/highlevel/types/errors.js +46 -0
  787. package/cjs/highlevel/types/errors.js.map +1 -0
  788. package/cjs/highlevel/types/files/file-location.d.ts +48 -0
  789. package/cjs/highlevel/types/files/file-location.js +39 -0
  790. package/cjs/highlevel/types/files/file-location.js.map +1 -0
  791. package/cjs/highlevel/types/files/index.d.ts +4 -0
  792. package/cjs/highlevel/types/files/index.js +21 -0
  793. package/cjs/highlevel/types/files/index.js.map +1 -0
  794. package/cjs/highlevel/types/files/uploaded-file.d.ts +22 -0
  795. package/cjs/highlevel/types/files/uploaded-file.js +9 -0
  796. package/cjs/highlevel/types/files/uploaded-file.js.map +1 -0
  797. package/cjs/highlevel/types/files/utils.d.ts +84 -0
  798. package/cjs/highlevel/types/files/utils.js +3 -0
  799. package/cjs/highlevel/types/files/utils.js.map +1 -0
  800. package/cjs/highlevel/types/files/web-document.d.ts +32 -0
  801. package/cjs/highlevel/types/files/web-document.js +57 -0
  802. package/cjs/highlevel/types/files/web-document.js.map +1 -0
  803. package/cjs/highlevel/types/index.d.ts +15 -0
  804. package/cjs/highlevel/types/index.js +32 -0
  805. package/cjs/highlevel/types/index.js.map +1 -0
  806. package/cjs/highlevel/types/media/audio.d.ts +31 -0
  807. package/cjs/highlevel/types/media/audio.js +48 -0
  808. package/cjs/highlevel/types/media/audio.js.map +1 -0
  809. package/cjs/highlevel/types/media/contact.d.ts +31 -0
  810. package/cjs/highlevel/types/media/contact.js +51 -0
  811. package/cjs/highlevel/types/media/contact.js.map +1 -0
  812. package/cjs/highlevel/types/media/dice.d.ts +155 -0
  813. package/cjs/highlevel/types/media/dice.js +171 -0
  814. package/cjs/highlevel/types/media/dice.js.map +1 -0
  815. package/cjs/highlevel/types/media/document-utils.d.ts +6 -0
  816. package/cjs/highlevel/types/media/document-utils.js +35 -0
  817. package/cjs/highlevel/types/media/document-utils.js.map +1 -0
  818. package/cjs/highlevel/types/media/document.d.ts +75 -0
  819. package/cjs/highlevel/types/media/document.js +143 -0
  820. package/cjs/highlevel/types/media/document.js.map +1 -0
  821. package/cjs/highlevel/types/media/game.d.ts +38 -0
  822. package/cjs/highlevel/types/media/game.js +76 -0
  823. package/cjs/highlevel/types/media/game.js.map +1 -0
  824. package/cjs/highlevel/types/media/index.d.ts +17 -0
  825. package/cjs/highlevel/types/media/index.js +34 -0
  826. package/cjs/highlevel/types/media/index.js.map +1 -0
  827. package/cjs/highlevel/types/media/input-media.d.ts +645 -0
  828. package/cjs/highlevel/types/media/input-media.js +254 -0
  829. package/cjs/highlevel/types/media/input-media.js.map +1 -0
  830. package/cjs/highlevel/types/media/invoice.d.ts +107 -0
  831. package/cjs/highlevel/types/media/invoice.js +163 -0
  832. package/cjs/highlevel/types/media/invoice.js.map +1 -0
  833. package/cjs/highlevel/types/media/location.d.ts +83 -0
  834. package/cjs/highlevel/types/media/location.js +121 -0
  835. package/cjs/highlevel/types/media/location.js.map +1 -0
  836. package/cjs/highlevel/types/media/photo.d.ts +72 -0
  837. package/cjs/highlevel/types/media/photo.js +160 -0
  838. package/cjs/highlevel/types/media/photo.js.map +1 -0
  839. package/cjs/highlevel/types/media/poll.d.ts +99 -0
  840. package/cjs/highlevel/types/media/poll.js +144 -0
  841. package/cjs/highlevel/types/media/poll.js.map +1 -0
  842. package/cjs/highlevel/types/media/sticker.d.ts +123 -0
  843. package/cjs/highlevel/types/media/sticker.js +145 -0
  844. package/cjs/highlevel/types/media/sticker.js.map +1 -0
  845. package/cjs/highlevel/types/media/story.d.ts +33 -0
  846. package/cjs/highlevel/types/media/story.js +55 -0
  847. package/cjs/highlevel/types/media/story.js.map +1 -0
  848. package/cjs/highlevel/types/media/thumbnail.d.ts +70 -0
  849. package/cjs/highlevel/types/media/thumbnail.js +230 -0
  850. package/cjs/highlevel/types/media/thumbnail.js.map +1 -0
  851. package/cjs/highlevel/types/media/venue.d.ts +58 -0
  852. package/cjs/highlevel/types/media/venue.js +79 -0
  853. package/cjs/highlevel/types/media/venue.js.map +1 -0
  854. package/cjs/highlevel/types/media/video.d.ts +46 -0
  855. package/cjs/highlevel/types/media/video.js +79 -0
  856. package/cjs/highlevel/types/media/video.js.map +1 -0
  857. package/cjs/highlevel/types/media/voice.d.ts +23 -0
  858. package/cjs/highlevel/types/media/voice.js +40 -0
  859. package/cjs/highlevel/types/media/voice.js.map +1 -0
  860. package/cjs/highlevel/types/media/web-page.d.ts +151 -0
  861. package/cjs/highlevel/types/media/web-page.js +197 -0
  862. package/cjs/highlevel/types/media/web-page.js.map +1 -0
  863. package/cjs/highlevel/types/messages/dialog.d.ts +108 -0
  864. package/cjs/highlevel/types/messages/dialog.js +247 -0
  865. package/cjs/highlevel/types/messages/dialog.js.map +1 -0
  866. package/cjs/highlevel/types/messages/draft-message.d.ts +29 -0
  867. package/cjs/highlevel/types/messages/draft-message.js +56 -0
  868. package/cjs/highlevel/types/messages/draft-message.js.map +1 -0
  869. package/cjs/highlevel/types/messages/index.d.ts +12 -0
  870. package/cjs/highlevel/types/messages/index.js +29 -0
  871. package/cjs/highlevel/types/messages/index.js.map +1 -0
  872. package/cjs/highlevel/types/messages/input-message-id.d.ts +15 -0
  873. package/cjs/highlevel/types/messages/input-message-id.js +11 -0
  874. package/cjs/highlevel/types/messages/input-message-id.js.map +1 -0
  875. package/cjs/highlevel/types/messages/message-action.d.ts +332 -0
  876. package/cjs/highlevel/types/messages/message-action.js +255 -0
  877. package/cjs/highlevel/types/messages/message-action.js.map +1 -0
  878. package/cjs/highlevel/types/messages/message-entity.d.ts +86 -0
  879. package/cjs/highlevel/types/messages/message-entity.js +105 -0
  880. package/cjs/highlevel/types/messages/message-entity.js.map +1 -0
  881. package/cjs/highlevel/types/messages/message-forward.d.ts +36 -0
  882. package/cjs/highlevel/types/messages/message-forward.js +66 -0
  883. package/cjs/highlevel/types/messages/message-forward.js.map +1 -0
  884. package/cjs/highlevel/types/messages/message-media.d.ts +18 -0
  885. package/cjs/highlevel/types/messages/message-media.js +72 -0
  886. package/cjs/highlevel/types/messages/message-media.js.map +1 -0
  887. package/cjs/highlevel/types/messages/message-reactions.d.ts +29 -0
  888. package/cjs/highlevel/types/messages/message-reactions.js +43 -0
  889. package/cjs/highlevel/types/messages/message-reactions.js.map +1 -0
  890. package/cjs/highlevel/types/messages/message-replies.d.ts +42 -0
  891. package/cjs/highlevel/types/messages/message-replies.js +67 -0
  892. package/cjs/highlevel/types/messages/message-replies.js.map +1 -0
  893. package/cjs/highlevel/types/messages/message.d.ts +178 -0
  894. package/cjs/highlevel/types/messages/message.js +339 -0
  895. package/cjs/highlevel/types/messages/message.js.map +1 -0
  896. package/cjs/highlevel/types/messages/replied-message.d.ts +103 -0
  897. package/cjs/highlevel/types/messages/replied-message.js +163 -0
  898. package/cjs/highlevel/types/messages/replied-message.js.map +1 -0
  899. package/cjs/highlevel/types/messages/search-filters.d.ts +82 -0
  900. package/cjs/highlevel/types/messages/search-filters.js +58 -0
  901. package/cjs/highlevel/types/messages/search-filters.js.map +1 -0
  902. package/cjs/highlevel/types/misc/app-config.d.ts +887 -0
  903. package/cjs/highlevel/types/misc/app-config.js +5 -0
  904. package/cjs/highlevel/types/misc/app-config.js.map +1 -0
  905. package/cjs/highlevel/types/misc/entities.d.ts +15 -0
  906. package/cjs/highlevel/types/misc/entities.js +3 -0
  907. package/cjs/highlevel/types/misc/entities.js.map +1 -0
  908. package/cjs/highlevel/types/misc/index.d.ts +5 -0
  909. package/cjs/highlevel/types/misc/index.js +22 -0
  910. package/cjs/highlevel/types/misc/index.js.map +1 -0
  911. package/cjs/highlevel/types/misc/input-privacy-rule.d.ts +63 -0
  912. package/cjs/highlevel/types/misc/input-privacy-rule.js +85 -0
  913. package/cjs/highlevel/types/misc/input-privacy-rule.js.map +1 -0
  914. package/cjs/highlevel/types/misc/sticker-set.d.ts +151 -0
  915. package/cjs/highlevel/types/misc/sticker-set.js +220 -0
  916. package/cjs/highlevel/types/misc/sticker-set.js.map +1 -0
  917. package/cjs/highlevel/types/misc/takeout-session.d.ts +49 -0
  918. package/cjs/highlevel/types/misc/takeout-session.js +82 -0
  919. package/cjs/highlevel/types/misc/takeout-session.js.map +1 -0
  920. package/cjs/highlevel/types/peers/chat-colors.d.ts +25 -0
  921. package/cjs/highlevel/types/peers/chat-colors.js +36 -0
  922. package/cjs/highlevel/types/peers/chat-colors.js.map +1 -0
  923. package/cjs/highlevel/types/peers/chat-event/actions.d.ts +263 -0
  924. package/cjs/highlevel/types/peers/chat-event/actions.js +234 -0
  925. package/cjs/highlevel/types/peers/chat-event/actions.js.map +1 -0
  926. package/cjs/highlevel/types/peers/chat-event/filters.d.ts +8 -0
  927. package/cjs/highlevel/types/peers/chat-event/filters.js +108 -0
  928. package/cjs/highlevel/types/peers/chat-event/filters.js.map +1 -0
  929. package/cjs/highlevel/types/peers/chat-event/index.d.ts +27 -0
  930. package/cjs/highlevel/types/peers/chat-event/index.js +56 -0
  931. package/cjs/highlevel/types/peers/chat-event/index.js.map +1 -0
  932. package/cjs/highlevel/types/peers/chat-invite-link-member.d.ts +33 -0
  933. package/cjs/highlevel/types/peers/chat-invite-link-member.js +55 -0
  934. package/cjs/highlevel/types/peers/chat-invite-link-member.js.map +1 -0
  935. package/cjs/highlevel/types/peers/chat-invite-link.d.ts +72 -0
  936. package/cjs/highlevel/types/peers/chat-invite-link.js +108 -0
  937. package/cjs/highlevel/types/peers/chat-invite-link.js.map +1 -0
  938. package/cjs/highlevel/types/peers/chat-location.d.ts +17 -0
  939. package/cjs/highlevel/types/peers/chat-location.js +30 -0
  940. package/cjs/highlevel/types/peers/chat-location.js.map +1 -0
  941. package/cjs/highlevel/types/peers/chat-member.d.ts +81 -0
  942. package/cjs/highlevel/types/peers/chat-member.js +154 -0
  943. package/cjs/highlevel/types/peers/chat-member.js.map +1 -0
  944. package/cjs/highlevel/types/peers/chat-permissions.d.ts +127 -0
  945. package/cjs/highlevel/types/peers/chat-permissions.js +176 -0
  946. package/cjs/highlevel/types/peers/chat-permissions.js.map +1 -0
  947. package/cjs/highlevel/types/peers/chat-photo.d.ts +39 -0
  948. package/cjs/highlevel/types/peers/chat-photo.js +128 -0
  949. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -0
  950. package/cjs/highlevel/types/peers/chat-preview.d.ts +55 -0
  951. package/cjs/highlevel/types/peers/chat-preview.js +74 -0
  952. package/cjs/highlevel/types/peers/chat-preview.js.map +1 -0
  953. package/cjs/highlevel/types/peers/chat.d.ts +332 -0
  954. package/cjs/highlevel/types/peers/chat.js +660 -0
  955. package/cjs/highlevel/types/peers/chat.js.map +1 -0
  956. package/cjs/highlevel/types/peers/forum-topic.d.ts +96 -0
  957. package/cjs/highlevel/types/peers/forum-topic.js +158 -0
  958. package/cjs/highlevel/types/peers/forum-topic.js.map +1 -0
  959. package/cjs/highlevel/types/peers/index.d.ts +14 -0
  960. package/cjs/highlevel/types/peers/index.js +31 -0
  961. package/cjs/highlevel/types/peers/index.js.map +1 -0
  962. package/cjs/highlevel/types/peers/peer.d.ts +49 -0
  963. package/cjs/highlevel/types/peers/peer.js +20 -0
  964. package/cjs/highlevel/types/peers/peer.js.map +1 -0
  965. package/cjs/highlevel/types/peers/peers-index.d.ts +15 -0
  966. package/cjs/highlevel/types/peers/peers-index.js +57 -0
  967. package/cjs/highlevel/types/peers/peers-index.js.map +1 -0
  968. package/cjs/highlevel/types/peers/peers-index.test.d.ts +1 -0
  969. package/cjs/highlevel/types/peers/peers-index.test.js +71 -0
  970. package/cjs/highlevel/types/peers/peers-index.test.js.map +1 -0
  971. package/cjs/highlevel/types/peers/typing-status.d.ts +26 -0
  972. package/cjs/highlevel/types/peers/typing-status.js +3 -0
  973. package/cjs/highlevel/types/peers/typing-status.js.map +1 -0
  974. package/cjs/highlevel/types/peers/user.d.ts +259 -0
  975. package/cjs/highlevel/types/peers/user.js +437 -0
  976. package/cjs/highlevel/types/peers/user.js.map +1 -0
  977. package/cjs/highlevel/types/peers/user.test.d.ts +1 -0
  978. package/cjs/highlevel/types/peers/user.test.js +176 -0
  979. package/cjs/highlevel/types/peers/user.test.js.map +1 -0
  980. package/cjs/highlevel/types/premium/boost-slot.d.ts +37 -0
  981. package/cjs/highlevel/types/premium/boost-slot.js +64 -0
  982. package/cjs/highlevel/types/premium/boost-slot.js.map +1 -0
  983. package/cjs/highlevel/types/premium/boost-stats.d.ts +54 -0
  984. package/cjs/highlevel/types/premium/boost-stats.js +91 -0
  985. package/cjs/highlevel/types/premium/boost-stats.js.map +1 -0
  986. package/cjs/highlevel/types/premium/boost.d.ts +55 -0
  987. package/cjs/highlevel/types/premium/boost.js +80 -0
  988. package/cjs/highlevel/types/premium/boost.js.map +1 -0
  989. package/cjs/highlevel/types/premium/index.d.ts +3 -0
  990. package/cjs/highlevel/types/premium/index.js +20 -0
  991. package/cjs/highlevel/types/premium/index.js.map +1 -0
  992. package/cjs/highlevel/types/reactions/emoji-status.d.ts +12 -0
  993. package/cjs/highlevel/types/reactions/emoji-status.js +25 -0
  994. package/cjs/highlevel/types/reactions/emoji-status.js.map +1 -0
  995. package/cjs/highlevel/types/reactions/index.d.ts +2 -0
  996. package/cjs/highlevel/types/reactions/index.js +19 -0
  997. package/cjs/highlevel/types/reactions/index.js.map +1 -0
  998. package/cjs/highlevel/types/reactions/peer-reaction.d.ts +32 -0
  999. package/cjs/highlevel/types/reactions/peer-reaction.js +53 -0
  1000. package/cjs/highlevel/types/reactions/peer-reaction.js.map +1 -0
  1001. package/cjs/highlevel/types/reactions/reaction-count.d.ts +23 -0
  1002. package/cjs/highlevel/types/reactions/reaction-count.js +36 -0
  1003. package/cjs/highlevel/types/reactions/reaction-count.js.map +1 -0
  1004. package/cjs/highlevel/types/reactions/types.d.ts +14 -0
  1005. package/cjs/highlevel/types/reactions/types.js +44 -0
  1006. package/cjs/highlevel/types/reactions/types.js.map +1 -0
  1007. package/cjs/highlevel/types/stories/all-stories.d.ts +28 -0
  1008. package/cjs/highlevel/types/stories/all-stories.js +46 -0
  1009. package/cjs/highlevel/types/stories/all-stories.js.map +1 -0
  1010. package/cjs/highlevel/types/stories/index.d.ts +7 -0
  1011. package/cjs/highlevel/types/stories/index.js +24 -0
  1012. package/cjs/highlevel/types/stories/index.js.map +1 -0
  1013. package/cjs/highlevel/types/stories/interactive/base.d.ts +16 -0
  1014. package/cjs/highlevel/types/stories/interactive/base.js +31 -0
  1015. package/cjs/highlevel/types/stories/interactive/base.js.map +1 -0
  1016. package/cjs/highlevel/types/stories/interactive/channel-post.d.ts +17 -0
  1017. package/cjs/highlevel/types/stories/interactive/channel-post.js +30 -0
  1018. package/cjs/highlevel/types/stories/interactive/channel-post.js.map +1 -0
  1019. package/cjs/highlevel/types/stories/interactive/index.d.ts +10 -0
  1020. package/cjs/highlevel/types/stories/interactive/index.js +44 -0
  1021. package/cjs/highlevel/types/stories/interactive/index.js.map +1 -0
  1022. package/cjs/highlevel/types/stories/interactive/input.d.ts +67 -0
  1023. package/cjs/highlevel/types/stories/interactive/input.js +84 -0
  1024. package/cjs/highlevel/types/stories/interactive/input.js.map +1 -0
  1025. package/cjs/highlevel/types/stories/interactive/location.d.ts +15 -0
  1026. package/cjs/highlevel/types/stories/interactive/location.js +29 -0
  1027. package/cjs/highlevel/types/stories/interactive/location.js.map +1 -0
  1028. package/cjs/highlevel/types/stories/interactive/reaction.d.ts +21 -0
  1029. package/cjs/highlevel/types/stories/interactive/reaction.js +35 -0
  1030. package/cjs/highlevel/types/stories/interactive/reaction.js.map +1 -0
  1031. package/cjs/highlevel/types/stories/interactive/venue.d.ts +28 -0
  1032. package/cjs/highlevel/types/stories/interactive/venue.js +53 -0
  1033. package/cjs/highlevel/types/stories/interactive/venue.js.map +1 -0
  1034. package/cjs/highlevel/types/stories/peer-stories.d.ts +20 -0
  1035. package/cjs/highlevel/types/stories/peer-stories.js +39 -0
  1036. package/cjs/highlevel/types/stories/peer-stories.js.map +1 -0
  1037. package/cjs/highlevel/types/stories/stealth-mode.d.ts +9 -0
  1038. package/cjs/highlevel/types/stories/stealth-mode.js +24 -0
  1039. package/cjs/highlevel/types/stories/stealth-mode.js.map +1 -0
  1040. package/cjs/highlevel/types/stories/story-interactions.d.ts +34 -0
  1041. package/cjs/highlevel/types/stories/story-interactions.js +56 -0
  1042. package/cjs/highlevel/types/stories/story-interactions.js.map +1 -0
  1043. package/cjs/highlevel/types/stories/story-viewer.d.ts +75 -0
  1044. package/cjs/highlevel/types/stories/story-viewer.js +140 -0
  1045. package/cjs/highlevel/types/stories/story-viewer.js.map +1 -0
  1046. package/cjs/highlevel/types/stories/story.d.ts +79 -0
  1047. package/cjs/highlevel/types/stories/story.js +148 -0
  1048. package/cjs/highlevel/types/stories/story.js.map +1 -0
  1049. package/cjs/highlevel/types/updates/bot-chat-join-request.d.ts +42 -0
  1050. package/cjs/highlevel/types/updates/bot-chat-join-request.js +66 -0
  1051. package/cjs/highlevel/types/updates/bot-chat-join-request.js.map +1 -0
  1052. package/cjs/highlevel/types/updates/bot-reaction.d.ts +72 -0
  1053. package/cjs/highlevel/types/updates/bot-reaction.js +104 -0
  1054. package/cjs/highlevel/types/updates/bot-reaction.js.map +1 -0
  1055. package/cjs/highlevel/types/updates/bot-stopped.d.ts +28 -0
  1056. package/cjs/highlevel/types/updates/bot-stopped.js +43 -0
  1057. package/cjs/highlevel/types/updates/bot-stopped.js.map +1 -0
  1058. package/cjs/highlevel/types/updates/callback-query.d.ts +81 -0
  1059. package/cjs/highlevel/types/updates/callback-query.js +123 -0
  1060. package/cjs/highlevel/types/updates/callback-query.js.map +1 -0
  1061. package/cjs/highlevel/types/updates/chat-join-request.d.ts +30 -0
  1062. package/cjs/highlevel/types/updates/chat-join-request.js +50 -0
  1063. package/cjs/highlevel/types/updates/chat-join-request.js.map +1 -0
  1064. package/cjs/highlevel/types/updates/chat-member-update.d.ts +76 -0
  1065. package/cjs/highlevel/types/updates/chat-member-update.js +178 -0
  1066. package/cjs/highlevel/types/updates/chat-member-update.js.map +1 -0
  1067. package/cjs/highlevel/types/updates/chosen-inline-result.d.ts +50 -0
  1068. package/cjs/highlevel/types/updates/chosen-inline-result.js +76 -0
  1069. package/cjs/highlevel/types/updates/chosen-inline-result.js.map +1 -0
  1070. package/cjs/highlevel/types/updates/delete-message-update.d.ts +16 -0
  1071. package/cjs/highlevel/types/updates/delete-message-update.js +28 -0
  1072. package/cjs/highlevel/types/updates/delete-message-update.js.map +1 -0
  1073. package/cjs/highlevel/types/updates/delete-story-update.d.ts +18 -0
  1074. package/cjs/highlevel/types/updates/delete-story-update.js +31 -0
  1075. package/cjs/highlevel/types/updates/delete-story-update.js.map +1 -0
  1076. package/cjs/highlevel/types/updates/history-read-update.d.ts +39 -0
  1077. package/cjs/highlevel/types/updates/history-read-update.js +109 -0
  1078. package/cjs/highlevel/types/updates/history-read-update.js.map +1 -0
  1079. package/cjs/highlevel/types/updates/index.d.ts +87 -0
  1080. package/cjs/highlevel/types/updates/index.js +41 -0
  1081. package/cjs/highlevel/types/updates/index.js.map +1 -0
  1082. package/cjs/highlevel/types/updates/inline-query.d.ts +42 -0
  1083. package/cjs/highlevel/types/updates/inline-query.js +73 -0
  1084. package/cjs/highlevel/types/updates/inline-query.js.map +1 -0
  1085. package/cjs/highlevel/types/updates/parse-update.d.ts +1 -0
  1086. package/cjs/highlevel/types/updates/parse-update.js +76 -0
  1087. package/cjs/highlevel/types/updates/parse-update.js.map +1 -0
  1088. package/cjs/highlevel/types/updates/poll-update.d.ts +39 -0
  1089. package/cjs/highlevel/types/updates/poll-update.js +67 -0
  1090. package/cjs/highlevel/types/updates/poll-update.js.map +1 -0
  1091. package/cjs/highlevel/types/updates/poll-vote.d.ts +52 -0
  1092. package/cjs/highlevel/types/updates/poll-vote.js +78 -0
  1093. package/cjs/highlevel/types/updates/poll-vote.js.map +1 -0
  1094. package/cjs/highlevel/types/updates/pre-checkout-query.d.ts +36 -0
  1095. package/cjs/highlevel/types/updates/pre-checkout-query.js +61 -0
  1096. package/cjs/highlevel/types/updates/pre-checkout-query.js.map +1 -0
  1097. package/cjs/highlevel/types/updates/story-update.d.ts +22 -0
  1098. package/cjs/highlevel/types/updates/story-update.js +37 -0
  1099. package/cjs/highlevel/types/updates/story-update.js.map +1 -0
  1100. package/cjs/highlevel/types/updates/user-status-update.d.ts +28 -0
  1101. package/cjs/highlevel/types/updates/user-status-update.js +47 -0
  1102. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -0
  1103. package/cjs/highlevel/types/updates/user-typing-update.d.ts +31 -0
  1104. package/cjs/highlevel/types/updates/user-typing-update.js +99 -0
  1105. package/cjs/highlevel/types/updates/user-typing-update.js.map +1 -0
  1106. package/cjs/highlevel/types/utils.d.ts +12 -0
  1107. package/cjs/highlevel/types/utils.js +3 -0
  1108. package/cjs/highlevel/types/utils.js.map +1 -0
  1109. package/cjs/highlevel/updates/index.d.ts +2 -0
  1110. package/cjs/highlevel/updates/index.js +20 -0
  1111. package/cjs/highlevel/updates/index.js.map +1 -0
  1112. package/cjs/highlevel/updates/manager.d.ts +120 -0
  1113. package/cjs/highlevel/updates/manager.js +1342 -0
  1114. package/cjs/highlevel/updates/manager.js.map +1 -0
  1115. package/cjs/highlevel/updates/parsed.d.ts +32 -0
  1116. package/cjs/highlevel/updates/parsed.js +43 -0
  1117. package/cjs/highlevel/updates/parsed.js.map +1 -0
  1118. package/cjs/highlevel/updates/types.d.ts +48 -0
  1119. package/cjs/highlevel/updates/types.js +3 -0
  1120. package/cjs/highlevel/updates/types.js.map +1 -0
  1121. package/cjs/highlevel/updates/utils.d.ts +19 -0
  1122. package/cjs/highlevel/updates/utils.js +109 -0
  1123. package/cjs/highlevel/updates/utils.js.map +1 -0
  1124. package/cjs/highlevel/utils/convert-file-id.d.ts +46 -0
  1125. package/cjs/highlevel/utils/convert-file-id.js +293 -0
  1126. package/cjs/highlevel/utils/convert-file-id.js.map +1 -0
  1127. package/cjs/highlevel/utils/file-type.d.ts +1 -0
  1128. package/cjs/highlevel/utils/file-type.js +139 -0
  1129. package/cjs/highlevel/utils/file-type.js.map +1 -0
  1130. package/cjs/highlevel/utils/file-type.test.d.ts +1 -0
  1131. package/cjs/highlevel/utils/file-type.test.js +64 -0
  1132. package/cjs/highlevel/utils/file-type.test.js.map +1 -0
  1133. package/cjs/highlevel/utils/file-utils.d.ts +29 -0
  1134. package/cjs/highlevel/utils/file-utils.js +119 -0
  1135. package/cjs/highlevel/utils/file-utils.js.map +1 -0
  1136. package/cjs/highlevel/utils/file-utils.test.d.ts +1 -0
  1137. package/cjs/highlevel/utils/file-utils.test.js +126 -0
  1138. package/cjs/highlevel/utils/file-utils.test.js.map +1 -0
  1139. package/cjs/highlevel/utils/index.d.ts +8 -0
  1140. package/cjs/highlevel/utils/index.js +26 -0
  1141. package/cjs/highlevel/utils/index.js.map +1 -0
  1142. package/cjs/highlevel/utils/inline-utils.d.ts +14 -0
  1143. package/cjs/highlevel/utils/inline-utils.js +65 -0
  1144. package/cjs/highlevel/utils/inline-utils.js.map +1 -0
  1145. package/cjs/highlevel/utils/inline-utils.test.d.ts +1 -0
  1146. package/cjs/highlevel/utils/inline-utils.test.js +47 -0
  1147. package/cjs/highlevel/utils/inline-utils.test.js.map +1 -0
  1148. package/cjs/highlevel/utils/inspectable.d.ts +9 -0
  1149. package/cjs/highlevel/utils/inspectable.js +65 -0
  1150. package/cjs/highlevel/utils/inspectable.js.map +1 -0
  1151. package/cjs/highlevel/utils/inspectable.test.d.ts +1 -0
  1152. package/cjs/highlevel/utils/inspectable.test.js +97 -0
  1153. package/cjs/highlevel/utils/inspectable.test.js.map +1 -0
  1154. package/cjs/highlevel/utils/memoize.d.ts +1 -0
  1155. package/cjs/highlevel/utils/memoize.js +30 -0
  1156. package/cjs/highlevel/utils/memoize.js.map +1 -0
  1157. package/cjs/highlevel/utils/memoize.test.d.ts +1 -0
  1158. package/cjs/highlevel/utils/memoize.test.js +60 -0
  1159. package/cjs/highlevel/utils/memoize.test.js.map +1 -0
  1160. package/cjs/highlevel/utils/misc-utils.d.ts +12 -0
  1161. package/cjs/highlevel/utils/misc-utils.js +43 -0
  1162. package/cjs/highlevel/utils/misc-utils.js.map +1 -0
  1163. package/cjs/highlevel/utils/peer-utils.d.ts +11 -0
  1164. package/cjs/highlevel/utils/peer-utils.js +139 -0
  1165. package/cjs/highlevel/utils/peer-utils.js.map +1 -0
  1166. package/cjs/highlevel/utils/peer-utils.test.d.ts +1 -0
  1167. package/cjs/highlevel/utils/peer-utils.test.js +109 -0
  1168. package/cjs/highlevel/utils/peer-utils.test.js.map +1 -0
  1169. package/cjs/highlevel/utils/platform/storage.d.ts +1 -0
  1170. package/cjs/highlevel/utils/platform/storage.js +10 -0
  1171. package/cjs/highlevel/utils/platform/storage.js.map +1 -0
  1172. package/cjs/highlevel/utils/platform/storage.web.d.ts +1 -0
  1173. package/cjs/highlevel/utils/platform/storage.web.js +14 -0
  1174. package/cjs/highlevel/utils/platform/storage.web.js.map +1 -0
  1175. package/cjs/highlevel/utils/query-batcher.d.ts +48 -0
  1176. package/cjs/highlevel/utils/query-batcher.js +146 -0
  1177. package/cjs/highlevel/utils/query-batcher.js.map +1 -0
  1178. package/cjs/highlevel/utils/query-batcher.test.d.ts +1 -0
  1179. package/cjs/highlevel/utils/query-batcher.test.js +502 -0
  1180. package/cjs/highlevel/utils/query-batcher.test.js.map +1 -0
  1181. package/cjs/highlevel/utils/rps-meter.d.ts +9 -0
  1182. package/cjs/highlevel/utils/rps-meter.js +40 -0
  1183. package/cjs/highlevel/utils/rps-meter.js.map +1 -0
  1184. package/cjs/highlevel/utils/stream-utils.d.ts +8 -0
  1185. package/cjs/highlevel/utils/stream-utils.js +141 -0
  1186. package/cjs/highlevel/utils/stream-utils.js.map +1 -0
  1187. package/cjs/highlevel/utils/stream-utils.test.d.ts +1 -0
  1188. package/cjs/highlevel/utils/stream-utils.test.js +98 -0
  1189. package/cjs/highlevel/utils/stream-utils.test.js.map +1 -0
  1190. package/cjs/highlevel/utils/voice-utils.d.ts +14 -0
  1191. package/cjs/highlevel/utils/voice-utils.js +64 -0
  1192. package/cjs/highlevel/utils/voice-utils.js.map +1 -0
  1193. package/cjs/highlevel/utils/voice-utils.test.d.ts +1 -0
  1194. package/cjs/highlevel/utils/voice-utils.test.js +28 -0
  1195. package/cjs/highlevel/utils/voice-utils.test.js.map +1 -0
  1196. package/cjs/highlevel/worker/app-config.d.ts +13 -0
  1197. package/cjs/highlevel/worker/app-config.js +13 -0
  1198. package/cjs/highlevel/worker/app-config.js.map +1 -0
  1199. package/cjs/highlevel/worker/errors.d.ts +8 -0
  1200. package/cjs/highlevel/worker/errors.js +121 -0
  1201. package/cjs/highlevel/worker/errors.js.map +1 -0
  1202. package/cjs/highlevel/worker/invoker.d.ts +17 -0
  1203. package/cjs/highlevel/worker/invoker.js +60 -0
  1204. package/cjs/highlevel/worker/invoker.js.map +1 -0
  1205. package/cjs/highlevel/worker/platform/connect.d.ts +2 -0
  1206. package/cjs/highlevel/worker/platform/connect.js +19 -0
  1207. package/cjs/highlevel/worker/platform/connect.js.map +1 -0
  1208. package/cjs/highlevel/worker/platform/connect.web.d.ts +2 -0
  1209. package/cjs/highlevel/worker/platform/connect.web.js +51 -0
  1210. package/cjs/highlevel/worker/platform/connect.web.js.map +1 -0
  1211. package/cjs/highlevel/worker/platform/register.d.ts +2 -0
  1212. package/cjs/highlevel/worker/platform/register.js +20 -0
  1213. package/cjs/highlevel/worker/platform/register.js.map +1 -0
  1214. package/cjs/highlevel/worker/platform/register.web.d.ts +2 -0
  1215. package/cjs/highlevel/worker/platform/register.web.js +64 -0
  1216. package/cjs/highlevel/worker/platform/register.web.js.map +1 -0
  1217. package/cjs/highlevel/worker/port.d.ts +53 -0
  1218. package/cjs/highlevel/worker/port.js +94 -0
  1219. package/cjs/highlevel/worker/port.js.map +1 -0
  1220. package/cjs/highlevel/worker/protocol.d.ts +43 -0
  1221. package/cjs/highlevel/worker/protocol.js +3 -0
  1222. package/cjs/highlevel/worker/protocol.js.map +1 -0
  1223. package/cjs/highlevel/worker/storage.d.ts +43 -0
  1224. package/cjs/highlevel/worker/storage.js +66 -0
  1225. package/cjs/highlevel/worker/storage.js.map +1 -0
  1226. package/cjs/highlevel/worker/worker.d.ts +7 -0
  1227. package/cjs/highlevel/worker/worker.js +107 -0
  1228. package/cjs/highlevel/worker/worker.js.map +1 -0
  1229. package/cjs/index.d.ts +1 -2
  1230. package/cjs/index.js +1 -2
  1231. package/cjs/index.js.map +1 -1
  1232. package/cjs/network/authorization.js +7 -4
  1233. package/cjs/network/authorization.js.map +1 -1
  1234. package/cjs/network/client.d.ts +246 -0
  1235. package/cjs/network/client.js +148 -0
  1236. package/cjs/network/client.js.map +1 -0
  1237. package/cjs/network/config-manager.d.ts +3 -17
  1238. package/cjs/network/config-manager.js +8 -51
  1239. package/cjs/network/config-manager.js.map +1 -1
  1240. package/cjs/network/config-manager.test.js +8 -4
  1241. package/cjs/network/config-manager.test.js.map +1 -1
  1242. package/cjs/network/index.d.ts +1 -0
  1243. package/cjs/network/index.js +1 -0
  1244. package/cjs/network/index.js.map +1 -1
  1245. package/cjs/network/mtproto-session.d.ts +1 -0
  1246. package/cjs/network/mtproto-session.js +7 -4
  1247. package/cjs/network/mtproto-session.js.map +1 -1
  1248. package/cjs/network/network-manager.d.ts +11 -14
  1249. package/cjs/network/network-manager.js +40 -51
  1250. package/cjs/network/network-manager.js.map +1 -1
  1251. package/cjs/network/persistent-connection.d.ts +2 -3
  1252. package/cjs/network/persistent-connection.js.map +1 -1
  1253. package/cjs/network/session-connection.js +6 -3
  1254. package/cjs/network/session-connection.js.map +1 -1
  1255. package/cjs/network/transports/abstract.d.ts +6 -6
  1256. package/cjs/network/transports/abstract.js +1 -1
  1257. package/cjs/network/transports/abstract.js.map +1 -1
  1258. package/cjs/network/transports/tcp.d.ts +4 -5
  1259. package/cjs/network/transports/tcp.js.map +1 -1
  1260. package/cjs/network/transports/websocket.d.ts +3 -4
  1261. package/cjs/network/transports/websocket.js +2 -2
  1262. package/cjs/network/transports/websocket.js.map +1 -1
  1263. package/cjs/storage/driver.d.ts +56 -0
  1264. package/cjs/storage/driver.js +41 -0
  1265. package/cjs/storage/driver.js.map +1 -0
  1266. package/cjs/storage/index.d.ts +6 -2
  1267. package/cjs/storage/index.js +6 -2
  1268. package/cjs/storage/index.js.map +1 -1
  1269. package/cjs/storage/provider.d.ts +10 -0
  1270. package/cjs/storage/provider.js +3 -0
  1271. package/cjs/storage/provider.js.map +1 -0
  1272. package/cjs/storage/providers/idb/driver.d.ts +18 -0
  1273. package/cjs/storage/providers/idb/driver.js +138 -0
  1274. package/cjs/storage/providers/idb/driver.js.map +1 -0
  1275. package/cjs/storage/providers/idb/idb.test.d.ts +1 -0
  1276. package/cjs/storage/providers/idb/idb.test.js +29 -0
  1277. package/cjs/storage/providers/idb/idb.test.js.map +1 -0
  1278. package/cjs/storage/providers/idb/index.d.ts +22 -0
  1279. package/cjs/storage/providers/idb/index.js +28 -0
  1280. package/cjs/storage/providers/idb/index.js.map +1 -0
  1281. package/cjs/storage/providers/idb/repository/auth-keys.d.ts +14 -0
  1282. package/cjs/storage/providers/idb/repository/auth-keys.js +70 -0
  1283. package/cjs/storage/providers/idb/repository/auth-keys.js.map +1 -0
  1284. package/cjs/storage/providers/idb/repository/kv.d.ts +11 -0
  1285. package/cjs/storage/providers/idb/repository/kv.js +34 -0
  1286. package/cjs/storage/providers/idb/repository/kv.js.map +1 -0
  1287. package/cjs/storage/providers/idb/repository/peers.d.ts +12 -0
  1288. package/cjs/storage/providers/idb/repository/peers.js +38 -0
  1289. package/cjs/storage/providers/idb/repository/peers.js.map +1 -0
  1290. package/cjs/storage/providers/idb/repository/ref-messages.d.ts +12 -0
  1291. package/cjs/storage/providers/idb/repository/ref-messages.js +57 -0
  1292. package/cjs/storage/providers/idb/repository/ref-messages.js.map +1 -0
  1293. package/cjs/storage/providers/idb/utils.d.ts +3 -0
  1294. package/cjs/storage/providers/idb/utils.js +27 -0
  1295. package/cjs/storage/providers/idb/utils.js.map +1 -0
  1296. package/cjs/storage/providers/memory/driver.d.ts +6 -0
  1297. package/cjs/storage/providers/memory/driver.js +17 -0
  1298. package/cjs/storage/providers/memory/driver.js.map +1 -0
  1299. package/cjs/storage/providers/memory/index.d.ts +22 -0
  1300. package/cjs/storage/providers/memory/index.js +28 -0
  1301. package/cjs/storage/providers/memory/index.js.map +1 -0
  1302. package/cjs/storage/providers/memory/memory.test.d.ts +1 -0
  1303. package/cjs/storage/providers/memory/memory.test.js +13 -0
  1304. package/cjs/storage/providers/memory/memory.test.js.map +1 -0
  1305. package/cjs/storage/providers/memory/repository/auth-keys.d.ts +19 -0
  1306. package/cjs/storage/providers/memory/repository/auth-keys.js +58 -0
  1307. package/cjs/storage/providers/memory/repository/auth-keys.js.map +1 -0
  1308. package/cjs/storage/providers/memory/repository/kv.d.ts +11 -0
  1309. package/cjs/storage/providers/memory/repository/kv.js +23 -0
  1310. package/cjs/storage/providers/memory/repository/kv.js.map +1 -0
  1311. package/cjs/storage/providers/memory/repository/peers.d.ts +18 -0
  1312. package/cjs/storage/providers/memory/repository/peers.js +55 -0
  1313. package/cjs/storage/providers/memory/repository/peers.js.map +1 -0
  1314. package/cjs/storage/providers/memory/repository/ref-messages.d.ts +16 -0
  1315. package/cjs/storage/providers/memory/repository/ref-messages.js +41 -0
  1316. package/cjs/storage/providers/memory/repository/ref-messages.js.map +1 -0
  1317. package/cjs/storage/repository/auth-keys.d.ts +41 -0
  1318. package/cjs/storage/repository/auth-keys.js +3 -0
  1319. package/cjs/storage/repository/auth-keys.js.map +1 -0
  1320. package/cjs/storage/repository/index.d.ts +2 -0
  1321. package/cjs/storage/repository/index.js +19 -0
  1322. package/cjs/storage/repository/index.js.map +1 -0
  1323. package/cjs/storage/repository/key-value.d.ts +10 -0
  1324. package/cjs/storage/repository/key-value.js +3 -0
  1325. package/cjs/storage/repository/key-value.js.map +1 -0
  1326. package/cjs/storage/service/auth-keys.d.ts +9 -0
  1327. package/cjs/storage/service/auth-keys.js +17 -0
  1328. package/cjs/storage/service/auth-keys.js.map +1 -0
  1329. package/cjs/storage/service/auth-keys.test.d.ts +1 -0
  1330. package/cjs/storage/service/auth-keys.test.js +22 -0
  1331. package/cjs/storage/service/auth-keys.test.js.map +1 -0
  1332. package/cjs/storage/service/base.d.ts +19 -0
  1333. package/cjs/storage/service/base.js +25 -0
  1334. package/cjs/storage/service/base.js.map +1 -0
  1335. package/cjs/storage/service/default-dcs.d.ts +10 -0
  1336. package/cjs/storage/service/default-dcs.js +55 -0
  1337. package/cjs/storage/service/default-dcs.js.map +1 -0
  1338. package/cjs/storage/service/future-salts.d.ts +11 -0
  1339. package/cjs/storage/service/future-salts.js +43 -0
  1340. package/cjs/storage/service/future-salts.js.map +1 -0
  1341. package/cjs/storage/service/updates.test.d.ts +1 -0
  1342. package/cjs/storage/service/updates.test.js +60 -0
  1343. package/cjs/storage/service/updates.test.js.map +1 -0
  1344. package/cjs/storage/service/utils.test-utils.d.ts +2 -0
  1345. package/cjs/storage/service/utils.test-utils.js +19 -0
  1346. package/cjs/storage/service/utils.test-utils.js.map +1 -0
  1347. package/cjs/storage/storage.d.ts +32 -0
  1348. package/cjs/storage/storage.js +62 -0
  1349. package/cjs/storage/storage.js.map +1 -0
  1350. package/cjs/types/utils.d.ts +4 -1
  1351. package/cjs/types/utils.js.map +1 -1
  1352. package/cjs/utils/crypto/abstract.d.ts +5 -5
  1353. package/cjs/utils/crypto/abstract.js.map +1 -1
  1354. package/cjs/utils/crypto/factorization.test.d.ts +1 -0
  1355. package/cjs/utils/crypto/factorization.test.js +19 -0
  1356. package/cjs/utils/crypto/factorization.test.js.map +1 -0
  1357. package/cjs/utils/crypto/node.d.ts +2 -2
  1358. package/cjs/utils/crypto/node.js.map +1 -1
  1359. package/cjs/utils/crypto/password.d.ts +1 -1
  1360. package/cjs/utils/crypto/password.js +2 -0
  1361. package/cjs/utils/crypto/password.js.map +1 -1
  1362. package/cjs/utils/dcs.d.ts +13 -0
  1363. package/cjs/utils/dcs.js +94 -0
  1364. package/cjs/utils/dcs.js.map +1 -0
  1365. package/cjs/utils/function-utils.d.ts +6 -0
  1366. package/cjs/utils/function-utils.js +28 -1
  1367. package/cjs/utils/function-utils.js.map +1 -1
  1368. package/cjs/utils/index.d.ts +2 -1
  1369. package/cjs/utils/index.js +2 -1
  1370. package/cjs/utils/index.js.map +1 -1
  1371. package/cjs/utils/logger.js +1 -1
  1372. package/cjs/utils/logger.js.map +1 -1
  1373. package/cjs/utils/peer-utils.d.ts +2 -8
  1374. package/cjs/utils/peer-utils.js +13 -40
  1375. package/cjs/utils/peer-utils.js.map +1 -1
  1376. package/cjs/utils/peer-utils.test.js +7 -19
  1377. package/cjs/utils/peer-utils.test.js.map +1 -1
  1378. package/cjs/utils/reloadable.d.ts +24 -0
  1379. package/cjs/utils/reloadable.js +62 -0
  1380. package/cjs/utils/reloadable.js.map +1 -0
  1381. package/cjs/utils/string-session.d.ts +4 -3
  1382. package/cjs/utils/string-session.js +4 -1
  1383. package/cjs/utils/string-session.js.map +1 -1
  1384. package/cjs/utils/string-session.test.js +33 -8
  1385. package/cjs/utils/string-session.test.js.map +1 -1
  1386. package/esm/highlevel/base.d.ts +111 -0
  1387. package/esm/highlevel/base.js +224 -0
  1388. package/esm/highlevel/base.js.map +1 -0
  1389. package/esm/highlevel/client.d.ts +4412 -0
  1390. package/esm/highlevel/client.js +1062 -0
  1391. package/esm/highlevel/client.js.map +1 -0
  1392. package/esm/highlevel/client.types.d.ts +38 -0
  1393. package/esm/highlevel/client.types.js +2 -0
  1394. package/esm/highlevel/client.types.js.map +1 -0
  1395. package/esm/highlevel/index.d.ts +6 -0
  1396. package/esm/highlevel/index.js +7 -0
  1397. package/esm/highlevel/index.js.map +1 -0
  1398. package/esm/highlevel/managers/app-config-manager.d.ts +12 -0
  1399. package/esm/highlevel/managers/app-config-manager.js +37 -0
  1400. package/esm/highlevel/managers/app-config-manager.js.map +1 -0
  1401. package/esm/highlevel/methods/_imports.d.ts +1 -0
  1402. package/esm/highlevel/methods/_imports.js +3 -0
  1403. package/esm/highlevel/methods/_imports.js.map +1 -0
  1404. package/esm/highlevel/methods/_init.d.ts +1 -0
  1405. package/esm/highlevel/methods/_init.js +65 -0
  1406. package/esm/highlevel/methods/_init.js.map +1 -0
  1407. package/esm/highlevel/methods/auth/check-password.d.ts +10 -0
  1408. package/esm/highlevel/methods/auth/check-password.js +18 -0
  1409. package/esm/highlevel/methods/auth/check-password.js.map +1 -0
  1410. package/esm/highlevel/methods/auth/get-password-hint.d.ts +7 -0
  1411. package/esm/highlevel/methods/auth/get-password-hint.js +13 -0
  1412. package/esm/highlevel/methods/auth/get-password-hint.js.map +1 -0
  1413. package/esm/highlevel/methods/auth/log-out.d.ts +10 -0
  1414. package/esm/highlevel/methods/auth/log-out.js +14 -0
  1415. package/esm/highlevel/methods/auth/log-out.js.map +1 -0
  1416. package/esm/highlevel/methods/auth/recover-password.d.ts +12 -0
  1417. package/esm/highlevel/methods/auth/recover-password.js +16 -0
  1418. package/esm/highlevel/methods/auth/recover-password.js.map +1 -0
  1419. package/esm/highlevel/methods/auth/resend-code.d.ts +14 -0
  1420. package/esm/highlevel/methods/auth/resend-code.js +20 -0
  1421. package/esm/highlevel/methods/auth/resend-code.js.map +1 -0
  1422. package/esm/highlevel/methods/auth/run.d.ts +15 -0
  1423. package/esm/highlevel/methods/auth/run.js +18 -0
  1424. package/esm/highlevel/methods/auth/run.js.map +1 -0
  1425. package/esm/highlevel/methods/auth/send-code.d.ts +11 -0
  1426. package/esm/highlevel/methods/auth/send-code.js +22 -0
  1427. package/esm/highlevel/methods/auth/send-code.js.map +1 -0
  1428. package/esm/highlevel/methods/auth/send-recovery-code.d.ts +7 -0
  1429. package/esm/highlevel/methods/auth/send-recovery-code.js +13 -0
  1430. package/esm/highlevel/methods/auth/send-recovery-code.js.map +1 -0
  1431. package/esm/highlevel/methods/auth/sign-in-bot.d.ts +10 -0
  1432. package/esm/highlevel/methods/auth/sign-in-bot.js +20 -0
  1433. package/esm/highlevel/methods/auth/sign-in-bot.js.map +1 -0
  1434. package/esm/highlevel/methods/auth/sign-in.d.ts +17 -0
  1435. package/esm/highlevel/methods/auth/sign-in.js +20 -0
  1436. package/esm/highlevel/methods/auth/sign-in.js.map +1 -0
  1437. package/esm/highlevel/methods/auth/start-test.d.ts +30 -0
  1438. package/esm/highlevel/methods/auth/start-test.js +62 -0
  1439. package/esm/highlevel/methods/auth/start-test.js.map +1 -0
  1440. package/esm/highlevel/methods/auth/start.d.ts +74 -0
  1441. package/esm/highlevel/methods/auth/start.js +132 -0
  1442. package/esm/highlevel/methods/auth/start.js.map +1 -0
  1443. package/esm/highlevel/methods/auth/utils.d.ts +6 -0
  1444. package/esm/highlevel/methods/auth/utils.js +28 -0
  1445. package/esm/highlevel/methods/auth/utils.js.map +1 -0
  1446. package/esm/highlevel/methods/bots/answer-callback-query.d.ts +41 -0
  1447. package/esm/highlevel/methods/bots/answer-callback-query.js +21 -0
  1448. package/esm/highlevel/methods/bots/answer-callback-query.js.map +1 -0
  1449. package/esm/highlevel/methods/bots/answer-inline-query.d.ts +88 -0
  1450. package/esm/highlevel/methods/bots/answer-inline-query.js +37 -0
  1451. package/esm/highlevel/methods/bots/answer-inline-query.js.map +1 -0
  1452. package/esm/highlevel/methods/bots/answer-pre-checkout-query.d.ts +12 -0
  1453. package/esm/highlevel/methods/bots/answer-pre-checkout-query.js +18 -0
  1454. package/esm/highlevel/methods/bots/answer-pre-checkout-query.js.map +1 -0
  1455. package/esm/highlevel/methods/bots/delete-my-commands.d.ts +22 -0
  1456. package/esm/highlevel/methods/bots/delete-my-commands.js +21 -0
  1457. package/esm/highlevel/methods/bots/delete-my-commands.js.map +1 -0
  1458. package/esm/highlevel/methods/bots/get-bot-info.d.ts +18 -0
  1459. package/esm/highlevel/methods/bots/get-bot-info.js +13 -0
  1460. package/esm/highlevel/methods/bots/get-bot-info.js.map +1 -0
  1461. package/esm/highlevel/methods/bots/get-bot-menu-button.d.ts +7 -0
  1462. package/esm/highlevel/methods/bots/get-bot-menu-button.js +11 -0
  1463. package/esm/highlevel/methods/bots/get-bot-menu-button.js.map +1 -0
  1464. package/esm/highlevel/methods/bots/get-callback-answer.d.ts +30 -0
  1465. package/esm/highlevel/methods/bots/get-callback-answer.js +27 -0
  1466. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -0
  1467. package/esm/highlevel/methods/bots/get-game-high-scores.d.ts +17 -0
  1468. package/esm/highlevel/methods/bots/get-game-high-scores.js +50 -0
  1469. package/esm/highlevel/methods/bots/get-game-high-scores.js.map +1 -0
  1470. package/esm/highlevel/methods/bots/get-my-commands.d.ts +21 -0
  1471. package/esm/highlevel/methods/bots/get-my-commands.js +19 -0
  1472. package/esm/highlevel/methods/bots/get-my-commands.js.map +1 -0
  1473. package/esm/highlevel/methods/bots/normalize-command-scope.d.ts +1 -0
  1474. package/esm/highlevel/methods/bots/normalize-command-scope.js +30 -0
  1475. package/esm/highlevel/methods/bots/normalize-command-scope.js.map +1 -0
  1476. package/esm/highlevel/methods/bots/set-bot-info.d.ts +23 -0
  1477. package/esm/highlevel/methods/bots/set-bot-info.js +18 -0
  1478. package/esm/highlevel/methods/bots/set-bot-info.js.map +1 -0
  1479. package/esm/highlevel/methods/bots/set-bot-menu-button.d.ts +7 -0
  1480. package/esm/highlevel/methods/bots/set-bot-menu-button.js +14 -0
  1481. package/esm/highlevel/methods/bots/set-bot-menu-button.js.map +1 -0
  1482. package/esm/highlevel/methods/bots/set-game-score.d.ts +54 -0
  1483. package/esm/highlevel/methods/bots/set-game-score.js +48 -0
  1484. package/esm/highlevel/methods/bots/set-game-score.js.map +1 -0
  1485. package/esm/highlevel/methods/bots/set-my-commands.d.ts +26 -0
  1486. package/esm/highlevel/methods/bots/set-my-commands.js +32 -0
  1487. package/esm/highlevel/methods/bots/set-my-commands.js.map +1 -0
  1488. package/esm/highlevel/methods/bots/set-my-default-rights.d.ts +11 -0
  1489. package/esm/highlevel/methods/bots/set-my-default-rights.js +16 -0
  1490. package/esm/highlevel/methods/bots/set-my-default-rights.js.map +1 -0
  1491. package/esm/highlevel/methods/chats/add-chat-members.d.ts +18 -0
  1492. package/esm/highlevel/methods/chats/add-chat-members.js +39 -0
  1493. package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -0
  1494. package/esm/highlevel/methods/chats/archive-chats.d.ts +9 -0
  1495. package/esm/highlevel/methods/chats/archive-chats.js +21 -0
  1496. package/esm/highlevel/methods/chats/archive-chats.js.map +1 -0
  1497. package/esm/highlevel/methods/chats/ban-chat-member.d.ts +23 -0
  1498. package/esm/highlevel/methods/chats/ban-chat-member.js +44 -0
  1499. package/esm/highlevel/methods/chats/ban-chat-member.js.map +1 -0
  1500. package/esm/highlevel/methods/chats/batched-queries.d.ts +1 -0
  1501. package/esm/highlevel/methods/chats/batched-queries.js +121 -0
  1502. package/esm/highlevel/methods/chats/batched-queries.js.map +1 -0
  1503. package/esm/highlevel/methods/chats/create-channel.d.ts +17 -0
  1504. package/esm/highlevel/methods/chats/create-channel.js +20 -0
  1505. package/esm/highlevel/methods/chats/create-channel.js.map +1 -0
  1506. package/esm/highlevel/methods/chats/create-group.d.ts +26 -0
  1507. package/esm/highlevel/methods/chats/create-group.js +26 -0
  1508. package/esm/highlevel/methods/chats/create-group.js.map +1 -0
  1509. package/esm/highlevel/methods/chats/create-supergroup.d.ts +27 -0
  1510. package/esm/highlevel/methods/chats/create-supergroup.js +22 -0
  1511. package/esm/highlevel/methods/chats/create-supergroup.js.map +1 -0
  1512. package/esm/highlevel/methods/chats/delete-channel.d.ts +8 -0
  1513. package/esm/highlevel/methods/chats/delete-channel.js +15 -0
  1514. package/esm/highlevel/methods/chats/delete-channel.js.map +1 -0
  1515. package/esm/highlevel/methods/chats/delete-chat-photo.d.ts +10 -0
  1516. package/esm/highlevel/methods/chats/delete-chat-photo.js +32 -0
  1517. package/esm/highlevel/methods/chats/delete-chat-photo.js.map +1 -0
  1518. package/esm/highlevel/methods/chats/delete-group.d.ts +8 -0
  1519. package/esm/highlevel/methods/chats/delete-group.js +27 -0
  1520. package/esm/highlevel/methods/chats/delete-group.js.map +1 -0
  1521. package/esm/highlevel/methods/chats/delete-history.d.ts +24 -0
  1522. package/esm/highlevel/methods/chats/delete-history.js +24 -0
  1523. package/esm/highlevel/methods/chats/delete-history.js.map +1 -0
  1524. package/esm/highlevel/methods/chats/delete-user-history.d.ts +11 -0
  1525. package/esm/highlevel/methods/chats/delete-user-history.js +17 -0
  1526. package/esm/highlevel/methods/chats/delete-user-history.js.map +1 -0
  1527. package/esm/highlevel/methods/chats/edit-admin-rights.d.ts +16 -0
  1528. package/esm/highlevel/methods/chats/edit-admin-rights.js +21 -0
  1529. package/esm/highlevel/methods/chats/edit-admin-rights.js.map +1 -0
  1530. package/esm/highlevel/methods/chats/get-chat-event-log.d.ts +61 -0
  1531. package/esm/highlevel/methods/chats/get-chat-event-log.js +48 -0
  1532. package/esm/highlevel/methods/chats/get-chat-event-log.js.map +1 -0
  1533. package/esm/highlevel/methods/chats/get-chat-member.d.ts +15 -0
  1534. package/esm/highlevel/methods/chats/get-chat-member.js +56 -0
  1535. package/esm/highlevel/methods/chats/get-chat-member.js.map +1 -0
  1536. package/esm/highlevel/methods/chats/get-chat-members.d.ts +51 -0
  1537. package/esm/highlevel/methods/chats/get-chat-members.js +80 -0
  1538. package/esm/highlevel/methods/chats/get-chat-members.js.map +1 -0
  1539. package/esm/highlevel/methods/chats/get-chat-preview.d.ts +12 -0
  1540. package/esm/highlevel/methods/chats/get-chat-preview.js +26 -0
  1541. package/esm/highlevel/methods/chats/get-chat-preview.js.map +1 -0
  1542. package/esm/highlevel/methods/chats/get-chat.d.ts +11 -0
  1543. package/esm/highlevel/methods/chats/get-chat.js +35 -0
  1544. package/esm/highlevel/methods/chats/get-chat.js.map +1 -0
  1545. package/esm/highlevel/methods/chats/get-full-chat.d.ts +11 -0
  1546. package/esm/highlevel/methods/chats/get-full-chat.js +53 -0
  1547. package/esm/highlevel/methods/chats/get-full-chat.js.map +1 -0
  1548. package/esm/highlevel/methods/chats/get-nearby-chats.d.ts +9 -0
  1549. package/esm/highlevel/methods/chats/get-nearby-chats.js +38 -0
  1550. package/esm/highlevel/methods/chats/get-nearby-chats.js.map +1 -0
  1551. package/esm/highlevel/methods/chats/get-similar-channels.d.ts +12 -0
  1552. package/esm/highlevel/methods/chats/get-similar-channels.js +27 -0
  1553. package/esm/highlevel/methods/chats/get-similar-channels.js.map +1 -0
  1554. package/esm/highlevel/methods/chats/iter-chat-event-log.d.ts +26 -0
  1555. package/esm/highlevel/methods/chats/iter-chat-event-log.js +50 -0
  1556. package/esm/highlevel/methods/chats/iter-chat-event-log.js.map +1 -0
  1557. package/esm/highlevel/methods/chats/iter-chat-members.d.ts +22 -0
  1558. package/esm/highlevel/methods/chats/iter-chat-members.js +49 -0
  1559. package/esm/highlevel/methods/chats/iter-chat-members.js.map +1 -0
  1560. package/esm/highlevel/methods/chats/join-chat.d.ts +14 -0
  1561. package/esm/highlevel/methods/chats/join-chat.js +37 -0
  1562. package/esm/highlevel/methods/chats/join-chat.js.map +1 -0
  1563. package/esm/highlevel/methods/chats/kick-chat-member.d.ts +15 -0
  1564. package/esm/highlevel/methods/chats/kick-chat-member.js +26 -0
  1565. package/esm/highlevel/methods/chats/kick-chat-member.js.map +1 -0
  1566. package/esm/highlevel/methods/chats/leave-chat.d.ts +13 -0
  1567. package/esm/highlevel/methods/chats/leave-chat.js +33 -0
  1568. package/esm/highlevel/methods/chats/leave-chat.js.map +1 -0
  1569. package/esm/highlevel/methods/chats/mark-chat-unread.d.ts +8 -0
  1570. package/esm/highlevel/methods/chats/mark-chat-unread.js +19 -0
  1571. package/esm/highlevel/methods/chats/mark-chat-unread.js.map +1 -0
  1572. package/esm/highlevel/methods/chats/open-chat.d.ts +21 -0
  1573. package/esm/highlevel/methods/chats/open-chat.js +38 -0
  1574. package/esm/highlevel/methods/chats/open-chat.js.map +1 -0
  1575. package/esm/highlevel/methods/chats/reorder-usernames.d.ts +8 -0
  1576. package/esm/highlevel/methods/chats/reorder-usernames.js +40 -0
  1577. package/esm/highlevel/methods/chats/reorder-usernames.js.map +1 -0
  1578. package/esm/highlevel/methods/chats/restrict-chat-member.d.ts +28 -0
  1579. package/esm/highlevel/methods/chats/restrict-chat-member.js +27 -0
  1580. package/esm/highlevel/methods/chats/restrict-chat-member.js.map +1 -0
  1581. package/esm/highlevel/methods/chats/save-draft.d.ts +10 -0
  1582. package/esm/highlevel/methods/chats/save-draft.js +25 -0
  1583. package/esm/highlevel/methods/chats/save-draft.js.map +1 -0
  1584. package/esm/highlevel/methods/chats/set-chat-color.d.ts +38 -0
  1585. package/esm/highlevel/methods/chats/set-chat-color.js +38 -0
  1586. package/esm/highlevel/methods/chats/set-chat-color.js.map +1 -0
  1587. package/esm/highlevel/methods/chats/set-chat-default-permissions.d.ts +16 -0
  1588. package/esm/highlevel/methods/chats/set-chat-default-permissions.js +31 -0
  1589. package/esm/highlevel/methods/chats/set-chat-default-permissions.js.map +1 -0
  1590. package/esm/highlevel/methods/chats/set-chat-description.d.ts +11 -0
  1591. package/esm/highlevel/methods/chats/set-chat-description.js +20 -0
  1592. package/esm/highlevel/methods/chats/set-chat-description.js.map +1 -0
  1593. package/esm/highlevel/methods/chats/set-chat-photo.d.ts +20 -0
  1594. package/esm/highlevel/methods/chats/set-chat-photo.js +86 -0
  1595. package/esm/highlevel/methods/chats/set-chat-photo.js.map +1 -0
  1596. package/esm/highlevel/methods/chats/set-chat-title.d.ts +11 -0
  1597. package/esm/highlevel/methods/chats/set-chat-title.js +33 -0
  1598. package/esm/highlevel/methods/chats/set-chat-title.js.map +1 -0
  1599. package/esm/highlevel/methods/chats/set-chat-ttl.d.ts +9 -0
  1600. package/esm/highlevel/methods/chats/set-chat-ttl.js +15 -0
  1601. package/esm/highlevel/methods/chats/set-chat-ttl.js.map +1 -0
  1602. package/esm/highlevel/methods/chats/set-chat-username.d.ts +11 -0
  1603. package/esm/highlevel/methods/chats/set-chat-username.js +19 -0
  1604. package/esm/highlevel/methods/chats/set-chat-username.js.map +1 -0
  1605. package/esm/highlevel/methods/chats/set-slow-mode.d.ts +12 -0
  1606. package/esm/highlevel/methods/chats/set-slow-mode.js +19 -0
  1607. package/esm/highlevel/methods/chats/set-slow-mode.js.map +1 -0
  1608. package/esm/highlevel/methods/chats/toggle-content-protection.d.ts +9 -0
  1609. package/esm/highlevel/methods/chats/toggle-content-protection.js +16 -0
  1610. package/esm/highlevel/methods/chats/toggle-content-protection.js.map +1 -0
  1611. package/esm/highlevel/methods/chats/toggle-fragment-username.d.ts +20 -0
  1612. package/esm/highlevel/methods/chats/toggle-fragment-username.js +45 -0
  1613. package/esm/highlevel/methods/chats/toggle-fragment-username.js.map +1 -0
  1614. package/esm/highlevel/methods/chats/toggle-join-requests.d.ts +12 -0
  1615. package/esm/highlevel/methods/chats/toggle-join-requests.js +19 -0
  1616. package/esm/highlevel/methods/chats/toggle-join-requests.js.map +1 -0
  1617. package/esm/highlevel/methods/chats/toggle-join-to-send.d.ts +12 -0
  1618. package/esm/highlevel/methods/chats/toggle-join-to-send.js +19 -0
  1619. package/esm/highlevel/methods/chats/toggle-join-to-send.js.map +1 -0
  1620. package/esm/highlevel/methods/chats/unarchive-chats.d.ts +9 -0
  1621. package/esm/highlevel/methods/chats/unarchive-chats.js +24 -0
  1622. package/esm/highlevel/methods/chats/unarchive-chats.js.map +1 -0
  1623. package/esm/highlevel/methods/chats/unban-chat-member.d.ts +16 -0
  1624. package/esm/highlevel/methods/chats/unban-chat-member.js +35 -0
  1625. package/esm/highlevel/methods/chats/unban-chat-member.js.map +1 -0
  1626. package/esm/highlevel/methods/contacts/add-contact.d.ts +28 -0
  1627. package/esm/highlevel/methods/contacts/add-contact.js +22 -0
  1628. package/esm/highlevel/methods/contacts/add-contact.js.map +1 -0
  1629. package/esm/highlevel/methods/contacts/delete-contacts.d.ts +12 -0
  1630. package/esm/highlevel/methods/contacts/delete-contacts.js +28 -0
  1631. package/esm/highlevel/methods/contacts/delete-contacts.js.map +1 -0
  1632. package/esm/highlevel/methods/contacts/get-contacts.d.ts +6 -0
  1633. package/esm/highlevel/methods/contacts/get-contacts.js +15 -0
  1634. package/esm/highlevel/methods/contacts/get-contacts.js.map +1 -0
  1635. package/esm/highlevel/methods/contacts/import-contacts.d.ts +9 -0
  1636. package/esm/highlevel/methods/contacts/import-contacts.js +19 -0
  1637. package/esm/highlevel/methods/contacts/import-contacts.js.map +1 -0
  1638. package/esm/highlevel/methods/dialogs/create-folder.d.ts +13 -0
  1639. package/esm/highlevel/methods/dialogs/create-folder.js +41 -0
  1640. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -0
  1641. package/esm/highlevel/methods/dialogs/delete-folder.d.ts +8 -0
  1642. package/esm/highlevel/methods/dialogs/delete-folder.js +14 -0
  1643. package/esm/highlevel/methods/dialogs/delete-folder.js.map +1 -0
  1644. package/esm/highlevel/methods/dialogs/edit-folder.d.ts +18 -0
  1645. package/esm/highlevel/methods/dialogs/edit-folder.js +35 -0
  1646. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -0
  1647. package/esm/highlevel/methods/dialogs/find-folder.d.ts +19 -0
  1648. package/esm/highlevel/methods/dialogs/find-folder.js +29 -0
  1649. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -0
  1650. package/esm/highlevel/methods/dialogs/get-folders.d.ts +6 -0
  1651. package/esm/highlevel/methods/dialogs/get-folders.js +27 -0
  1652. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -0
  1653. package/esm/highlevel/methods/dialogs/get-peer-dialogs.d.ts +10 -0
  1654. package/esm/highlevel/methods/dialogs/get-peer-dialogs.js +20 -0
  1655. package/esm/highlevel/methods/dialogs/get-peer-dialogs.js.map +1 -0
  1656. package/esm/highlevel/methods/dialogs/iter-dialogs.d.ts +103 -0
  1657. package/esm/highlevel/methods/dialogs/iter-dialogs.js +141 -0
  1658. package/esm/highlevel/methods/dialogs/iter-dialogs.js.map +1 -0
  1659. package/esm/highlevel/methods/dialogs/set-folders-order.d.ts +7 -0
  1660. package/esm/highlevel/methods/dialogs/set-folders-order.js +14 -0
  1661. package/esm/highlevel/methods/dialogs/set-folders-order.js.map +1 -0
  1662. package/esm/highlevel/methods/files/_platform.d.ts +1 -0
  1663. package/esm/highlevel/methods/files/_platform.js +26 -0
  1664. package/esm/highlevel/methods/files/_platform.js.map +1 -0
  1665. package/esm/highlevel/methods/files/_platform.web.d.ts +1 -0
  1666. package/esm/highlevel/methods/files/_platform.web.js +19 -0
  1667. package/esm/highlevel/methods/files/_platform.web.js.map +1 -0
  1668. package/esm/highlevel/methods/files/download-buffer.d.ts +11 -0
  1669. package/esm/highlevel/methods/files/download-buffer.js +22 -0
  1670. package/esm/highlevel/methods/files/download-buffer.js.map +1 -0
  1671. package/esm/highlevel/methods/files/download-file.d.ts +10 -0
  1672. package/esm/highlevel/methods/files/download-file.js +31 -0
  1673. package/esm/highlevel/methods/files/download-file.js.map +1 -0
  1674. package/esm/highlevel/methods/files/download-file.web.d.ts +1 -0
  1675. package/esm/highlevel/methods/files/download-file.web.js +5 -0
  1676. package/esm/highlevel/methods/files/download-file.web.js.map +1 -0
  1677. package/esm/highlevel/methods/files/download-iterable.d.ts +10 -0
  1678. package/esm/highlevel/methods/files/download-iterable.js +180 -0
  1679. package/esm/highlevel/methods/files/download-iterable.js.map +1 -0
  1680. package/esm/highlevel/methods/files/download-stream.d.ts +9 -0
  1681. package/esm/highlevel/methods/files/download-stream.js +34 -0
  1682. package/esm/highlevel/methods/files/download-stream.js.map +1 -0
  1683. package/esm/highlevel/methods/files/normalize-file-to-document.d.ts +1 -0
  1684. package/esm/highlevel/methods/files/normalize-file-to-document.js +19 -0
  1685. package/esm/highlevel/methods/files/normalize-file-to-document.js.map +1 -0
  1686. package/esm/highlevel/methods/files/normalize-input-file.d.ts +13 -0
  1687. package/esm/highlevel/methods/files/normalize-input-file.js +38 -0
  1688. package/esm/highlevel/methods/files/normalize-input-file.js.map +1 -0
  1689. package/esm/highlevel/methods/files/normalize-input-media.d.ts +11 -0
  1690. package/esm/highlevel/methods/files/normalize-input-media.js +359 -0
  1691. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -0
  1692. package/esm/highlevel/methods/files/upload-file.d.ts +67 -0
  1693. package/esm/highlevel/methods/files/upload-file.js +213 -0
  1694. package/esm/highlevel/methods/files/upload-file.js.map +1 -0
  1695. package/esm/highlevel/methods/files/upload-media.d.ts +28 -0
  1696. package/esm/highlevel/methods/files/upload-media.js +64 -0
  1697. package/esm/highlevel/methods/files/upload-media.js.map +1 -0
  1698. package/esm/highlevel/methods/forums/create-forum-topic.d.ts +36 -0
  1699. package/esm/highlevel/methods/forums/create-forum-topic.js +24 -0
  1700. package/esm/highlevel/methods/forums/create-forum-topic.js.map +1 -0
  1701. package/esm/highlevel/methods/forums/delete-forum-topic-history.d.ts +9 -0
  1702. package/esm/highlevel/methods/forums/delete-forum-topic-history.js +20 -0
  1703. package/esm/highlevel/methods/forums/delete-forum-topic-history.js.map +1 -0
  1704. package/esm/highlevel/methods/forums/edit-forum-topic.d.ts +34 -0
  1705. package/esm/highlevel/methods/forums/edit-forum-topic.js +24 -0
  1706. package/esm/highlevel/methods/forums/edit-forum-topic.js.map +1 -0
  1707. package/esm/highlevel/methods/forums/get-forum-topics-by-id.d.ts +9 -0
  1708. package/esm/highlevel/methods/forums/get-forum-topics-by-id.js +18 -0
  1709. package/esm/highlevel/methods/forums/get-forum-topics-by-id.js.map +1 -0
  1710. package/esm/highlevel/methods/forums/get-forum-topics.d.ts +28 -0
  1711. package/esm/highlevel/methods/forums/get-forum-topics.js +38 -0
  1712. package/esm/highlevel/methods/forums/get-forum-topics.js.map +1 -0
  1713. package/esm/highlevel/methods/forums/iter-forum-topics.d.ts +20 -0
  1714. package/esm/highlevel/methods/forums/iter-forum-topics.js +31 -0
  1715. package/esm/highlevel/methods/forums/iter-forum-topics.js.map +1 -0
  1716. package/esm/highlevel/methods/forums/reorder-pinned-forum-topics.d.ts +19 -0
  1717. package/esm/highlevel/methods/forums/reorder-pinned-forum-topics.js +16 -0
  1718. package/esm/highlevel/methods/forums/reorder-pinned-forum-topics.js.map +1 -0
  1719. package/esm/highlevel/methods/forums/toggle-forum-topic-closed.d.ts +22 -0
  1720. package/esm/highlevel/methods/forums/toggle-forum-topic-closed.js +20 -0
  1721. package/esm/highlevel/methods/forums/toggle-forum-topic-closed.js.map +1 -0
  1722. package/esm/highlevel/methods/forums/toggle-forum-topic-pinned.d.ts +15 -0
  1723. package/esm/highlevel/methods/forums/toggle-forum-topic-pinned.js +16 -0
  1724. package/esm/highlevel/methods/forums/toggle-forum-topic-pinned.js.map +1 -0
  1725. package/esm/highlevel/methods/forums/toggle-forum.d.ts +11 -0
  1726. package/esm/highlevel/methods/forums/toggle-forum.js +18 -0
  1727. package/esm/highlevel/methods/forums/toggle-forum.js.map +1 -0
  1728. package/esm/highlevel/methods/forums/toggle-general-topic-hidden.d.ts +20 -0
  1729. package/esm/highlevel/methods/forums/toggle-general-topic-hidden.js +20 -0
  1730. package/esm/highlevel/methods/forums/toggle-general-topic-hidden.js.map +1 -0
  1731. package/esm/highlevel/methods/invite-links/create-invite-link.d.ts +31 -0
  1732. package/esm/highlevel/methods/invite-links/create-invite-link.js +24 -0
  1733. package/esm/highlevel/methods/invite-links/create-invite-link.js.map +1 -0
  1734. package/esm/highlevel/methods/invite-links/edit-invite-link.d.ts +36 -0
  1735. package/esm/highlevel/methods/invite-links/edit-invite-link.js +28 -0
  1736. package/esm/highlevel/methods/invite-links/edit-invite-link.js.map +1 -0
  1737. package/esm/highlevel/methods/invite-links/export-invite-link.d.ts +12 -0
  1738. package/esm/highlevel/methods/invite-links/export-invite-link.js +20 -0
  1739. package/esm/highlevel/methods/invite-links/export-invite-link.js.map +1 -0
  1740. package/esm/highlevel/methods/invite-links/get-invite-link-members.d.ts +45 -0
  1741. package/esm/highlevel/methods/invite-links/get-invite-link-members.js +39 -0
  1742. package/esm/highlevel/methods/invite-links/get-invite-link-members.js.map +1 -0
  1743. package/esm/highlevel/methods/invite-links/get-invite-link.d.ts +9 -0
  1744. package/esm/highlevel/methods/invite-links/get-invite-link.js +18 -0
  1745. package/esm/highlevel/methods/invite-links/get-invite-link.js.map +1 -0
  1746. package/esm/highlevel/methods/invite-links/get-invite-links.d.ts +39 -0
  1747. package/esm/highlevel/methods/invite-links/get-invite-links.js +39 -0
  1748. package/esm/highlevel/methods/invite-links/get-invite-links.js.map +1 -0
  1749. package/esm/highlevel/methods/invite-links/get-primary-invite-link.d.ts +8 -0
  1750. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js +26 -0
  1751. package/esm/highlevel/methods/invite-links/get-primary-invite-link.js.map +1 -0
  1752. package/esm/highlevel/methods/invite-links/hide-all-join-requests.d.ts +13 -0
  1753. package/esm/highlevel/methods/invite-links/hide-all-join-requests.js +14 -0
  1754. package/esm/highlevel/methods/invite-links/hide-all-join-requests.js.map +1 -0
  1755. package/esm/highlevel/methods/invite-links/hide-join-request.d.ts +13 -0
  1756. package/esm/highlevel/methods/invite-links/hide-join-request.js +15 -0
  1757. package/esm/highlevel/methods/invite-links/hide-join-request.js.map +1 -0
  1758. package/esm/highlevel/methods/invite-links/iter-invite-link-members.d.ts +25 -0
  1759. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js +39 -0
  1760. package/esm/highlevel/methods/invite-links/iter-invite-link-members.js.map +1 -0
  1761. package/esm/highlevel/methods/invite-links/iter-invite-links.d.ts +27 -0
  1762. package/esm/highlevel/methods/invite-links/iter-invite-links.js +41 -0
  1763. package/esm/highlevel/methods/invite-links/iter-invite-links.js.map +1 -0
  1764. package/esm/highlevel/methods/invite-links/revoke-invite-link.d.ts +13 -0
  1765. package/esm/highlevel/methods/invite-links/revoke-invite-link.js +24 -0
  1766. package/esm/highlevel/methods/invite-links/revoke-invite-link.js.map +1 -0
  1767. package/esm/highlevel/methods/messages/close-poll.d.ts +15 -0
  1768. package/esm/highlevel/methods/messages/close-poll.js +40 -0
  1769. package/esm/highlevel/methods/messages/close-poll.js.map +1 -0
  1770. package/esm/highlevel/methods/messages/delete-messages.d.ts +24 -0
  1771. package/esm/highlevel/methods/messages/delete-messages.js +59 -0
  1772. package/esm/highlevel/methods/messages/delete-messages.js.map +1 -0
  1773. package/esm/highlevel/methods/messages/delete-scheduled-messages.d.ts +9 -0
  1774. package/esm/highlevel/methods/messages/delete-scheduled-messages.js +17 -0
  1775. package/esm/highlevel/methods/messages/delete-scheduled-messages.js.map +1 -0
  1776. package/esm/highlevel/methods/messages/edit-inline-message.d.ts +51 -0
  1777. package/esm/highlevel/methods/messages/edit-inline-message.js +53 -0
  1778. package/esm/highlevel/methods/messages/edit-inline-message.js.map +1 -0
  1779. package/esm/highlevel/methods/messages/edit-message.d.ts +54 -0
  1780. package/esm/highlevel/methods/messages/edit-message.js +42 -0
  1781. package/esm/highlevel/methods/messages/edit-message.js.map +1 -0
  1782. package/esm/highlevel/methods/messages/find-in-update.d.ts +1 -0
  1783. package/esm/highlevel/methods/messages/find-in-update.js +26 -0
  1784. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -0
  1785. package/esm/highlevel/methods/messages/forward-messages.d.ts +73 -0
  1786. package/esm/highlevel/methods/messages/forward-messages.js +67 -0
  1787. package/esm/highlevel/methods/messages/forward-messages.js.map +1 -0
  1788. package/esm/highlevel/methods/messages/get-callback-query-message.d.ts +14 -0
  1789. package/esm/highlevel/methods/messages/get-callback-query-message.js +52 -0
  1790. package/esm/highlevel/methods/messages/get-callback-query-message.js.map +1 -0
  1791. package/esm/highlevel/methods/messages/get-discussion-message.d.ts +17 -0
  1792. package/esm/highlevel/methods/messages/get-discussion-message.js +58 -0
  1793. package/esm/highlevel/methods/messages/get-discussion-message.js.map +1 -0
  1794. package/esm/highlevel/methods/messages/get-history.d.ts +61 -0
  1795. package/esm/highlevel/methods/messages/get-history.js +47 -0
  1796. package/esm/highlevel/methods/messages/get-history.js.map +1 -0
  1797. package/esm/highlevel/methods/messages/get-message-by-link.d.ts +6 -0
  1798. package/esm/highlevel/methods/messages/get-message-by-link.js +30 -0
  1799. package/esm/highlevel/methods/messages/get-message-by-link.js.map +1 -0
  1800. package/esm/highlevel/methods/messages/get-message-group.d.ts +9 -0
  1801. package/esm/highlevel/methods/messages/get-message-group.js +32 -0
  1802. package/esm/highlevel/methods/messages/get-message-group.js.map +1 -0
  1803. package/esm/highlevel/methods/messages/get-message-reactions.d.ts +28 -0
  1804. package/esm/highlevel/methods/messages/get-message-reactions.js +53 -0
  1805. package/esm/highlevel/methods/messages/get-message-reactions.js.map +1 -0
  1806. package/esm/highlevel/methods/messages/get-messages-unsafe.d.ts +19 -0
  1807. package/esm/highlevel/methods/messages/get-messages-unsafe.js +38 -0
  1808. package/esm/highlevel/methods/messages/get-messages-unsafe.js.map +1 -0
  1809. package/esm/highlevel/methods/messages/get-messages.d.ts +17 -0
  1810. package/esm/highlevel/methods/messages/get-messages.js +72 -0
  1811. package/esm/highlevel/methods/messages/get-messages.js.map +1 -0
  1812. package/esm/highlevel/methods/messages/get-reaction-users.d.ts +24 -0
  1813. package/esm/highlevel/methods/messages/get-reaction-users.js +25 -0
  1814. package/esm/highlevel/methods/messages/get-reaction-users.js.map +1 -0
  1815. package/esm/highlevel/methods/messages/get-reply-to.d.ts +10 -0
  1816. package/esm/highlevel/methods/messages/get-reply-to.js +21 -0
  1817. package/esm/highlevel/methods/messages/get-reply-to.js.map +1 -0
  1818. package/esm/highlevel/methods/messages/get-scheduled-messages.d.ts +13 -0
  1819. package/esm/highlevel/methods/messages/get-scheduled-messages.js +31 -0
  1820. package/esm/highlevel/methods/messages/get-scheduled-messages.js.map +1 -0
  1821. package/esm/highlevel/methods/messages/iter-history.d.ts +23 -0
  1822. package/esm/highlevel/methods/messages/iter-history.js +37 -0
  1823. package/esm/highlevel/methods/messages/iter-history.js.map +1 -0
  1824. package/esm/highlevel/methods/messages/iter-reaction-users.d.ts +26 -0
  1825. package/esm/highlevel/methods/messages/iter-reaction-users.js +36 -0
  1826. package/esm/highlevel/methods/messages/iter-reaction-users.js.map +1 -0
  1827. package/esm/highlevel/methods/messages/iter-search-global.d.ts +27 -0
  1828. package/esm/highlevel/methods/messages/iter-search-global.js +42 -0
  1829. package/esm/highlevel/methods/messages/iter-search-global.js.map +1 -0
  1830. package/esm/highlevel/methods/messages/iter-search-messages.d.ts +26 -0
  1831. package/esm/highlevel/methods/messages/iter-search-messages.js +51 -0
  1832. package/esm/highlevel/methods/messages/iter-search-messages.js.map +1 -0
  1833. package/esm/highlevel/methods/messages/pin-message.d.ts +21 -0
  1834. package/esm/highlevel/methods/messages/pin-message.js +24 -0
  1835. package/esm/highlevel/methods/messages/pin-message.js.map +1 -0
  1836. package/esm/highlevel/methods/messages/read-history.d.ts +19 -0
  1837. package/esm/highlevel/methods/messages/read-history.js +42 -0
  1838. package/esm/highlevel/methods/messages/read-history.js.map +1 -0
  1839. package/esm/highlevel/methods/messages/read-reactions.d.ts +8 -0
  1840. package/esm/highlevel/methods/messages/read-reactions.js +15 -0
  1841. package/esm/highlevel/methods/messages/read-reactions.js.map +1 -0
  1842. package/esm/highlevel/methods/messages/search-global.d.ts +47 -0
  1843. package/esm/highlevel/methods/messages/search-global.js +46 -0
  1844. package/esm/highlevel/methods/messages/search-global.js.map +1 -0
  1845. package/esm/highlevel/methods/messages/search-messages.d.ts +93 -0
  1846. package/esm/highlevel/methods/messages/search-messages.js +43 -0
  1847. package/esm/highlevel/methods/messages/search-messages.js.map +1 -0
  1848. package/esm/highlevel/methods/messages/send-answer.d.ts +12 -0
  1849. package/esm/highlevel/methods/messages/send-answer.js +31 -0
  1850. package/esm/highlevel/methods/messages/send-answer.js.map +1 -0
  1851. package/esm/highlevel/methods/messages/send-comment.d.ts +39 -0
  1852. package/esm/highlevel/methods/messages/send-comment.js +69 -0
  1853. package/esm/highlevel/methods/messages/send-comment.js.map +1 -0
  1854. package/esm/highlevel/methods/messages/send-common.d.ts +83 -0
  1855. package/esm/highlevel/methods/messages/send-common.js +64 -0
  1856. package/esm/highlevel/methods/messages/send-common.js.map +1 -0
  1857. package/esm/highlevel/methods/messages/send-copy-group.d.ts +21 -0
  1858. package/esm/highlevel/methods/messages/send-copy-group.js +37 -0
  1859. package/esm/highlevel/methods/messages/send-copy-group.js.map +1 -0
  1860. package/esm/highlevel/methods/messages/send-copy.d.ts +32 -0
  1861. package/esm/highlevel/methods/messages/send-copy.js +53 -0
  1862. package/esm/highlevel/methods/messages/send-copy.js.map +1 -0
  1863. package/esm/highlevel/methods/messages/send-media-group.d.ts +35 -0
  1864. package/esm/highlevel/methods/messages/send-media-group.js +72 -0
  1865. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -0
  1866. package/esm/highlevel/methods/messages/send-media.d.ts +48 -0
  1867. package/esm/highlevel/methods/messages/send-media.js +54 -0
  1868. package/esm/highlevel/methods/messages/send-media.js.map +1 -0
  1869. package/esm/highlevel/methods/messages/send-quote.d.ts +33 -0
  1870. package/esm/highlevel/methods/messages/send-quote.js +60 -0
  1871. package/esm/highlevel/methods/messages/send-quote.js.map +1 -0
  1872. package/esm/highlevel/methods/messages/send-reaction.d.ts +21 -0
  1873. package/esm/highlevel/methods/messages/send-reaction.js +35 -0
  1874. package/esm/highlevel/methods/messages/send-reaction.js.map +1 -0
  1875. package/esm/highlevel/methods/messages/send-reply.d.ts +12 -0
  1876. package/esm/highlevel/methods/messages/send-reply.js +22 -0
  1877. package/esm/highlevel/methods/messages/send-reply.js.map +1 -0
  1878. package/esm/highlevel/methods/messages/send-scheduled.d.ts +14 -0
  1879. package/esm/highlevel/methods/messages/send-scheduled.js +30 -0
  1880. package/esm/highlevel/methods/messages/send-scheduled.js.map +1 -0
  1881. package/esm/highlevel/methods/messages/send-text.d.ts +31 -0
  1882. package/esm/highlevel/methods/messages/send-text.js +91 -0
  1883. package/esm/highlevel/methods/messages/send-text.js.map +1 -0
  1884. package/esm/highlevel/methods/messages/send-text.test.d.ts +1 -0
  1885. package/esm/highlevel/methods/messages/send-text.test.js +135 -0
  1886. package/esm/highlevel/methods/messages/send-text.test.js.map +1 -0
  1887. package/esm/highlevel/methods/messages/send-typing.d.ts +25 -0
  1888. package/esm/highlevel/methods/messages/send-typing.js +80 -0
  1889. package/esm/highlevel/methods/messages/send-typing.js.map +1 -0
  1890. package/esm/highlevel/methods/messages/send-vote.d.ts +15 -0
  1891. package/esm/highlevel/methods/messages/send-vote.js +52 -0
  1892. package/esm/highlevel/methods/messages/send-vote.js.map +1 -0
  1893. package/esm/highlevel/methods/messages/translate-message.d.ts +11 -0
  1894. package/esm/highlevel/methods/messages/translate-message.js +22 -0
  1895. package/esm/highlevel/methods/messages/translate-message.js.map +1 -0
  1896. package/esm/highlevel/methods/messages/translate-text.d.ts +9 -0
  1897. package/esm/highlevel/methods/messages/translate-text.js +30 -0
  1898. package/esm/highlevel/methods/messages/translate-text.js.map +1 -0
  1899. package/esm/highlevel/methods/messages/unpin-all-messages.d.ts +13 -0
  1900. package/esm/highlevel/methods/messages/unpin-all-messages.js +24 -0
  1901. package/esm/highlevel/methods/messages/unpin-all-messages.js.map +1 -0
  1902. package/esm/highlevel/methods/messages/unpin-message.d.ts +12 -0
  1903. package/esm/highlevel/methods/messages/unpin-message.js +22 -0
  1904. package/esm/highlevel/methods/messages/unpin-message.js.map +1 -0
  1905. package/esm/highlevel/methods/misc/chain-id.d.ts +1 -0
  1906. package/esm/highlevel/methods/misc/chain-id.js +7 -0
  1907. package/esm/highlevel/methods/misc/chain-id.js.map +1 -0
  1908. package/esm/highlevel/methods/misc/init-takeout-session.d.ts +9 -0
  1909. package/esm/highlevel/methods/misc/init-takeout-session.js +13 -0
  1910. package/esm/highlevel/methods/misc/init-takeout-session.js.map +1 -0
  1911. package/esm/highlevel/methods/misc/normalize-privacy-rules.d.ts +8 -0
  1912. package/esm/highlevel/methods/misc/normalize-privacy-rules.js +39 -0
  1913. package/esm/highlevel/methods/misc/normalize-privacy-rules.js.map +1 -0
  1914. package/esm/highlevel/methods/misc/normalize-text.d.ts +1 -0
  1915. package/esm/highlevel/methods/misc/normalize-text.js +30 -0
  1916. package/esm/highlevel/methods/misc/normalize-text.js.map +1 -0
  1917. package/esm/highlevel/methods/password/change-cloud-password.d.ts +12 -0
  1918. package/esm/highlevel/methods/password/change-cloud-password.js +25 -0
  1919. package/esm/highlevel/methods/password/change-cloud-password.js.map +1 -0
  1920. package/esm/highlevel/methods/password/enable-cloud-password.d.ts +17 -0
  1921. package/esm/highlevel/methods/password/enable-cloud-password.js +32 -0
  1922. package/esm/highlevel/methods/password/enable-cloud-password.js.map +1 -0
  1923. package/esm/highlevel/methods/password/password-email.d.ts +15 -0
  1924. package/esm/highlevel/methods/password/password-email.js +32 -0
  1925. package/esm/highlevel/methods/password/password-email.js.map +1 -0
  1926. package/esm/highlevel/methods/password/remove-cloud-password.d.ts +7 -0
  1927. package/esm/highlevel/methods/password/remove-cloud-password.js +24 -0
  1928. package/esm/highlevel/methods/password/remove-cloud-password.js.map +1 -0
  1929. package/esm/highlevel/methods/premium/apply-boost.d.ts +8 -0
  1930. package/esm/highlevel/methods/premium/apply-boost.js +13 -0
  1931. package/esm/highlevel/methods/premium/apply-boost.js.map +1 -0
  1932. package/esm/highlevel/methods/premium/can-apply-boost.d.ts +29 -0
  1933. package/esm/highlevel/methods/premium/can-apply-boost.js +29 -0
  1934. package/esm/highlevel/methods/premium/can-apply-boost.js.map +1 -0
  1935. package/esm/highlevel/methods/premium/get-boost-stats.d.ts +9 -0
  1936. package/esm/highlevel/methods/premium/get-boost-stats.js +16 -0
  1937. package/esm/highlevel/methods/premium/get-boost-stats.js.map +1 -0
  1938. package/esm/highlevel/methods/premium/get-boosts.d.ts +18 -0
  1939. package/esm/highlevel/methods/premium/get-boosts.js +19 -0
  1940. package/esm/highlevel/methods/premium/get-boosts.js.map +1 -0
  1941. package/esm/highlevel/methods/premium/get-my-boost-slots.d.ts +9 -0
  1942. package/esm/highlevel/methods/premium/get-my-boost-slots.js +16 -0
  1943. package/esm/highlevel/methods/premium/get-my-boost-slots.js.map +1 -0
  1944. package/esm/highlevel/methods/premium/iter-boosters.d.ts +26 -0
  1945. package/esm/highlevel/methods/premium/iter-boosters.js +32 -0
  1946. package/esm/highlevel/methods/premium/iter-boosters.js.map +1 -0
  1947. package/esm/highlevel/methods/stickers/add-sticker-to-set.d.ts +22 -0
  1948. package/esm/highlevel/methods/stickers/add-sticker-to-set.js +35 -0
  1949. package/esm/highlevel/methods/stickers/add-sticker-to-set.js.map +1 -0
  1950. package/esm/highlevel/methods/stickers/create-sticker-set.d.ts +75 -0
  1951. package/esm/highlevel/methods/stickers/create-sticker-set.js +52 -0
  1952. package/esm/highlevel/methods/stickers/create-sticker-set.js.map +1 -0
  1953. package/esm/highlevel/methods/stickers/delete-sticker-from-set.d.ts +16 -0
  1954. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js +25 -0
  1955. package/esm/highlevel/methods/stickers/delete-sticker-from-set.js.map +1 -0
  1956. package/esm/highlevel/methods/stickers/get-custom-emojis.d.ts +14 -0
  1957. package/esm/highlevel/methods/stickers/get-custom-emojis.js +45 -0
  1958. package/esm/highlevel/methods/stickers/get-custom-emojis.js.map +1 -0
  1959. package/esm/highlevel/methods/stickers/get-installed-stickers.d.ts +11 -0
  1960. package/esm/highlevel/methods/stickers/get-installed-stickers.js +20 -0
  1961. package/esm/highlevel/methods/stickers/get-installed-stickers.js.map +1 -0
  1962. package/esm/highlevel/methods/stickers/get-sticker-set.d.ts +8 -0
  1963. package/esm/highlevel/methods/stickers/get-sticker-set.js +15 -0
  1964. package/esm/highlevel/methods/stickers/get-sticker-set.js.map +1 -0
  1965. package/esm/highlevel/methods/stickers/move-sticker-in-set.d.ts +18 -0
  1966. package/esm/highlevel/methods/stickers/move-sticker-in-set.js +28 -0
  1967. package/esm/highlevel/methods/stickers/move-sticker-in-set.js.map +1 -0
  1968. package/esm/highlevel/methods/stickers/set-chat-sticker-set.d.ts +11 -0
  1969. package/esm/highlevel/methods/stickers/set-chat-sticker-set.js +20 -0
  1970. package/esm/highlevel/methods/stickers/set-chat-sticker-set.js.map +1 -0
  1971. package/esm/highlevel/methods/stickers/set-sticker-set-thumb.d.ts +20 -0
  1972. package/esm/highlevel/methods/stickers/set-sticker-set-thumb.js +19 -0
  1973. package/esm/highlevel/methods/stickers/set-sticker-set-thumb.js.map +1 -0
  1974. package/esm/highlevel/methods/stories/can-send-story.d.ts +13 -0
  1975. package/esm/highlevel/methods/stories/can-send-story.js +32 -0
  1976. package/esm/highlevel/methods/stories/can-send-story.js.map +1 -0
  1977. package/esm/highlevel/methods/stories/delete-stories.d.ts +20 -0
  1978. package/esm/highlevel/methods/stories/delete-stories.js +15 -0
  1979. package/esm/highlevel/methods/stories/delete-stories.js.map +1 -0
  1980. package/esm/highlevel/methods/stories/edit-story.d.ts +38 -0
  1981. package/esm/highlevel/methods/stories/edit-story.js +40 -0
  1982. package/esm/highlevel/methods/stories/edit-story.js.map +1 -0
  1983. package/esm/highlevel/methods/stories/find-in-update.d.ts +1 -0
  1984. package/esm/highlevel/methods/stories/find-in-update.js +17 -0
  1985. package/esm/highlevel/methods/stories/find-in-update.js.map +1 -0
  1986. package/esm/highlevel/methods/stories/get-all-stories.d.ts +15 -0
  1987. package/esm/highlevel/methods/stories/get-all-stories.js +19 -0
  1988. package/esm/highlevel/methods/stories/get-all-stories.js.map +1 -0
  1989. package/esm/highlevel/methods/stories/get-peer-stories.d.ts +8 -0
  1990. package/esm/highlevel/methods/stories/get-peer-stories.js +16 -0
  1991. package/esm/highlevel/methods/stories/get-peer-stories.js.map +1 -0
  1992. package/esm/highlevel/methods/stories/get-profile-stories.d.ts +25 -0
  1993. package/esm/highlevel/methods/stories/get-profile-stories.js +27 -0
  1994. package/esm/highlevel/methods/stories/get-profile-stories.js.map +1 -0
  1995. package/esm/highlevel/methods/stories/get-stories-by-id.d.ts +10 -0
  1996. package/esm/highlevel/methods/stories/get-stories-by-id.js +25 -0
  1997. package/esm/highlevel/methods/stories/get-stories-by-id.js.map +1 -0
  1998. package/esm/highlevel/methods/stories/get-stories-interactions.d.ts +9 -0
  1999. package/esm/highlevel/methods/stories/get-stories-interactions.js +20 -0
  2000. package/esm/highlevel/methods/stories/get-stories-interactions.js.map +1 -0
  2001. package/esm/highlevel/methods/stories/get-story-link.d.ts +11 -0
  2002. package/esm/highlevel/methods/stories/get-story-link.js +19 -0
  2003. package/esm/highlevel/methods/stories/get-story-link.js.map +1 -0
  2004. package/esm/highlevel/methods/stories/get-story-viewers.d.ts +33 -0
  2005. package/esm/highlevel/methods/stories/get-story-viewers.js +22 -0
  2006. package/esm/highlevel/methods/stories/get-story-viewers.js.map +1 -0
  2007. package/esm/highlevel/methods/stories/hide-my-stories-views.d.ts +21 -0
  2008. package/esm/highlevel/methods/stories/hide-my-stories-views.js +25 -0
  2009. package/esm/highlevel/methods/stories/hide-my-stories-views.js.map +1 -0
  2010. package/esm/highlevel/methods/stories/increment-stories-views.d.ts +13 -0
  2011. package/esm/highlevel/methods/stories/increment-stories-views.js +20 -0
  2012. package/esm/highlevel/methods/stories/increment-stories-views.js.map +1 -0
  2013. package/esm/highlevel/methods/stories/iter-all-stories.d.ts +16 -0
  2014. package/esm/highlevel/methods/stories/iter-all-stories.js +28 -0
  2015. package/esm/highlevel/methods/stories/iter-all-stories.js.map +1 -0
  2016. package/esm/highlevel/methods/stories/iter-profile-stories.d.ts +21 -0
  2017. package/esm/highlevel/methods/stories/iter-profile-stories.js +29 -0
  2018. package/esm/highlevel/methods/stories/iter-profile-stories.js.map +1 -0
  2019. package/esm/highlevel/methods/stories/iter-story-viewers.d.ts +22 -0
  2020. package/esm/highlevel/methods/stories/iter-story-viewers.js +32 -0
  2021. package/esm/highlevel/methods/stories/iter-story-viewers.js.map +1 -0
  2022. package/esm/highlevel/methods/stories/read-stories.d.ts +11 -0
  2023. package/esm/highlevel/methods/stories/read-stories.js +17 -0
  2024. package/esm/highlevel/methods/stories/read-stories.js.map +1 -0
  2025. package/esm/highlevel/methods/stories/report-story.d.ts +19 -0
  2026. package/esm/highlevel/methods/stories/report-story.js +17 -0
  2027. package/esm/highlevel/methods/stories/report-story.js.map +1 -0
  2028. package/esm/highlevel/methods/stories/send-story-reaction.d.ts +14 -0
  2029. package/esm/highlevel/methods/stories/send-story-reaction.js +17 -0
  2030. package/esm/highlevel/methods/stories/send-story-reaction.js.map +1 -0
  2031. package/esm/highlevel/methods/stories/send-story.d.ts +51 -0
  2032. package/esm/highlevel/methods/stories/send-story.js +44 -0
  2033. package/esm/highlevel/methods/stories/send-story.js.map +1 -0
  2034. package/esm/highlevel/methods/stories/toggle-peer-stories-archived.d.ts +8 -0
  2035. package/esm/highlevel/methods/stories/toggle-peer-stories-archived.js +16 -0
  2036. package/esm/highlevel/methods/stories/toggle-peer-stories-archived.js.map +1 -0
  2037. package/esm/highlevel/methods/stories/toggle-stories-pinned.d.ts +24 -0
  2038. package/esm/highlevel/methods/stories/toggle-stories-pinned.js +16 -0
  2039. package/esm/highlevel/methods/stories/toggle-stories-pinned.js.map +1 -0
  2040. package/esm/highlevel/methods/users/block-user.d.ts +8 -0
  2041. package/esm/highlevel/methods/users/block-user.js +15 -0
  2042. package/esm/highlevel/methods/users/block-user.js.map +1 -0
  2043. package/esm/highlevel/methods/users/delete-profile-photos.d.ts +9 -0
  2044. package/esm/highlevel/methods/users/delete-profile-photos.js +21 -0
  2045. package/esm/highlevel/methods/users/delete-profile-photos.js.map +1 -0
  2046. package/esm/highlevel/methods/users/edit-close-friends.d.ts +14 -0
  2047. package/esm/highlevel/methods/users/edit-close-friends.js +32 -0
  2048. package/esm/highlevel/methods/users/edit-close-friends.js.map +1 -0
  2049. package/esm/highlevel/methods/users/get-common-chats.d.ts +9 -0
  2050. package/esm/highlevel/methods/users/get-common-chats.js +19 -0
  2051. package/esm/highlevel/methods/users/get-common-chats.js.map +1 -0
  2052. package/esm/highlevel/methods/users/get-global-ttl.d.ts +5 -0
  2053. package/esm/highlevel/methods/users/get-global-ttl.js +11 -0
  2054. package/esm/highlevel/methods/users/get-global-ttl.js.map +1 -0
  2055. package/esm/highlevel/methods/users/get-me.d.ts +6 -0
  2056. package/esm/highlevel/methods/users/get-me.js +22 -0
  2057. package/esm/highlevel/methods/users/get-me.js.map +1 -0
  2058. package/esm/highlevel/methods/users/get-my-username.d.ts +8 -0
  2059. package/esm/highlevel/methods/users/get-my-username.js +10 -0
  2060. package/esm/highlevel/methods/users/get-my-username.js.map +1 -0
  2061. package/esm/highlevel/methods/users/get-profile-photo.d.ts +11 -0
  2062. package/esm/highlevel/methods/users/get-profile-photo.js +23 -0
  2063. package/esm/highlevel/methods/users/get-profile-photo.js.map +1 -0
  2064. package/esm/highlevel/methods/users/get-profile-photos.d.ts +22 -0
  2065. package/esm/highlevel/methods/users/get-profile-photos.js +28 -0
  2066. package/esm/highlevel/methods/users/get-profile-photos.js.map +1 -0
  2067. package/esm/highlevel/methods/users/get-users.d.ts +12 -0
  2068. package/esm/highlevel/methods/users/get-users.js +25 -0
  2069. package/esm/highlevel/methods/users/get-users.js.map +1 -0
  2070. package/esm/highlevel/methods/users/get-users.test.d.ts +1 -0
  2071. package/esm/highlevel/methods/users/get-users.test.js +28 -0
  2072. package/esm/highlevel/methods/users/get-users.test.js.map +1 -0
  2073. package/esm/highlevel/methods/users/iter-profile-photos.d.ts +23 -0
  2074. package/esm/highlevel/methods/users/iter-profile-photos.js +31 -0
  2075. package/esm/highlevel/methods/users/iter-profile-photos.js.map +1 -0
  2076. package/esm/highlevel/methods/users/resolve-peer-many.d.ts +22 -0
  2077. package/esm/highlevel/methods/users/resolve-peer-many.js +66 -0
  2078. package/esm/highlevel/methods/users/resolve-peer-many.js.map +1 -0
  2079. package/esm/highlevel/methods/users/resolve-peer.d.ts +19 -0
  2080. package/esm/highlevel/methods/users/resolve-peer.js +154 -0
  2081. package/esm/highlevel/methods/users/resolve-peer.js.map +1 -0
  2082. package/esm/highlevel/methods/users/resolve-peer.test.d.ts +1 -0
  2083. package/esm/highlevel/methods/users/resolve-peer.test.js +302 -0
  2084. package/esm/highlevel/methods/users/resolve-peer.test.js.map +1 -0
  2085. package/esm/highlevel/methods/users/set-global-ttl.d.ts +8 -0
  2086. package/esm/highlevel/methods/users/set-global-ttl.js +15 -0
  2087. package/esm/highlevel/methods/users/set-global-ttl.js.map +1 -0
  2088. package/esm/highlevel/methods/users/set-my-emoji-status.d.ts +13 -0
  2089. package/esm/highlevel/methods/users/set-my-emoji-status.js +33 -0
  2090. package/esm/highlevel/methods/users/set-my-emoji-status.js.map +1 -0
  2091. package/esm/highlevel/methods/users/set-my-profile-photo.d.ts +16 -0
  2092. package/esm/highlevel/methods/users/set-my-profile-photo.js +38 -0
  2093. package/esm/highlevel/methods/users/set-my-profile-photo.js.map +1 -0
  2094. package/esm/highlevel/methods/users/set-my-username.d.ts +11 -0
  2095. package/esm/highlevel/methods/users/set-my-username.js +20 -0
  2096. package/esm/highlevel/methods/users/set-my-username.js.map +1 -0
  2097. package/esm/highlevel/methods/users/set-offline.d.ts +7 -0
  2098. package/esm/highlevel/methods/users/set-offline.js +14 -0
  2099. package/esm/highlevel/methods/users/set-offline.js.map +1 -0
  2100. package/esm/highlevel/methods/users/unblock-user.d.ts +8 -0
  2101. package/esm/highlevel/methods/users/unblock-user.js +15 -0
  2102. package/esm/highlevel/methods/users/unblock-user.js.map +1 -0
  2103. package/esm/highlevel/methods/users/update-profile.d.ts +23 -0
  2104. package/esm/highlevel/methods/users/update-profile.js +18 -0
  2105. package/esm/highlevel/methods/users/update-profile.js.map +1 -0
  2106. package/esm/highlevel/storage/index.d.ts +4 -0
  2107. package/esm/highlevel/storage/index.js +5 -0
  2108. package/esm/highlevel/storage/index.js.map +1 -0
  2109. package/esm/highlevel/storage/provider.d.ts +7 -0
  2110. package/esm/highlevel/storage/provider.js +2 -0
  2111. package/esm/highlevel/storage/provider.js.map +1 -0
  2112. package/esm/highlevel/storage/repository/peers.d.ts +32 -0
  2113. package/esm/highlevel/storage/repository/peers.js +2 -0
  2114. package/esm/highlevel/storage/repository/peers.js.map +1 -0
  2115. package/esm/highlevel/storage/repository/ref-messages.d.ts +20 -0
  2116. package/esm/highlevel/storage/repository/ref-messages.js +2 -0
  2117. package/esm/highlevel/storage/repository/ref-messages.js.map +1 -0
  2118. package/esm/highlevel/storage/service/current-user.d.ts +23 -0
  2119. package/esm/highlevel/storage/service/current-user.js +125 -0
  2120. package/esm/highlevel/storage/service/current-user.js.map +1 -0
  2121. package/esm/highlevel/storage/service/peers.d.ts +23 -0
  2122. package/esm/highlevel/storage/service/peers.js +210 -0
  2123. package/esm/highlevel/storage/service/peers.js.map +1 -0
  2124. package/esm/highlevel/storage/service/ref-messages.d.ts +15 -0
  2125. package/esm/highlevel/storage/service/ref-messages.js +36 -0
  2126. package/esm/highlevel/storage/service/ref-messages.js.map +1 -0
  2127. package/esm/highlevel/storage/service/updates.d.ts +16 -0
  2128. package/esm/highlevel/storage/service/updates.js +68 -0
  2129. package/esm/highlevel/storage/service/updates.js.map +1 -0
  2130. package/esm/highlevel/storage/storage.d.ts +22 -0
  2131. package/esm/highlevel/storage/storage.js +21 -0
  2132. package/esm/highlevel/storage/storage.js.map +1 -0
  2133. package/esm/highlevel/types/auth/index.d.ts +1 -0
  2134. package/esm/highlevel/types/auth/index.js +2 -0
  2135. package/esm/highlevel/types/auth/index.js.map +1 -0
  2136. package/esm/highlevel/types/auth/sent-code.d.ts +51 -0
  2137. package/esm/highlevel/types/auth/sent-code.js +61 -0
  2138. package/esm/highlevel/types/auth/sent-code.js.map +1 -0
  2139. package/esm/highlevel/types/bots/command-scope.d.ts +63 -0
  2140. package/esm/highlevel/types/bots/command-scope.js +84 -0
  2141. package/esm/highlevel/types/bots/command-scope.js.map +1 -0
  2142. package/esm/highlevel/types/bots/game-high-score.d.ts +23 -0
  2143. package/esm/highlevel/types/bots/game-high-score.js +33 -0
  2144. package/esm/highlevel/types/bots/game-high-score.js.map +1 -0
  2145. package/esm/highlevel/types/bots/index.d.ts +5 -0
  2146. package/esm/highlevel/types/bots/index.js +6 -0
  2147. package/esm/highlevel/types/bots/index.js.map +1 -0
  2148. package/esm/highlevel/types/bots/input/index.d.ts +2 -0
  2149. package/esm/highlevel/types/bots/input/index.js +3 -0
  2150. package/esm/highlevel/types/bots/input/index.js.map +1 -0
  2151. package/esm/highlevel/types/bots/input/input-inline-message.d.ts +157 -0
  2152. package/esm/highlevel/types/bots/input/input-inline-message.js +176 -0
  2153. package/esm/highlevel/types/bots/input/input-inline-message.js.map +1 -0
  2154. package/esm/highlevel/types/bots/input/input-inline-result.d.ts +511 -0
  2155. package/esm/highlevel/types/bots/input/input-inline-result.js +487 -0
  2156. package/esm/highlevel/types/bots/input/input-inline-result.js.map +1 -0
  2157. package/esm/highlevel/types/bots/keyboard-builder.d.ts +38 -0
  2158. package/esm/highlevel/types/bots/keyboard-builder.js +89 -0
  2159. package/esm/highlevel/types/bots/keyboard-builder.js.map +1 -0
  2160. package/esm/highlevel/types/bots/keyboard-builder.test.d.ts +1 -0
  2161. package/esm/highlevel/types/bots/keyboard-builder.test.js +160 -0
  2162. package/esm/highlevel/types/bots/keyboard-builder.test.js.map +1 -0
  2163. package/esm/highlevel/types/bots/keyboards.d.ts +239 -0
  2164. package/esm/highlevel/types/bots/keyboards.js +377 -0
  2165. package/esm/highlevel/types/bots/keyboards.js.map +1 -0
  2166. package/esm/highlevel/types/bots/keyboards.test.d.ts +1 -0
  2167. package/esm/highlevel/types/bots/keyboards.test.js +144 -0
  2168. package/esm/highlevel/types/bots/keyboards.test.js.map +1 -0
  2169. package/esm/highlevel/types/calls/discard-reason.d.ts +8 -0
  2170. package/esm/highlevel/types/calls/discard-reason.js +32 -0
  2171. package/esm/highlevel/types/calls/discard-reason.js.map +1 -0
  2172. package/esm/highlevel/types/calls/index.d.ts +1 -0
  2173. package/esm/highlevel/types/calls/index.js +2 -0
  2174. package/esm/highlevel/types/calls/index.js.map +1 -0
  2175. package/esm/highlevel/types/conversation.d.ts +210 -0
  2176. package/esm/highlevel/types/conversation.js +465 -0
  2177. package/esm/highlevel/types/conversation.js.map +1 -0
  2178. package/esm/highlevel/types/errors.d.ts +33 -0
  2179. package/esm/highlevel/types/errors.js +39 -0
  2180. package/esm/highlevel/types/errors.js.map +1 -0
  2181. package/esm/highlevel/types/files/file-location.d.ts +48 -0
  2182. package/esm/highlevel/types/files/file-location.js +35 -0
  2183. package/esm/highlevel/types/files/file-location.js.map +1 -0
  2184. package/esm/highlevel/types/files/index.d.ts +4 -0
  2185. package/esm/highlevel/types/files/index.js +5 -0
  2186. package/esm/highlevel/types/files/index.js.map +1 -0
  2187. package/esm/highlevel/types/files/uploaded-file.d.ts +22 -0
  2188. package/esm/highlevel/types/files/uploaded-file.js +5 -0
  2189. package/esm/highlevel/types/files/uploaded-file.js.map +1 -0
  2190. package/esm/highlevel/types/files/utils.d.ts +84 -0
  2191. package/esm/highlevel/types/files/utils.js +2 -0
  2192. package/esm/highlevel/types/files/utils.js.map +1 -0
  2193. package/esm/highlevel/types/files/web-document.d.ts +32 -0
  2194. package/esm/highlevel/types/files/web-document.js +53 -0
  2195. package/esm/highlevel/types/files/web-document.js.map +1 -0
  2196. package/esm/highlevel/types/index.d.ts +15 -0
  2197. package/esm/highlevel/types/index.js +16 -0
  2198. package/esm/highlevel/types/index.js.map +1 -0
  2199. package/esm/highlevel/types/media/audio.d.ts +31 -0
  2200. package/esm/highlevel/types/media/audio.js +44 -0
  2201. package/esm/highlevel/types/media/audio.js.map +1 -0
  2202. package/esm/highlevel/types/media/contact.d.ts +31 -0
  2203. package/esm/highlevel/types/media/contact.js +47 -0
  2204. package/esm/highlevel/types/media/contact.js.map +1 -0
  2205. package/esm/highlevel/types/media/dice.d.ts +155 -0
  2206. package/esm/highlevel/types/media/dice.js +167 -0
  2207. package/esm/highlevel/types/media/dice.js.map +1 -0
  2208. package/esm/highlevel/types/media/document-utils.d.ts +6 -0
  2209. package/esm/highlevel/types/media/document-utils.js +31 -0
  2210. package/esm/highlevel/types/media/document-utils.js.map +1 -0
  2211. package/esm/highlevel/types/media/document.d.ts +75 -0
  2212. package/esm/highlevel/types/media/document.js +138 -0
  2213. package/esm/highlevel/types/media/document.js.map +1 -0
  2214. package/esm/highlevel/types/media/game.d.ts +38 -0
  2215. package/esm/highlevel/types/media/game.js +72 -0
  2216. package/esm/highlevel/types/media/game.js.map +1 -0
  2217. package/esm/highlevel/types/media/index.d.ts +17 -0
  2218. package/esm/highlevel/types/media/index.js +18 -0
  2219. package/esm/highlevel/types/media/index.js.map +1 -0
  2220. package/esm/highlevel/types/media/input-media.d.ts +645 -0
  2221. package/esm/highlevel/types/media/input-media.js +251 -0
  2222. package/esm/highlevel/types/media/input-media.js.map +1 -0
  2223. package/esm/highlevel/types/media/invoice.d.ts +107 -0
  2224. package/esm/highlevel/types/media/invoice.js +158 -0
  2225. package/esm/highlevel/types/media/invoice.js.map +1 -0
  2226. package/esm/highlevel/types/media/location.d.ts +83 -0
  2227. package/esm/highlevel/types/media/location.js +115 -0
  2228. package/esm/highlevel/types/media/location.js.map +1 -0
  2229. package/esm/highlevel/types/media/photo.d.ts +72 -0
  2230. package/esm/highlevel/types/media/photo.js +156 -0
  2231. package/esm/highlevel/types/media/photo.js.map +1 -0
  2232. package/esm/highlevel/types/media/poll.d.ts +99 -0
  2233. package/esm/highlevel/types/media/poll.js +137 -0
  2234. package/esm/highlevel/types/media/poll.js.map +1 -0
  2235. package/esm/highlevel/types/media/sticker.d.ts +123 -0
  2236. package/esm/highlevel/types/media/sticker.js +141 -0
  2237. package/esm/highlevel/types/media/sticker.js.map +1 -0
  2238. package/esm/highlevel/types/media/story.d.ts +33 -0
  2239. package/esm/highlevel/types/media/story.js +51 -0
  2240. package/esm/highlevel/types/media/story.js.map +1 -0
  2241. package/esm/highlevel/types/media/thumbnail.d.ts +70 -0
  2242. package/esm/highlevel/types/media/thumbnail.js +223 -0
  2243. package/esm/highlevel/types/media/thumbnail.js.map +1 -0
  2244. package/esm/highlevel/types/media/venue.d.ts +58 -0
  2245. package/esm/highlevel/types/media/venue.js +75 -0
  2246. package/esm/highlevel/types/media/venue.js.map +1 -0
  2247. package/esm/highlevel/types/media/video.d.ts +46 -0
  2248. package/esm/highlevel/types/media/video.js +75 -0
  2249. package/esm/highlevel/types/media/video.js.map +1 -0
  2250. package/esm/highlevel/types/media/voice.d.ts +23 -0
  2251. package/esm/highlevel/types/media/voice.js +36 -0
  2252. package/esm/highlevel/types/media/voice.js.map +1 -0
  2253. package/esm/highlevel/types/media/web-page.d.ts +151 -0
  2254. package/esm/highlevel/types/media/web-page.js +193 -0
  2255. package/esm/highlevel/types/media/web-page.js.map +1 -0
  2256. package/esm/highlevel/types/messages/dialog.d.ts +108 -0
  2257. package/esm/highlevel/types/messages/dialog.js +243 -0
  2258. package/esm/highlevel/types/messages/dialog.js.map +1 -0
  2259. package/esm/highlevel/types/messages/draft-message.d.ts +29 -0
  2260. package/esm/highlevel/types/messages/draft-message.js +52 -0
  2261. package/esm/highlevel/types/messages/draft-message.js.map +1 -0
  2262. package/esm/highlevel/types/messages/index.d.ts +12 -0
  2263. package/esm/highlevel/types/messages/index.js +13 -0
  2264. package/esm/highlevel/types/messages/index.js.map +1 -0
  2265. package/esm/highlevel/types/messages/input-message-id.d.ts +15 -0
  2266. package/esm/highlevel/types/messages/input-message-id.js +7 -0
  2267. package/esm/highlevel/types/messages/input-message-id.js.map +1 -0
  2268. package/esm/highlevel/types/messages/message-action.d.ts +332 -0
  2269. package/esm/highlevel/types/messages/message-action.js +251 -0
  2270. package/esm/highlevel/types/messages/message-action.js.map +1 -0
  2271. package/esm/highlevel/types/messages/message-entity.d.ts +86 -0
  2272. package/esm/highlevel/types/messages/message-entity.js +101 -0
  2273. package/esm/highlevel/types/messages/message-entity.js.map +1 -0
  2274. package/esm/highlevel/types/messages/message-forward.d.ts +36 -0
  2275. package/esm/highlevel/types/messages/message-forward.js +62 -0
  2276. package/esm/highlevel/types/messages/message-forward.js.map +1 -0
  2277. package/esm/highlevel/types/messages/message-media.d.ts +18 -0
  2278. package/esm/highlevel/types/messages/message-media.js +68 -0
  2279. package/esm/highlevel/types/messages/message-media.js.map +1 -0
  2280. package/esm/highlevel/types/messages/message-reactions.d.ts +29 -0
  2281. package/esm/highlevel/types/messages/message-reactions.js +39 -0
  2282. package/esm/highlevel/types/messages/message-reactions.js.map +1 -0
  2283. package/esm/highlevel/types/messages/message-replies.d.ts +42 -0
  2284. package/esm/highlevel/types/messages/message-replies.js +63 -0
  2285. package/esm/highlevel/types/messages/message-replies.js.map +1 -0
  2286. package/esm/highlevel/types/messages/message.d.ts +178 -0
  2287. package/esm/highlevel/types/messages/message.js +335 -0
  2288. package/esm/highlevel/types/messages/message.js.map +1 -0
  2289. package/esm/highlevel/types/messages/replied-message.d.ts +103 -0
  2290. package/esm/highlevel/types/messages/replied-message.js +159 -0
  2291. package/esm/highlevel/types/messages/replied-message.js.map +1 -0
  2292. package/esm/highlevel/types/messages/search-filters.d.ts +82 -0
  2293. package/esm/highlevel/types/messages/search-filters.js +55 -0
  2294. package/esm/highlevel/types/messages/search-filters.js.map +1 -0
  2295. package/esm/highlevel/types/misc/app-config.d.ts +887 -0
  2296. package/esm/highlevel/types/misc/app-config.js +4 -0
  2297. package/esm/highlevel/types/misc/app-config.js.map +1 -0
  2298. package/esm/highlevel/types/misc/entities.d.ts +15 -0
  2299. package/esm/highlevel/types/misc/entities.js +2 -0
  2300. package/esm/highlevel/types/misc/entities.js.map +1 -0
  2301. package/esm/highlevel/types/misc/index.d.ts +5 -0
  2302. package/esm/highlevel/types/misc/index.js +6 -0
  2303. package/esm/highlevel/types/misc/index.js.map +1 -0
  2304. package/esm/highlevel/types/misc/input-privacy-rule.d.ts +63 -0
  2305. package/esm/highlevel/types/misc/input-privacy-rule.js +82 -0
  2306. package/esm/highlevel/types/misc/input-privacy-rule.js.map +1 -0
  2307. package/esm/highlevel/types/misc/sticker-set.d.ts +151 -0
  2308. package/esm/highlevel/types/misc/sticker-set.js +215 -0
  2309. package/esm/highlevel/types/misc/sticker-set.js.map +1 -0
  2310. package/esm/highlevel/types/misc/takeout-session.d.ts +49 -0
  2311. package/esm/highlevel/types/misc/takeout-session.js +78 -0
  2312. package/esm/highlevel/types/misc/takeout-session.js.map +1 -0
  2313. package/esm/highlevel/types/peers/chat-colors.d.ts +25 -0
  2314. package/esm/highlevel/types/peers/chat-colors.js +32 -0
  2315. package/esm/highlevel/types/peers/chat-colors.js.map +1 -0
  2316. package/esm/highlevel/types/peers/chat-event/actions.d.ts +263 -0
  2317. package/esm/highlevel/types/peers/chat-event/actions.js +230 -0
  2318. package/esm/highlevel/types/peers/chat-event/actions.js.map +1 -0
  2319. package/esm/highlevel/types/peers/chat-event/filters.d.ts +8 -0
  2320. package/esm/highlevel/types/peers/chat-event/filters.js +104 -0
  2321. package/esm/highlevel/types/peers/chat-event/filters.js.map +1 -0
  2322. package/esm/highlevel/types/peers/chat-event/index.d.ts +27 -0
  2323. package/esm/highlevel/types/peers/chat-event/index.js +38 -0
  2324. package/esm/highlevel/types/peers/chat-event/index.js.map +1 -0
  2325. package/esm/highlevel/types/peers/chat-invite-link-member.d.ts +33 -0
  2326. package/esm/highlevel/types/peers/chat-invite-link-member.js +51 -0
  2327. package/esm/highlevel/types/peers/chat-invite-link-member.js.map +1 -0
  2328. package/esm/highlevel/types/peers/chat-invite-link.d.ts +72 -0
  2329. package/esm/highlevel/types/peers/chat-invite-link.js +104 -0
  2330. package/esm/highlevel/types/peers/chat-invite-link.js.map +1 -0
  2331. package/esm/highlevel/types/peers/chat-location.d.ts +17 -0
  2332. package/esm/highlevel/types/peers/chat-location.js +26 -0
  2333. package/esm/highlevel/types/peers/chat-location.js.map +1 -0
  2334. package/esm/highlevel/types/peers/chat-member.d.ts +81 -0
  2335. package/esm/highlevel/types/peers/chat-member.js +150 -0
  2336. package/esm/highlevel/types/peers/chat-member.js.map +1 -0
  2337. package/esm/highlevel/types/peers/chat-permissions.d.ts +127 -0
  2338. package/esm/highlevel/types/peers/chat-permissions.js +172 -0
  2339. package/esm/highlevel/types/peers/chat-permissions.js.map +1 -0
  2340. package/esm/highlevel/types/peers/chat-photo.d.ts +39 -0
  2341. package/esm/highlevel/types/peers/chat-photo.js +120 -0
  2342. package/esm/highlevel/types/peers/chat-photo.js.map +1 -0
  2343. package/esm/highlevel/types/peers/chat-preview.d.ts +55 -0
  2344. package/esm/highlevel/types/peers/chat-preview.js +70 -0
  2345. package/esm/highlevel/types/peers/chat-preview.js.map +1 -0
  2346. package/esm/highlevel/types/peers/chat.d.ts +332 -0
  2347. package/esm/highlevel/types/peers/chat.js +656 -0
  2348. package/esm/highlevel/types/peers/chat.js.map +1 -0
  2349. package/esm/highlevel/types/peers/forum-topic.d.ts +96 -0
  2350. package/esm/highlevel/types/peers/forum-topic.js +154 -0
  2351. package/esm/highlevel/types/peers/forum-topic.js.map +1 -0
  2352. package/esm/highlevel/types/peers/index.d.ts +14 -0
  2353. package/esm/highlevel/types/peers/index.js +15 -0
  2354. package/esm/highlevel/types/peers/index.js.map +1 -0
  2355. package/esm/highlevel/types/peers/peer.d.ts +49 -0
  2356. package/esm/highlevel/types/peers/peer.js +16 -0
  2357. package/esm/highlevel/types/peers/peer.js.map +1 -0
  2358. package/esm/highlevel/types/peers/peers-index.d.ts +15 -0
  2359. package/esm/highlevel/types/peers/peers-index.js +53 -0
  2360. package/esm/highlevel/types/peers/peers-index.js.map +1 -0
  2361. package/esm/highlevel/types/peers/peers-index.test.d.ts +1 -0
  2362. package/esm/highlevel/types/peers/peers-index.test.js +69 -0
  2363. package/esm/highlevel/types/peers/peers-index.test.js.map +1 -0
  2364. package/esm/highlevel/types/peers/typing-status.d.ts +26 -0
  2365. package/esm/highlevel/types/peers/typing-status.js +2 -0
  2366. package/esm/highlevel/types/peers/typing-status.js.map +1 -0
  2367. package/esm/highlevel/types/peers/user.d.ts +259 -0
  2368. package/esm/highlevel/types/peers/user.js +433 -0
  2369. package/esm/highlevel/types/peers/user.js.map +1 -0
  2370. package/esm/highlevel/types/peers/user.test.d.ts +1 -0
  2371. package/esm/highlevel/types/peers/user.test.js +171 -0
  2372. package/esm/highlevel/types/peers/user.test.js.map +1 -0
  2373. package/esm/highlevel/types/premium/boost-slot.d.ts +37 -0
  2374. package/esm/highlevel/types/premium/boost-slot.js +60 -0
  2375. package/esm/highlevel/types/premium/boost-slot.js.map +1 -0
  2376. package/esm/highlevel/types/premium/boost-stats.d.ts +54 -0
  2377. package/esm/highlevel/types/premium/boost-stats.js +87 -0
  2378. package/esm/highlevel/types/premium/boost-stats.js.map +1 -0
  2379. package/esm/highlevel/types/premium/boost.d.ts +55 -0
  2380. package/esm/highlevel/types/premium/boost.js +76 -0
  2381. package/esm/highlevel/types/premium/boost.js.map +1 -0
  2382. package/esm/highlevel/types/premium/index.d.ts +3 -0
  2383. package/esm/highlevel/types/premium/index.js +4 -0
  2384. package/esm/highlevel/types/premium/index.js.map +1 -0
  2385. package/esm/highlevel/types/reactions/emoji-status.d.ts +12 -0
  2386. package/esm/highlevel/types/reactions/emoji-status.js +21 -0
  2387. package/esm/highlevel/types/reactions/emoji-status.js.map +1 -0
  2388. package/esm/highlevel/types/reactions/index.d.ts +2 -0
  2389. package/esm/highlevel/types/reactions/index.js +3 -0
  2390. package/esm/highlevel/types/reactions/index.js.map +1 -0
  2391. package/esm/highlevel/types/reactions/peer-reaction.d.ts +32 -0
  2392. package/esm/highlevel/types/reactions/peer-reaction.js +49 -0
  2393. package/esm/highlevel/types/reactions/peer-reaction.js.map +1 -0
  2394. package/esm/highlevel/types/reactions/reaction-count.d.ts +23 -0
  2395. package/esm/highlevel/types/reactions/reaction-count.js +32 -0
  2396. package/esm/highlevel/types/reactions/reaction-count.js.map +1 -0
  2397. package/esm/highlevel/types/reactions/types.d.ts +14 -0
  2398. package/esm/highlevel/types/reactions/types.js +36 -0
  2399. package/esm/highlevel/types/reactions/types.js.map +1 -0
  2400. package/esm/highlevel/types/stories/all-stories.d.ts +28 -0
  2401. package/esm/highlevel/types/stories/all-stories.js +42 -0
  2402. package/esm/highlevel/types/stories/all-stories.js.map +1 -0
  2403. package/esm/highlevel/types/stories/index.d.ts +7 -0
  2404. package/esm/highlevel/types/stories/index.js +8 -0
  2405. package/esm/highlevel/types/stories/index.js.map +1 -0
  2406. package/esm/highlevel/types/stories/interactive/base.d.ts +16 -0
  2407. package/esm/highlevel/types/stories/interactive/base.js +27 -0
  2408. package/esm/highlevel/types/stories/interactive/base.js.map +1 -0
  2409. package/esm/highlevel/types/stories/interactive/channel-post.d.ts +17 -0
  2410. package/esm/highlevel/types/stories/interactive/channel-post.js +26 -0
  2411. package/esm/highlevel/types/stories/interactive/channel-post.js.map +1 -0
  2412. package/esm/highlevel/types/stories/interactive/index.d.ts +10 -0
  2413. package/esm/highlevel/types/stories/interactive/index.js +23 -0
  2414. package/esm/highlevel/types/stories/interactive/index.js.map +1 -0
  2415. package/esm/highlevel/types/stories/interactive/input.d.ts +67 -0
  2416. package/esm/highlevel/types/stories/interactive/input.js +77 -0
  2417. package/esm/highlevel/types/stories/interactive/input.js.map +1 -0
  2418. package/esm/highlevel/types/stories/interactive/location.d.ts +15 -0
  2419. package/esm/highlevel/types/stories/interactive/location.js +25 -0
  2420. package/esm/highlevel/types/stories/interactive/location.js.map +1 -0
  2421. package/esm/highlevel/types/stories/interactive/reaction.d.ts +21 -0
  2422. package/esm/highlevel/types/stories/interactive/reaction.js +31 -0
  2423. package/esm/highlevel/types/stories/interactive/reaction.js.map +1 -0
  2424. package/esm/highlevel/types/stories/interactive/venue.d.ts +28 -0
  2425. package/esm/highlevel/types/stories/interactive/venue.js +49 -0
  2426. package/esm/highlevel/types/stories/interactive/venue.js.map +1 -0
  2427. package/esm/highlevel/types/stories/peer-stories.d.ts +20 -0
  2428. package/esm/highlevel/types/stories/peer-stories.js +35 -0
  2429. package/esm/highlevel/types/stories/peer-stories.js.map +1 -0
  2430. package/esm/highlevel/types/stories/stealth-mode.d.ts +9 -0
  2431. package/esm/highlevel/types/stories/stealth-mode.js +20 -0
  2432. package/esm/highlevel/types/stories/stealth-mode.js.map +1 -0
  2433. package/esm/highlevel/types/stories/story-interactions.d.ts +34 -0
  2434. package/esm/highlevel/types/stories/story-interactions.js +52 -0
  2435. package/esm/highlevel/types/stories/story-interactions.js.map +1 -0
  2436. package/esm/highlevel/types/stories/story-viewer.d.ts +75 -0
  2437. package/esm/highlevel/types/stories/story-viewer.js +134 -0
  2438. package/esm/highlevel/types/stories/story-viewer.js.map +1 -0
  2439. package/esm/highlevel/types/stories/story.d.ts +79 -0
  2440. package/esm/highlevel/types/stories/story.js +144 -0
  2441. package/esm/highlevel/types/stories/story.js.map +1 -0
  2442. package/esm/highlevel/types/updates/bot-chat-join-request.d.ts +42 -0
  2443. package/esm/highlevel/types/updates/bot-chat-join-request.js +62 -0
  2444. package/esm/highlevel/types/updates/bot-chat-join-request.js.map +1 -0
  2445. package/esm/highlevel/types/updates/bot-reaction.d.ts +72 -0
  2446. package/esm/highlevel/types/updates/bot-reaction.js +99 -0
  2447. package/esm/highlevel/types/updates/bot-reaction.js.map +1 -0
  2448. package/esm/highlevel/types/updates/bot-stopped.d.ts +28 -0
  2449. package/esm/highlevel/types/updates/bot-stopped.js +39 -0
  2450. package/esm/highlevel/types/updates/bot-stopped.js.map +1 -0
  2451. package/esm/highlevel/types/updates/callback-query.d.ts +81 -0
  2452. package/esm/highlevel/types/updates/callback-query.js +118 -0
  2453. package/esm/highlevel/types/updates/callback-query.js.map +1 -0
  2454. package/esm/highlevel/types/updates/chat-join-request.d.ts +30 -0
  2455. package/esm/highlevel/types/updates/chat-join-request.js +46 -0
  2456. package/esm/highlevel/types/updates/chat-join-request.js.map +1 -0
  2457. package/esm/highlevel/types/updates/chat-member-update.d.ts +76 -0
  2458. package/esm/highlevel/types/updates/chat-member-update.js +174 -0
  2459. package/esm/highlevel/types/updates/chat-member-update.js.map +1 -0
  2460. package/esm/highlevel/types/updates/chosen-inline-result.d.ts +50 -0
  2461. package/esm/highlevel/types/updates/chosen-inline-result.js +72 -0
  2462. package/esm/highlevel/types/updates/chosen-inline-result.js.map +1 -0
  2463. package/esm/highlevel/types/updates/delete-message-update.d.ts +16 -0
  2464. package/esm/highlevel/types/updates/delete-message-update.js +24 -0
  2465. package/esm/highlevel/types/updates/delete-message-update.js.map +1 -0
  2466. package/esm/highlevel/types/updates/delete-story-update.d.ts +18 -0
  2467. package/esm/highlevel/types/updates/delete-story-update.js +27 -0
  2468. package/esm/highlevel/types/updates/delete-story-update.js.map +1 -0
  2469. package/esm/highlevel/types/updates/history-read-update.d.ts +39 -0
  2470. package/esm/highlevel/types/updates/history-read-update.js +105 -0
  2471. package/esm/highlevel/types/updates/history-read-update.js.map +1 -0
  2472. package/esm/highlevel/types/updates/index.d.ts +87 -0
  2473. package/esm/highlevel/types/updates/index.js +20 -0
  2474. package/esm/highlevel/types/updates/index.js.map +1 -0
  2475. package/esm/highlevel/types/updates/inline-query.d.ts +42 -0
  2476. package/esm/highlevel/types/updates/inline-query.js +69 -0
  2477. package/esm/highlevel/types/updates/inline-query.js.map +1 -0
  2478. package/esm/highlevel/types/updates/parse-update.d.ts +1 -0
  2479. package/esm/highlevel/types/updates/parse-update.js +72 -0
  2480. package/esm/highlevel/types/updates/parse-update.js.map +1 -0
  2481. package/esm/highlevel/types/updates/poll-update.d.ts +39 -0
  2482. package/esm/highlevel/types/updates/poll-update.js +63 -0
  2483. package/esm/highlevel/types/updates/poll-update.js.map +1 -0
  2484. package/esm/highlevel/types/updates/poll-vote.d.ts +52 -0
  2485. package/esm/highlevel/types/updates/poll-vote.js +74 -0
  2486. package/esm/highlevel/types/updates/poll-vote.js.map +1 -0
  2487. package/esm/highlevel/types/updates/pre-checkout-query.d.ts +36 -0
  2488. package/esm/highlevel/types/updates/pre-checkout-query.js +57 -0
  2489. package/esm/highlevel/types/updates/pre-checkout-query.js.map +1 -0
  2490. package/esm/highlevel/types/updates/story-update.d.ts +22 -0
  2491. package/esm/highlevel/types/updates/story-update.js +33 -0
  2492. package/esm/highlevel/types/updates/story-update.js.map +1 -0
  2493. package/esm/highlevel/types/updates/user-status-update.d.ts +28 -0
  2494. package/esm/highlevel/types/updates/user-status-update.js +43 -0
  2495. package/esm/highlevel/types/updates/user-status-update.js.map +1 -0
  2496. package/esm/highlevel/types/updates/user-typing-update.d.ts +31 -0
  2497. package/esm/highlevel/types/updates/user-typing-update.js +95 -0
  2498. package/esm/highlevel/types/updates/user-typing-update.js.map +1 -0
  2499. package/esm/highlevel/types/utils.d.ts +12 -0
  2500. package/esm/highlevel/types/utils.js +2 -0
  2501. package/esm/highlevel/types/utils.js.map +1 -0
  2502. package/esm/highlevel/updates/index.d.ts +2 -0
  2503. package/esm/highlevel/updates/index.js +4 -0
  2504. package/esm/highlevel/updates/index.js.map +1 -0
  2505. package/esm/highlevel/updates/manager.d.ts +120 -0
  2506. package/esm/highlevel/updates/manager.js +1338 -0
  2507. package/esm/highlevel/updates/manager.js.map +1 -0
  2508. package/esm/highlevel/updates/parsed.d.ts +32 -0
  2509. package/esm/highlevel/updates/parsed.js +39 -0
  2510. package/esm/highlevel/updates/parsed.js.map +1 -0
  2511. package/esm/highlevel/updates/types.d.ts +48 -0
  2512. package/esm/highlevel/updates/types.js +2 -0
  2513. package/esm/highlevel/updates/types.js.map +1 -0
  2514. package/esm/highlevel/updates/utils.d.ts +19 -0
  2515. package/esm/highlevel/updates/utils.js +99 -0
  2516. package/esm/highlevel/updates/utils.js.map +1 -0
  2517. package/esm/highlevel/utils/convert-file-id.d.ts +46 -0
  2518. package/esm/highlevel/utils/convert-file-id.js +281 -0
  2519. package/esm/highlevel/utils/convert-file-id.js.map +1 -0
  2520. package/esm/highlevel/utils/file-type.d.ts +1 -0
  2521. package/esm/highlevel/utils/file-type.js +135 -0
  2522. package/esm/highlevel/utils/file-type.js.map +1 -0
  2523. package/esm/highlevel/utils/file-type.test.d.ts +1 -0
  2524. package/esm/highlevel/utils/file-type.test.js +62 -0
  2525. package/esm/highlevel/utils/file-type.test.js.map +1 -0
  2526. package/esm/highlevel/utils/file-utils.d.ts +29 -0
  2527. package/esm/highlevel/utils/file-utils.js +110 -0
  2528. package/esm/highlevel/utils/file-utils.js.map +1 -0
  2529. package/esm/highlevel/utils/file-utils.test.d.ts +1 -0
  2530. package/esm/highlevel/utils/file-utils.test.js +124 -0
  2531. package/esm/highlevel/utils/file-utils.test.js.map +1 -0
  2532. package/esm/highlevel/utils/index.d.ts +8 -0
  2533. package/esm/highlevel/utils/index.js +10 -0
  2534. package/esm/highlevel/utils/index.js.map +1 -0
  2535. package/esm/highlevel/utils/inline-utils.d.ts +14 -0
  2536. package/esm/highlevel/utils/inline-utils.js +59 -0
  2537. package/esm/highlevel/utils/inline-utils.js.map +1 -0
  2538. package/esm/highlevel/utils/inline-utils.test.d.ts +1 -0
  2539. package/esm/highlevel/utils/inline-utils.test.js +42 -0
  2540. package/esm/highlevel/utils/inline-utils.test.js.map +1 -0
  2541. package/esm/highlevel/utils/inspectable.d.ts +9 -0
  2542. package/esm/highlevel/utils/inspectable.js +61 -0
  2543. package/esm/highlevel/utils/inspectable.js.map +1 -0
  2544. package/esm/highlevel/utils/inspectable.test.d.ts +1 -0
  2545. package/esm/highlevel/utils/inspectable.test.js +95 -0
  2546. package/esm/highlevel/utils/inspectable.test.js.map +1 -0
  2547. package/esm/highlevel/utils/memoize.d.ts +1 -0
  2548. package/esm/highlevel/utils/memoize.js +26 -0
  2549. package/esm/highlevel/utils/memoize.js.map +1 -0
  2550. package/esm/highlevel/utils/memoize.test.d.ts +1 -0
  2551. package/esm/highlevel/utils/memoize.test.js +58 -0
  2552. package/esm/highlevel/utils/memoize.test.js.map +1 -0
  2553. package/esm/highlevel/utils/misc-utils.d.ts +12 -0
  2554. package/esm/highlevel/utils/misc-utils.js +34 -0
  2555. package/esm/highlevel/utils/misc-utils.js.map +1 -0
  2556. package/esm/highlevel/utils/peer-utils.d.ts +11 -0
  2557. package/esm/highlevel/utils/peer-utils.js +128 -0
  2558. package/esm/highlevel/utils/peer-utils.js.map +1 -0
  2559. package/esm/highlevel/utils/peer-utils.test.d.ts +1 -0
  2560. package/esm/highlevel/utils/peer-utils.test.js +107 -0
  2561. package/esm/highlevel/utils/peer-utils.test.js.map +1 -0
  2562. package/esm/highlevel/utils/platform/storage.d.ts +1 -0
  2563. package/esm/highlevel/utils/platform/storage.js +6 -0
  2564. package/esm/highlevel/utils/platform/storage.js.map +1 -0
  2565. package/esm/highlevel/utils/platform/storage.web.d.ts +1 -0
  2566. package/esm/highlevel/utils/platform/storage.web.js +10 -0
  2567. package/esm/highlevel/utils/platform/storage.web.js.map +1 -0
  2568. package/esm/highlevel/utils/query-batcher.d.ts +48 -0
  2569. package/esm/highlevel/utils/query-batcher.js +142 -0
  2570. package/esm/highlevel/utils/query-batcher.js.map +1 -0
  2571. package/esm/highlevel/utils/query-batcher.test.d.ts +1 -0
  2572. package/esm/highlevel/utils/query-batcher.test.js +500 -0
  2573. package/esm/highlevel/utils/query-batcher.test.js.map +1 -0
  2574. package/esm/highlevel/utils/rps-meter.d.ts +9 -0
  2575. package/esm/highlevel/utils/rps-meter.js +36 -0
  2576. package/esm/highlevel/utils/rps-meter.js.map +1 -0
  2577. package/esm/highlevel/utils/stream-utils.d.ts +8 -0
  2578. package/esm/highlevel/utils/stream-utils.js +134 -0
  2579. package/esm/highlevel/utils/stream-utils.js.map +1 -0
  2580. package/esm/highlevel/utils/stream-utils.test.d.ts +1 -0
  2581. package/esm/highlevel/utils/stream-utils.test.js +96 -0
  2582. package/esm/highlevel/utils/stream-utils.test.js.map +1 -0
  2583. package/esm/highlevel/utils/voice-utils.d.ts +14 -0
  2584. package/esm/highlevel/utils/voice-utils.js +59 -0
  2585. package/esm/highlevel/utils/voice-utils.js.map +1 -0
  2586. package/esm/highlevel/utils/voice-utils.test.d.ts +1 -0
  2587. package/esm/highlevel/utils/voice-utils.test.js +26 -0
  2588. package/esm/highlevel/utils/voice-utils.test.js.map +1 -0
  2589. package/esm/highlevel/worker/app-config.d.ts +13 -0
  2590. package/esm/highlevel/worker/app-config.js +9 -0
  2591. package/esm/highlevel/worker/app-config.js.map +1 -0
  2592. package/esm/highlevel/worker/errors.d.ts +8 -0
  2593. package/esm/highlevel/worker/errors.js +116 -0
  2594. package/esm/highlevel/worker/errors.js.map +1 -0
  2595. package/esm/highlevel/worker/invoker.d.ts +17 -0
  2596. package/esm/highlevel/worker/invoker.js +56 -0
  2597. package/esm/highlevel/worker/invoker.js.map +1 -0
  2598. package/esm/highlevel/worker/platform/connect.d.ts +2 -0
  2599. package/esm/highlevel/worker/platform/connect.js +15 -0
  2600. package/esm/highlevel/worker/platform/connect.js.map +1 -0
  2601. package/esm/highlevel/worker/platform/connect.web.d.ts +2 -0
  2602. package/esm/highlevel/worker/platform/connect.web.js +47 -0
  2603. package/esm/highlevel/worker/platform/connect.web.js.map +1 -0
  2604. package/esm/highlevel/worker/platform/register.d.ts +2 -0
  2605. package/esm/highlevel/worker/platform/register.js +16 -0
  2606. package/esm/highlevel/worker/platform/register.js.map +1 -0
  2607. package/esm/highlevel/worker/platform/register.web.d.ts +2 -0
  2608. package/esm/highlevel/worker/platform/register.web.js +60 -0
  2609. package/esm/highlevel/worker/platform/register.web.js.map +1 -0
  2610. package/esm/highlevel/worker/port.d.ts +53 -0
  2611. package/esm/highlevel/worker/port.js +90 -0
  2612. package/esm/highlevel/worker/port.js.map +1 -0
  2613. package/esm/highlevel/worker/protocol.d.ts +43 -0
  2614. package/esm/highlevel/worker/protocol.js +2 -0
  2615. package/esm/highlevel/worker/protocol.js.map +1 -0
  2616. package/esm/highlevel/worker/storage.d.ts +43 -0
  2617. package/esm/highlevel/worker/storage.js +62 -0
  2618. package/esm/highlevel/worker/storage.js.map +1 -0
  2619. package/esm/highlevel/worker/worker.d.ts +7 -0
  2620. package/esm/highlevel/worker/worker.js +103 -0
  2621. package/esm/highlevel/worker/worker.js.map +1 -0
  2622. package/esm/index.d.ts +1 -2
  2623. package/esm/index.js +1 -2
  2624. package/esm/index.js.map +1 -1
  2625. package/esm/network/authorization.js +7 -4
  2626. package/esm/network/authorization.js.map +1 -1
  2627. package/esm/network/client.d.ts +246 -0
  2628. package/esm/network/client.js +141 -0
  2629. package/esm/network/client.js.map +1 -0
  2630. package/esm/network/config-manager.d.ts +3 -17
  2631. package/esm/network/config-manager.js +8 -51
  2632. package/esm/network/config-manager.js.map +1 -1
  2633. package/esm/network/config-manager.test.js +8 -4
  2634. package/esm/network/config-manager.test.js.map +1 -1
  2635. package/esm/network/index.d.ts +1 -0
  2636. package/esm/network/index.js +1 -0
  2637. package/esm/network/index.js.map +1 -1
  2638. package/esm/network/mtproto-session.d.ts +1 -0
  2639. package/esm/network/mtproto-session.js +7 -4
  2640. package/esm/network/mtproto-session.js.map +1 -1
  2641. package/esm/network/network-manager.d.ts +11 -14
  2642. package/esm/network/network-manager.js +42 -53
  2643. package/esm/network/network-manager.js.map +1 -1
  2644. package/esm/network/persistent-connection.d.ts +2 -3
  2645. package/esm/network/persistent-connection.js.map +1 -1
  2646. package/esm/network/session-connection.js +6 -3
  2647. package/esm/network/session-connection.js.map +1 -1
  2648. package/esm/network/transports/abstract.d.ts +6 -6
  2649. package/esm/network/transports/abstract.js +1 -1
  2650. package/esm/network/transports/abstract.js.map +1 -1
  2651. package/esm/network/transports/tcp.d.ts +4 -5
  2652. package/esm/network/transports/tcp.js.map +1 -1
  2653. package/esm/network/transports/websocket.d.ts +3 -4
  2654. package/esm/network/transports/websocket.js +2 -2
  2655. package/esm/network/transports/websocket.js.map +1 -1
  2656. package/esm/storage/driver.d.ts +56 -0
  2657. package/esm/storage/driver.js +37 -0
  2658. package/esm/storage/driver.js.map +1 -0
  2659. package/esm/storage/index.d.ts +6 -2
  2660. package/esm/storage/index.js +6 -2
  2661. package/esm/storage/index.js.map +1 -1
  2662. package/esm/storage/provider.d.ts +10 -0
  2663. package/esm/storage/provider.js +2 -0
  2664. package/esm/storage/provider.js.map +1 -0
  2665. package/esm/storage/providers/idb/driver.d.ts +18 -0
  2666. package/esm/storage/providers/idb/driver.js +134 -0
  2667. package/esm/storage/providers/idb/driver.js.map +1 -0
  2668. package/esm/storage/providers/idb/idb.test.d.ts +1 -0
  2669. package/esm/storage/providers/idb/idb.test.js +27 -0
  2670. package/esm/storage/providers/idb/idb.test.js.map +1 -0
  2671. package/esm/storage/providers/idb/index.d.ts +22 -0
  2672. package/esm/storage/providers/idb/index.js +23 -0
  2673. package/esm/storage/providers/idb/index.js.map +1 -0
  2674. package/esm/storage/providers/idb/repository/auth-keys.d.ts +14 -0
  2675. package/esm/storage/providers/idb/repository/auth-keys.js +66 -0
  2676. package/esm/storage/providers/idb/repository/auth-keys.js.map +1 -0
  2677. package/esm/storage/providers/idb/repository/kv.d.ts +11 -0
  2678. package/esm/storage/providers/idb/repository/kv.js +30 -0
  2679. package/esm/storage/providers/idb/repository/kv.js.map +1 -0
  2680. package/esm/storage/providers/idb/repository/peers.d.ts +12 -0
  2681. package/esm/storage/providers/idb/repository/peers.js +34 -0
  2682. package/esm/storage/providers/idb/repository/peers.js.map +1 -0
  2683. package/esm/storage/providers/idb/repository/ref-messages.d.ts +12 -0
  2684. package/esm/storage/providers/idb/repository/ref-messages.js +53 -0
  2685. package/esm/storage/providers/idb/repository/ref-messages.js.map +1 -0
  2686. package/esm/storage/providers/idb/utils.d.ts +3 -0
  2687. package/esm/storage/providers/idb/utils.js +21 -0
  2688. package/esm/storage/providers/idb/utils.js.map +1 -0
  2689. package/esm/storage/providers/memory/driver.d.ts +6 -0
  2690. package/esm/storage/providers/memory/driver.js +13 -0
  2691. package/esm/storage/providers/memory/driver.js.map +1 -0
  2692. package/esm/storage/providers/memory/index.d.ts +22 -0
  2693. package/esm/storage/providers/memory/index.js +23 -0
  2694. package/esm/storage/providers/memory/index.js.map +1 -0
  2695. package/esm/storage/providers/memory/memory.test.d.ts +1 -0
  2696. package/esm/storage/providers/memory/memory.test.js +11 -0
  2697. package/esm/storage/providers/memory/memory.test.js.map +1 -0
  2698. package/esm/storage/providers/memory/repository/auth-keys.d.ts +19 -0
  2699. package/esm/storage/providers/memory/repository/auth-keys.js +54 -0
  2700. package/esm/storage/providers/memory/repository/auth-keys.js.map +1 -0
  2701. package/esm/storage/providers/memory/repository/kv.d.ts +11 -0
  2702. package/esm/storage/providers/memory/repository/kv.js +19 -0
  2703. package/esm/storage/providers/memory/repository/kv.js.map +1 -0
  2704. package/esm/storage/providers/memory/repository/peers.d.ts +18 -0
  2705. package/esm/storage/providers/memory/repository/peers.js +51 -0
  2706. package/esm/storage/providers/memory/repository/peers.js.map +1 -0
  2707. package/esm/storage/providers/memory/repository/ref-messages.d.ts +16 -0
  2708. package/esm/storage/providers/memory/repository/ref-messages.js +37 -0
  2709. package/esm/storage/providers/memory/repository/ref-messages.js.map +1 -0
  2710. package/esm/storage/repository/auth-keys.d.ts +41 -0
  2711. package/esm/storage/repository/auth-keys.js +2 -0
  2712. package/esm/storage/repository/auth-keys.js.map +1 -0
  2713. package/esm/storage/repository/index.d.ts +2 -0
  2714. package/esm/storage/repository/index.js +3 -0
  2715. package/esm/storage/repository/index.js.map +1 -0
  2716. package/esm/storage/repository/key-value.d.ts +10 -0
  2717. package/esm/storage/repository/key-value.js +2 -0
  2718. package/esm/storage/repository/key-value.js.map +1 -0
  2719. package/esm/storage/service/auth-keys.d.ts +9 -0
  2720. package/esm/storage/service/auth-keys.js +13 -0
  2721. package/esm/storage/service/auth-keys.js.map +1 -0
  2722. package/esm/storage/service/auth-keys.test.d.ts +1 -0
  2723. package/esm/storage/service/auth-keys.test.js +20 -0
  2724. package/esm/storage/service/auth-keys.test.js.map +1 -0
  2725. package/esm/storage/service/base.d.ts +19 -0
  2726. package/esm/storage/service/base.js +21 -0
  2727. package/esm/storage/service/base.js.map +1 -0
  2728. package/esm/storage/service/default-dcs.d.ts +10 -0
  2729. package/esm/storage/service/default-dcs.js +51 -0
  2730. package/esm/storage/service/default-dcs.js.map +1 -0
  2731. package/esm/storage/service/future-salts.d.ts +11 -0
  2732. package/esm/storage/service/future-salts.js +39 -0
  2733. package/esm/storage/service/future-salts.js.map +1 -0
  2734. package/esm/storage/service/updates.test.d.ts +1 -0
  2735. package/esm/storage/service/updates.test.js +58 -0
  2736. package/esm/storage/service/updates.test.js.map +1 -0
  2737. package/esm/storage/service/utils.test-utils.d.ts +2 -0
  2738. package/esm/storage/service/utils.test-utils.js +15 -0
  2739. package/esm/storage/service/utils.test-utils.js.map +1 -0
  2740. package/esm/storage/storage.d.ts +32 -0
  2741. package/esm/storage/storage.js +58 -0
  2742. package/esm/storage/storage.js.map +1 -0
  2743. package/esm/types/utils.d.ts +4 -1
  2744. package/esm/types/utils.js.map +1 -1
  2745. package/esm/utils/crypto/abstract.d.ts +5 -5
  2746. package/esm/utils/crypto/abstract.js.map +1 -1
  2747. package/esm/utils/crypto/factorization.test.d.ts +1 -0
  2748. package/esm/utils/crypto/factorization.test.js +17 -0
  2749. package/esm/utils/crypto/factorization.test.js.map +1 -0
  2750. package/esm/utils/crypto/node.d.ts +2 -2
  2751. package/esm/utils/crypto/node.js.map +1 -1
  2752. package/esm/utils/crypto/password.d.ts +1 -1
  2753. package/esm/utils/crypto/password.js +2 -0
  2754. package/esm/utils/crypto/password.js.map +1 -1
  2755. package/esm/utils/dcs.d.ts +13 -0
  2756. package/esm/utils/dcs.js +89 -0
  2757. package/esm/utils/dcs.js.map +1 -0
  2758. package/esm/utils/function-utils.d.ts +6 -0
  2759. package/esm/utils/function-utils.js +26 -0
  2760. package/esm/utils/function-utils.js.map +1 -1
  2761. package/esm/utils/index.d.ts +2 -1
  2762. package/esm/utils/index.js +2 -1
  2763. package/esm/utils/index.js.map +1 -1
  2764. package/esm/utils/logger.js +1 -2
  2765. package/esm/utils/logger.js.map +1 -1
  2766. package/esm/utils/peer-utils.d.ts +2 -8
  2767. package/esm/utils/peer-utils.js +11 -37
  2768. package/esm/utils/peer-utils.js.map +1 -1
  2769. package/esm/utils/peer-utils.test.js +8 -20
  2770. package/esm/utils/peer-utils.test.js.map +1 -1
  2771. package/esm/utils/reloadable.d.ts +24 -0
  2772. package/esm/utils/reloadable.js +58 -0
  2773. package/esm/utils/reloadable.js.map +1 -0
  2774. package/esm/utils/string-session.d.ts +4 -3
  2775. package/esm/utils/string-session.js +4 -1
  2776. package/esm/utils/string-session.js.map +1 -1
  2777. package/esm/utils/string-session.test.js +31 -6
  2778. package/esm/utils/string-session.test.js.map +1 -1
  2779. package/package.json +24 -5
  2780. package/cjs/base-client.d.ts +0 -161
  2781. package/cjs/base-client.js +0 -345
  2782. package/cjs/base-client.js.map +0 -1
  2783. package/cjs/base-client.types.d.ts +0 -153
  2784. package/cjs/base-client.types.js +0 -3
  2785. package/cjs/base-client.types.js.map +0 -1
  2786. package/cjs/storage/abstract.d.ts +0 -224
  2787. package/cjs/storage/abstract.js +0 -3
  2788. package/cjs/storage/abstract.js.map +0 -1
  2789. package/cjs/storage/idb.d.ts +0 -103
  2790. package/cjs/storage/idb.js +0 -475
  2791. package/cjs/storage/idb.js.map +0 -1
  2792. package/cjs/storage/idb.test.js +0 -21
  2793. package/cjs/storage/idb.test.js.map +0 -1
  2794. package/cjs/storage/json-file.d.ts +0 -42
  2795. package/cjs/storage/json-file.js +0 -94
  2796. package/cjs/storage/json-file.js.map +0 -1
  2797. package/cjs/storage/json.d.ts +0 -9
  2798. package/cjs/storage/json.js +0 -66
  2799. package/cjs/storage/json.js.map +0 -1
  2800. package/cjs/storage/json.test.js +0 -36
  2801. package/cjs/storage/json.test.js.map +0 -1
  2802. package/cjs/storage/localstorage.d.ts +0 -19
  2803. package/cjs/storage/localstorage.js +0 -40
  2804. package/cjs/storage/localstorage.js.map +0 -1
  2805. package/cjs/storage/localstorage.test.js +0 -23
  2806. package/cjs/storage/localstorage.test.js.map +0 -1
  2807. package/cjs/storage/memory.d.ts +0 -111
  2808. package/cjs/storage/memory.js +0 -375
  2809. package/cjs/storage/memory.js.map +0 -1
  2810. package/cjs/storage/memory.test.js +0 -49
  2811. package/cjs/storage/memory.test.js.map +0 -1
  2812. package/cjs/utils/default-dcs.d.ts +0 -7
  2813. package/cjs/utils/default-dcs.js +0 -76
  2814. package/cjs/utils/default-dcs.js.map +0 -1
  2815. package/esm/base-client.d.ts +0 -161
  2816. package/esm/base-client.js +0 -338
  2817. package/esm/base-client.js.map +0 -1
  2818. package/esm/base-client.types.d.ts +0 -153
  2819. package/esm/base-client.types.js +0 -2
  2820. package/esm/base-client.types.js.map +0 -1
  2821. package/esm/storage/abstract.d.ts +0 -224
  2822. package/esm/storage/abstract.js +0 -2
  2823. package/esm/storage/abstract.js.map +0 -1
  2824. package/esm/storage/idb.d.ts +0 -103
  2825. package/esm/storage/idb.js +0 -471
  2826. package/esm/storage/idb.js.map +0 -1
  2827. package/esm/storage/idb.test.js +0 -19
  2828. package/esm/storage/idb.test.js.map +0 -1
  2829. package/esm/storage/json-file.d.ts +0 -42
  2830. package/esm/storage/json-file.js +0 -67
  2831. package/esm/storage/json-file.js.map +0 -1
  2832. package/esm/storage/json.d.ts +0 -9
  2833. package/esm/storage/json.js +0 -62
  2834. package/esm/storage/json.js.map +0 -1
  2835. package/esm/storage/json.test.js +0 -34
  2836. package/esm/storage/json.test.js.map +0 -1
  2837. package/esm/storage/localstorage.d.ts +0 -19
  2838. package/esm/storage/localstorage.js +0 -36
  2839. package/esm/storage/localstorage.js.map +0 -1
  2840. package/esm/storage/localstorage.test.js +0 -21
  2841. package/esm/storage/localstorage.test.js.map +0 -1
  2842. package/esm/storage/memory.d.ts +0 -111
  2843. package/esm/storage/memory.js +0 -371
  2844. package/esm/storage/memory.js.map +0 -1
  2845. package/esm/storage/memory.test.js +0 -47
  2846. package/esm/storage/memory.test.js.map +0 -1
  2847. package/esm/utils/default-dcs.d.ts +0 -7
  2848. package/esm/utils/default-dcs.js +0 -73
  2849. package/esm/utils/default-dcs.js.map +0 -1
  2850. /package/cjs/{storage/idb.test.d.ts → highlevel/methods/_imports.d.ts} +0 -0
  2851. /package/cjs/{storage/json.test.d.ts → highlevel/methods/_init.d.ts} +0 -0
  2852. /package/cjs/{storage/localstorage.test.d.ts → highlevel/methods/bots/normalize-command-scope.d.ts} +0 -0
  2853. /package/cjs/{storage/memory.test.d.ts → highlevel/methods/chats/batched-queries.d.ts} +0 -0
  2854. /package/{esm/storage/idb.test.d.ts → cjs/highlevel/methods/files/_platform.d.ts} +0 -0
  2855. /package/{esm/storage/json.test.d.ts → cjs/highlevel/methods/files/_platform.web.d.ts} +0 -0
  2856. /package/{esm/storage/localstorage.test.d.ts → cjs/highlevel/methods/files/normalize-file-to-document.d.ts} +0 -0
  2857. /package/{esm/storage/memory.test.d.ts → cjs/highlevel/methods/messages/find-in-update.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"session-connection.js","sourceRoot":"","sources":["../../../src/network/session-connection.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// will be reworked in MTQ-32\nimport Long from 'long'\n\nimport { mtp, tl } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter, TlReaderMap, TlSerializationCounter, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { MtArgumentError, MtcuteError, MtTimeoutError } from '../types/index.js'\nimport { createAesIgeForMessageOld } from '../utils/crypto/mtproto.js'\nimport {\n concatBuffers,\n ControllablePromise,\n createControllablePromise,\n EarlyTimer,\n ICryptoProvider,\n longFromBuffer,\n randomLong,\n removeFromLongArray,\n} from '../utils/index.js'\nimport { reportUnknownError } from '../utils/platform/error-reporting.js'\nimport { doAuthorization } from './authorization.js'\nimport { MtprotoSession, PendingMessage, PendingRpc } from './mtproto-session.js'\nimport { PersistentConnection, PersistentConnectionParams } from './persistent-connection.js'\nimport { ServerSaltManager } from './server-salt.js'\nimport { TransportError } from './transports/abstract.js'\n\nexport interface SessionConnectionParams extends PersistentConnectionParams {\n initConnection: tl.RawInitConnectionRequest\n inactivityTimeout?: number\n niceStacks?: boolean\n enableErrorReporting: boolean\n layer: number\n disableUpdates?: boolean\n withUpdates?: boolean\n isMainConnection: boolean\n isMainDcConnection: boolean\n usePfs?: boolean\n\n salts: ServerSaltManager\n\n readerMap: TlReaderMap\n writerMap: TlWriterMap\n}\n\nconst TEMP_AUTH_KEY_EXPIRY = 86400 // 24 hours\nconst PING_INTERVAL = 60000 // 1 minute\nconst GET_STATE_INTERVAL = 1500 // 1.5 seconds\n\n// destroy_auth_key#d1435160 = DestroyAuthKeyRes;\n// const DESTROY_AUTH_KEY = Buffer.from('605134d1', 'hex')\n// gzip_packed#3072cfa1 packed_data:string = Object;\nconst GZIP_PACKED_ID = 0x3072cfa1\n// msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;\nconst MSG_CONTAINER_ID = 0x73f1f8dc\n// rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult;\nconst RPC_RESULT_ID = 0xf35c6d01\n// invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;\nconst INVOKE_AFTER_MSG_ID = 0xcb9f372d\nconst INVOKE_AFTER_MSG_SIZE = 12 // 8 (invokeAfterMsg) + 4 (msg_id)\n\nfunction makeNiceStack(error: tl.RpcError, stack: string, method?: string) {\n error.stack = `RpcError (${error.code} ${error.text}): ${error.message}\\n at ${method}\\n${stack\n .split('\\n')\n .slice(2)\n .join('\\n')}`\n}\n\n/**\n * A connection to a single DC.\n */\nexport class SessionConnection extends PersistentConnection {\n readonly params!: SessionConnectionParams\n\n private _flushTimer = new EarlyTimer()\n private _queuedDestroySession: Long[] = []\n\n // waitForMessage\n private _pendingWaitForUnencrypted: [ControllablePromise<Uint8Array>, NodeJS.Timeout][] = []\n\n private _usePfs = this.params.usePfs ?? false\n private _isPfsBindingPending = false\n private _isPfsBindingPendingInBackground = false\n private _pfsUpdateTimeout?: NodeJS.Timeout\n\n private _inactivityPendingFlush = false\n\n private _readerMap: TlReaderMap\n private _writerMap: TlWriterMap\n private _crypto: ICryptoProvider\n private _salts: ServerSaltManager\n\n constructor(\n params: SessionConnectionParams,\n readonly _session: MtprotoSession,\n ) {\n super(params, _session.log.create('conn'))\n this._flushTimer.onTimeout(this._flush.bind(this))\n\n this._readerMap = params.readerMap\n this._writerMap = params.writerMap\n this._crypto = params.crypto\n this._salts = params.salts\n this._handleRawMessage = this._handleRawMessage.bind(this)\n }\n\n getAuthKey(temp = false): Uint8Array | null {\n const key = temp ? this._session._authKeyTemp : this._session._authKey\n\n if (!key.ready) return null\n\n return key.key\n }\n\n setUsePfs(usePfs: boolean): void {\n if (this._usePfs === usePfs) return\n\n this.log.debug('use pfs changed to %s', usePfs)\n this._usePfs = usePfs\n\n if (!usePfs) {\n this._isPfsBindingPending = false\n this._isPfsBindingPendingInBackground = false\n this._session._authKeyTemp.reset()\n clearTimeout(this._pfsUpdateTimeout)\n }\n\n this._resetSession()\n }\n\n onTransportClose(): void {\n super.onTransportClose()\n\n Object.values(this._pendingWaitForUnencrypted).forEach(([prom, timeout]) => {\n prom.reject(new MtcuteError('Connection closed'))\n clearTimeout(timeout)\n })\n\n this.emit('disconnect')\n\n this.reset()\n }\n\n destroy(): void {\n super.destroy()\n this.reset(true)\n }\n\n reset(forever = false): void {\n this._session.initConnectionCalled = false\n this._flushTimer.reset()\n this._salts.isFetching = false\n\n if (forever) {\n this.removeAllListeners()\n }\n }\n\n onConnected(): void {\n // check if we have all the needed keys\n if (!this._session._authKey.ready) {\n if (!this.params.isMainConnection) {\n this.log.info('no auth key, waiting for main connection')\n\n // once it is done, we will be notified\n return\n }\n\n this.log.info('no perm auth key, authorizing...')\n this._authorize()\n\n // if we use pfs, we *could* also start temp key exchange here\n // but telegram restricts us to only have one auth session per connection,\n // and having a separate connection for pfs is not worth it\n return\n }\n\n if (this._usePfs && !this._session._authKeyTemp.ready) {\n this.log.info('no temp auth key but using pfs, authorizing')\n this._authorizePfs()\n\n return\n }\n\n this.log.info('auth keys are already available')\n this.onConnectionUsable()\n }\n\n protected onError(error: Error): void {\n // https://core.telegram.org/mtproto/mtproto-_transports#_transport-errors\n if (error instanceof TransportError) {\n if (error.code === 404) {\n // if we are using pfs, this could be due to the server\n // forgetting our temp key (which is kinda weird but expected)\n\n if (this._usePfs) {\n if (!this._isPfsBindingPending && this._session._authKeyTemp.ready) {\n this.log.info('transport error 404, reauthorizing pfs')\n\n // this is important! we must reset temp auth key before\n // we proceed with new temp key derivation.\n // otherwise, we can end up in an infinite loop in case it\n // was actually perm_key that got 404-ed\n //\n // if temp key binding is already in process in background,\n // _authorizePfs will mark it as foreground to prevent new\n // queries from being sent (to avoid even more 404s)\n this._session._authKeyTemp.reset()\n this._authorizePfs()\n this._onAllFailed('temp key expired, binding started')\n\n return\n } else if (this._isPfsBindingPending) {\n this.log.info('transport error 404, pfs binding in progress')\n\n this._onAllFailed('temp key expired, binding pending')\n\n return\n }\n\n // otherwise, 404 must be referencing the perm_key\n this.log.info('transport error 404, reauthorizing')\n }\n\n // there happened a little trolling\n this._session.reset(true)\n this.emit('key-change', null)\n this._authorize()\n\n return\n }\n\n this.log.error('transport error %d', error.code)\n // all pending queries must be resent\n this._onAllFailed(`transport error ${error.code}`)\n\n if (error.code === 429) {\n this._session.onTransportFlood(this.emit.bind(this, 'flood-done'))\n\n return\n }\n }\n\n this.emit('error', error)\n }\n\n protected onConnectionUsable() {\n super.onConnectionUsable()\n\n if (this.params.withUpdates) {\n // we must send some user-related rpc to the server to make sure that\n // it will send us updates\n this.sendRpc({ _: 'updates.getState' }).catch((err: any) => {\n this.log.warn('failed to send updates.getState: %s', err.text || err.message)\n })\n }\n\n // just in case\n this._flushTimer.emitBeforeNext(1000)\n }\n\n _authorize(): void {\n if (this._session.authorizationPending) {\n this.log.info('_authorize(): authorization already in progress')\n\n return\n }\n\n if (!this.params.isMainConnection) {\n // we don't authorize on non-main connections\n this.log.debug('_authorize(): non-main connection, requesting...')\n this.emit('request-auth')\n\n return\n }\n\n this._session.authorizationPending = true\n this.emit('auth-begin')\n\n doAuthorization(this, this._crypto)\n .then(([authKey, serverSalt, timeOffset]) => {\n this._session._authKey.setup(authKey)\n this._salts.currentSalt = serverSalt\n this._session._timeOffset = timeOffset\n\n this._session.authorizationPending = false\n\n this.emit('key-change', authKey)\n\n if (this._usePfs) {\n return this._authorizePfs()\n }\n this.onConnectionUsable()\n })\n .catch((err: Error) => {\n this._session.authorizationPending = false\n this.log.error('Authorization error: %s', err.message)\n this.onError(err)\n this.reconnect()\n })\n }\n\n private _authorizePfs(background = false): void {\n if (this._isPfsBindingPending) return\n\n if (this._pfsUpdateTimeout) {\n clearTimeout(this._pfsUpdateTimeout)\n this._pfsUpdateTimeout = undefined\n }\n\n if (this._isPfsBindingPendingInBackground) {\n // e.g. temp key has expired while we were binding a key in the background\n // in this case, we shouldn't start pfs binding again, and instead wait for\n // current operation to complete\n this._isPfsBindingPendingInBackground = false\n this._isPfsBindingPending = true\n\n return\n }\n\n if (background) {\n this._isPfsBindingPendingInBackground = true\n } else {\n this._isPfsBindingPending = true\n }\n\n doAuthorization(this, this._crypto, TEMP_AUTH_KEY_EXPIRY)\n .then(async ([tempAuthKey, tempServerSalt]) => {\n if (!this._usePfs) {\n this.log.info('pfs has been disabled while generating temp key')\n\n return\n }\n\n const tempKey = this._session._authKeyTempSecondary\n tempKey.setup(tempAuthKey)\n\n const msgId = this._session.getMessageId()\n\n this.log.debug(\n 'binding temp_auth_key (%h) to perm_auth_key (%h), msg_id = %l...',\n tempKey.id,\n this._session._authKey.id,\n msgId,\n )\n\n // we now need to bind the key\n const inner: mtp.RawMt_bind_auth_key_inner = {\n _: 'mt_bind_auth_key_inner',\n nonce: randomLong(),\n tempAuthKeyId: longFromBuffer(tempKey.id),\n permAuthKeyId: longFromBuffer(this._session._authKey.id),\n tempSessionId: this._session._sessionId,\n expiresAt: Math.floor(Date.now() / 1000) + TEMP_AUTH_KEY_EXPIRY,\n }\n\n // encrypt using mtproto v1 (fucking kill me plz)\n\n const writer = TlBinaryWriter.alloc(this.params.writerMap, 80)\n // = 40 (inner length) + 32 (mtproto header) + 8 (pad 72 so mod 16 = 0)\n\n writer.raw(this._crypto.randomBytes(16))\n writer.long(msgId)\n writer.int(0) // seq_no\n writer.int(40) // msg_len\n writer.object(inner)\n\n const msgWithoutPadding = writer.result()\n writer.raw(this._crypto.randomBytes(8))\n const msgWithPadding = writer.result()\n\n const hash = this._crypto.sha1(msgWithoutPadding)\n const msgKey = hash.subarray(4, 20)\n\n const ige = createAesIgeForMessageOld(this._crypto, this._session._authKey.key, msgKey, true)\n const encryptedData = ige.encrypt(msgWithPadding)\n const encryptedMessage = concatBuffers([this._session._authKey.id, msgKey, encryptedData])\n\n const promise = createControllablePromise<mtp.RawMt_rpc_error | boolean>()\n\n // encrypt the message using temp key and same msg id\n // this is a bit of a hack, but it works\n //\n // hacking inside main send loop to allow sending\n // with another key is just too much hassle.\n // we could just always use temp key if one is available,\n // but that way we won't be able to refresh the key\n // that is about to expire in the background without\n // interrupting actual message flow\n // decrypting is trivial though, since key id\n // is in the first bytes of the message, and is never used later on.\n\n this._session.pendingMessages.set(msgId, {\n _: 'bind',\n promise,\n })\n\n const request: tl.auth.RawBindTempAuthKeyRequest = {\n _: 'auth.bindTempAuthKey',\n permAuthKeyId: inner.permAuthKeyId,\n nonce: inner.nonce,\n expiresAt: inner.expiresAt,\n encryptedMessage,\n }\n const reqSize = TlSerializationCounter.countNeededBytes(this._writerMap, request)\n const reqWriter = TlBinaryWriter.alloc(this._writerMap, reqSize + 16)\n reqWriter.long(this._registerOutgoingMsgId(msgId))\n reqWriter.uint(this._session.getSeqNo())\n reqWriter.uint(reqSize)\n reqWriter.object(request)\n\n // we can now send it as is\n const requestEncrypted = tempKey.encryptMessage(\n reqWriter.result(),\n tempServerSalt,\n this._session._sessionId,\n )\n await this.send(requestEncrypted)\n\n const res = await promise\n\n this._session.pendingMessages.delete(msgId)\n\n if (!this._usePfs) {\n this.log.info('pfs has been disabled while binding temp key')\n\n return\n }\n\n if (typeof res === 'object') {\n this.log.error('failed to bind temp key: %s:%s', res.errorCode, res.errorMessage)\n throw new MtcuteError('Failed to bind temporary key')\n }\n\n // now we can swap the keys (secondary becomes primary,\n // and primary is not immediately forgot because messages using it may still be in flight)\n\n this._session._authKeyTempSecondary = this._session._authKeyTemp\n this._session._authKeyTemp = tempKey\n this._salts.currentSalt = tempServerSalt\n\n this.log.debug('temp key has been bound, exp = %d', inner.expiresAt)\n\n this._isPfsBindingPending = false\n this._isPfsBindingPendingInBackground = false\n\n // we must re-init connection after binding temp key\n this._session.initConnectionCalled = false\n\n this.emit('tmp-key-change', tempAuthKey, inner.expiresAt)\n this.onConnectionUsable()\n\n // set a timeout to update temp auth key in advance to avoid interruption\n this._pfsUpdateTimeout = setTimeout(\n () => {\n this._pfsUpdateTimeout = undefined\n this.log.debug('temp key is expiring soon')\n this._authorizePfs(true)\n },\n (TEMP_AUTH_KEY_EXPIRY - 60) * 1000,\n )\n })\n .catch((err: Error) => {\n this.log.error('PFS Authorization error: %s', err.message)\n\n if (this._isPfsBindingPendingInBackground) {\n this._isPfsBindingPendingInBackground = false\n\n // if we are in background, we can just retry\n return this._authorizePfs(true)\n }\n\n this._isPfsBindingPending = false\n this.onError(err)\n this.reconnect()\n })\n }\n\n waitForUnencryptedMessage(timeout = 5000): Promise<Uint8Array> {\n const promise = createControllablePromise<Uint8Array>()\n const timeoutId = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._pendingWaitForUnencrypted = this._pendingWaitForUnencrypted.filter((it) => it[0] !== promise)\n }, timeout)\n this._pendingWaitForUnencrypted.push([promise, timeoutId])\n\n return promise\n }\n\n protected onMessage(data: Uint8Array): void {\n if (this._pendingWaitForUnencrypted.length) {\n const int32 = new Int32Array(data.buffer, data.byteOffset, 2)\n\n if (int32[0] === 0 && int32[1] === 0) {\n // auth_key_id = 0, meaning it's an unencrypted message used for authorization\n\n const [promise, timeout] = this._pendingWaitForUnencrypted.shift()!\n clearTimeout(timeout)\n promise.resolve(data)\n\n return\n }\n }\n\n if (!this._session._authKey.ready) {\n // if a message is received before authorization,\n // either the server is misbehaving,\n // or there was a problem with authorization.\n this.log.warn('received message before authorization: %h', data)\n\n return\n }\n\n try {\n this._session.decryptMessage(data, this._handleRawMessage)\n } catch (err) {\n this.log.error('failed to decrypt message: %s\\ndata: %h', err, data)\n }\n }\n\n private _handleRawMessage(messageId: Long, seqNo: number, message: TlBinaryReader): void {\n const objectId = message.uint()\n\n if (objectId === GZIP_PACKED_ID) {\n return this._handleRawMessage(\n messageId,\n seqNo,\n new TlBinaryReader(this._readerMap, this._crypto.gunzip(message.bytes())),\n )\n }\n\n if (objectId === MSG_CONTAINER_ID) {\n const count = message.uint()\n\n for (let i = 0; i < count; i++) {\n // msg_id:long seqno:int bytes:int\n const msgId = message.long()\n const seqNo = message.uint() // seqno\n const length = message.uint()\n\n // container can't contain other containers, but can contain rpc_result\n const obj = message.raw(length)\n\n this._handleRawMessage(msgId, seqNo, new TlBinaryReader(this._readerMap, obj))\n }\n\n return\n }\n\n if (objectId === RPC_RESULT_ID) {\n return this._onRpcResult(messageId, message)\n }\n\n // we are safe.. i guess\n this._handleMessage(messageId, message.object(objectId))\n }\n\n private _handleMessage(messageId: Long, message_: unknown): void {\n if (messageId.isEven()) {\n this.log.warn('warn: ignoring message with invalid messageId = %s (is even)', messageId)\n\n return\n }\n\n if (this._session.recentIncomingMsgIds.has(messageId)) {\n this.log.debug('ignoring duplicate message %s', messageId)\n\n return\n }\n const message = message_ as mtp.TlObject\n\n this.log.debug('received %s (msg_id: %l)', message._, messageId)\n this._session.recentIncomingMsgIds.add(messageId)\n\n switch (message._) {\n case 'mt_msgs_ack':\n case 'mt_http_wait':\n case 'mt_bad_msg_notification':\n case 'mt_bad_server_salt':\n case 'mt_msgs_all_info':\n case 'mt_msgs_state_info':\n case 'mt_msg_detailed_info':\n case 'mt_msg_new_detailed_info':\n break\n default:\n this._sendAck(messageId)\n }\n\n switch (message._) {\n case 'mt_pong':\n this._onPong(message)\n break\n case 'mt_bad_server_salt':\n this._onBadServerSalt(message)\n break\n case 'mt_bad_msg_notification':\n this._onBadMsgNotification(messageId, message)\n break\n case 'mt_msgs_ack':\n message.msgIds.forEach((msgId) => this._onMessageAcked(msgId))\n break\n case 'mt_new_session_created':\n this._onNewSessionCreated(message)\n break\n case 'mt_msgs_all_info':\n this._onMessagesInfo(message.msgIds, message.info)\n break\n case 'mt_msg_detailed_info':\n this._onMessageInfo(message.msgId, message.status, message.answerMsgId)\n break\n case 'mt_msg_new_detailed_info':\n this._onMessageInfo(Long.ZERO, 0, message.answerMsgId)\n break\n case 'mt_msgs_state_info':\n this._onMsgsStateInfo(message)\n break\n case 'mt_future_salts':\n this._onFutureSalts(message)\n break\n case 'mt_msgs_state_req':\n case 'mt_msg_resend_req':\n // tdlib doesnt handle them, so why should we? :upside_down_face:\n this.log.warn('received %s (msg_id = %l): %j', message._, messageId, message)\n break\n case 'mt_destroy_session_ok':\n case 'mt_destroy_session_none':\n this._onDestroySessionResult(message)\n break\n default:\n if (tl.isAnyUpdates(message)) {\n if (this._usable && this.params.inactivityTimeout) {\n this._rescheduleInactivity()\n }\n\n this.log.verbose('<<< %j', message)\n\n if (this.params.disableUpdates) {\n this.log.warn('received updates, but updates are disabled')\n // likely due to some request in the session missing invokeWithoutUpdates\n break\n }\n\n this.emit('update', message)\n\n return\n }\n\n this.log.warn('unknown message received: %j', message)\n }\n }\n\n private _onRpcResult(messageId: Long, message: TlBinaryReader): void {\n if (this._usable && this.params.inactivityTimeout) {\n this._rescheduleInactivity()\n }\n\n const reqMsgId = message.long()\n\n if (reqMsgId.isZero()) {\n let resultType\n\n try {\n // eslint-disable-next-line\n resultType = (message.object() as any)._\n } catch (err) {\n resultType = message.peekUint()\n }\n this.log.warn('received rpc_result with %j with req_msg_id = 0', resultType)\n\n return\n }\n\n const msg = this._session.pendingMessages.get(reqMsgId)\n\n if (!msg) {\n let result\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n result = message.object() as any\n } catch (err) {\n result = '[failed to parse]'\n }\n\n // check if the msg is one of the recent ones\n if (this._session.recentOutgoingMsgIds.has(reqMsgId)) {\n this.log.debug('received rpc_result again for %l (contains %j)', reqMsgId, result)\n } else {\n this.log.warn('received rpc_result for unknown message %l: %j', reqMsgId, result)\n }\n\n return\n }\n\n this._sendAck(messageId)\n\n // special case for auth key binding\n if (msg._ !== 'rpc') {\n if (msg._ === 'bind') {\n this._sendAck(messageId)\n msg.promise.resolve(message.object())\n\n return\n }\n\n if (msg._ === 'cancel') {\n let result\n\n try {\n result = message.object() as mtp.TlObject\n } catch (err) {\n this.log.debug('failed to parse rpc_result for cancel request %l, ignoring', reqMsgId)\n\n return\n }\n\n this.log.debug('received %s for cancelled request %l: %j', result._, reqMsgId, result)\n this._onMessageAcked(reqMsgId)\n\n return\n }\n\n this.log.error('received rpc_result for %s request %l', msg._, reqMsgId)\n\n return\n }\n\n const rpc = msg.rpc\n\n const customReader = this._readerMap._results![rpc.method]\n\n let result: any\n\n if (customReader) {\n result = customReader(message)\n } else {\n const objectId = message.uint()\n\n if (objectId === GZIP_PACKED_ID) {\n const inner = this._crypto.gunzip(message.bytes())\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n result = TlBinaryReader.deserializeObject(this._readerMap, inner)\n } else {\n result = message.object(objectId)\n }\n }\n\n // initConnection call was definitely received and\n // processed by the server, so we no longer need to use it\n // todo: is this the case with failed invokeAfterMsg(s) as well?\n if (rpc.initConn) {\n this._session.initConnectionCalled = true\n }\n\n rpc.done = true\n\n this.log.verbose('<<< (%s) %j', rpc.method, result)\n\n if (result._ === 'mt_rpc_error') {\n const res = result as mtp.RawMt_rpc_error\n this.log.debug(\n 'received rpc_error [%d:%s] for %l (%s)',\n res.errorCode,\n res.errorMessage,\n reqMsgId,\n rpc.method,\n )\n\n if (rpc.cancelled) return\n\n switch (res.errorMessage) {\n case 'AUTH_KEY_PERM_EMPTY':\n // happens when temp auth key is not yet bound\n // this shouldn't happen as we block any outbound communications\n // until the temp key is derived and bound.\n //\n // i think it is also possible for the error to be returned\n // when the temp key has expired, but this still shouldn't happen\n // but this is tg, so something may go wrong, and we will receive this as an error\n // (for god's sake why is this not in mtproto and instead hacked into the app layer)\n this._authorizePfs()\n this._onMessageFailed(reqMsgId, 'AUTH_KEY_PERM_EMPTY', true)\n\n return\n case 'CONNECTION_NOT_INITED': {\n // this seems to sometimes happen when using pfs\n // no idea why, but tdlib also seems to handle these, so whatever\n\n this._session.initConnectionCalled = false\n this._onMessageFailed(reqMsgId, res.errorMessage, true)\n\n // just setting this flag is not enough because the message\n // is already serialized, so we do this awesome hack\n this.sendRpc({ _: 'help.getNearestDc' })\n .then(() => {\n this.log.debug('additional help.getNearestDc for initConnection ok')\n })\n .catch((err) => {\n this.log.debug('additional help.getNearestDc for initConnection error: %s', err)\n })\n\n return\n }\n case 'MSG_WAIT_TIMEOUT':\n case 'MSG_WAIT_FAILED': {\n if (!rpc.invokeAfter) {\n this.log.warn('received %s for non-chained request %l', res.errorMessage, reqMsgId)\n\n break\n }\n\n // in some cases, MSG_WAIT_TIMEOUT is returned instead of MSG_WAIT_FAILED when one of the deps\n // failed with MSG_WAIT_TIMEOUT. i have no clue why, this makes zero sense, but what fucking ever\n //\n // this basically means we can't handle a timeout any different than a general failure,\n // because the timeout might not refer to the immediate `.invokeAfter` message, but to\n // its arbitrary-depth dependency, so we indeed have to wait for the message ourselves...\n\n if (this._session.pendingMessages.has(rpc.invokeAfter)) {\n // the dependency is still pending, postpone the processing\n this.log.debug(\n 'chain %s: waiting for %l before processing %l',\n rpc.chainId,\n rpc.invokeAfter,\n reqMsgId,\n )\n this._session.getPendingChainedFails(rpc.chainId!).insert(rpc)\n } else {\n this._session.chains.delete(rpc.chainId!)\n this._onMessageFailed(reqMsgId, 'MSG_WAIT_FAILED', true)\n }\n\n return\n }\n }\n\n const error = tl.RpcError.fromTl(res)\n\n if (this.params.niceStacks !== false) {\n makeNiceStack(error, rpc.stack!, rpc.method)\n }\n\n if (error.unknown && this.params.enableErrorReporting) {\n reportUnknownError(this.log, error, rpc.method)\n }\n\n rpc.promise.reject(error)\n } else {\n this.log.debug('received rpc_result (%s) for request %l (%s)', result._, reqMsgId, rpc.method)\n\n if (rpc.cancelled) return\n\n rpc.promise.resolve(result)\n }\n\n if (rpc.chainId) {\n this._processPendingChainedFails(rpc.chainId, reqMsgId)\n }\n\n this._onMessageAcked(reqMsgId)\n this._session.pendingMessages.delete(reqMsgId)\n }\n\n private _processPendingChainedFails(chainId: number | string, sinceMsgId: Long): void {\n // sinceMsgId was already definitely received and contained an error.\n // we should now re-send all the pending MSG_WAIT_FAILED after it\n this._session.removeFromChain(chainId, sinceMsgId)\n\n const oldPending = this._session.chainsPendingFails.get(chainId)\n\n if (!oldPending?.length) {\n return\n }\n\n const idx = oldPending.index({ invokeAfter: sinceMsgId } as PendingRpc, true)\n if (idx === -1) return\n\n const toFail = oldPending.raw.splice(idx)\n\n this.log.debug('chain %s: failing %d dependant messages: %L', chainId, toFail.length, toFail)\n\n // we're failing the rest of the chain, including the last message\n this._session.chains.delete(chainId)\n\n for (const rpc of toFail) {\n this._onMessageFailed(rpc.msgId!, 'MSG_WAIT_FAILED', true)\n }\n }\n\n private _onMessageAcked(msgId: Long, inContainer = false): void {\n const msg = this._session.pendingMessages.get(msgId)\n\n if (!msg) {\n if (!this._session.recentOutgoingMsgIds.has(msgId)) {\n this.log.warn('received ack for unknown message %l', msgId)\n }\n\n return\n }\n\n switch (msg._) {\n case 'container':\n this.log.debug('received ack for container %l (size = %d)', msgId, msg.msgIds.length)\n\n msg.msgIds.forEach((msgId) => this._onMessageAcked(msgId, true))\n\n // we no longer need info about the container\n this._session.pendingMessages.delete(msgId)\n break\n\n case 'rpc': {\n const rpc = msg.rpc\n this.log.debug('received ack for rpc query %l (%s, acked before = %s)', msgId, rpc.method, rpc.acked)\n\n rpc.acked = true\n\n if (!inContainer && rpc.containerId && this._session.pendingMessages.has(rpc.containerId)) {\n // ack all the messages in that container\n this._onMessageAcked(rpc.containerId)\n }\n\n // this message could also already be in some queue,\n removeFromLongArray(this._session.queuedStateReq, msgId)\n removeFromLongArray(this._session.queuedResendReq, msgId)\n\n // if resend/state was already requested, it will simply be ignored\n\n this._session.getStateSchedule.remove(rpc)\n break\n }\n case 'bind':\n case 'cancel':\n break // do nothing, wait for the result\n\n default:\n if (!inContainer) {\n this.log.warn('received unexpected ack for %s query %l', msg._, msgId)\n }\n }\n }\n\n private _onAllFailed(reason: string) {\n // called when all the pending messages are to be resent\n // e.g. when server returns 429\n\n // most service messages can be omitted as stale\n\n for (const msgId of this._session.pendingMessages.keys()) {\n const info = this._session.pendingMessages.get(msgId)!\n\n switch (info._) {\n case 'container':\n case 'state':\n case 'resend':\n case 'ping':\n // no longer relevant\n this._session.pendingMessages.delete(msgId)\n break\n default:\n this._onMessageFailed(msgId, reason, true)\n break\n }\n }\n }\n\n private _onMessageFailed(msgId: Long, reason: string, inContainer = false): void {\n const msgInfo = this._session.pendingMessages.get(msgId)\n\n if (!msgInfo) {\n this.log.debug('unknown message %l failed because of %s', msgId, reason)\n\n return\n }\n\n switch (msgInfo._) {\n case 'container':\n this.log.debug('container %l (size = %d) failed because of %s', msgId, msgInfo.msgIds.length, reason)\n msgInfo.msgIds.forEach((msgId) => this._onMessageFailed(msgId, reason, true))\n break\n case 'ping':\n this.log.debug('ping (msg_id = %l) failed because of %s', msgId, reason)\n // restart ping\n this._session.resetLastPing(true)\n break\n\n case 'rpc': {\n const rpc = msgInfo.rpc\n this.log.debug('rpc query %l (%s) failed because of %s', msgId, rpc.method, reason)\n\n // since the query was rejected, we can let it reassign msg_id to avoid containers\n this._session.pendingMessages.delete(msgId)\n rpc.msgId = undefined\n this._enqueueRpc(rpc, true)\n\n if (!inContainer && rpc.containerId && this._session.pendingMessages.has(rpc.containerId)) {\n // fail all the messages in that container\n this._onMessageFailed(rpc.containerId, reason)\n }\n\n // this message could also already be in some queue,\n removeFromLongArray(this._session.queuedStateReq, msgId)\n removeFromLongArray(this._session.queuedResendReq, msgId)\n\n // if resend/state was already requested, it will simply be ignored\n\n this._session.getStateSchedule.remove(rpc)\n\n break\n }\n case 'resend':\n this.log.debug(\n 'resend request %l (size = %d) failed because of %s',\n msgId,\n msgInfo.msgIds.length,\n reason,\n )\n this._session.queuedResendReq.splice(0, 0, ...msgInfo.msgIds)\n this._flushTimer.emitWhenIdle()\n break\n case 'state':\n this.log.debug(\n 'state request %l (size = %d) failed because of %s',\n msgId,\n msgInfo.msgIds.length,\n reason,\n )\n this._session.queuedStateReq.splice(0, 0, ...msgInfo.msgIds)\n this._flushTimer.emitWhenIdle()\n break\n case 'bind':\n this.log.debug('temp key binding request %l failed because of %s, retrying', msgId, reason)\n msgInfo.promise.reject(Error(reason))\n break\n case 'future_salts':\n this.log.debug('future_salts request %l failed because of %s, will retry', msgId, reason)\n this._salts.isFetching = false\n // this is enough to make it retry on the next flush.\n break\n }\n\n this._session.pendingMessages.delete(msgId)\n }\n\n private _registerOutgoingMsgId(msgId: Long): Long {\n this._session.recentOutgoingMsgIds.add(msgId)\n\n return msgId\n }\n\n private _onPong({ msgId, pingId }: mtp.RawMt_pong): void {\n const info = this._session.pendingMessages.get(msgId)\n\n if (!info) {\n this.log.warn('received pong to unknown ping (msg_id %l, ping_id %l)', msgId, pingId)\n\n return\n }\n\n if (info._ !== 'ping') {\n this.log.warn('received pong to %s query, not ping (msg_id %l, ping_id %l)', info._, msgId, pingId)\n\n return\n }\n\n if (info.pingId.neq(pingId)) {\n this.log.warn('received pong to %l, but expected ping_id = %l (got %l)', msgId, info.pingId, pingId)\n }\n\n const rtt = Date.now() - this._session.lastPingTime\n this._session.lastPingRtt = rtt\n\n if (info.containerId.neq(msgId)) {\n this._onMessageAcked(info.containerId)\n }\n\n this.log.debug('received pong: msg_id %l, ping_id %l, rtt = %dms', msgId, pingId, rtt)\n this._session.resetLastPing()\n }\n\n private _onBadServerSalt(msg: mtp.RawMt_bad_server_salt): void {\n this._salts.currentSalt = msg.newServerSalt\n\n this._onMessageFailed(msg.badMsgId, 'bad_server_salt')\n }\n\n private _onBadMsgNotification(msgId: Long, msg: mtp.RawMt_bad_msg_notification): void {\n switch (msg.errorCode) {\n case 16:\n case 17:\n case 20: {\n if (msg.errorCode !== 20) {\n // msg_id is either too high or too low\n // code 20 means msg_id is too old,\n // we just need to resend the message\n const serverTime = msgId.low >>> 0\n const timeOffset = Math.floor(Date.now() / 1000) - serverTime\n\n this._session._timeOffset = timeOffset\n this.log.debug('server time: %d, corrected offset to %d', serverTime, timeOffset)\n }\n\n this._onMessageFailed(msg.badMsgId, `bad_msg_notification ${msg.errorCode}`)\n break\n }\n default:\n // something went very wrong, we need to reset the session\n this.log.error(\n 'received bad_msg_notification for msg_id = %l, code = %d. session will be reset',\n msg.badMsgId,\n msg.errorCode,\n )\n this._resetSession()\n break\n }\n }\n\n private _onNewSessionCreated({ firstMsgId, serverSalt, uniqueId }: mtp.RawMt_new_session_created): void {\n if (uniqueId.eq(this._session.lastSessionCreatedUid)) {\n this.log.debug('received new_session_created with the same uid = %l, ignoring', uniqueId)\n\n return\n }\n\n if (!this._session.lastSessionCreatedUid.isZero() && !this.params.disableUpdates) {\n // force the client to fetch missed updates\n // when _lastSessionCreatedUid == 0, the connection has\n // just been established, and the client will fetch them anyways\n this.emit('update', { _: 'updatesTooLong' })\n }\n\n this._salts.currentSalt = serverSalt\n\n this.log.debug('received new_session_created, uid = %l, first msg_id = %l', uniqueId, firstMsgId)\n\n for (const msgId of this._session.pendingMessages.keys()) {\n const val = this._session.pendingMessages.get(msgId)!\n\n if (val._ === 'bind') {\n // should NOT happen.\n if (msgId.lt(firstMsgId)) {\n this._onMessageFailed(msgId, 'received in wrong session')\n }\n continue\n }\n\n if (val._ === 'container') {\n if (msgId.lt(firstMsgId)) {\n // all messages in this container will be resent\n // info about this container is no longer needed\n this._session.pendingMessages.delete(msgId)\n }\n\n return\n }\n\n const containerId = val._ === 'rpc' ? val.rpc.containerId || msgId : val.containerId\n\n if (containerId.lt(firstMsgId)) {\n this._onMessageFailed(msgId, 'new_session_created', true)\n }\n }\n }\n\n private _onMessageInfo(msgId: Long, status: number, answerMsgId: Long): void {\n if (!msgId.isZero()) {\n const info = this._session.pendingMessages.get(msgId)\n\n if (!info) {\n if (!this._session.recentOutgoingMsgIds.has(msgId)) {\n this.log.warn('received message info about unknown message %l', msgId)\n }\n\n return\n }\n\n switch (status & 7) {\n case 1:\n case 2:\n case 3:\n // message wasn't received by the server\n return this._onMessageFailed(msgId, `message info state ${status}`)\n break\n\n case 0:\n if (!answerMsgId.isZero()) {\n this.log.warn(\n 'received message info with status = 0: msg_id = %l, status = %d, ans_id = %l',\n msgId,\n status,\n answerMsgId,\n )\n\n return this._onMessageFailed(msgId, 'message info state = 0, ans_id = 0')\n }\n // fallthrough\n case 4:\n this._onMessageAcked(msgId)\n break\n }\n }\n\n if (!answerMsgId.isZero() && !this._session.recentIncomingMsgIds.has(answerMsgId)) {\n this.log.debug('received message info for %l, but answer (%l) was not received yet', msgId, answerMsgId)\n this._session.queuedResendReq.push(answerMsgId)\n this._flushTimer.emitWhenIdle()\n\n return\n }\n\n if (answerMsgId.isZero()) {\n this.log.debug('received message info for %l: message is still pending (status = %d)', msgId, status)\n\n return\n }\n\n this.log.debug('received message info for %l, and answer (%l) was already received', msgId, answerMsgId)\n }\n\n private _onMessagesInfo(msgIds: Long[], info: Uint8Array): void {\n if (msgIds.length !== info.length) {\n this.log.warn('messages state info was invalid: msg_ids.length !== info.length')\n }\n\n for (let i = 0; i < msgIds.length; i++) {\n this._onMessageInfo(msgIds[i], info[i], Long.ZERO)\n }\n }\n\n private _onMsgsStateInfo(msg: mtp.RawMt_msgs_state_info): void {\n const info = this._session.pendingMessages.get(msg.reqMsgId)\n\n if (!info) {\n this.log.warn('received msgs_state_info to unknown request %l', msg.reqMsgId)\n\n return\n }\n\n if (info._ !== 'state') {\n this.log.warn('received msgs_state_info to %s query %l', info._, msg.reqMsgId)\n\n return\n }\n\n this._onMessagesInfo(info.msgIds, msg.info)\n }\n\n private _onFutureSalts(msg: mtp.RawMt_future_salts): void {\n const info = this._session.pendingMessages.get(msg.reqMsgId)\n\n if (!info) {\n this.log.warn('received future_salts to unknown request %l', msg.reqMsgId)\n\n return\n }\n\n if (info._ !== 'future_salts') {\n this.log.warn('received future_salts to %s query %l', info._, msg.reqMsgId)\n\n return\n }\n\n this.log.debug('received future_salts: %d salts', msg.salts.length)\n\n this._salts.isFetching = false\n this._salts.setFutureSalts(msg.salts.slice())\n this.emit('future-salts', msg.salts)\n }\n\n private _onDestroySessionResult(msg: mtp.TypeDestroySessionRes): void {\n const reqMsgId = this._session.destroySessionIdToMsgId.get(msg.sessionId)\n\n if (!reqMsgId) {\n this.log.warn('received %s for unknown session %h', msg._, msg.sessionId)\n\n return\n }\n\n this._session.destroySessionIdToMsgId.delete(msg.sessionId)\n this._session.pendingMessages.delete(reqMsgId)\n this.log.debug('received %s for session %h', msg._, msg.sessionId)\n }\n\n private _enqueueRpc(rpc: PendingRpc, force?: boolean) {\n if (this._session.enqueueRpc(rpc, force)) {\n this._flushTimer.emitWhenIdle()\n }\n }\n\n _resetSession(): void {\n this._queuedDestroySession.push(this._session._sessionId)\n\n this._session.resetState(true)\n this.reconnect()\n\n // once we receive new_session_created, all pending messages will be resent.\n this._flushTimer.reset()\n }\n\n private _sendAck(msgId: Long): void {\n if (this._session.queuedAcks.length === 0) {\n this._flushTimer.emitBeforeNext(30000)\n }\n\n this._session.queuedAcks.push(msgId)\n\n if (this._session.queuedAcks.length >= 100) {\n this._flushTimer.emitWhenIdle()\n }\n }\n\n sendRpc<T extends tl.RpcMethod>(\n request: T,\n stack?: string,\n timeout?: number,\n abortSignal?: AbortSignal,\n chainId?: string | number,\n ): Promise<tl.RpcCallReturn[T['_']]> {\n if (this._usable && this.params.inactivityTimeout) {\n this._rescheduleInactivity()\n }\n\n if (!stack && this.params.niceStacks !== false) {\n stack = new Error().stack\n }\n\n const method = request._\n\n let obj: tl.TlObject = request\n let initConn = false\n\n if (this.params.disableUpdates) {\n obj = {\n _: 'invokeWithoutUpdates',\n query: obj,\n }\n }\n\n if (!this._session.initConnectionCalled) {\n // we will wrap every rpc call with initConnection\n // until some of the requests wrapped with it is\n // either acked or returns rpc_result\n\n this.log.debug('wrapping %s with initConnection, layer: %d', method, this.params.layer)\n const proxy = this._transport.getMtproxyInfo?.()\n obj = {\n _: 'invokeWithLayer',\n layer: this.params.layer,\n query: {\n ...this.params.initConnection,\n proxy,\n query: obj,\n },\n }\n initConn = true\n }\n\n this.log.verbose('>>> %j', obj)\n\n let content = TlBinaryWriter.serializeObject(this._writerMap, obj)\n\n if (content.length > 1044404) {\n // if you send larger payloads, telegram will just close connection,\n // and since we resend them, it will get resent after reconnection and\n // that will be an endless loop of reconnections. we don't want that,\n // and payloads this large are usually a sign of an error in the code.\n throw new MtArgumentError(`Payload is too big (${content.length} > 1044404)`)\n }\n\n // gzip\n let shouldGzip = content.length > 128\n\n if (content.length > 16384) {\n // test compression ratio for the middle part\n // if it is less than 0.9, then try to compress the whole request\n\n const middle = ~~((content.length - 1024) / 2)\n const middlePart = content.subarray(middle, middle + 1024)\n const gzipped = this._crypto.gzip(middlePart, Math.floor(middlePart.length * 0.9))\n\n if (!gzipped) shouldGzip = false\n }\n\n if (shouldGzip) {\n const gzipped = this._crypto.gzip(content, Math.floor(content.length * 0.9))\n\n if (gzipped) {\n this.log.debug('gzipped %s (%db -> %db)', method, content.length, gzipped.length)\n\n content = gzipped\n } else {\n shouldGzip = false\n }\n }\n\n const pending: PendingRpc = {\n method,\n promise: createControllablePromise(),\n data: content,\n stack,\n // we will need to know size of gzip_packed overhead in _flush()\n gzipOverhead: shouldGzip ? 4 + TlSerializationCounter.countBytesOverhead(content.length) : 0,\n initConn,\n chainId,\n\n // setting them as well so jit can optimize stuff\n invokeAfter: undefined,\n sent: undefined,\n done: undefined,\n getState: undefined,\n msgId: undefined,\n seqNo: undefined,\n containerId: undefined,\n acked: undefined,\n cancelled: undefined,\n timeout: undefined,\n }\n\n if (abortSignal?.aborted) {\n pending.promise.reject(abortSignal.reason)\n\n return pending.promise\n }\n\n if (timeout) {\n pending.timeout = setTimeout(this._cancelRpc, timeout, pending, true)\n }\n\n if (abortSignal) {\n abortSignal.addEventListener('abort', () => this._cancelRpc(pending, false, abortSignal))\n }\n\n this._enqueueRpc(pending, true)\n\n return pending.promise\n }\n\n private _cancelRpc(rpc: PendingRpc, onTimeout = false, abortSignal?: AbortSignal): void {\n if (rpc.done) return\n\n if (rpc.cancelled && !onTimeout) {\n throw new MtcuteError('RPC was already cancelled')\n }\n\n if (!onTimeout && rpc.timeout) {\n clearTimeout(rpc.timeout)\n }\n\n if (onTimeout) {\n // todo: replace with MtTimeoutError\n const error = new tl.RpcError(400, 'Client timeout')\n\n if (this.params.niceStacks !== false) {\n makeNiceStack(error, rpc.stack!, rpc.method)\n }\n\n rpc.promise.reject(error)\n } else if (abortSignal) {\n rpc.promise.reject(abortSignal.reason)\n }\n\n rpc.cancelled = true\n\n if (rpc.msgId) {\n this._session.queuedCancelReq.push(rpc.msgId)\n this._session.getStateSchedule.remove(rpc)\n this._flushTimer.emitWhenIdle()\n } else {\n // in case rpc wasn't sent yet (or had some error),\n // we can simply remove it from queue\n this._session.queuedRpc.remove(rpc)\n }\n }\n\n protected _onInactivityTimeout() {\n // we should send all pending acks and other service messages\n // before dropping the connection\n // additionally, if we are still waiting for some rpc results,\n // we should wait for them first\n\n let hasPendingRpc = false\n\n for (const it of this._session.pendingMessages.values()) {\n if (it._ === 'rpc') {\n hasPendingRpc = true\n break\n }\n }\n\n if (hasPendingRpc) {\n this.log.debug('waiting for pending rpc queries to finish before closing connection')\n this._rescheduleInactivity()\n\n return\n }\n\n if (!this._session.hasPendingMessages) {\n this.log.debug('no pending service messages, closing connection')\n super._onInactivityTimeout()\n\n return\n }\n\n this._inactivityPendingFlush = true\n this._flush()\n }\n\n flushWhenIdle(): void {\n this._flushTimer.emitWhenIdle()\n }\n\n private _flush(): void {\n if (!this._session._authKey.ready || this._isPfsBindingPending || this._session.current429Timeout) {\n this.log.debug(\n 'skipping flush, connection is not usable (auth key ready = %b, pfs binding pending = %b, 429 timeout = %b)',\n this._session._authKey.ready,\n this._isPfsBindingPending,\n Boolean(this._session.current429Timeout),\n )\n\n // it will be flushed once connection is usable\n return\n }\n\n try {\n this._doFlush()\n } catch (e: any) {\n this.log.error('flush error: %s', (e as Error).stack)\n // should not happen unless there's a bug in the code\n }\n\n // schedule next flush\n // if there are more queued requests, flush immediately\n // (they likely didn't fit into one message)\n if (this._session.hasPendingMessages) {\n // we schedule it on the next tick, so we can load-balance\n // between multiple connections using the same session\n this._flushTimer.emitWhenIdle()\n } else {\n const nextPingTime = this._session.lastPingTime + PING_INTERVAL\n const nextGetScheduleTime = this._session.getStateSchedule.raw[0]?.getState || Infinity\n\n this._flushTimer.emitBefore(Math.min(nextPingTime, nextGetScheduleTime))\n }\n }\n\n private _doFlush(): void {\n this.log.debug('flushing send queue. queued rpc: %d', this._session.queuedRpc.length)\n\n // oh bloody hell mate\n\n // total size & count\n let packetSize = 0\n let messageCount = 0\n // size & msg count that count towards container limit\n // these will be added to total later\n let containerMessageCount = 0\n let containerSize = 0\n\n let ackRequest: Uint8Array | null = null\n let ackMsgIds: Long[] | null = null\n\n let getFutureSaltsRequest: Uint8Array | null = null\n let getFutureSaltsMsgId: Long | null = null\n\n let pingRequest: Uint8Array | null = null\n let pingId: Long | null = null\n let pingMsgId: Long | null = null\n\n let getStateRequest: Uint8Array | null = null\n let getStateMsgId: Long | null = null\n let getStateMsgIds: Long[] | null = null\n\n let resendRequest: Uint8Array | null = null\n let resendMsgId: Long | null = null\n let resendMsgIds: Long[] | null = null\n\n let cancelRpcs: Long[] | null = null\n let destroySessions: Long[] | null = null\n let rootMsgId: Long | null = null\n\n const now = Date.now()\n\n if (this._session.queuedAcks.length) {\n let acks = this._session.queuedAcks\n\n if (acks.length > 8192) {\n this._session.queuedAcks = acks.slice(8192)\n acks = acks.slice(0, 8192)\n } else {\n this._session.queuedAcks = []\n }\n\n const obj: mtp.RawMt_msgs_ack = {\n _: 'mt_msgs_ack',\n msgIds: acks,\n }\n ackMsgIds = obj.msgIds\n\n ackRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n packetSize += ackRequest.length + 16\n messageCount += 1\n }\n\n if (now - this._session.lastPingTime > PING_INTERVAL) {\n if (!this._session.lastPingMsgId.isZero()) {\n this.log.warn(\"didn't receive pong for previous ping (msg_id = %l)\", this._session.lastPingMsgId)\n this._session.pendingMessages.delete(this._session.lastPingMsgId)\n }\n\n pingId = randomLong()\n const obj: mtp.RawMt_ping_delay_disconnect = {\n _: 'mt_ping_delay_disconnect',\n pingId,\n disconnectDelay: 75,\n }\n\n this._session.lastPingTime = Date.now()\n\n pingRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n containerSize += pingRequest.length + 16\n containerMessageCount += 1\n }\n\n {\n if (this._session.queuedStateReq.length) {\n let ids = this._session.queuedStateReq\n\n if (ids.length > 8192) {\n this._session.queuedStateReq = ids.slice(8192)\n ids = ids.slice(0, 8192)\n } else {\n this._session.queuedStateReq = []\n }\n getStateMsgIds = ids\n }\n\n const idx = this._session.getStateSchedule.index({ getState: now } as PendingRpc, true)\n\n if (idx > 0) {\n const toGetState = this._session.getStateSchedule.raw.splice(0, idx)\n if (!getStateMsgIds) getStateMsgIds = []\n toGetState.forEach((it) => getStateMsgIds!.push(it.msgId!))\n }\n\n if (getStateMsgIds) {\n const obj: mtp.RawMt_msgs_state_req = {\n _: 'mt_msgs_state_req',\n msgIds: getStateMsgIds,\n }\n\n getStateRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n packetSize += getStateRequest.length + 16\n messageCount += 1\n }\n }\n\n if (this._session.queuedResendReq.length) {\n resendMsgIds = this._session.queuedResendReq\n\n if (resendMsgIds.length > 8192) {\n this._session.queuedResendReq = resendMsgIds.slice(8192)\n resendMsgIds = resendMsgIds.slice(0, 8192)\n } else {\n this._session.queuedResendReq = []\n }\n\n const obj: mtp.RawMt_msg_resend_req = {\n _: 'mt_msg_resend_req',\n msgIds: resendMsgIds,\n }\n\n resendRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n packetSize += resendRequest.length + 16\n messageCount += 1\n }\n\n if (this._session.queuedCancelReq.length) {\n containerMessageCount += this._session.queuedCancelReq.length\n containerSize += this._session.queuedCancelReq.length * 28\n cancelRpcs = this._session.queuedCancelReq\n this._session.queuedCancelReq = []\n }\n\n if (this._queuedDestroySession.length) {\n containerMessageCount += this._queuedDestroySession.length\n containerSize += this._queuedDestroySession.length * 28\n destroySessions = this._queuedDestroySession\n this._queuedDestroySession = []\n }\n\n if (this._salts.shouldFetchSalts()) {\n const obj: mtp.RawMt_get_future_salts = {\n _: 'mt_get_future_salts',\n num: 64,\n }\n\n getFutureSaltsRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n containerSize += getFutureSaltsRequest.length + 16\n containerMessageCount += 1\n this._salts.isFetching = true\n }\n\n let forceContainer = false\n const rpcToSend: PendingRpc[] = []\n\n while (\n this._session.queuedRpc.length &&\n containerSize < 32768 && // 2^15\n containerMessageCount < 1020\n ) {\n const msg = this._session.queuedRpc.popFront()!\n if (msg.cancelled) continue\n\n // note: we don't check for <2^15 here\n // this is not documented, but large requests\n // (like upload.saveFilePart) *may* exceed that limit\n\n rpcToSend.push(msg)\n containerSize += msg.data.length + 16\n if (msg.gzipOverhead) containerSize += msg.gzipOverhead\n\n if (msg.chainId) {\n containerSize += INVOKE_AFTER_MSG_SIZE\n }\n\n // if message was already assigned a msg_id,\n // we must wrap it in a container with a newer msg_id\n if (msg.msgId) forceContainer = true\n\n // having >1 upload.getFile within a container seems to cause flood_wait errors\n // also a crutch for load-balancing\n if (msg.method === 'upload.getFile') break\n }\n\n packetSize += containerSize\n messageCount += containerMessageCount + rpcToSend.length\n\n if (!messageCount) {\n this.log.debug('flush did not happen: nothing to flush')\n\n return\n }\n\n const useContainer = forceContainer || messageCount > 1\n if (useContainer) packetSize += 24 // 8 (msg_container) + 16 (mtproto header)\n\n const writer = TlBinaryWriter.alloc(this._writerMap, packetSize)\n\n if (useContainer) {\n // leave bytes for mtproto header (we'll write it later,\n // since we need seqno and msg_id to be larger than the content)\n writer.pos += 16\n writer.uint(MSG_CONTAINER_ID)\n writer.uint(messageCount)\n }\n\n const otherPendings: Exclude<PendingMessage, { _: 'rpc' | 'container' | 'bind' }>[] = []\n\n if (ackRequest) {\n this._registerOutgoingMsgId(this._session.writeMessage(writer, ackRequest))\n }\n\n if (pingRequest) {\n pingMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, pingRequest))\n this._session.lastPingMsgId = pingMsgId\n const pingPending: PendingMessage = {\n _: 'ping',\n pingId: pingId!,\n containerId: pingMsgId,\n }\n this._session.pendingMessages.set(pingMsgId, pingPending)\n otherPendings.push(pingPending)\n }\n\n if (getStateRequest) {\n getStateMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, getStateRequest))\n const getStatePending: PendingMessage = {\n _: 'state',\n msgIds: getStateMsgIds!,\n containerId: getStateMsgId,\n }\n this._session.pendingMessages.set(getStateMsgId, getStatePending)\n otherPendings.push(getStatePending)\n }\n\n if (resendRequest) {\n resendMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, resendRequest))\n const resendPending: PendingMessage = {\n _: 'resend',\n msgIds: resendMsgIds!,\n containerId: resendMsgId,\n }\n this._session.pendingMessages.set(resendMsgId, resendPending)\n otherPendings.push(resendPending)\n }\n\n if (cancelRpcs) {\n cancelRpcs.forEach((msgId) => {\n const cancelMsgId = this._registerOutgoingMsgId(\n this._session.writeMessage(writer, {\n _: 'mt_rpc_drop_answer',\n reqMsgId: msgId,\n }),\n )\n\n const pending: PendingMessage = {\n _: 'cancel',\n msgId,\n containerId: cancelMsgId,\n }\n this._session.pendingMessages.set(cancelMsgId, pending)\n otherPendings.push(pending)\n })\n }\n\n if (destroySessions) {\n destroySessions.forEach((sessionId) => {\n const msgId = this._registerOutgoingMsgId(\n this._session.writeMessage(writer, {\n _: 'mt_destroy_session',\n sessionId,\n }),\n )\n\n const pending: PendingMessage = {\n _: 'destroy_session',\n sessionId,\n containerId: msgId,\n }\n this._session.pendingMessages.set(msgId, pending)\n this._session.destroySessionIdToMsgId.set(sessionId, msgId)\n otherPendings.push(pending)\n })\n }\n\n if (getFutureSaltsRequest) {\n getFutureSaltsMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, getFutureSaltsRequest))\n const pending: PendingMessage = {\n _: 'future_salts',\n containerId: getFutureSaltsMsgId,\n }\n this._session.pendingMessages.set(getFutureSaltsMsgId, pending)\n otherPendings.push(pending)\n }\n\n const getStateTime = now + GET_STATE_INTERVAL\n\n for (let i = 0; i < rpcToSend.length; i++) {\n const msg = rpcToSend[i]\n // not using writeMessage here because we also need seqNo, and\n // i dont want to also return seqNo there because that would mean\n // extra object overhead\n\n if (!msg.msgId) {\n const msgId = this._session.getMessageId()\n const seqNo = this._session.getSeqNo()\n\n this.log.debug('%s: msg_id assigned %l, seqno: %d', msg.method, msgId, seqNo)\n\n msg.msgId = msgId\n msg.seqNo = seqNo\n this._session.pendingMessages.set(msgId, {\n _: 'rpc',\n rpc: msg,\n })\n\n if (msg.chainId) {\n msg.invokeAfter = this._session.addToChain(msg.chainId, msgId)\n this.log.debug('chain %s: invoke %l after %l', msg.chainId, msg.msgId, msg.invokeAfter)\n }\n } else {\n this.log.debug('%s: msg_id already assigned, reusing %l, seqno: %d', msg.method, msg.msgId, msg.seqNo)\n }\n\n // (re-)schedule get_state if needed\n if (msg.getState) {\n this._session.getStateSchedule.remove(msg)\n }\n if (!msg.acked) {\n msg.getState = getStateTime\n this._session.getStateSchedule.insert(msg)\n }\n\n if (rootMsgId === null) rootMsgId = msg.msgId\n writer.long(this._registerOutgoingMsgId(msg.msgId))\n writer.uint(msg.seqNo!)\n\n const invokeAfterSize = msg.invokeAfter ? INVOKE_AFTER_MSG_SIZE : 0\n\n const writeInvokeAfter = () => {\n if (!msg.invokeAfter) return\n\n writer.uint(INVOKE_AFTER_MSG_ID)\n writer.long(msg.invokeAfter)\n }\n\n if (msg.gzipOverhead) {\n writer.uint(msg.data.length + msg.gzipOverhead + invokeAfterSize)\n writeInvokeAfter()\n writer.uint(GZIP_PACKED_ID)\n writer.bytes(msg.data)\n } else {\n writer.uint(msg.data.length + invokeAfterSize)\n writeInvokeAfter()\n writer.raw(msg.data)\n }\n\n msg.sent = true\n }\n\n if (useContainer) {\n // we now need to assign the container msg_id and seqno\n // we couldn't have assigned them earlier because mtproto\n // requires them to be >= than the contained messages\n\n packetSize = writer.pos\n\n const containerId = this._session.getMessageId()\n writer.pos = 0\n rootMsgId = containerId\n writer.long(this._registerOutgoingMsgId(containerId))\n writer.uint(this._session.getSeqNo(false))\n writer.uint(packetSize - 16)\n writer.pos = packetSize\n\n const msgIds = []\n\n for (let i = 0; i < rpcToSend.length; i++) {\n const msg = rpcToSend[i]\n msg.containerId = containerId\n msgIds.push(msg.msgId!)\n }\n\n if (otherPendings.length) {\n otherPendings.forEach((msg) => {\n msgIds.push(msg.containerId)\n msg.containerId = containerId\n })\n }\n\n this._session.pendingMessages.set(containerId, {\n _: 'container',\n msgIds,\n })\n }\n\n const result = writer.result()\n\n this.log.debug(\n 'sending %d messages: size = %db, acks = %L, ping = %b (msg_id = %l), state_req = %L (msg_id = %l), resend = %L (msg_id = %l), cancels = %L (msg_id = %l), salts_req = %b (msg_id = %l), rpc = %s, container = %b, root msg_id = %l',\n messageCount,\n packetSize,\n ackMsgIds,\n pingRequest,\n pingMsgId,\n getStateMsgIds,\n getStateMsgId,\n resendMsgIds,\n cancelRpcs,\n cancelRpcs,\n resendMsgId,\n getFutureSaltsRequest,\n getFutureSaltsMsgId,\n rpcToSend.map((it) => it.method),\n useContainer,\n rootMsgId,\n )\n\n const enc = this._session.encryptMessage(result)\n const promise = this.send(enc).catch((err: Error) => {\n this.log.error('error while sending pending messages (root msg_id = %l): %s', rootMsgId, err.stack)\n\n // put acks in the front so they are the first to be sent\n if (ackMsgIds) {\n this._session.queuedAcks.splice(0, 0, ...ackMsgIds)\n }\n if (rootMsgId) {\n this._onMessageFailed(rootMsgId, 'unknown error')\n }\n })\n\n if (this._inactivityPendingFlush && !this._session.hasPendingMessages) {\n void promise.then(() => {\n this.log.debug('pending messages sent, closing connection')\n this._flushTimer.reset()\n this._inactivityPendingFlush = false\n\n super._onInactivityTimeout()\n })\n }\n }\n}\n"]}
1
+ {"version":3,"file":"session-connection.js","sourceRoot":"","sources":["../../../src/network/session-connection.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,6BAA6B;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAO,EAAE,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAe,sBAAsB,EAAe,MAAM,oBAAoB,CAAA;AAErH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EACH,aAAa,EAEb,yBAAyB,EACzB,UAAU,EAEV,cAAc,EACd,UAAU,EACV,mBAAmB,GACtB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAA8B,MAAM,4BAA4B,CAAA;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAoBzD,MAAM,oBAAoB,GAAG,KAAK,CAAA,CAAC,WAAW;AAC9C,MAAM,aAAa,GAAG,KAAK,CAAA,CAAC,WAAW;AACvC,MAAM,kBAAkB,GAAG,IAAI,CAAA,CAAC,cAAc;AAE9C,iDAAiD;AACjD,0DAA0D;AAC1D,oDAAoD;AACpD,MAAM,cAAc,GAAG,UAAU,CAAA;AACjC,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,UAAU,CAAA;AACnC,iEAAiE;AACjE,MAAM,aAAa,GAAG,UAAU,CAAA;AAChC,6DAA6D;AAC7D,MAAM,mBAAmB,GAAG,UAAU,CAAA;AACtC,MAAM,qBAAqB,GAAG,EAAE,CAAA,CAAC,kCAAkC;AAEnE,SAAS,aAAa,CAAC,KAAkB,EAAE,KAAa,EAAE,MAAe;IACrE,KAAK,CAAC,KAAK,GAAG,aAAa,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,OAAO,YAAY,MAAM,KAAK,KAAK;SAC7F,KAAK,CAAC,IAAI,CAAC;SACX,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,oBAAoB;IAqBvD,YACI,MAA+B,EACtB,QAAwB;QAEjC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAFjC,aAAQ,GAAR,QAAQ,CAAgB;QApB7B,gBAAW,GAAG,IAAI,UAAU,EAAE,CAAA;QAC9B,0BAAqB,GAAW,EAAE,CAAA;QAE1C,iBAAiB;QACT,+BAA0B,GAAwD,EAAE,CAAA;QAEpF,YAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAA;QACrC,yBAAoB,GAAG,KAAK,CAAA;QAC5B,qCAAgC,GAAG,KAAK,CAAA;QAGxC,4BAAuB,GAAG,KAAK,CAAA;QAYnC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAElD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED,UAAU,CAAC,IAAI,GAAG,KAAK;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;QAEtE,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QAE3B,OAAO,GAAG,CAAC,GAAG,CAAA;IAClB,CAAC;IAED,SAAS,CAAC,MAAe;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;YAAE,OAAM;QAEnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QAErB,IAAI,CAAC,MAAM,EAAE;YACT,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;YACjC,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAA;YAC7C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;YAClC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;SACvC;QAED,IAAI,CAAC,aAAa,EAAE,CAAA;IACxB,CAAC;IAED,gBAAgB;QACZ,KAAK,CAAC,gBAAgB,EAAE,CAAA;QAExB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAA;YACjD,YAAY,CAAC,OAAO,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEvB,IAAI,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC;IAED,OAAO;QACH,KAAK,CAAC,OAAO,EAAE,CAAA;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,OAAO,GAAG,KAAK;QACjB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAA;QAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;QAE9B,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,kBAAkB,EAAE,CAAA;SAC5B;IACL,CAAC;IAED,WAAW;QACP,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;gBAEzD,uCAAuC;gBACvC,OAAM;aACT;YAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;YACjD,IAAI,CAAC,UAAU,EAAE,CAAA;YAEjB,8DAA8D;YAC9D,0EAA0E;YAC1E,2DAA2D;YAC3D,OAAM;SACT;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE;YACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;YAC5D,IAAI,CAAC,aAAa,EAAE,CAAA;YAEpB,OAAM;SACT;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;QAChD,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7B,CAAC;IAES,OAAO,CAAC,KAAY;QAC1B,0EAA0E;QAC1E,IAAI,KAAK,YAAY,cAAc,EAAE;YACjC,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;gBACpB,uDAAuD;gBACvD,8DAA8D;gBAE9D,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE;wBAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;wBAEvD,wDAAwD;wBACxD,2CAA2C;wBAC3C,0DAA0D;wBAC1D,wCAAwC;wBACxC,EAAE;wBACF,2DAA2D;wBAC3D,0DAA0D;wBAC1D,oDAAoD;wBACpD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;wBAClC,IAAI,CAAC,aAAa,EAAE,CAAA;wBACpB,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAA;wBAEtD,OAAM;qBACT;yBAAM,IAAI,IAAI,CAAC,oBAAoB,EAAE;wBAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;wBAE7D,IAAI,CAAC,YAAY,CAAC,mCAAmC,CAAC,CAAA;wBAEtD,OAAM;qBACT;oBAED,kDAAkD;iBACrD;gBAED,mCAAmC;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;gBACnD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;gBAC5B,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAE7B,OAAM;aACT;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAChD,qCAAqC;YACrC,IAAI,CAAC,YAAY,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;YAElD,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;gBAElE,OAAM;aACT;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7B,CAAC;IAES,kBAAkB;QACxB,KAAK,CAAC,kBAAkB,EAAE,CAAA;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACzB,qEAAqE;YACrE,0BAA0B;YAC1B,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAQ,EAAE,EAAE;gBACvD,IAAI,IAAI,CAAC,UAAU;oBAAE,OAAM,CAAC,gBAAgB;gBAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;YACjF,CAAC,CAAC,CAAA;SACL;QAED,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;YAEhE,OAAM;SACT;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC/B,6CAA6C;YAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;YAClE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAEzB,OAAM;SACT;QAED,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAA;QACzC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEvB,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;aAC9B,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAA;YACpC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;YAEtC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAA;YAE1C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAEhC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;aAC9B;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC7B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAA;YAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACjB,IAAI,CAAC,SAAS,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;IACV,CAAC;IAEO,aAAa,CAAC,UAAU,GAAG,KAAK;QACpC,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAM;QAErC,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YACpC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;SACrC;QAED,IAAI,IAAI,CAAC,gCAAgC,EAAE;YACvC,0EAA0E;YAC1E,2EAA2E;YAC3E,gCAAgC;YAChC,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAA;YAC7C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;YAEhC,OAAM;SACT;QAED,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAA;SAC/C;aAAM;YACH,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;SACnC;QAED,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC;aACpD,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;gBAEhE,OAAM;aACT;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAA;YACnD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;YAE1C,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,kEAAkE,EAClE,OAAO,CAAC,EAAE,EACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EACzB,KAAK,CACR,CAAA;YAED,8BAA8B;YAC9B,MAAM,KAAK,GAAkC;gBACzC,CAAC,EAAE,wBAAwB;gBAC3B,KAAK,EAAE,UAAU,EAAE;gBACnB,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,aAAa,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;gBACvC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,oBAAoB;aAClE,CAAA;YAED,iDAAiD;YAEjD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAC9D,uEAAuE;YAEvE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;YACvB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC,UAAU;YACzB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAEpB,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YACzC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;YAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAEnC,MAAM,GAAG,GAAG,yBAAyB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7F,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;YACjD,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;YAE1F,MAAM,OAAO,GAAG,yBAAyB,EAAiC,CAAA;YAE1E,qDAAqD;YACrD,wCAAwC;YACxC,EAAE;YACF,iDAAiD;YACjD,4CAA4C;YAC5C,yDAAyD;YACzD,mDAAmD;YACnD,oDAAoD;YACpD,mCAAmC;YACnC,6CAA6C;YAC7C,oEAAoE;YAEpE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE;gBACrC,CAAC,EAAE,MAAM;gBACT,OAAO;aACV,CAAC,CAAA;YAEF,MAAM,OAAO,GAAsC;gBAC/C,CAAC,EAAE,sBAAsB;gBACzB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,gBAAgB;aACnB,CAAA;YACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;YACjF,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,EAAE,CAAC,CAAA;YACrE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAA;YAClD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;YACxC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAEzB,2BAA2B;YAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAC3C,SAAS,CAAC,MAAM,EAAE,EAClB,cAAc,EACd,IAAI,CAAC,QAAQ,CAAC,UAAU,CAC3B,CAAA;YACD,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAEjC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAA;YAEzB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAE3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;gBAE7D,OAAM;aACT;YAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;gBACjF,MAAM,IAAI,WAAW,CAAC,8BAA8B,CAAC,CAAA;aACxD;YAED,uDAAuD;YACvD,0FAA0F;YAE1F,IAAI,CAAC,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAA;YAChE,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAA;YACpC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,cAAc,CAAA;YAExC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YAEpE,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;YACjC,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAA;YAE7C,oDAAoD;YACpD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAA;YAE1C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YACzD,IAAI,CAAC,kBAAkB,EAAE,CAAA;YAEzB,yEAAyE;YACzE,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAC/B,GAAG,EAAE;gBACD,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;gBAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;gBAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAC5B,CAAC,EACD,CAAC,oBAAoB,GAAG,EAAE,CAAC,GAAG,IAAI,CACrC,CAAA;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YAE1D,IAAI,IAAI,CAAC,gCAAgC,EAAE;gBACvC,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAA;gBAE7C,6CAA6C;gBAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;aAClC;YAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACjB,IAAI,CAAC,SAAS,EAAE,CAAA;QACpB,CAAC,CAAC,CAAA;IACV,CAAC;IAED,yBAAyB,CAAC,OAAO,GAAG,IAAI;QACpC,MAAM,OAAO,GAAG,yBAAyB,EAAc,CAAA;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;QACvG,CAAC,EAAE,OAAO,CAAC,CAAA;QACX,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;QAE1D,OAAO,OAAO,CAAA;IAClB,CAAC;IAES,SAAS,CAAC,IAAgB;QAChC,IAAI,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;YAE7D,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAClC,8EAA8E;gBAE9E,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAG,CAAA;gBACnE,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAErB,OAAM;aACT;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC/B,iDAAiD;YACjD,oCAAoC;YACpC,6CAA6C;YAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE,IAAI,CAAC,CAAA;YAEhE,OAAM;SACT;QAED,IAAI;YACA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;SAC7D;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;SACvE;IACL,CAAC;IAEO,iBAAiB,CAAC,SAAe,EAAE,KAAa,EAAE,OAAuB;QAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAE/B,IAAI,QAAQ,KAAK,cAAc,EAAE;YAC7B,OAAO,IAAI,CAAC,iBAAiB,CACzB,SAAS,EACT,KAAK,EACL,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAC5E,CAAA;SACJ;QAED,IAAI,QAAQ,KAAK,gBAAgB,EAAE;YAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC5B,kCAAkC;gBAClC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;gBAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA,CAAC,QAAQ;gBACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;gBAE7B,uEAAuE;gBACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBAE/B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;aACjF;YAED,OAAM;SACT;QAED,IAAI,QAAQ,KAAK,aAAa,EAAE;YAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;SAC/C;QAED,wBAAwB;QACxB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5D,CAAC;IAEO,cAAc,CAAC,SAAe,EAAE,QAAiB;QACrD,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8DAA8D,EAAE,SAAS,CAAC,CAAA;YAExF,OAAM;SACT;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAA;YAE1D,OAAM;SACT;QACD,MAAM,OAAO,GAAG,QAAwB,CAAA;QAExC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAChE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEjD,QAAQ,OAAO,CAAC,CAAC,EAAE;YACf,KAAK,aAAa,CAAC;YACnB,KAAK,cAAc,CAAC;YACpB,KAAK,yBAAyB,CAAC;YAC/B,KAAK,oBAAoB,CAAC;YAC1B,KAAK,kBAAkB,CAAC;YACxB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,sBAAsB,CAAC;YAC5B,KAAK,0BAA0B;gBAC3B,MAAK;YACT;gBACI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;SAC/B;QAED,QAAQ,OAAO,CAAC,CAAC,EAAE;YACf,KAAK,SAAS;gBACV,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACrB,MAAK;YACT,KAAK,oBAAoB;gBACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;gBAC9B,MAAK;YACT,KAAK,yBAAyB;gBAC1B,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBAC9C,MAAK;YACT,KAAK,aAAa;gBACd,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC9D,MAAK;YACT,KAAK,wBAAwB;gBACzB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAA;gBAClC,MAAK;YACT,KAAK,kBAAkB;gBACnB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;gBAClD,MAAK;YACT,KAAK,sBAAsB;gBACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBACvE,MAAK;YACT,KAAK,0BAA0B;gBAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;gBACtD,MAAK;YACT,KAAK,oBAAoB;gBACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;gBAC9B,MAAK;YACT,KAAK,iBAAiB;gBAClB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;gBAC5B,MAAK;YACT,KAAK,mBAAmB,CAAC;YACzB,KAAK,mBAAmB;gBACpB,iEAAiE;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;gBAC7E,MAAK;YACT,KAAK,uBAAuB,CAAC;YAC7B,KAAK,yBAAyB;gBAC1B,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAA;gBACrC,MAAK;YACT;gBACI,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;oBAC1B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;wBAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAA;qBAC/B;oBAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;oBAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;wBAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;wBAC3D,yEAAyE;wBACzE,MAAK;qBACR;oBAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;oBAE5B,OAAM;iBACT;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAA;SAC7D;IACL,CAAC;IAEO,YAAY,CAAC,SAAe,EAAE,OAAuB;QACzD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAA;SAC/B;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAE/B,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;YACnB,IAAI,UAAU,CAAA;YAEd,IAAI;gBACA,2BAA2B;gBAC3B,UAAU,GAAI,OAAO,CAAC,MAAM,EAAU,CAAC,CAAC,CAAA;aAC3C;YAAC,OAAO,GAAG,EAAE;gBACV,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;aAClC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,EAAE,UAAU,CAAC,CAAA;YAE5E,OAAM;SACT;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEvD,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,MAAM,CAAA;YAEV,IAAI;gBACA,mEAAmE;gBACnE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAS,CAAA;aACnC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,GAAG,mBAAmB,CAAA;aAC/B;YAED,6CAA6C;YAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAClD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gDAAgD,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;aACrF;iBAAM;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;aACpF;YAED,OAAM;SACT;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAExB,oCAAoC;QACpC,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;YACjB,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE;gBAClB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACxB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBAErC,OAAM;aACT;YAED,IAAI,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACpB,IAAI,MAAM,CAAA;gBAEV,IAAI;oBACA,MAAM,GAAG,OAAO,CAAC,MAAM,EAAkB,CAAA;iBAC5C;gBAAC,OAAO,GAAG,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,QAAQ,CAAC,CAAA;oBAEtF,OAAM;iBACT;gBAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;gBACtF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;gBAE9B,OAAM;aACT;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;YAExE,OAAM;SACT;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QAEnB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE1D,IAAI,MAAW,CAAA;QAEf,IAAI,YAAY,EAAE;YACd,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;SACjC;aAAM;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;YAE/B,IAAI,QAAQ,KAAK,cAAc,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;gBAClD,mEAAmE;gBACnE,MAAM,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;aACpE;iBAAM;gBACH,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;aACpC;SACJ;QAED,kDAAkD;QAClD,0DAA0D;QAC1D,gEAAgE;QAChE,IAAI,GAAG,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAA;SAC5C;QAED,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;QAEf,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAEnD,IAAI,MAAM,CAAC,CAAC,KAAK,cAAc,EAAE;YAC7B,MAAM,GAAG,GAAG,MAA6B,CAAA;YACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,wCAAwC,EACxC,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,YAAY,EAChB,QAAQ,EACR,GAAG,CAAC,MAAM,CACb,CAAA;YAED,IAAI,GAAG,CAAC,SAAS;gBAAE,OAAM;YAEzB,QAAQ,GAAG,CAAC,YAAY,EAAE;gBACtB,KAAK,qBAAqB;oBACtB,8CAA8C;oBAC9C,gEAAgE;oBAChE,2CAA2C;oBAC3C,EAAE;oBACF,2DAA2D;oBAC3D,iEAAiE;oBACjE,kFAAkF;oBAClF,oFAAoF;oBACpF,IAAI,CAAC,aAAa,EAAE,CAAA;oBACpB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAA;oBAE5D,OAAM;gBACV,KAAK,uBAAuB,CAAC,CAAC;oBAC1B,gDAAgD;oBAChD,iEAAiE;oBAEjE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,GAAG,KAAK,CAAA;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;oBAEvD,2DAA2D;oBAC3D,oDAAoD;oBACpD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC;yBACnC,IAAI,CAAC,GAAG,EAAE;wBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;oBACxE,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACX,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2DAA2D,EAAE,GAAG,CAAC,CAAA;oBACpF,CAAC,CAAC,CAAA;oBAEN,OAAM;iBACT;gBACD,KAAK,kBAAkB,CAAC;gBACxB,KAAK,iBAAiB,CAAC,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;wBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;wBAEnF,MAAK;qBACR;oBAED,8FAA8F;oBAC9F,iGAAiG;oBACjG,EAAE;oBACF,uFAAuF;oBACvF,sFAAsF;oBACtF,yFAAyF;oBAEzF,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;wBACpD,2DAA2D;wBAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,+CAA+C,EAC/C,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,WAAW,EACf,QAAQ,CACX,CAAA;wBACD,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;qBACjE;yBAAM;wBACH,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAQ,CAAC,CAAA;wBACzC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;qBAC3D;oBAED,OAAM;iBACT;aACJ;YAED,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAErC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;gBAClC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;aAC/C;YAED,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE;gBACnD,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;aAClD;YAED,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SAC5B;aAAM;YACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAE9F,IAAI,GAAG,CAAC,SAAS;gBAAE,OAAM;YAEzB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;SAC9B;QAED,IAAI,GAAG,CAAC,OAAO,EAAE;YACb,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;SAC1D;QAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEO,2BAA2B,CAAC,OAAwB,EAAE,UAAgB;QAC1E,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAElD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAEhE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;YACrB,OAAM;SACT;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,UAAU,EAAgB,EAAE,IAAI,CAAC,CAAA;QAC7E,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAM;QAEtB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAEzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6CAA6C,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE7F,kEAAkE;QAClE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEpC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;SAC7D;IACL,CAAC;IAEO,eAAe,CAAC,KAAW,EAAE,WAAW,GAAG,KAAK;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEpD,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;aAC9D;YAED,OAAM;SACT;QAED,QAAQ,GAAG,CAAC,CAAC,EAAE;YACX,KAAK,WAAW;gBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAErF,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;gBAEhE,6CAA6C;gBAC7C,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3C,MAAK;YAET,KAAK,KAAK,CAAC,CAAC;gBACR,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;gBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;gBAErG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAA;gBAEhB,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;oBACvF,yCAAyC;oBACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;iBACxC;gBAED,oDAAoD;gBACpD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;gBACxD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;gBAEzD,mEAAmE;gBAEnE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC1C,MAAK;aACR;YACD,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ;gBACT,MAAK,CAAC,kCAAkC;YAE5C;gBACI,IAAI,CAAC,WAAW,EAAE;oBACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;iBACzE;SACR;IACL,CAAC;IAEO,YAAY,CAAC,MAAc;QAC/B,wDAAwD;QACxD,+BAA+B;QAE/B,gDAAgD;QAEhD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;YAEtD,QAAQ,IAAI,CAAC,CAAC,EAAE;gBACZ,KAAK,WAAW,CAAC;gBACjB,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,CAAC;gBACd,KAAK,MAAM;oBACP,qBAAqB;oBACrB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC3C,MAAK;gBACT;oBACI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;oBAC1C,MAAK;aACZ;SACJ;IACL,CAAC;IAEO,gBAAgB,CAAC,KAAW,EAAE,MAAc,EAAE,WAAW,GAAG,KAAK;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAExD,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAExE,OAAM;SACT;QAED,QAAQ,OAAO,CAAC,CAAC,EAAE;YACf,KAAK,WAAW;gBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBACrG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC7E,MAAK;YACT,KAAK,MAAM;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;gBACxE,eAAe;gBACf,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;gBACjC,MAAK;YAET,KAAK,KAAK,CAAC,CAAC;gBACR,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;gBACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAEnF,kFAAkF;gBAClF,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3C,GAAG,CAAC,KAAK,GAAG,SAAS,CAAA;gBACrB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;gBAE3B,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;oBACvF,0CAA0C;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;iBACjD;gBAED,oDAAoD;gBACpD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;gBACxD,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;gBAEzD,mEAAmE;gBAEnE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAE1C,MAAK;aACR;YACD,KAAK,QAAQ;gBACT,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,oDAAoD,EACpD,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,EACrB,MAAM,CACT,CAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC7D,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;gBAC/B,MAAK;YACT,KAAK,OAAO;gBACR,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,mDAAmD,EACnD,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,EACrB,MAAM,CACT,CAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC5D,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;gBAC/B,MAAK;YACT,KAAK,MAAM;gBACP,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;gBAC3F,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;gBACrC,MAAK;YACT,KAAK,cAAc;gBACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0DAA0D,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;gBACzF,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;gBAC9B,qDAAqD;gBACrD,MAAK;SACZ;QAED,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/C,CAAC;IAEO,sBAAsB,CAAC,KAAW;QACtC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAE7C,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAkB;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErD,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAuD,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAErF,OAAM;SACT;QAED,IAAI,IAAI,CAAC,CAAC,KAAK,MAAM,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAEnG,OAAM;SACT;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yDAAyD,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACvG;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAA;QACnD,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAA;QAE/B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SACzC;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QACtF,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;IACjC,CAAC;IAEO,gBAAgB,CAAC,GAA8B;QACnD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,aAAa,CAAA;QAE3C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAA;IAC1D,CAAC;IAEO,qBAAqB,CAAC,KAAW,EAAE,GAAmC;QAC1E,QAAQ,GAAG,CAAC,SAAS,EAAE;YACnB,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC,CAAC;gBACL,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,EAAE;oBACtB,uCAAuC;oBACvC,mCAAmC;oBACnC,qCAAqC;oBACrC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAA;oBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAA;oBAE7D,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAA;oBACtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;iBACpF;gBAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,wBAAwB,GAAG,CAAC,SAAS,EAAE,CAAC,CAAA;gBAC5E,MAAK;aACR;YACD;gBACI,0DAA0D;gBAC1D,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,iFAAiF,EACjF,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,SAAS,CAChB,CAAA;gBACD,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,MAAK;SACZ;IACL,CAAC;IAEO,oBAAoB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAiC;QAC5F,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;YAClD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+DAA+D,EAAE,QAAQ,CAAC,CAAA;YAEzF,OAAM;SACT;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC9E,2CAA2C;YAC3C,uDAAuD;YACvD,gEAAgE;YAChE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAA;SAC/C;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,CAAA;QAEpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2DAA2D,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;QAEjG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;YAErD,IAAI,GAAG,CAAC,CAAC,KAAK,MAAM,EAAE;gBAClB,qBAAqB;gBACrB,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;oBACtB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAA;iBAC5D;gBACD,SAAQ;aACX;YAED,IAAI,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE;gBACvB,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;oBACtB,gDAAgD;oBAChD,gDAAgD;oBAChD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;iBAC9C;gBAED,OAAM;aACT;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAA;YAEpF,IAAI,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAA;aAC5D;SACJ;IACL,CAAC;IAEO,cAAc,CAAC,KAAW,EAAE,MAAc,EAAE,WAAiB;QACjE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAErD,IAAI,CAAC,IAAI,EAAE;gBACP,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAA;iBACzE;gBAED,OAAM;aACT;YAED,QAAQ,MAAM,GAAG,CAAC,EAAE;gBAChB,KAAK,CAAC,CAAC;gBACP,KAAK,CAAC,CAAC;gBACP,KAAK,CAAC;oBACF,wCAAwC;oBACxC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,MAAM,EAAE,CAAC,CAAA;oBACnE,MAAK;gBAET,KAAK,CAAC;oBACF,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;wBACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,8EAA8E,EAC9E,KAAK,EACL,MAAM,EACN,WAAW,CACd,CAAA;wBAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAA;qBAC5E;gBACL,cAAc;gBACd,KAAK,CAAC;oBACF,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;oBAC3B,MAAK;aACZ;SACJ;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YAC/E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oEAAoE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YACxG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC/C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;YAE/B,OAAM;SACT;QAED,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE;YACtB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sEAAsE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YAErG,OAAM;SACT;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oEAAoE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC5G,CAAC;IAEO,eAAe,CAAC,MAAc,EAAE,IAAgB;QACpD,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;SACnF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACrD;IACL,CAAC;IAEO,gBAAgB,CAAC,GAA8B;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE5D,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE7E,OAAM;SACT;QAED,IAAI,IAAI,CAAC,CAAC,KAAK,OAAO,EAAE;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE9E,OAAM;SACT;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/C,CAAC;IAEO,cAAc,CAAC,GAA2B;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE5D,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE1E,OAAM;SACT;QAED,IAAI,IAAI,CAAC,CAAC,KAAK,cAAc,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE3E,OAAM;SACT;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEnE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;QAC9B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAEO,uBAAuB,CAAC,GAA8B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAEzE,IAAI,CAAC,QAAQ,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;YAEzE,OAAM;SACT;QAED,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACtE,CAAC;IAEO,WAAW,CAAC,GAAe,EAAE,KAAe;QAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;SAClC;IACL,CAAC;IAED,aAAa;QACT,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAEzD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC9B,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QAClC,IAAI,CAAC,SAAS,EAAE,CAAA;QAEhB,4EAA4E;QAC5E,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAC5B,CAAC;IAEO,QAAQ,CAAC,KAAW;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;SACzC;QAED,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEpC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,GAAG,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;SAClC;IACL,CAAC;IAED,OAAO,CACH,OAAU,EACV,KAAc,EACd,OAAgB,EAChB,WAAyB,EACzB,OAAyB;QAEzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;YAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAA;SAC/B;QAED,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;YAC5C,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAA;SAC5B;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAA;QAExB,IAAI,GAAG,GAAgB,OAAO,CAAA;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC5B,GAAG,GAAG;gBACF,CAAC,EAAE,sBAAsB;gBACzB,KAAK,EAAE,GAAG;aACb,CAAA;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE;YACrC,kDAAkD;YAClD,gDAAgD;YAChD,qCAAqC;YAErC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4CAA4C,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACvF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAA;YAChD,GAAG,GAAG;gBACF,CAAC,EAAE,iBAAiB;gBACpB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,KAAK,EAAE;oBACH,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;oBAC7B,KAAK;oBACL,KAAK,EAAE,GAAG;iBACb;aACJ,CAAA;YACD,QAAQ,GAAG,IAAI,CAAA;SAClB;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAE/B,IAAI,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAElE,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE;YAC1B,oEAAoE;YACpE,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,MAAM,IAAI,eAAe,CAAC,uBAAuB,OAAO,CAAC,MAAM,aAAa,CAAC,CAAA;SAChF;QAED,OAAO;QACP,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QAErC,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE;YACxB,6CAA6C;YAC7C,iEAAiE;YAEjE,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;YAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA;YAElF,IAAI,CAAC,OAAO;gBAAE,UAAU,GAAG,KAAK,CAAA;SACnC;QAED,IAAI,UAAU,EAAE;YACZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA;YAE5E,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBAEjF,OAAO,GAAG,OAAO,CAAA;aACpB;iBAAM;gBACH,UAAU,GAAG,KAAK,CAAA;aACrB;SACJ;QAED,MAAM,OAAO,GAAe;YACxB,MAAM;YACN,OAAO,EAAE,yBAAyB,EAAE;YACpC,IAAI,EAAE,OAAO;YACb,KAAK;YACL,gEAAgE;YAChE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,QAAQ;YACR,OAAO;YAEP,iDAAiD;YACjD,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;YACtB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;SACrB,CAAA;QAED,IAAI,WAAW,EAAE,OAAO,EAAE;YACtB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,OAAO,CAAC,OAAO,CAAA;SACzB;QAED,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;SACxE;QAED,IAAI,WAAW,EAAE;YACb,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;SAC5F;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE/B,OAAO,OAAO,CAAC,OAAO,CAAA;IAC1B,CAAC;IAEO,UAAU,CAAC,GAAe,EAAE,SAAS,GAAG,KAAK,EAAE,WAAyB;QAC5E,IAAI,GAAG,CAAC,IAAI;YAAE,OAAM;QAEpB,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;YAC7B,MAAM,IAAI,WAAW,CAAC,2BAA2B,CAAC,CAAA;SACrD;QAED,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE;YAC3B,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;SAC5B;QAED,IAAI,SAAS,EAAE;YACX,oCAAoC;YACpC,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;YAEpD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE;gBAClC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,KAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;aAC/C;YAED,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;SAC5B;aAAM,IAAI,WAAW,EAAE;YACpB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;SACzC;QAED,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QAEpB,IAAI,GAAG,CAAC,KAAK,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC7C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC1C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;SAClC;aAAM;YACH,mDAAmD;YACnD,qCAAqC;YACrC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACtC;IACL,CAAC;IAES,oBAAoB;QAC1B,6DAA6D;QAC7D,iCAAiC;QACjC,8DAA8D;QAC9D,gCAAgC;QAEhC,IAAI,aAAa,GAAG,KAAK,CAAA;QAEzB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE;YACrD,IAAI,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE;gBAChB,aAAa,GAAG,IAAI,CAAA;gBACpB,MAAK;aACR;SACJ;QAED,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAA;YACrF,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAE5B,OAAM;SACT;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;YACjE,KAAK,CAAC,oBAAoB,EAAE,CAAA;YAE5B,OAAM;SACT;QAED,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE,CAAA;IACjB,CAAC;IAED,aAAa;QACT,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;IACnC,CAAC;IAEO,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC/F,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,4GAA4G,EAC5G,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAC5B,IAAI,CAAC,oBAAoB,EACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAC3C,CAAA;YAED,+CAA+C;YAC/C,OAAM;SACT;QAED,IAAI;YACA,IAAI,CAAC,QAAQ,EAAE,CAAA;SAClB;QAAC,OAAO,CAAM,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAG,CAAW,CAAC,KAAK,CAAC,CAAA;YACrD,qDAAqD;SACxD;QAED,sBAAsB;QACtB,uDAAuD;QACvD,4CAA4C;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YAClC,0DAA0D;YAC1D,sDAAsD;YACtD,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAA;SAClC;aAAM;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,aAAa,CAAA;YAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAA;YAEvF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAA;SAC3E;IACL,CAAC;IAEO,QAAQ;QACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAErF,sBAAsB;QAEtB,qBAAqB;QACrB,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,sDAAsD;QACtD,qCAAqC;QACrC,IAAI,qBAAqB,GAAG,CAAC,CAAA;QAC7B,IAAI,aAAa,GAAG,CAAC,CAAA;QAErB,IAAI,UAAU,GAAsB,IAAI,CAAA;QACxC,IAAI,SAAS,GAAkB,IAAI,CAAA;QAEnC,IAAI,qBAAqB,GAAsB,IAAI,CAAA;QACnD,IAAI,mBAAmB,GAAgB,IAAI,CAAA;QAE3C,IAAI,WAAW,GAAsB,IAAI,CAAA;QACzC,IAAI,MAAM,GAAgB,IAAI,CAAA;QAC9B,IAAI,SAAS,GAAgB,IAAI,CAAA;QAEjC,IAAI,eAAe,GAAsB,IAAI,CAAA;QAC7C,IAAI,aAAa,GAAgB,IAAI,CAAA;QACrC,IAAI,cAAc,GAAkB,IAAI,CAAA;QAExC,IAAI,aAAa,GAAsB,IAAI,CAAA;QAC3C,IAAI,WAAW,GAAgB,IAAI,CAAA;QACnC,IAAI,YAAY,GAAkB,IAAI,CAAA;QAEtC,IAAI,UAAU,GAAkB,IAAI,CAAA;QACpC,IAAI,eAAe,GAAkB,IAAI,CAAA;QACzC,IAAI,SAAS,GAAgB,IAAI,CAAA;QAEjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;YACjC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAA;YAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;gBACpB,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC3C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;aAC7B;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAA;aAChC;YAED,MAAM,GAAG,GAAuB;gBAC5B,CAAC,EAAE,aAAa;gBAChB,MAAM,EAAE,IAAI;aACf,CAAA;YACD,SAAS,GAAG,GAAG,CAAC,MAAM,CAAA;YAEtB,UAAU,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YACjE,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,CAAA;YACpC,YAAY,IAAI,CAAC,CAAA;SACpB;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,aAAa,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE;gBACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qDAAqD,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;gBACjG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;aACpE;YAED,MAAM,GAAG,UAAU,EAAE,CAAA;YACrB,MAAM,GAAG,GAAoC;gBACzC,CAAC,EAAE,0BAA0B;gBAC7B,MAAM;gBACN,eAAe,EAAE,EAAE;aACtB,CAAA;YAED,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEvC,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YAClE,aAAa,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,CAAA;YACxC,qBAAqB,IAAI,CAAC,CAAA;SAC7B;QAED;YACI,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE;gBACrC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAA;gBAEtC,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE;oBACnB,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC9C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;iBAC3B;qBAAM;oBACH,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,EAAE,CAAA;iBACpC;gBACD,cAAc,GAAG,GAAG,CAAA;aACvB;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAgB,EAAE,IAAI,CAAC,CAAA;YAEvF,IAAI,GAAG,GAAG,CAAC,EAAE;gBACT,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACpE,IAAI,CAAC,cAAc;oBAAE,cAAc,GAAG,EAAE,CAAA;gBACxC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAe,CAAC,IAAI,CAAC,EAAE,CAAC,KAAM,CAAC,CAAC,CAAA;aAC9D;YAED,IAAI,cAAc,EAAE;gBAChB,MAAM,GAAG,GAA6B;oBAClC,CAAC,EAAE,mBAAmB;oBACtB,MAAM,EAAE,cAAc;iBACzB,CAAA;gBAED,eAAe,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;gBACtE,UAAU,IAAI,eAAe,CAAC,MAAM,GAAG,EAAE,CAAA;gBACzC,YAAY,IAAI,CAAC,CAAA;aACpB;SACJ;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;YACtC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAA;YAE5C,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;aAC7C;iBAAM;gBACH,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,EAAE,CAAA;aACrC;YAED,MAAM,GAAG,GAA6B;gBAClC,CAAC,EAAE,mBAAmB;gBACtB,MAAM,EAAE,YAAY;aACvB,CAAA;YAED,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YACpE,UAAU,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,CAAA;YACvC,YAAY,IAAI,CAAC,CAAA;SACpB;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE;YACtC,qBAAqB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAA;YAC7D,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,EAAE,CAAA;YAC1D,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAA;YAC1C,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,EAAE,CAAA;SACrC;QAED,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;YACnC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAA;YAC1D,aAAa,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,EAAE,CAAA;YACvD,eAAe,GAAG,IAAI,CAAC,qBAAqB,CAAA;YAC5C,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAA;SAClC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE;YAChC,MAAM,GAAG,GAA+B;gBACpC,CAAC,EAAE,qBAAqB;gBACxB,GAAG,EAAE,EAAE;aACV,CAAA;YAED,qBAAqB,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;YAC5E,aAAa,IAAI,qBAAqB,CAAC,MAAM,GAAG,EAAE,CAAA;YAClD,qBAAqB,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;SAChC;QAED,IAAI,cAAc,GAAG,KAAK,CAAA;QAC1B,MAAM,SAAS,GAAiB,EAAE,CAAA;QAElC,OACI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM;YAC9B,aAAa,GAAG,KAAK,IAAI,OAAO;YAChC,qBAAqB,GAAG,IAAI,EAC9B;YACE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAG,CAAA;YAC/C,IAAI,GAAG,CAAC,SAAS;gBAAE,SAAQ;YAE3B,sCAAsC;YACtC,6CAA6C;YAC7C,qDAAqD;YAErD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnB,aAAa,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;YACrC,IAAI,GAAG,CAAC,YAAY;gBAAE,aAAa,IAAI,GAAG,CAAC,YAAY,CAAA;YAEvD,IAAI,GAAG,CAAC,OAAO,EAAE;gBACb,aAAa,IAAI,qBAAqB,CAAA;aACzC;YAED,4CAA4C;YAC5C,qDAAqD;YACrD,IAAI,GAAG,CAAC,KAAK;gBAAE,cAAc,GAAG,IAAI,CAAA;YAEpC,+EAA+E;YAC/E,mCAAmC;YACnC,IAAI,GAAG,CAAC,MAAM,KAAK,gBAAgB;gBAAE,MAAK;SAC7C;QAED,UAAU,IAAI,aAAa,CAAA;QAC3B,YAAY,IAAI,qBAAqB,GAAG,SAAS,CAAC,MAAM,CAAA;QAExD,IAAI,CAAC,YAAY,EAAE;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAExD,OAAM;SACT;QAED,MAAM,YAAY,GAAG,cAAc,IAAI,YAAY,GAAG,CAAC,CAAA;QACvD,IAAI,YAAY;YAAE,UAAU,IAAI,EAAE,CAAA,CAAC,0CAA0C;QAE7E,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAEhE,IAAI,YAAY,EAAE;YACd,wDAAwD;YACxD,gEAAgE;YAChE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAA;YAChB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;SAC5B;QAED,MAAM,aAAa,GAAmE,EAAE,CAAA;QAExF,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;SAC9E;QAED,IAAI,WAAW,EAAE;YACb,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;YACxF,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;YACvC,MAAM,WAAW,GAAmB;gBAChC,CAAC,EAAE,MAAM;gBACT,MAAM,EAAE,MAAO;gBACf,WAAW,EAAE,SAAS;aACzB,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YACzD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SAClC;QAED,IAAI,eAAe,EAAE;YACjB,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;YAChG,MAAM,eAAe,GAAmB;gBACpC,CAAC,EAAE,OAAO;gBACV,MAAM,EAAE,cAAe;gBACvB,WAAW,EAAE,aAAa;aAC7B,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YACjE,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;SACtC;QAED,IAAI,aAAa,EAAE;YACf,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;YAC5F,MAAM,aAAa,GAAmB;gBAClC,CAAC,EAAE,QAAQ;gBACX,MAAM,EAAE,YAAa;gBACrB,WAAW,EAAE,WAAW;aAC3B,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;YAC7D,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SACpC;QAED,IAAI,UAAU,EAAE;YACZ,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAC3C,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;oBAC/B,CAAC,EAAE,oBAAoB;oBACvB,QAAQ,EAAE,KAAK;iBAClB,CAAC,CACL,CAAA;gBAED,MAAM,OAAO,GAAmB;oBAC5B,CAAC,EAAE,QAAQ;oBACX,KAAK;oBACL,WAAW,EAAE,WAAW;iBAC3B,CAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;gBACvD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC,CAAC,CAAA;SACL;QAED,IAAI,eAAe,EAAE;YACjB,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CACrC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;oBAC/B,CAAC,EAAE,oBAAoB;oBACvB,SAAS;iBACZ,CAAC,CACL,CAAA;gBAED,MAAM,OAAO,GAAmB;oBAC5B,CAAC,EAAE,iBAAiB;oBACpB,SAAS;oBACT,WAAW,EAAE,KAAK;iBACrB,CAAA;gBACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBACjD,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;gBAC3D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/B,CAAC,CAAC,CAAA;SACL;QAED,IAAI,qBAAqB,EAAE;YACvB,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAA;YAC5G,MAAM,OAAO,GAAmB;gBAC5B,CAAC,EAAE,cAAc;gBACjB,WAAW,EAAE,mBAAmB;aACnC,CAAA;YACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;YAC/D,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC9B;QAED,MAAM,YAAY,GAAG,GAAG,GAAG,kBAAkB,CAAA;QAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YACxB,8DAA8D;YAC9D,iEAAiE;YACjE,wBAAwB;YAExB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;gBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;gBAEtC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;gBAE7E,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;gBACjB,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;gBACjB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE;oBACrC,CAAC,EAAE,KAAK;oBACR,GAAG,EAAE,GAAG;iBACX,CAAC,CAAA;gBAEF,IAAI,GAAG,CAAC,OAAO,EAAE;oBACb,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;oBAC9D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;iBAC1F;aACJ;iBAAM;gBACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;aACzG;YAED,oCAAoC;YACpC,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC7C;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;gBACZ,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAA;gBAC3B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC7C;YAED,IAAI,SAAS,KAAK,IAAI;gBAAE,SAAS,GAAG,GAAG,CAAC,KAAK,CAAA;YAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,CAAC,CAAA;YAEvB,MAAM,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;YAEnE,MAAM,gBAAgB,GAAG,GAAG,EAAE;gBAC1B,IAAI,CAAC,GAAG,CAAC,WAAW;oBAAE,OAAM;gBAE5B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC,CAAA;YAED,IAAI,GAAG,CAAC,YAAY,EAAE;gBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,GAAG,eAAe,CAAC,CAAA;gBACjE,gBAAgB,EAAE,CAAA;gBAClB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aACzB;iBAAM;gBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,CAAA;gBAC9C,gBAAgB,EAAE,CAAA;gBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aACvB;YAED,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;SAClB;QAED,IAAI,YAAY,EAAE;YACd,uDAAuD;YACvD,yDAAyD;YACzD,qDAAqD;YAErD,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA;YAEvB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;YAChD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;YACd,SAAS,GAAG,WAAW,CAAA;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;YAC5B,MAAM,CAAC,GAAG,GAAG,UAAU,CAAA;YAEvB,MAAM,MAAM,GAAG,EAAE,CAAA;YAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;gBACxB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAA;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAM,CAAC,CAAA;aAC1B;YAED,IAAI,aAAa,CAAC,MAAM,EAAE;gBACtB,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBAC5B,GAAG,CAAC,WAAW,GAAG,WAAW,CAAA;gBACjC,CAAC,CAAC,CAAA;aACL;YAED,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC3C,CAAC,EAAE,WAAW;gBACd,MAAM;aACT,CAAC,CAAA;SACL;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;QAE9B,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,oOAAoO,EACpO,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAChC,YAAY,EACZ,SAAS,CACZ,CAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6DAA6D,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;YAEnG,yDAAyD;YACzD,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAA;aACtD;YACD,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;aACpD;QACL,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YACnE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;gBAC3D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;gBACxB,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAA;gBAEpC,KAAK,CAAC,oBAAoB,EAAE,CAAA;YAChC,CAAC,CAAC,CAAA;SACL;IACL,CAAC;CACJ","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// will be reworked in MTQ-32\nimport Long from 'long'\n\nimport { mtp, tl } from '@mtcute/tl'\nimport { TlBinaryReader, TlBinaryWriter, TlReaderMap, TlSerializationCounter, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { MtArgumentError, MtcuteError, MtTimeoutError } from '../types/index.js'\nimport { createAesIgeForMessageOld } from '../utils/crypto/mtproto.js'\nimport {\n concatBuffers,\n ControllablePromise,\n createControllablePromise,\n EarlyTimer,\n ICryptoProvider,\n longFromBuffer,\n randomLong,\n removeFromLongArray,\n} from '../utils/index.js'\nimport { reportUnknownError } from '../utils/platform/error-reporting.js'\nimport { doAuthorization } from './authorization.js'\nimport { MtprotoSession, PendingMessage, PendingRpc } from './mtproto-session.js'\nimport { PersistentConnection, PersistentConnectionParams } from './persistent-connection.js'\nimport { ServerSaltManager } from './server-salt.js'\nimport { TransportError } from './transports/abstract.js'\n\nexport interface SessionConnectionParams extends PersistentConnectionParams {\n initConnection: tl.RawInitConnectionRequest\n inactivityTimeout?: number\n niceStacks?: boolean\n enableErrorReporting: boolean\n layer: number\n disableUpdates?: boolean\n withUpdates?: boolean\n isMainConnection: boolean\n isMainDcConnection: boolean\n usePfs?: boolean\n\n salts: ServerSaltManager\n\n readerMap: TlReaderMap\n writerMap: TlWriterMap\n}\n\nconst TEMP_AUTH_KEY_EXPIRY = 86400 // 24 hours\nconst PING_INTERVAL = 60000 // 1 minute\nconst GET_STATE_INTERVAL = 1500 // 1.5 seconds\n\n// destroy_auth_key#d1435160 = DestroyAuthKeyRes;\n// const DESTROY_AUTH_KEY = Buffer.from('605134d1', 'hex')\n// gzip_packed#3072cfa1 packed_data:string = Object;\nconst GZIP_PACKED_ID = 0x3072cfa1\n// msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;\nconst MSG_CONTAINER_ID = 0x73f1f8dc\n// rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult;\nconst RPC_RESULT_ID = 0xf35c6d01\n// invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;\nconst INVOKE_AFTER_MSG_ID = 0xcb9f372d\nconst INVOKE_AFTER_MSG_SIZE = 12 // 8 (invokeAfterMsg) + 4 (msg_id)\n\nfunction makeNiceStack(error: tl.RpcError, stack: string, method?: string) {\n error.stack = `RpcError (${error.code} ${error.text}): ${error.message}\\n at ${method}\\n${stack\n .split('\\n')\n .slice(2)\n .join('\\n')}`\n}\n\n/**\n * A connection to a single DC.\n */\nexport class SessionConnection extends PersistentConnection {\n readonly params!: SessionConnectionParams\n\n private _flushTimer = new EarlyTimer()\n private _queuedDestroySession: Long[] = []\n\n // waitForMessage\n private _pendingWaitForUnencrypted: [ControllablePromise<Uint8Array>, NodeJS.Timeout][] = []\n\n private _usePfs = this.params.usePfs ?? false\n private _isPfsBindingPending = false\n private _isPfsBindingPendingInBackground = false\n private _pfsUpdateTimeout?: NodeJS.Timeout\n\n private _inactivityPendingFlush = false\n\n private _readerMap: TlReaderMap\n private _writerMap: TlWriterMap\n private _crypto: ICryptoProvider\n private _salts: ServerSaltManager\n\n constructor(\n params: SessionConnectionParams,\n readonly _session: MtprotoSession,\n ) {\n super(params, _session.log.create('conn'))\n this._flushTimer.onTimeout(this._flush.bind(this))\n\n this._readerMap = params.readerMap\n this._writerMap = params.writerMap\n this._crypto = params.crypto\n this._salts = params.salts\n this._handleRawMessage = this._handleRawMessage.bind(this)\n }\n\n getAuthKey(temp = false): Uint8Array | null {\n const key = temp ? this._session._authKeyTemp : this._session._authKey\n\n if (!key.ready) return null\n\n return key.key\n }\n\n setUsePfs(usePfs: boolean): void {\n if (this._usePfs === usePfs) return\n\n this.log.debug('use pfs changed to %s', usePfs)\n this._usePfs = usePfs\n\n if (!usePfs) {\n this._isPfsBindingPending = false\n this._isPfsBindingPendingInBackground = false\n this._session._authKeyTemp.reset()\n clearTimeout(this._pfsUpdateTimeout)\n }\n\n this._resetSession()\n }\n\n onTransportClose(): void {\n super.onTransportClose()\n\n Object.values(this._pendingWaitForUnencrypted).forEach(([prom, timeout]) => {\n prom.reject(new MtcuteError('Connection closed'))\n clearTimeout(timeout)\n })\n\n this.emit('disconnect')\n\n this.reset()\n }\n\n destroy(): void {\n super.destroy()\n this.reset(true)\n }\n\n reset(forever = false): void {\n this._session.initConnectionCalled = false\n this._flushTimer.reset()\n this._salts.isFetching = false\n\n if (forever) {\n this.removeAllListeners()\n }\n }\n\n onConnected(): void {\n // check if we have all the needed keys\n if (!this._session._authKey.ready) {\n if (!this.params.isMainConnection) {\n this.log.info('no auth key, waiting for main connection')\n\n // once it is done, we will be notified\n return\n }\n\n this.log.info('no perm auth key, authorizing...')\n this._authorize()\n\n // if we use pfs, we *could* also start temp key exchange here\n // but telegram restricts us to only have one auth session per connection,\n // and having a separate connection for pfs is not worth it\n return\n }\n\n if (this._usePfs && !this._session._authKeyTemp.ready) {\n this.log.info('no temp auth key but using pfs, authorizing')\n this._authorizePfs()\n\n return\n }\n\n this.log.info('auth keys are already available')\n this.onConnectionUsable()\n }\n\n protected onError(error: Error): void {\n // https://core.telegram.org/mtproto/mtproto-_transports#_transport-errors\n if (error instanceof TransportError) {\n if (error.code === 404) {\n // if we are using pfs, this could be due to the server\n // forgetting our temp key (which is kinda weird but expected)\n\n if (this._usePfs) {\n if (!this._isPfsBindingPending && this._session._authKeyTemp.ready) {\n this.log.info('transport error 404, reauthorizing pfs')\n\n // this is important! we must reset temp auth key before\n // we proceed with new temp key derivation.\n // otherwise, we can end up in an infinite loop in case it\n // was actually perm_key that got 404-ed\n //\n // if temp key binding is already in process in background,\n // _authorizePfs will mark it as foreground to prevent new\n // queries from being sent (to avoid even more 404s)\n this._session._authKeyTemp.reset()\n this._authorizePfs()\n this._onAllFailed('temp key expired, binding started')\n\n return\n } else if (this._isPfsBindingPending) {\n this.log.info('transport error 404, pfs binding in progress')\n\n this._onAllFailed('temp key expired, binding pending')\n\n return\n }\n\n // otherwise, 404 must be referencing the perm_key\n }\n\n // there happened a little trolling\n this.log.info('transport error 404, reauthorizing')\n this._session.resetAuthKey()\n this._resetSession()\n this.emit('key-change', null)\n\n return\n }\n\n this.log.error('transport error %d', error.code)\n // all pending queries must be resent\n this._onAllFailed(`transport error ${error.code}`)\n\n if (error.code === 429) {\n this._session.onTransportFlood(this.emit.bind(this, 'flood-done'))\n\n return\n }\n }\n\n this.emit('error', error)\n }\n\n protected onConnectionUsable() {\n super.onConnectionUsable()\n\n if (this.params.withUpdates) {\n // we must send some user-related rpc to the server to make sure that\n // it will send us updates\n this.sendRpc({ _: 'updates.getState' }).catch((err: any) => {\n if (this._destroyed) return // silently fail\n this.log.warn('failed to send updates.getState: %s', err.text || err.message)\n })\n }\n\n // just in case\n this._flushTimer.emitBeforeNext(1000)\n }\n\n _authorize(): void {\n if (this._session.authorizationPending) {\n this.log.info('_authorize(): authorization already in progress')\n\n return\n }\n\n if (!this.params.isMainConnection) {\n // we don't authorize on non-main connections\n this.log.debug('_authorize(): non-main connection, requesting...')\n this.emit('request-auth')\n\n return\n }\n\n this._session.authorizationPending = true\n this.emit('auth-begin')\n\n doAuthorization(this, this._crypto)\n .then(([authKey, serverSalt, timeOffset]) => {\n this._session._authKey.setup(authKey)\n this._salts.currentSalt = serverSalt\n this._session._timeOffset = timeOffset\n\n this._session.authorizationPending = false\n\n this.emit('key-change', authKey)\n\n if (this._usePfs) {\n return this._authorizePfs()\n }\n this.onConnectionUsable()\n })\n .catch((err: Error) => {\n this._session.authorizationPending = false\n this.log.error('Authorization error: %s', err.message)\n this.onError(err)\n this.reconnect()\n })\n }\n\n private _authorizePfs(background = false): void {\n if (this._isPfsBindingPending) return\n\n if (this._pfsUpdateTimeout) {\n clearTimeout(this._pfsUpdateTimeout)\n this._pfsUpdateTimeout = undefined\n }\n\n if (this._isPfsBindingPendingInBackground) {\n // e.g. temp key has expired while we were binding a key in the background\n // in this case, we shouldn't start pfs binding again, and instead wait for\n // current operation to complete\n this._isPfsBindingPendingInBackground = false\n this._isPfsBindingPending = true\n\n return\n }\n\n if (background) {\n this._isPfsBindingPendingInBackground = true\n } else {\n this._isPfsBindingPending = true\n }\n\n doAuthorization(this, this._crypto, TEMP_AUTH_KEY_EXPIRY)\n .then(async ([tempAuthKey, tempServerSalt]) => {\n if (!this._usePfs) {\n this.log.info('pfs has been disabled while generating temp key')\n\n return\n }\n\n const tempKey = this._session._authKeyTempSecondary\n tempKey.setup(tempAuthKey)\n\n const msgId = this._session.getMessageId()\n\n this.log.debug(\n 'binding temp_auth_key (%h) to perm_auth_key (%h), msg_id = %l...',\n tempKey.id,\n this._session._authKey.id,\n msgId,\n )\n\n // we now need to bind the key\n const inner: mtp.RawMt_bind_auth_key_inner = {\n _: 'mt_bind_auth_key_inner',\n nonce: randomLong(),\n tempAuthKeyId: longFromBuffer(tempKey.id),\n permAuthKeyId: longFromBuffer(this._session._authKey.id),\n tempSessionId: this._session._sessionId,\n expiresAt: Math.floor(Date.now() / 1000) + TEMP_AUTH_KEY_EXPIRY,\n }\n\n // encrypt using mtproto v1 (fucking kill me plz)\n\n const writer = TlBinaryWriter.alloc(this.params.writerMap, 80)\n // = 40 (inner length) + 32 (mtproto header) + 8 (pad 72 so mod 16 = 0)\n\n writer.raw(this._crypto.randomBytes(16))\n writer.long(msgId)\n writer.int(0) // seq_no\n writer.int(40) // msg_len\n writer.object(inner)\n\n const msgWithoutPadding = writer.result()\n writer.raw(this._crypto.randomBytes(8))\n const msgWithPadding = writer.result()\n\n const hash = this._crypto.sha1(msgWithoutPadding)\n const msgKey = hash.subarray(4, 20)\n\n const ige = createAesIgeForMessageOld(this._crypto, this._session._authKey.key, msgKey, true)\n const encryptedData = ige.encrypt(msgWithPadding)\n const encryptedMessage = concatBuffers([this._session._authKey.id, msgKey, encryptedData])\n\n const promise = createControllablePromise<mtp.RawMt_rpc_error | boolean>()\n\n // encrypt the message using temp key and same msg id\n // this is a bit of a hack, but it works\n //\n // hacking inside main send loop to allow sending\n // with another key is just too much hassle.\n // we could just always use temp key if one is available,\n // but that way we won't be able to refresh the key\n // that is about to expire in the background without\n // interrupting actual message flow\n // decrypting is trivial though, since key id\n // is in the first bytes of the message, and is never used later on.\n\n this._session.pendingMessages.set(msgId, {\n _: 'bind',\n promise,\n })\n\n const request: tl.auth.RawBindTempAuthKeyRequest = {\n _: 'auth.bindTempAuthKey',\n permAuthKeyId: inner.permAuthKeyId,\n nonce: inner.nonce,\n expiresAt: inner.expiresAt,\n encryptedMessage,\n }\n const reqSize = TlSerializationCounter.countNeededBytes(this._writerMap, request)\n const reqWriter = TlBinaryWriter.alloc(this._writerMap, reqSize + 16)\n reqWriter.long(this._registerOutgoingMsgId(msgId))\n reqWriter.uint(this._session.getSeqNo())\n reqWriter.uint(reqSize)\n reqWriter.object(request)\n\n // we can now send it as is\n const requestEncrypted = tempKey.encryptMessage(\n reqWriter.result(),\n tempServerSalt,\n this._session._sessionId,\n )\n await this.send(requestEncrypted)\n\n const res = await promise\n\n this._session.pendingMessages.delete(msgId)\n\n if (!this._usePfs) {\n this.log.info('pfs has been disabled while binding temp key')\n\n return\n }\n\n if (typeof res === 'object') {\n this.log.error('failed to bind temp key: %s:%s', res.errorCode, res.errorMessage)\n throw new MtcuteError('Failed to bind temporary key')\n }\n\n // now we can swap the keys (secondary becomes primary,\n // and primary is not immediately forgot because messages using it may still be in flight)\n\n this._session._authKeyTempSecondary = this._session._authKeyTemp\n this._session._authKeyTemp = tempKey\n this._salts.currentSalt = tempServerSalt\n\n this.log.debug('temp key has been bound, exp = %d', inner.expiresAt)\n\n this._isPfsBindingPending = false\n this._isPfsBindingPendingInBackground = false\n\n // we must re-init connection after binding temp key\n this._session.initConnectionCalled = false\n\n this.emit('tmp-key-change', tempAuthKey, inner.expiresAt)\n this.onConnectionUsable()\n\n // set a timeout to update temp auth key in advance to avoid interruption\n this._pfsUpdateTimeout = setTimeout(\n () => {\n this._pfsUpdateTimeout = undefined\n this.log.debug('temp key is expiring soon')\n this._authorizePfs(true)\n },\n (TEMP_AUTH_KEY_EXPIRY - 60) * 1000,\n )\n })\n .catch((err: Error) => {\n this.log.error('PFS Authorization error: %s', err.message)\n\n if (this._isPfsBindingPendingInBackground) {\n this._isPfsBindingPendingInBackground = false\n\n // if we are in background, we can just retry\n return this._authorizePfs(true)\n }\n\n this._isPfsBindingPending = false\n this.onError(err)\n this.reconnect()\n })\n }\n\n waitForUnencryptedMessage(timeout = 5000): Promise<Uint8Array> {\n const promise = createControllablePromise<Uint8Array>()\n const timeoutId = setTimeout(() => {\n promise.reject(new MtTimeoutError(timeout))\n this._pendingWaitForUnencrypted = this._pendingWaitForUnencrypted.filter((it) => it[0] !== promise)\n }, timeout)\n this._pendingWaitForUnencrypted.push([promise, timeoutId])\n\n return promise\n }\n\n protected onMessage(data: Uint8Array): void {\n if (this._pendingWaitForUnencrypted.length) {\n const int32 = new Int32Array(data.buffer, data.byteOffset, 2)\n\n if (int32[0] === 0 && int32[1] === 0) {\n // auth_key_id = 0, meaning it's an unencrypted message used for authorization\n\n const [promise, timeout] = this._pendingWaitForUnencrypted.shift()!\n clearTimeout(timeout)\n promise.resolve(data)\n\n return\n }\n }\n\n if (!this._session._authKey.ready) {\n // if a message is received before authorization,\n // either the server is misbehaving,\n // or there was a problem with authorization.\n this.log.warn('received message before authorization: %h', data)\n\n return\n }\n\n try {\n this._session.decryptMessage(data, this._handleRawMessage)\n } catch (err) {\n this.log.error('failed to decrypt message: %s\\ndata: %h', err, data)\n }\n }\n\n private _handleRawMessage(messageId: Long, seqNo: number, message: TlBinaryReader): void {\n const objectId = message.uint()\n\n if (objectId === GZIP_PACKED_ID) {\n return this._handleRawMessage(\n messageId,\n seqNo,\n new TlBinaryReader(this._readerMap, this._crypto.gunzip(message.bytes())),\n )\n }\n\n if (objectId === MSG_CONTAINER_ID) {\n const count = message.uint()\n\n for (let i = 0; i < count; i++) {\n // msg_id:long seqno:int bytes:int\n const msgId = message.long()\n const seqNo = message.uint() // seqno\n const length = message.uint()\n\n // container can't contain other containers, but can contain rpc_result\n const obj = message.raw(length)\n\n this._handleRawMessage(msgId, seqNo, new TlBinaryReader(this._readerMap, obj))\n }\n\n return\n }\n\n if (objectId === RPC_RESULT_ID) {\n return this._onRpcResult(messageId, message)\n }\n\n // we are safe.. i guess\n this._handleMessage(messageId, message.object(objectId))\n }\n\n private _handleMessage(messageId: Long, message_: unknown): void {\n if (messageId.isEven()) {\n this.log.warn('warn: ignoring message with invalid messageId = %s (is even)', messageId)\n\n return\n }\n\n if (this._session.recentIncomingMsgIds.has(messageId)) {\n this.log.debug('ignoring duplicate message %s', messageId)\n\n return\n }\n const message = message_ as mtp.TlObject\n\n this.log.debug('received %s (msg_id: %l)', message._, messageId)\n this._session.recentIncomingMsgIds.add(messageId)\n\n switch (message._) {\n case 'mt_msgs_ack':\n case 'mt_http_wait':\n case 'mt_bad_msg_notification':\n case 'mt_bad_server_salt':\n case 'mt_msgs_all_info':\n case 'mt_msgs_state_info':\n case 'mt_msg_detailed_info':\n case 'mt_msg_new_detailed_info':\n break\n default:\n this._sendAck(messageId)\n }\n\n switch (message._) {\n case 'mt_pong':\n this._onPong(message)\n break\n case 'mt_bad_server_salt':\n this._onBadServerSalt(message)\n break\n case 'mt_bad_msg_notification':\n this._onBadMsgNotification(messageId, message)\n break\n case 'mt_msgs_ack':\n message.msgIds.forEach((msgId) => this._onMessageAcked(msgId))\n break\n case 'mt_new_session_created':\n this._onNewSessionCreated(message)\n break\n case 'mt_msgs_all_info':\n this._onMessagesInfo(message.msgIds, message.info)\n break\n case 'mt_msg_detailed_info':\n this._onMessageInfo(message.msgId, message.status, message.answerMsgId)\n break\n case 'mt_msg_new_detailed_info':\n this._onMessageInfo(Long.ZERO, 0, message.answerMsgId)\n break\n case 'mt_msgs_state_info':\n this._onMsgsStateInfo(message)\n break\n case 'mt_future_salts':\n this._onFutureSalts(message)\n break\n case 'mt_msgs_state_req':\n case 'mt_msg_resend_req':\n // tdlib doesnt handle them, so why should we? :upside_down_face:\n this.log.warn('received %s (msg_id = %l): %j', message._, messageId, message)\n break\n case 'mt_destroy_session_ok':\n case 'mt_destroy_session_none':\n this._onDestroySessionResult(message)\n break\n default:\n if (tl.isAnyUpdates(message)) {\n if (this._usable && this.params.inactivityTimeout) {\n this._rescheduleInactivity()\n }\n\n this.log.verbose('<<< %j', message)\n\n if (this.params.disableUpdates) {\n this.log.warn('received updates, but updates are disabled')\n // likely due to some request in the session missing invokeWithoutUpdates\n break\n }\n\n this.emit('update', message)\n\n return\n }\n\n this.log.warn('unknown message received: %j', message)\n }\n }\n\n private _onRpcResult(messageId: Long, message: TlBinaryReader): void {\n if (this._usable && this.params.inactivityTimeout) {\n this._rescheduleInactivity()\n }\n\n const reqMsgId = message.long()\n\n if (reqMsgId.isZero()) {\n let resultType\n\n try {\n // eslint-disable-next-line\n resultType = (message.object() as any)._\n } catch (err) {\n resultType = message.peekUint()\n }\n this.log.warn('received rpc_result with %j with req_msg_id = 0', resultType)\n\n return\n }\n\n const msg = this._session.pendingMessages.get(reqMsgId)\n\n if (!msg) {\n let result\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n result = message.object() as any\n } catch (err) {\n result = '[failed to parse]'\n }\n\n // check if the msg is one of the recent ones\n if (this._session.recentOutgoingMsgIds.has(reqMsgId)) {\n this.log.debug('received rpc_result again for %l (contains %j)', reqMsgId, result)\n } else {\n this.log.warn('received rpc_result for unknown message %l: %j', reqMsgId, result)\n }\n\n return\n }\n\n this._sendAck(messageId)\n\n // special case for auth key binding\n if (msg._ !== 'rpc') {\n if (msg._ === 'bind') {\n this._sendAck(messageId)\n msg.promise.resolve(message.object())\n\n return\n }\n\n if (msg._ === 'cancel') {\n let result\n\n try {\n result = message.object() as mtp.TlObject\n } catch (err) {\n this.log.debug('failed to parse rpc_result for cancel request %l, ignoring', reqMsgId)\n\n return\n }\n\n this.log.debug('received %s for cancelled request %l: %j', result._, reqMsgId, result)\n this._onMessageAcked(reqMsgId)\n\n return\n }\n\n this.log.error('received rpc_result for %s request %l', msg._, reqMsgId)\n\n return\n }\n\n const rpc = msg.rpc\n\n const customReader = this._readerMap._results![rpc.method]\n\n let result: any\n\n if (customReader) {\n result = customReader(message)\n } else {\n const objectId = message.uint()\n\n if (objectId === GZIP_PACKED_ID) {\n const inner = this._crypto.gunzip(message.bytes())\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n result = TlBinaryReader.deserializeObject(this._readerMap, inner)\n } else {\n result = message.object(objectId)\n }\n }\n\n // initConnection call was definitely received and\n // processed by the server, so we no longer need to use it\n // todo: is this the case with failed invokeAfterMsg(s) as well?\n if (rpc.initConn) {\n this._session.initConnectionCalled = true\n }\n\n rpc.done = true\n\n this.log.verbose('<<< (%s) %j', rpc.method, result)\n\n if (result._ === 'mt_rpc_error') {\n const res = result as mtp.RawMt_rpc_error\n this.log.debug(\n 'received rpc_error [%d:%s] for %l (%s)',\n res.errorCode,\n res.errorMessage,\n reqMsgId,\n rpc.method,\n )\n\n if (rpc.cancelled) return\n\n switch (res.errorMessage) {\n case 'AUTH_KEY_PERM_EMPTY':\n // happens when temp auth key is not yet bound\n // this shouldn't happen as we block any outbound communications\n // until the temp key is derived and bound.\n //\n // i think it is also possible for the error to be returned\n // when the temp key has expired, but this still shouldn't happen\n // but this is tg, so something may go wrong, and we will receive this as an error\n // (for god's sake why is this not in mtproto and instead hacked into the app layer)\n this._authorizePfs()\n this._onMessageFailed(reqMsgId, 'AUTH_KEY_PERM_EMPTY', true)\n\n return\n case 'CONNECTION_NOT_INITED': {\n // this seems to sometimes happen when using pfs\n // no idea why, but tdlib also seems to handle these, so whatever\n\n this._session.initConnectionCalled = false\n this._onMessageFailed(reqMsgId, res.errorMessage, true)\n\n // just setting this flag is not enough because the message\n // is already serialized, so we do this awesome hack\n this.sendRpc({ _: 'help.getNearestDc' })\n .then(() => {\n this.log.debug('additional help.getNearestDc for initConnection ok')\n })\n .catch((err) => {\n this.log.debug('additional help.getNearestDc for initConnection error: %s', err)\n })\n\n return\n }\n case 'MSG_WAIT_TIMEOUT':\n case 'MSG_WAIT_FAILED': {\n if (!rpc.invokeAfter) {\n this.log.warn('received %s for non-chained request %l', res.errorMessage, reqMsgId)\n\n break\n }\n\n // in some cases, MSG_WAIT_TIMEOUT is returned instead of MSG_WAIT_FAILED when one of the deps\n // failed with MSG_WAIT_TIMEOUT. i have no clue why, this makes zero sense, but what fucking ever\n //\n // this basically means we can't handle a timeout any different than a general failure,\n // because the timeout might not refer to the immediate `.invokeAfter` message, but to\n // its arbitrary-depth dependency, so we indeed have to wait for the message ourselves...\n\n if (this._session.pendingMessages.has(rpc.invokeAfter)) {\n // the dependency is still pending, postpone the processing\n this.log.debug(\n 'chain %s: waiting for %l before processing %l',\n rpc.chainId,\n rpc.invokeAfter,\n reqMsgId,\n )\n this._session.getPendingChainedFails(rpc.chainId!).insert(rpc)\n } else {\n this._session.chains.delete(rpc.chainId!)\n this._onMessageFailed(reqMsgId, 'MSG_WAIT_FAILED', true)\n }\n\n return\n }\n }\n\n const error = tl.RpcError.fromTl(res)\n\n if (this.params.niceStacks !== false) {\n makeNiceStack(error, rpc.stack!, rpc.method)\n }\n\n if (error.unknown && this.params.enableErrorReporting) {\n reportUnknownError(this.log, error, rpc.method)\n }\n\n rpc.promise.reject(error)\n } else {\n this.log.debug('received rpc_result (%s) for request %l (%s)', result._, reqMsgId, rpc.method)\n\n if (rpc.cancelled) return\n\n rpc.promise.resolve(result)\n }\n\n if (rpc.chainId) {\n this._processPendingChainedFails(rpc.chainId, reqMsgId)\n }\n\n this._onMessageAcked(reqMsgId)\n this._session.pendingMessages.delete(reqMsgId)\n }\n\n private _processPendingChainedFails(chainId: number | string, sinceMsgId: Long): void {\n // sinceMsgId was already definitely received and contained an error.\n // we should now re-send all the pending MSG_WAIT_FAILED after it\n this._session.removeFromChain(chainId, sinceMsgId)\n\n const oldPending = this._session.chainsPendingFails.get(chainId)\n\n if (!oldPending?.length) {\n return\n }\n\n const idx = oldPending.index({ invokeAfter: sinceMsgId } as PendingRpc, true)\n if (idx === -1) return\n\n const toFail = oldPending.raw.splice(idx)\n\n this.log.debug('chain %s: failing %d dependant messages: %L', chainId, toFail.length, toFail)\n\n // we're failing the rest of the chain, including the last message\n this._session.chains.delete(chainId)\n\n for (const rpc of toFail) {\n this._onMessageFailed(rpc.msgId!, 'MSG_WAIT_FAILED', true)\n }\n }\n\n private _onMessageAcked(msgId: Long, inContainer = false): void {\n const msg = this._session.pendingMessages.get(msgId)\n\n if (!msg) {\n if (!this._session.recentOutgoingMsgIds.has(msgId)) {\n this.log.warn('received ack for unknown message %l', msgId)\n }\n\n return\n }\n\n switch (msg._) {\n case 'container':\n this.log.debug('received ack for container %l (size = %d)', msgId, msg.msgIds.length)\n\n msg.msgIds.forEach((msgId) => this._onMessageAcked(msgId, true))\n\n // we no longer need info about the container\n this._session.pendingMessages.delete(msgId)\n break\n\n case 'rpc': {\n const rpc = msg.rpc\n this.log.debug('received ack for rpc query %l (%s, acked before = %s)', msgId, rpc.method, rpc.acked)\n\n rpc.acked = true\n\n if (!inContainer && rpc.containerId && this._session.pendingMessages.has(rpc.containerId)) {\n // ack all the messages in that container\n this._onMessageAcked(rpc.containerId)\n }\n\n // this message could also already be in some queue,\n removeFromLongArray(this._session.queuedStateReq, msgId)\n removeFromLongArray(this._session.queuedResendReq, msgId)\n\n // if resend/state was already requested, it will simply be ignored\n\n this._session.getStateSchedule.remove(rpc)\n break\n }\n case 'bind':\n case 'cancel':\n break // do nothing, wait for the result\n\n default:\n if (!inContainer) {\n this.log.warn('received unexpected ack for %s query %l', msg._, msgId)\n }\n }\n }\n\n private _onAllFailed(reason: string) {\n // called when all the pending messages are to be resent\n // e.g. when server returns 429\n\n // most service messages can be omitted as stale\n\n for (const msgId of this._session.pendingMessages.keys()) {\n const info = this._session.pendingMessages.get(msgId)!\n\n switch (info._) {\n case 'container':\n case 'state':\n case 'resend':\n case 'ping':\n // no longer relevant\n this._session.pendingMessages.delete(msgId)\n break\n default:\n this._onMessageFailed(msgId, reason, true)\n break\n }\n }\n }\n\n private _onMessageFailed(msgId: Long, reason: string, inContainer = false): void {\n const msgInfo = this._session.pendingMessages.get(msgId)\n\n if (!msgInfo) {\n this.log.debug('unknown message %l failed because of %s', msgId, reason)\n\n return\n }\n\n switch (msgInfo._) {\n case 'container':\n this.log.debug('container %l (size = %d) failed because of %s', msgId, msgInfo.msgIds.length, reason)\n msgInfo.msgIds.forEach((msgId) => this._onMessageFailed(msgId, reason, true))\n break\n case 'ping':\n this.log.debug('ping (msg_id = %l) failed because of %s', msgId, reason)\n // restart ping\n this._session.resetLastPing(true)\n break\n\n case 'rpc': {\n const rpc = msgInfo.rpc\n this.log.debug('rpc query %l (%s) failed because of %s', msgId, rpc.method, reason)\n\n // since the query was rejected, we can let it reassign msg_id to avoid containers\n this._session.pendingMessages.delete(msgId)\n rpc.msgId = undefined\n this._enqueueRpc(rpc, true)\n\n if (!inContainer && rpc.containerId && this._session.pendingMessages.has(rpc.containerId)) {\n // fail all the messages in that container\n this._onMessageFailed(rpc.containerId, reason)\n }\n\n // this message could also already be in some queue,\n removeFromLongArray(this._session.queuedStateReq, msgId)\n removeFromLongArray(this._session.queuedResendReq, msgId)\n\n // if resend/state was already requested, it will simply be ignored\n\n this._session.getStateSchedule.remove(rpc)\n\n break\n }\n case 'resend':\n this.log.debug(\n 'resend request %l (size = %d) failed because of %s',\n msgId,\n msgInfo.msgIds.length,\n reason,\n )\n this._session.queuedResendReq.splice(0, 0, ...msgInfo.msgIds)\n this._flushTimer.emitWhenIdle()\n break\n case 'state':\n this.log.debug(\n 'state request %l (size = %d) failed because of %s',\n msgId,\n msgInfo.msgIds.length,\n reason,\n )\n this._session.queuedStateReq.splice(0, 0, ...msgInfo.msgIds)\n this._flushTimer.emitWhenIdle()\n break\n case 'bind':\n this.log.debug('temp key binding request %l failed because of %s, retrying', msgId, reason)\n msgInfo.promise.reject(Error(reason))\n break\n case 'future_salts':\n this.log.debug('future_salts request %l failed because of %s, will retry', msgId, reason)\n this._salts.isFetching = false\n // this is enough to make it retry on the next flush.\n break\n }\n\n this._session.pendingMessages.delete(msgId)\n }\n\n private _registerOutgoingMsgId(msgId: Long): Long {\n this._session.recentOutgoingMsgIds.add(msgId)\n\n return msgId\n }\n\n private _onPong({ msgId, pingId }: mtp.RawMt_pong): void {\n const info = this._session.pendingMessages.get(msgId)\n\n if (!info) {\n this.log.warn('received pong to unknown ping (msg_id %l, ping_id %l)', msgId, pingId)\n\n return\n }\n\n if (info._ !== 'ping') {\n this.log.warn('received pong to %s query, not ping (msg_id %l, ping_id %l)', info._, msgId, pingId)\n\n return\n }\n\n if (info.pingId.neq(pingId)) {\n this.log.warn('received pong to %l, but expected ping_id = %l (got %l)', msgId, info.pingId, pingId)\n }\n\n const rtt = Date.now() - this._session.lastPingTime\n this._session.lastPingRtt = rtt\n\n if (info.containerId.neq(msgId)) {\n this._onMessageAcked(info.containerId)\n }\n\n this.log.debug('received pong: msg_id %l, ping_id %l, rtt = %dms', msgId, pingId, rtt)\n this._session.resetLastPing()\n }\n\n private _onBadServerSalt(msg: mtp.RawMt_bad_server_salt): void {\n this._salts.currentSalt = msg.newServerSalt\n\n this._onMessageFailed(msg.badMsgId, 'bad_server_salt')\n }\n\n private _onBadMsgNotification(msgId: Long, msg: mtp.RawMt_bad_msg_notification): void {\n switch (msg.errorCode) {\n case 16:\n case 17:\n case 20: {\n if (msg.errorCode !== 20) {\n // msg_id is either too high or too low\n // code 20 means msg_id is too old,\n // we just need to resend the message\n const serverTime = msgId.low >>> 0\n const timeOffset = Math.floor(Date.now() / 1000) - serverTime\n\n this._session._timeOffset = timeOffset\n this.log.debug('server time: %d, corrected offset to %d', serverTime, timeOffset)\n }\n\n this._onMessageFailed(msg.badMsgId, `bad_msg_notification ${msg.errorCode}`)\n break\n }\n default:\n // something went very wrong, we need to reset the session\n this.log.error(\n 'received bad_msg_notification for msg_id = %l, code = %d. session will be reset',\n msg.badMsgId,\n msg.errorCode,\n )\n this._resetSession()\n break\n }\n }\n\n private _onNewSessionCreated({ firstMsgId, serverSalt, uniqueId }: mtp.RawMt_new_session_created): void {\n if (uniqueId.eq(this._session.lastSessionCreatedUid)) {\n this.log.debug('received new_session_created with the same uid = %l, ignoring', uniqueId)\n\n return\n }\n\n if (!this._session.lastSessionCreatedUid.isZero() && !this.params.disableUpdates) {\n // force the client to fetch missed updates\n // when _lastSessionCreatedUid == 0, the connection has\n // just been established, and the client will fetch them anyways\n this.emit('update', { _: 'updatesTooLong' })\n }\n\n this._salts.currentSalt = serverSalt\n\n this.log.debug('received new_session_created, uid = %l, first msg_id = %l', uniqueId, firstMsgId)\n\n for (const msgId of this._session.pendingMessages.keys()) {\n const val = this._session.pendingMessages.get(msgId)!\n\n if (val._ === 'bind') {\n // should NOT happen.\n if (msgId.lt(firstMsgId)) {\n this._onMessageFailed(msgId, 'received in wrong session')\n }\n continue\n }\n\n if (val._ === 'container') {\n if (msgId.lt(firstMsgId)) {\n // all messages in this container will be resent\n // info about this container is no longer needed\n this._session.pendingMessages.delete(msgId)\n }\n\n return\n }\n\n const containerId = val._ === 'rpc' ? val.rpc.containerId || msgId : val.containerId\n\n if (containerId.lt(firstMsgId)) {\n this._onMessageFailed(msgId, 'new_session_created', true)\n }\n }\n }\n\n private _onMessageInfo(msgId: Long, status: number, answerMsgId: Long): void {\n if (!msgId.isZero()) {\n const info = this._session.pendingMessages.get(msgId)\n\n if (!info) {\n if (!this._session.recentOutgoingMsgIds.has(msgId)) {\n this.log.warn('received message info about unknown message %l', msgId)\n }\n\n return\n }\n\n switch (status & 7) {\n case 1:\n case 2:\n case 3:\n // message wasn't received by the server\n return this._onMessageFailed(msgId, `message info state ${status}`)\n break\n\n case 0:\n if (!answerMsgId.isZero()) {\n this.log.warn(\n 'received message info with status = 0: msg_id = %l, status = %d, ans_id = %l',\n msgId,\n status,\n answerMsgId,\n )\n\n return this._onMessageFailed(msgId, 'message info state = 0, ans_id = 0')\n }\n // fallthrough\n case 4:\n this._onMessageAcked(msgId)\n break\n }\n }\n\n if (!answerMsgId.isZero() && !this._session.recentIncomingMsgIds.has(answerMsgId)) {\n this.log.debug('received message info for %l, but answer (%l) was not received yet', msgId, answerMsgId)\n this._session.queuedResendReq.push(answerMsgId)\n this._flushTimer.emitWhenIdle()\n\n return\n }\n\n if (answerMsgId.isZero()) {\n this.log.debug('received message info for %l: message is still pending (status = %d)', msgId, status)\n\n return\n }\n\n this.log.debug('received message info for %l, and answer (%l) was already received', msgId, answerMsgId)\n }\n\n private _onMessagesInfo(msgIds: Long[], info: Uint8Array): void {\n if (msgIds.length !== info.length) {\n this.log.warn('messages state info was invalid: msg_ids.length !== info.length')\n }\n\n for (let i = 0; i < msgIds.length; i++) {\n this._onMessageInfo(msgIds[i], info[i], Long.ZERO)\n }\n }\n\n private _onMsgsStateInfo(msg: mtp.RawMt_msgs_state_info): void {\n const info = this._session.pendingMessages.get(msg.reqMsgId)\n\n if (!info) {\n this.log.warn('received msgs_state_info to unknown request %l', msg.reqMsgId)\n\n return\n }\n\n if (info._ !== 'state') {\n this.log.warn('received msgs_state_info to %s query %l', info._, msg.reqMsgId)\n\n return\n }\n\n this._onMessagesInfo(info.msgIds, msg.info)\n }\n\n private _onFutureSalts(msg: mtp.RawMt_future_salts): void {\n const info = this._session.pendingMessages.get(msg.reqMsgId)\n\n if (!info) {\n this.log.warn('received future_salts to unknown request %l', msg.reqMsgId)\n\n return\n }\n\n if (info._ !== 'future_salts') {\n this.log.warn('received future_salts to %s query %l', info._, msg.reqMsgId)\n\n return\n }\n\n this.log.debug('received future_salts: %d salts', msg.salts.length)\n\n this._salts.isFetching = false\n this._salts.setFutureSalts(msg.salts.slice())\n this.emit('future-salts', msg.salts)\n }\n\n private _onDestroySessionResult(msg: mtp.TypeDestroySessionRes): void {\n const reqMsgId = this._session.destroySessionIdToMsgId.get(msg.sessionId)\n\n if (!reqMsgId) {\n this.log.warn('received %s for unknown session %h', msg._, msg.sessionId)\n\n return\n }\n\n this._session.destroySessionIdToMsgId.delete(msg.sessionId)\n this._session.pendingMessages.delete(reqMsgId)\n this.log.debug('received %s for session %h', msg._, msg.sessionId)\n }\n\n private _enqueueRpc(rpc: PendingRpc, force?: boolean) {\n if (this._session.enqueueRpc(rpc, force)) {\n this._flushTimer.emitWhenIdle()\n }\n }\n\n _resetSession(): void {\n this._queuedDestroySession.push(this._session._sessionId)\n\n this._session.resetState(true)\n this._onAllFailed('session reset')\n this.reconnect()\n\n // once we receive new_session_created, all pending messages will be resent.\n this._flushTimer.reset()\n }\n\n private _sendAck(msgId: Long): void {\n if (this._session.queuedAcks.length === 0) {\n this._flushTimer.emitBeforeNext(30000)\n }\n\n this._session.queuedAcks.push(msgId)\n\n if (this._session.queuedAcks.length >= 100) {\n this._flushTimer.emitWhenIdle()\n }\n }\n\n sendRpc<T extends tl.RpcMethod>(\n request: T,\n stack?: string,\n timeout?: number,\n abortSignal?: AbortSignal,\n chainId?: string | number,\n ): Promise<tl.RpcCallReturn[T['_']]> {\n if (this._usable && this.params.inactivityTimeout) {\n this._rescheduleInactivity()\n }\n\n if (!stack && this.params.niceStacks !== false) {\n stack = new Error().stack\n }\n\n const method = request._\n\n let obj: tl.TlObject = request\n let initConn = false\n\n if (this.params.disableUpdates) {\n obj = {\n _: 'invokeWithoutUpdates',\n query: obj,\n }\n }\n\n if (!this._session.initConnectionCalled) {\n // we will wrap every rpc call with initConnection\n // until some of the requests wrapped with it is\n // either acked or returns rpc_result\n\n this.log.debug('wrapping %s with initConnection, layer: %d', method, this.params.layer)\n const proxy = this._transport.getMtproxyInfo?.()\n obj = {\n _: 'invokeWithLayer',\n layer: this.params.layer,\n query: {\n ...this.params.initConnection,\n proxy,\n query: obj,\n },\n }\n initConn = true\n }\n\n this.log.verbose('>>> %j', obj)\n\n let content = TlBinaryWriter.serializeObject(this._writerMap, obj)\n\n if (content.length > 1044404) {\n // if you send larger payloads, telegram will just close connection,\n // and since we resend them, it will get resent after reconnection and\n // that will be an endless loop of reconnections. we don't want that,\n // and payloads this large are usually a sign of an error in the code.\n throw new MtArgumentError(`Payload is too big (${content.length} > 1044404)`)\n }\n\n // gzip\n let shouldGzip = content.length > 128\n\n if (content.length > 16384) {\n // test compression ratio for the middle part\n // if it is less than 0.9, then try to compress the whole request\n\n const middle = ~~((content.length - 1024) / 2)\n const middlePart = content.subarray(middle, middle + 1024)\n const gzipped = this._crypto.gzip(middlePart, Math.floor(middlePart.length * 0.9))\n\n if (!gzipped) shouldGzip = false\n }\n\n if (shouldGzip) {\n const gzipped = this._crypto.gzip(content, Math.floor(content.length * 0.9))\n\n if (gzipped) {\n this.log.debug('gzipped %s (%db -> %db)', method, content.length, gzipped.length)\n\n content = gzipped\n } else {\n shouldGzip = false\n }\n }\n\n const pending: PendingRpc = {\n method,\n promise: createControllablePromise(),\n data: content,\n stack,\n // we will need to know size of gzip_packed overhead in _flush()\n gzipOverhead: shouldGzip ? 4 + TlSerializationCounter.countBytesOverhead(content.length) : 0,\n initConn,\n chainId,\n\n // setting them as well so jit can optimize stuff\n invokeAfter: undefined,\n sent: undefined,\n done: undefined,\n getState: undefined,\n msgId: undefined,\n seqNo: undefined,\n containerId: undefined,\n acked: undefined,\n cancelled: undefined,\n timeout: undefined,\n }\n\n if (abortSignal?.aborted) {\n pending.promise.reject(abortSignal.reason)\n\n return pending.promise\n }\n\n if (timeout) {\n pending.timeout = setTimeout(this._cancelRpc, timeout, pending, true)\n }\n\n if (abortSignal) {\n abortSignal.addEventListener('abort', () => this._cancelRpc(pending, false, abortSignal))\n }\n\n this._enqueueRpc(pending, true)\n\n return pending.promise\n }\n\n private _cancelRpc(rpc: PendingRpc, onTimeout = false, abortSignal?: AbortSignal): void {\n if (rpc.done) return\n\n if (rpc.cancelled && !onTimeout) {\n throw new MtcuteError('RPC was already cancelled')\n }\n\n if (!onTimeout && rpc.timeout) {\n clearTimeout(rpc.timeout)\n }\n\n if (onTimeout) {\n // todo: replace with MtTimeoutError\n const error = new tl.RpcError(400, 'Client timeout')\n\n if (this.params.niceStacks !== false) {\n makeNiceStack(error, rpc.stack!, rpc.method)\n }\n\n rpc.promise.reject(error)\n } else if (abortSignal) {\n rpc.promise.reject(abortSignal.reason)\n }\n\n rpc.cancelled = true\n\n if (rpc.msgId) {\n this._session.queuedCancelReq.push(rpc.msgId)\n this._session.getStateSchedule.remove(rpc)\n this._flushTimer.emitWhenIdle()\n } else {\n // in case rpc wasn't sent yet (or had some error),\n // we can simply remove it from queue\n this._session.queuedRpc.remove(rpc)\n }\n }\n\n protected _onInactivityTimeout() {\n // we should send all pending acks and other service messages\n // before dropping the connection\n // additionally, if we are still waiting for some rpc results,\n // we should wait for them first\n\n let hasPendingRpc = false\n\n for (const it of this._session.pendingMessages.values()) {\n if (it._ === 'rpc') {\n hasPendingRpc = true\n break\n }\n }\n\n if (hasPendingRpc) {\n this.log.debug('waiting for pending rpc queries to finish before closing connection')\n this._rescheduleInactivity()\n\n return\n }\n\n if (!this._session.hasPendingMessages) {\n this.log.debug('no pending service messages, closing connection')\n super._onInactivityTimeout()\n\n return\n }\n\n this._inactivityPendingFlush = true\n this._flush()\n }\n\n flushWhenIdle(): void {\n this._flushTimer.emitWhenIdle()\n }\n\n private _flush(): void {\n if (!this._session._authKey.ready || this._isPfsBindingPending || this._session.current429Timeout) {\n this.log.debug(\n 'skipping flush, connection is not usable (auth key ready = %b, pfs binding pending = %b, 429 timeout = %b)',\n this._session._authKey.ready,\n this._isPfsBindingPending,\n Boolean(this._session.current429Timeout),\n )\n\n // it will be flushed once connection is usable\n return\n }\n\n try {\n this._doFlush()\n } catch (e: any) {\n this.log.error('flush error: %s', (e as Error).stack)\n // should not happen unless there's a bug in the code\n }\n\n // schedule next flush\n // if there are more queued requests, flush immediately\n // (they likely didn't fit into one message)\n if (this._session.hasPendingMessages) {\n // we schedule it on the next tick, so we can load-balance\n // between multiple connections using the same session\n this._flushTimer.emitWhenIdle()\n } else {\n const nextPingTime = this._session.lastPingTime + PING_INTERVAL\n const nextGetScheduleTime = this._session.getStateSchedule.raw[0]?.getState || Infinity\n\n this._flushTimer.emitBefore(Math.min(nextPingTime, nextGetScheduleTime))\n }\n }\n\n private _doFlush(): void {\n this.log.debug('flushing send queue. queued rpc: %d', this._session.queuedRpc.length)\n\n // oh bloody hell mate\n\n // total size & count\n let packetSize = 0\n let messageCount = 0\n // size & msg count that count towards container limit\n // these will be added to total later\n let containerMessageCount = 0\n let containerSize = 0\n\n let ackRequest: Uint8Array | null = null\n let ackMsgIds: Long[] | null = null\n\n let getFutureSaltsRequest: Uint8Array | null = null\n let getFutureSaltsMsgId: Long | null = null\n\n let pingRequest: Uint8Array | null = null\n let pingId: Long | null = null\n let pingMsgId: Long | null = null\n\n let getStateRequest: Uint8Array | null = null\n let getStateMsgId: Long | null = null\n let getStateMsgIds: Long[] | null = null\n\n let resendRequest: Uint8Array | null = null\n let resendMsgId: Long | null = null\n let resendMsgIds: Long[] | null = null\n\n let cancelRpcs: Long[] | null = null\n let destroySessions: Long[] | null = null\n let rootMsgId: Long | null = null\n\n const now = Date.now()\n\n if (this._session.queuedAcks.length) {\n let acks = this._session.queuedAcks\n\n if (acks.length > 8192) {\n this._session.queuedAcks = acks.slice(8192)\n acks = acks.slice(0, 8192)\n } else {\n this._session.queuedAcks = []\n }\n\n const obj: mtp.RawMt_msgs_ack = {\n _: 'mt_msgs_ack',\n msgIds: acks,\n }\n ackMsgIds = obj.msgIds\n\n ackRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n packetSize += ackRequest.length + 16\n messageCount += 1\n }\n\n if (now - this._session.lastPingTime > PING_INTERVAL) {\n if (!this._session.lastPingMsgId.isZero()) {\n this.log.warn(\"didn't receive pong for previous ping (msg_id = %l)\", this._session.lastPingMsgId)\n this._session.pendingMessages.delete(this._session.lastPingMsgId)\n }\n\n pingId = randomLong()\n const obj: mtp.RawMt_ping_delay_disconnect = {\n _: 'mt_ping_delay_disconnect',\n pingId,\n disconnectDelay: 75,\n }\n\n this._session.lastPingTime = Date.now()\n\n pingRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n containerSize += pingRequest.length + 16\n containerMessageCount += 1\n }\n\n {\n if (this._session.queuedStateReq.length) {\n let ids = this._session.queuedStateReq\n\n if (ids.length > 8192) {\n this._session.queuedStateReq = ids.slice(8192)\n ids = ids.slice(0, 8192)\n } else {\n this._session.queuedStateReq = []\n }\n getStateMsgIds = ids\n }\n\n const idx = this._session.getStateSchedule.index({ getState: now } as PendingRpc, true)\n\n if (idx > 0) {\n const toGetState = this._session.getStateSchedule.raw.splice(0, idx)\n if (!getStateMsgIds) getStateMsgIds = []\n toGetState.forEach((it) => getStateMsgIds!.push(it.msgId!))\n }\n\n if (getStateMsgIds) {\n const obj: mtp.RawMt_msgs_state_req = {\n _: 'mt_msgs_state_req',\n msgIds: getStateMsgIds,\n }\n\n getStateRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n packetSize += getStateRequest.length + 16\n messageCount += 1\n }\n }\n\n if (this._session.queuedResendReq.length) {\n resendMsgIds = this._session.queuedResendReq\n\n if (resendMsgIds.length > 8192) {\n this._session.queuedResendReq = resendMsgIds.slice(8192)\n resendMsgIds = resendMsgIds.slice(0, 8192)\n } else {\n this._session.queuedResendReq = []\n }\n\n const obj: mtp.RawMt_msg_resend_req = {\n _: 'mt_msg_resend_req',\n msgIds: resendMsgIds,\n }\n\n resendRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n packetSize += resendRequest.length + 16\n messageCount += 1\n }\n\n if (this._session.queuedCancelReq.length) {\n containerMessageCount += this._session.queuedCancelReq.length\n containerSize += this._session.queuedCancelReq.length * 28\n cancelRpcs = this._session.queuedCancelReq\n this._session.queuedCancelReq = []\n }\n\n if (this._queuedDestroySession.length) {\n containerMessageCount += this._queuedDestroySession.length\n containerSize += this._queuedDestroySession.length * 28\n destroySessions = this._queuedDestroySession\n this._queuedDestroySession = []\n }\n\n if (this._salts.shouldFetchSalts()) {\n const obj: mtp.RawMt_get_future_salts = {\n _: 'mt_get_future_salts',\n num: 64,\n }\n\n getFutureSaltsRequest = TlBinaryWriter.serializeObject(this._writerMap, obj)\n containerSize += getFutureSaltsRequest.length + 16\n containerMessageCount += 1\n this._salts.isFetching = true\n }\n\n let forceContainer = false\n const rpcToSend: PendingRpc[] = []\n\n while (\n this._session.queuedRpc.length &&\n containerSize < 32768 && // 2^15\n containerMessageCount < 1020\n ) {\n const msg = this._session.queuedRpc.popFront()!\n if (msg.cancelled) continue\n\n // note: we don't check for <2^15 here\n // this is not documented, but large requests\n // (like upload.saveFilePart) *may* exceed that limit\n\n rpcToSend.push(msg)\n containerSize += msg.data.length + 16\n if (msg.gzipOverhead) containerSize += msg.gzipOverhead\n\n if (msg.chainId) {\n containerSize += INVOKE_AFTER_MSG_SIZE\n }\n\n // if message was already assigned a msg_id,\n // we must wrap it in a container with a newer msg_id\n if (msg.msgId) forceContainer = true\n\n // having >1 upload.getFile within a container seems to cause flood_wait errors\n // also a crutch for load-balancing\n if (msg.method === 'upload.getFile') break\n }\n\n packetSize += containerSize\n messageCount += containerMessageCount + rpcToSend.length\n\n if (!messageCount) {\n this.log.debug('flush did not happen: nothing to flush')\n\n return\n }\n\n const useContainer = forceContainer || messageCount > 1\n if (useContainer) packetSize += 24 // 8 (msg_container) + 16 (mtproto header)\n\n const writer = TlBinaryWriter.alloc(this._writerMap, packetSize)\n\n if (useContainer) {\n // leave bytes for mtproto header (we'll write it later,\n // since we need seqno and msg_id to be larger than the content)\n writer.pos += 16\n writer.uint(MSG_CONTAINER_ID)\n writer.uint(messageCount)\n }\n\n const otherPendings: Exclude<PendingMessage, { _: 'rpc' | 'container' | 'bind' }>[] = []\n\n if (ackRequest) {\n this._registerOutgoingMsgId(this._session.writeMessage(writer, ackRequest))\n }\n\n if (pingRequest) {\n pingMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, pingRequest))\n this._session.lastPingMsgId = pingMsgId\n const pingPending: PendingMessage = {\n _: 'ping',\n pingId: pingId!,\n containerId: pingMsgId,\n }\n this._session.pendingMessages.set(pingMsgId, pingPending)\n otherPendings.push(pingPending)\n }\n\n if (getStateRequest) {\n getStateMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, getStateRequest))\n const getStatePending: PendingMessage = {\n _: 'state',\n msgIds: getStateMsgIds!,\n containerId: getStateMsgId,\n }\n this._session.pendingMessages.set(getStateMsgId, getStatePending)\n otherPendings.push(getStatePending)\n }\n\n if (resendRequest) {\n resendMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, resendRequest))\n const resendPending: PendingMessage = {\n _: 'resend',\n msgIds: resendMsgIds!,\n containerId: resendMsgId,\n }\n this._session.pendingMessages.set(resendMsgId, resendPending)\n otherPendings.push(resendPending)\n }\n\n if (cancelRpcs) {\n cancelRpcs.forEach((msgId) => {\n const cancelMsgId = this._registerOutgoingMsgId(\n this._session.writeMessage(writer, {\n _: 'mt_rpc_drop_answer',\n reqMsgId: msgId,\n }),\n )\n\n const pending: PendingMessage = {\n _: 'cancel',\n msgId,\n containerId: cancelMsgId,\n }\n this._session.pendingMessages.set(cancelMsgId, pending)\n otherPendings.push(pending)\n })\n }\n\n if (destroySessions) {\n destroySessions.forEach((sessionId) => {\n const msgId = this._registerOutgoingMsgId(\n this._session.writeMessage(writer, {\n _: 'mt_destroy_session',\n sessionId,\n }),\n )\n\n const pending: PendingMessage = {\n _: 'destroy_session',\n sessionId,\n containerId: msgId,\n }\n this._session.pendingMessages.set(msgId, pending)\n this._session.destroySessionIdToMsgId.set(sessionId, msgId)\n otherPendings.push(pending)\n })\n }\n\n if (getFutureSaltsRequest) {\n getFutureSaltsMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, getFutureSaltsRequest))\n const pending: PendingMessage = {\n _: 'future_salts',\n containerId: getFutureSaltsMsgId,\n }\n this._session.pendingMessages.set(getFutureSaltsMsgId, pending)\n otherPendings.push(pending)\n }\n\n const getStateTime = now + GET_STATE_INTERVAL\n\n for (let i = 0; i < rpcToSend.length; i++) {\n const msg = rpcToSend[i]\n // not using writeMessage here because we also need seqNo, and\n // i dont want to also return seqNo there because that would mean\n // extra object overhead\n\n if (!msg.msgId) {\n const msgId = this._session.getMessageId()\n const seqNo = this._session.getSeqNo()\n\n this.log.debug('%s: msg_id assigned %l, seqno: %d', msg.method, msgId, seqNo)\n\n msg.msgId = msgId\n msg.seqNo = seqNo\n this._session.pendingMessages.set(msgId, {\n _: 'rpc',\n rpc: msg,\n })\n\n if (msg.chainId) {\n msg.invokeAfter = this._session.addToChain(msg.chainId, msgId)\n this.log.debug('chain %s: invoke %l after %l', msg.chainId, msg.msgId, msg.invokeAfter)\n }\n } else {\n this.log.debug('%s: msg_id already assigned, reusing %l, seqno: %d', msg.method, msg.msgId, msg.seqNo)\n }\n\n // (re-)schedule get_state if needed\n if (msg.getState) {\n this._session.getStateSchedule.remove(msg)\n }\n if (!msg.acked) {\n msg.getState = getStateTime\n this._session.getStateSchedule.insert(msg)\n }\n\n if (rootMsgId === null) rootMsgId = msg.msgId\n writer.long(this._registerOutgoingMsgId(msg.msgId))\n writer.uint(msg.seqNo!)\n\n const invokeAfterSize = msg.invokeAfter ? INVOKE_AFTER_MSG_SIZE : 0\n\n const writeInvokeAfter = () => {\n if (!msg.invokeAfter) return\n\n writer.uint(INVOKE_AFTER_MSG_ID)\n writer.long(msg.invokeAfter)\n }\n\n if (msg.gzipOverhead) {\n writer.uint(msg.data.length + msg.gzipOverhead + invokeAfterSize)\n writeInvokeAfter()\n writer.uint(GZIP_PACKED_ID)\n writer.bytes(msg.data)\n } else {\n writer.uint(msg.data.length + invokeAfterSize)\n writeInvokeAfter()\n writer.raw(msg.data)\n }\n\n msg.sent = true\n }\n\n if (useContainer) {\n // we now need to assign the container msg_id and seqno\n // we couldn't have assigned them earlier because mtproto\n // requires them to be >= than the contained messages\n\n packetSize = writer.pos\n\n const containerId = this._session.getMessageId()\n writer.pos = 0\n rootMsgId = containerId\n writer.long(this._registerOutgoingMsgId(containerId))\n writer.uint(this._session.getSeqNo(false))\n writer.uint(packetSize - 16)\n writer.pos = packetSize\n\n const msgIds = []\n\n for (let i = 0; i < rpcToSend.length; i++) {\n const msg = rpcToSend[i]\n msg.containerId = containerId\n msgIds.push(msg.msgId!)\n }\n\n if (otherPendings.length) {\n otherPendings.forEach((msg) => {\n msgIds.push(msg.containerId)\n msg.containerId = containerId\n })\n }\n\n this._session.pendingMessages.set(containerId, {\n _: 'container',\n msgIds,\n })\n }\n\n const result = writer.result()\n\n this.log.debug(\n 'sending %d messages: size = %db, acks = %L, ping = %b (msg_id = %l), state_req = %L (msg_id = %l), resend = %L (msg_id = %l), cancels = %L (msg_id = %l), salts_req = %b (msg_id = %l), rpc = %s, container = %b, root msg_id = %l',\n messageCount,\n packetSize,\n ackMsgIds,\n pingRequest,\n pingMsgId,\n getStateMsgIds,\n getStateMsgId,\n resendMsgIds,\n cancelRpcs,\n cancelRpcs,\n resendMsgId,\n getFutureSaltsRequest,\n getFutureSaltsMsgId,\n rpcToSend.map((it) => it.method),\n useContainer,\n rootMsgId,\n )\n\n const enc = this._session.encryptMessage(result)\n const promise = this.send(enc).catch((err: Error) => {\n this.log.error('error while sending pending messages (root msg_id = %l): %s', rootMsgId, err.stack)\n\n // put acks in the front so they are the first to be sent\n if (ackMsgIds) {\n this._session.queuedAcks.splice(0, 0, ...ackMsgIds)\n }\n if (rootMsgId) {\n this._onMessageFailed(rootMsgId, 'unknown error')\n }\n })\n\n if (this._inactivityPendingFlush && !this._session.hasPendingMessages) {\n void promise.then(() => {\n this.log.debug('pending messages sent, closing connection')\n this._flushTimer.reset()\n this._inactivityPendingFlush = false\n\n super._onInactivityTimeout()\n })\n }\n }\n}\n"]}