@mtkruto/node 0.67.2 → 0.69.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 (1183) hide show
  1. package/esm/0_deps.d.ts +12 -12
  2. package/esm/0_deps.js +14 -14
  3. package/esm/0_errors.js +2 -6
  4. package/esm/3_errors.js +2 -12
  5. package/esm/3_types.d.ts +4 -0
  6. package/esm/3_types.d.ts.map +1 -1
  7. package/esm/3_types.js +4 -0
  8. package/esm/4_constants.d.ts +1 -1
  9. package/esm/4_constants.d.ts.map +1 -1
  10. package/esm/4_errors.d.ts +2 -2
  11. package/esm/4_errors.d.ts.map +1 -1
  12. package/esm/4_errors.js +2 -12
  13. package/esm/_dnt.polyfills.d.ts +99 -0
  14. package/esm/_dnt.polyfills.d.ts.map +1 -1
  15. package/esm/_dnt.polyfills.js +127 -1
  16. package/esm/_dnt.test_polyfills.d.ts.map +1 -0
  17. package/esm/client/0_client_abstract.d.ts +3 -3
  18. package/esm/client/0_client_abstract.d.ts.map +1 -1
  19. package/esm/client/0_filters.d.ts +1 -1
  20. package/esm/client/0_filters.d.ts.map +1 -1
  21. package/esm/client/0_filters.js +3 -3
  22. package/esm/client/0_filters_test.d.ts.map +1 -1
  23. package/esm/client/0_html.d.ts +1 -1
  24. package/esm/client/0_html.d.ts.map +1 -1
  25. package/esm/client/0_html.js +1 -1
  26. package/esm/client/0_markdown.d.ts +1 -1
  27. package/esm/client/0_markdown.d.ts.map +1 -1
  28. package/esm/client/0_markdown.js +8 -8
  29. package/esm/client/0_markdown_test.d.ts.map +1 -1
  30. package/esm/client/0_params.d.ts +44 -8
  31. package/esm/client/0_params.d.ts.map +1 -1
  32. package/esm/client/0_password.d.ts +5 -5
  33. package/esm/client/0_password.d.ts.map +1 -1
  34. package/esm/client/0_password.js +1 -1
  35. package/esm/client/0_password_test.d.ts.map +1 -1
  36. package/esm/client/0_storage_operations.d.ts +4 -4
  37. package/esm/client/0_storage_operations.d.ts.map +1 -1
  38. package/esm/client/0_storage_operations.js +159 -171
  39. package/esm/client/0_storage_operations_test.d.ts.map +1 -1
  40. package/esm/client/0_update_processor.d.ts +2 -2
  41. package/esm/client/0_update_processor.d.ts.map +1 -1
  42. package/esm/client/0_utilities.d.ts +1 -1
  43. package/esm/client/0_utilities.js +8 -8
  44. package/esm/client/0_utilities_test.d.ts.map +1 -1
  45. package/esm/client/1_client_plain.d.ts +3 -3
  46. package/esm/client/1_client_plain.d.ts.map +1 -1
  47. package/esm/client/1_client_plain.js +5 -23
  48. package/esm/client/1_composer.d.ts +3 -3
  49. package/esm/client/1_composer.d.ts.map +1 -1
  50. package/esm/client/1_composer.js +14 -27
  51. package/esm/client/1_types.d.ts +4 -4
  52. package/esm/client/1_types.d.ts.map +1 -1
  53. package/esm/client/2_account_manager.d.ts +3 -3
  54. package/esm/client/2_account_manager.d.ts.map +1 -1
  55. package/esm/client/2_account_manager.js +86 -98
  56. package/esm/client/2_bot_info_manager.d.ts +3 -3
  57. package/esm/client/2_bot_info_manager.d.ts.map +1 -1
  58. package/esm/client/2_bot_info_manager.js +26 -38
  59. package/esm/client/2_business_connection_manager.d.ts +3 -3
  60. package/esm/client/2_business_connection_manager.d.ts.map +1 -1
  61. package/esm/client/2_business_connection_manager.js +10 -23
  62. package/esm/client/2_client_encrypted.d.ts +2 -2
  63. package/esm/client/2_client_encrypted.d.ts.map +1 -1
  64. package/esm/client/2_client_encrypted.js +194 -211
  65. package/esm/client/2_file_manager.d.ts +7 -6
  66. package/esm/client/2_file_manager.d.ts.map +1 -1
  67. package/esm/client/2_file_manager.js +303 -245
  68. package/esm/client/2_file_manager_test.d.ts.map +1 -1
  69. package/esm/client/2_network_statistics_manager.d.ts +1 -1
  70. package/esm/client/2_network_statistics_manager.d.ts.map +1 -1
  71. package/esm/client/2_network_statistics_manager.js +8 -21
  72. package/esm/client/2_payment_manager.d.ts +4 -4
  73. package/esm/client/2_payment_manager.d.ts.map +1 -1
  74. package/esm/client/2_payment_manager.js +7 -20
  75. package/esm/client/2_reaction_manager.d.ts +3 -3
  76. package/esm/client/2_reaction_manager.d.ts.map +1 -1
  77. package/esm/client/2_reaction_manager.js +7 -20
  78. package/esm/client/2_translations_manager.d.ts +4 -4
  79. package/esm/client/2_translations_manager.d.ts.map +1 -1
  80. package/esm/client/2_translations_manager.js +97 -107
  81. package/esm/client/2_update_manager.d.ts +2 -2
  82. package/esm/client/2_update_manager.d.ts.map +1 -1
  83. package/esm/client/2_update_manager.js +766 -761
  84. package/esm/client/3_client_encrypted_pool.d.ts +1 -1
  85. package/esm/client/3_client_encrypted_pool.d.ts.map +1 -1
  86. package/esm/client/3_client_encrypted_pool.js +10 -26
  87. package/esm/client/3_client_encrypted_pool_test.d.ts.map +1 -1
  88. package/esm/client/3_message_manager.d.ts +11 -8
  89. package/esm/client/3_message_manager.d.ts.map +1 -1
  90. package/esm/client/3_message_manager.js +580 -466
  91. package/esm/client/3_message_manager_test.d.ts.map +1 -1
  92. package/esm/client/3_video_chat_manager.d.ts +6 -6
  93. package/esm/client/3_video_chat_manager.d.ts.map +1 -1
  94. package/esm/client/3_video_chat_manager.js +61 -72
  95. package/esm/client/4_callback_query_manager.d.ts +5 -5
  96. package/esm/client/4_callback_query_manager.d.ts.map +1 -1
  97. package/esm/client/4_callback_query_manager.js +18 -30
  98. package/esm/client/4_chat_list_manager.d.ts +6 -6
  99. package/esm/client/4_chat_list_manager.d.ts.map +1 -1
  100. package/esm/client/4_chat_list_manager.js +328 -324
  101. package/esm/client/4_chat_manager.d.ts +7 -7
  102. package/esm/client/4_chat_manager.d.ts.map +1 -1
  103. package/esm/client/4_chat_manager.js +120 -133
  104. package/esm/client/4_forum_manager.d.ts +4 -4
  105. package/esm/client/4_forum_manager.d.ts.map +1 -1
  106. package/esm/client/4_forum_manager.js +67 -73
  107. package/esm/client/4_gift_manager.d.ts +4 -4
  108. package/esm/client/4_gift_manager.d.ts.map +1 -1
  109. package/esm/client/4_gift_manager.js +17 -30
  110. package/esm/client/4_inline_query_manager.d.ts +5 -5
  111. package/esm/client/4_inline_query_manager.d.ts.map +1 -1
  112. package/esm/client/4_inline_query_manager.js +16 -28
  113. package/esm/client/4_link_preview_manager.d.ts +5 -5
  114. package/esm/client/4_link_preview_manager.d.ts.map +1 -1
  115. package/esm/client/4_link_preview_manager.js +6 -19
  116. package/esm/client/4_poll_manager.d.ts +4 -4
  117. package/esm/client/4_poll_manager.d.ts.map +1 -1
  118. package/esm/client/4_poll_manager.js +44 -57
  119. package/esm/client/4_story_manager.d.ts +7 -7
  120. package/esm/client/4_story_manager.d.ts.map +1 -1
  121. package/esm/client/4_story_manager.js +43 -55
  122. package/esm/client/5_client.d.ts +34 -15
  123. package/esm/client/5_client.d.ts.map +1 -1
  124. package/esm/client/5_client.js +1299 -1291
  125. package/esm/connection/0_connection.d.ts +1 -1
  126. package/esm/connection/0_connection.d.ts.map +1 -1
  127. package/esm/connection/1_connection_tcp.node.d.ts +1 -1
  128. package/esm/connection/1_connection_tcp.node.d.ts.map +1 -1
  129. package/esm/connection/1_connection_tcp.node.js +49 -66
  130. package/esm/connection/1_connection_web_socket.d.ts +1 -1
  131. package/esm/connection/1_connection_web_socket.d.ts.map +1 -1
  132. package/esm/connection/1_connection_web_socket.js +75 -91
  133. package/esm/deps/jsr.io/@roj/tgcrypto/1.0.1/dist/tgcrypto.js +3 -11
  134. package/{script/deps/jsr.io/@std/assert/1.0.13 → esm/deps/jsr.io/@std/assert/1.0.14}/assert.d.ts.map +1 -1
  135. package/esm/deps/jsr.io/@std/assert/1.0.14/assertion_error.d.ts +26 -0
  136. package/esm/deps/jsr.io/@std/assert/1.0.14/assertion_error.d.ts.map +1 -0
  137. package/esm/deps/jsr.io/@std/assert/1.0.14/assertion_error.js +30 -0
  138. package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equal.d.ts.map +1 -1
  139. package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equals.d.ts.map +1 -1
  140. package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/false.d.ts.map +1 -1
  141. package/esm/deps/jsr.io/@std/assert/1.0.14/unreachable.d.ts +15 -0
  142. package/esm/deps/jsr.io/@std/assert/1.0.14/unreachable.d.ts.map +1 -0
  143. package/esm/deps/jsr.io/@std/assert/1.0.14/unreachable.js +20 -0
  144. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/_util.d.ts.map +1 -1
  145. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/abortable.d.ts.map +1 -1
  146. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/deadline.d.ts.map +1 -1
  147. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/debounce.d.ts.map +1 -1
  148. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/delay.d.ts.map +1 -1
  149. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/delay.js +17 -2
  150. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mod.d.ts.map +1 -1
  151. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mux_async_iterator.d.ts.map +1 -1
  152. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mux_async_iterator.js +31 -47
  153. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/pool.d.ts.map +1 -1
  154. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/retry.d.ts.map +1 -1
  155. package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/tee.d.ts.map +1 -1
  156. package/esm/deps/jsr.io/@std/async/1.0.14/tee.js +79 -0
  157. package/esm/deps/jsr.io/@std/datetime/0.225.5/_date_time_formatter.js +4 -17
  158. package/esm/deps/jsr.io/@std/internal/1.0.10/_os.d.ts +2 -0
  159. package/esm/deps/jsr.io/@std/internal/1.0.10/_os.d.ts.map +1 -0
  160. package/esm/deps/jsr.io/@std/internal/1.0.10/_os.js +12 -0
  161. package/esm/deps/jsr.io/@std/internal/1.0.10/os.d.ts +3 -0
  162. package/esm/deps/jsr.io/@std/internal/1.0.10/os.d.ts.map +1 -0
  163. package/esm/deps/jsr.io/@std/internal/1.0.10/os.js +5 -0
  164. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/assert_path.d.ts.map +1 -1
  165. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/basename.d.ts.map +1 -1
  166. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/constants.d.ts.map +1 -1
  167. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/from_file_url.d.ts.map +1 -1
  168. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize.d.ts.map +1 -1
  169. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize_string.d.ts.map +1 -1
  170. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/strip_trailing_separators.d.ts.map +1 -1
  171. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/to_file_url.d.ts.map +1 -1
  172. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/basename.d.ts.map +1 -1
  173. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/basename.js +1 -1
  174. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/extname.d.ts.map +1 -1
  175. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/extname.js +1 -1
  176. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/is_absolute.d.ts.map +1 -1
  177. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/is_absolute.js +1 -1
  178. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/join.d.ts.map +1 -1
  179. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/join.js +1 -1
  180. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/_util.d.ts.map +1 -1
  181. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/posix/basename.d.ts.map +1 -1
  182. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/posix/extname.d.ts.map +1 -1
  183. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/from_file_url.d.ts.map +1 -1
  184. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/is_absolute.d.ts.map +1 -1
  185. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/posix/join.d.ts.map +1 -1
  186. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/posix/normalize.d.ts.map +1 -1
  187. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/posix/to_file_url.d.ts.map +1 -1
  188. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/to_file_url.d.ts.map +1 -1
  189. package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/to_file_url.js +1 -1
  190. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/_util.d.ts.map +1 -1
  191. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/basename.d.ts.map +1 -1
  192. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/extname.d.ts.map +1 -1
  193. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/from_file_url.d.ts.map +1 -1
  194. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/is_absolute.d.ts.map +1 -1
  195. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/join.d.ts.map +1 -1
  196. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/normalize.d.ts.map +1 -1
  197. package/{script/deps/jsr.io/@std/path/1.1.0 → esm/deps/jsr.io/@std/path/1.1.2}/windows/to_file_url.d.ts.map +1 -1
  198. package/esm/deps/jsr.io/@std/streams/{1.0.10 → 1.0.11}/to_array_buffer.d.ts.map +1 -1
  199. package/esm/mod.js +2 -12
  200. package/esm/session/0_session_state.js +12 -38
  201. package/esm/session/1_session.d.ts +2 -2
  202. package/esm/session/1_session.d.ts.map +1 -1
  203. package/esm/session/1_session.js +49 -72
  204. package/esm/session/2_session_encrypted.d.ts +2 -2
  205. package/esm/session/2_session_encrypted.d.ts.map +1 -1
  206. package/esm/session/2_session_encrypted.js +324 -320
  207. package/esm/session/2_session_plain.js +1 -1
  208. package/esm/storage/0_storage.d.ts +1 -1
  209. package/esm/storage/0_storage.d.ts.map +1 -1
  210. package/esm/storage/1_utilities.d.ts +14 -11
  211. package/esm/storage/1_utilities.d.ts.map +1 -1
  212. package/esm/storage/1_utilities.js +17 -17
  213. package/esm/storage/1_utilities_test.d.ts.map +1 -1
  214. package/esm/storage/2_storage_indexed_db.d.ts +1 -1
  215. package/esm/storage/2_storage_indexed_db.d.ts.map +1 -1
  216. package/esm/storage/2_storage_indexed_db.js +29 -47
  217. package/esm/storage/2_storage_local_storage.node.d.ts +1 -1
  218. package/esm/storage/2_storage_local_storage.node.d.ts.map +1 -1
  219. package/esm/storage/2_storage_local_storage.node.js +15 -28
  220. package/esm/storage/2_storage_memory.d.ts +2 -2
  221. package/esm/storage/2_storage_memory.d.ts.map +1 -1
  222. package/esm/storage/2_storage_memory.js +26 -43
  223. package/esm/storage/2_storage_session_storage.d.ts +2 -2
  224. package/esm/storage/2_storage_session_storage.d.ts.map +1 -1
  225. package/esm/storage/2_storage_session_storage.js +6 -19
  226. package/esm/tl/0_utilities.js +1 -1
  227. package/esm/tl/0_utilities_test.d.ts.map +1 -1
  228. package/esm/tl/1_tl_reader.d.ts +1 -1
  229. package/esm/tl/1_tl_reader.d.ts.map +1 -1
  230. package/esm/tl/1_tl_reader.js +82 -90
  231. package/esm/tl/1_tl_reader_test.d.ts.map +1 -1
  232. package/esm/tl/1_tl_writer.d.ts +1 -1
  233. package/esm/tl/1_tl_writer.d.ts.map +1 -1
  234. package/esm/tl/1_tl_writer.js +155 -164
  235. package/esm/tl/1_tl_writer_test.d.ts.map +1 -1
  236. package/esm/tl/1_utilities.d.ts +1 -1
  237. package/esm/tl/1_utilities.d.ts.map +1 -1
  238. package/esm/tl/1_utilities.js +2 -2
  239. package/esm/tl/2_message.js +1 -1
  240. package/esm/tl/2_mtproto.d.ts +1 -1
  241. package/esm/tl/2_mtproto.d.ts.map +1 -1
  242. package/esm/tl/2_telegram.d.ts +1 -1
  243. package/esm/tl/2_telegram.d.ts.map +1 -1
  244. package/esm/transport/0_obfuscation.d.ts +1 -1
  245. package/esm/transport/0_obfuscation.d.ts.map +1 -1
  246. package/esm/transport/0_obfuscation.js +2 -2
  247. package/esm/transport/0_transport.d.ts +1 -1
  248. package/esm/transport/0_transport.d.ts.map +1 -1
  249. package/esm/transport/0_transport.js +1 -8
  250. package/esm/transport/1_transport_abridged.d.ts +1 -1
  251. package/esm/transport/1_transport_abridged.d.ts.map +1 -1
  252. package/esm/transport/1_transport_abridged.js +11 -24
  253. package/esm/transport/1_transport_intermediate.d.ts +1 -1
  254. package/esm/transport/1_transport_intermediate.d.ts.map +1 -1
  255. package/esm/transport/1_transport_intermediate.js +10 -23
  256. package/esm/transport/1_transport_provider.d.ts +2 -2
  257. package/esm/transport/1_transport_provider.d.ts.map +1 -1
  258. package/esm/transport/2_transport_provider_tcp.d.ts +1 -1
  259. package/esm/transport/2_transport_provider_tcp.d.ts.map +1 -1
  260. package/esm/transport/2_transport_provider_web_socket.d.ts +1 -1
  261. package/esm/transport/2_transport_provider_web_socket.d.ts.map +1 -1
  262. package/esm/transport/2_transport_provider_web_socket.js +1 -1
  263. package/esm/types/0_birthday.d.ts +1 -1
  264. package/esm/types/0_birthday.d.ts.map +1 -1
  265. package/esm/types/0_callback_query_answer.d.ts +1 -1
  266. package/esm/types/0_callback_query_answer.d.ts.map +1 -1
  267. package/esm/types/0_callback_query_question.js +2 -2
  268. package/esm/types/0_chat_administrator_rights.d.ts +1 -1
  269. package/esm/types/0_chat_administrator_rights.d.ts.map +1 -1
  270. package/esm/types/0_chat_member_rights.d.ts +1 -1
  271. package/esm/types/0_chat_member_rights.d.ts.map +1 -1
  272. package/esm/types/0_contact.d.ts +1 -1
  273. package/esm/types/0_contact.d.ts.map +1 -1
  274. package/esm/types/0_dice.d.ts +1 -1
  275. package/esm/types/0_dice.d.ts.map +1 -1
  276. package/esm/types/0_failed_invitation.d.ts +1 -1
  277. package/esm/types/0_failed_invitation.d.ts.map +1 -1
  278. package/esm/types/0_invoice.d.ts +1 -1
  279. package/esm/types/0_invoice.d.ts.map +1 -1
  280. package/esm/types/0_live_stream_channel.d.ts +1 -1
  281. package/esm/types/0_live_stream_channel.d.ts.map +1 -1
  282. package/esm/types/0_mask_position.d.ts +1 -1
  283. package/esm/types/0_mask_position.d.ts.map +1 -1
  284. package/esm/types/0_mask_position.js +1 -1
  285. package/esm/types/0_message_entity.d.ts +1 -1
  286. package/esm/types/0_message_entity.d.ts.map +1 -1
  287. package/esm/types/0_message_entity.js +1 -1
  288. package/esm/types/0_message_search_filter.d.ts +1 -1
  289. package/esm/types/0_message_search_filter.d.ts.map +1 -1
  290. package/esm/types/0_opening_hours.d.ts +1 -1
  291. package/esm/types/0_opening_hours.d.ts.map +1 -1
  292. package/esm/types/0_reaction.js +5 -5
  293. package/esm/types/0_refunded_payment.d.ts +1 -1
  294. package/esm/types/0_refunded_payment.d.ts.map +1 -1
  295. package/esm/types/0_restriction_reason.d.ts +1 -1
  296. package/esm/types/0_restriction_reason.d.ts.map +1 -1
  297. package/esm/types/0_self_destruct_option.js +3 -3
  298. package/esm/types/0_shipping_address.d.ts +1 -1
  299. package/esm/types/0_shipping_address.d.ts.map +1 -1
  300. package/esm/types/0_slow_mode_duration.js +2 -2
  301. package/esm/types/0_upload_progress.d.ts +29 -0
  302. package/esm/types/0_upload_progress.d.ts.map +1 -0
  303. package/esm/types/0_upload_progress.js +20 -0
  304. package/esm/types/0_voice.d.ts +1 -1
  305. package/esm/types/0_voice.d.ts.map +1 -1
  306. package/esm/types/0_voice_transcription.d.ts +1 -1
  307. package/esm/types/0_voice_transcription.d.ts.map +1 -1
  308. package/esm/types/1_animation.d.ts +1 -1
  309. package/esm/types/1_animation.d.ts.map +1 -1
  310. package/esm/types/1_audio.d.ts +1 -1
  311. package/esm/types/1_audio.d.ts.map +1 -1
  312. package/esm/types/1_bot_command_scope.d.ts +2 -2
  313. package/esm/types/1_bot_command_scope.d.ts.map +1 -1
  314. package/esm/types/1_chat_p.d.ts +2 -2
  315. package/esm/types/1_chat_p.d.ts.map +1 -1
  316. package/esm/types/1_chat_p.js +2 -2
  317. package/esm/types/1_document.d.ts +1 -1
  318. package/esm/types/1_document.d.ts.map +1 -1
  319. package/esm/types/1_giveaway.d.ts +2 -2
  320. package/esm/types/1_giveaway.d.ts.map +1 -1
  321. package/esm/types/1_inline_keyboard_button.d.ts +3 -3
  322. package/esm/types/1_inline_keyboard_button.d.ts.map +1 -1
  323. package/esm/types/1_inline_keyboard_button.js +4 -4
  324. package/esm/types/1_inline_query_result_button.d.ts +1 -1
  325. package/esm/types/1_inline_query_result_button.d.ts.map +1 -1
  326. package/esm/types/1_input_media.d.ts +4 -4
  327. package/esm/types/1_input_media.d.ts.map +1 -1
  328. package/esm/types/1_input_story_content.d.ts +1 -1
  329. package/esm/types/1_input_story_content.d.ts.map +1 -1
  330. package/esm/types/1_keyboard_button.d.ts +3 -3
  331. package/esm/types/1_keyboard_button.d.ts.map +1 -1
  332. package/esm/types/1_keyboard_button.js +1 -1
  333. package/esm/types/1_message_reaction.d.ts +1 -1
  334. package/esm/types/1_message_reaction.d.ts.map +1 -1
  335. package/esm/types/1_message_reaction.js +2 -2
  336. package/esm/types/1_mini_app_info.d.ts +2 -2
  337. package/esm/types/1_mini_app_info.d.ts.map +1 -1
  338. package/esm/types/1_network_statistics.d.ts +1 -1
  339. package/esm/types/1_network_statistics.d.ts.map +1 -1
  340. package/esm/types/1_order_info.d.ts +2 -2
  341. package/esm/types/1_order_info.d.ts.map +1 -1
  342. package/esm/types/1_photo.d.ts +1 -1
  343. package/esm/types/1_photo.d.ts.map +1 -1
  344. package/esm/types/1_poll_option.d.ts +2 -2
  345. package/esm/types/1_poll_option.d.ts.map +1 -1
  346. package/esm/types/1_poll_option.js +2 -2
  347. package/esm/types/1_reaction_count.d.ts +2 -2
  348. package/esm/types/1_reaction_count.d.ts.map +1 -1
  349. package/esm/types/1_reply_quote.d.ts +2 -2
  350. package/esm/types/1_reply_quote.d.ts.map +1 -1
  351. package/esm/types/1_sticker.d.ts +4 -4
  352. package/esm/types/1_sticker.d.ts.map +1 -1
  353. package/esm/types/1_sticker.js +2 -2
  354. package/esm/types/1_story_privacy.d.ts +1 -1
  355. package/esm/types/1_story_privacy.d.ts.map +1 -1
  356. package/esm/types/1_story_reaction.d.ts +2 -2
  357. package/esm/types/1_story_reaction.d.ts.map +1 -1
  358. package/esm/types/1_user.d.ts +2 -2
  359. package/esm/types/1_user.d.ts.map +1 -1
  360. package/esm/types/1_user.js +1 -1
  361. package/esm/types/1_venue.d.ts +1 -1
  362. package/esm/types/1_venue.d.ts.map +1 -1
  363. package/esm/types/1_video.d.ts +1 -1
  364. package/esm/types/1_video.d.ts.map +1 -1
  365. package/esm/types/1_video_note.d.ts +1 -1
  366. package/esm/types/1_video_note.d.ts.map +1 -1
  367. package/esm/types/2_business_connection.d.ts +3 -3
  368. package/esm/types/2_business_connection.d.ts.map +1 -1
  369. package/esm/types/2_chat.d.ts +6 -6
  370. package/esm/types/2_chat.d.ts.map +1 -1
  371. package/esm/types/2_chat.js +3 -3
  372. package/esm/types/2_chat_member.d.ts +4 -4
  373. package/esm/types/2_chat_member.d.ts.map +1 -1
  374. package/esm/types/2_chat_member.js +1 -1
  375. package/esm/types/2_chat_settings.d.ts +1 -1
  376. package/esm/types/2_chat_settings.d.ts.map +1 -1
  377. package/esm/types/2_chat_settings.js +1 -1
  378. package/esm/types/2_chosen_inline_result.d.ts +3 -3
  379. package/esm/types/2_chosen_inline_result.d.ts.map +1 -1
  380. package/esm/types/2_forward_header.d.ts +4 -4
  381. package/esm/types/2_forward_header.d.ts.map +1 -1
  382. package/esm/types/2_forward_header.js +6 -6
  383. package/esm/types/2_game.d.ts +3 -3
  384. package/esm/types/2_game.d.ts.map +1 -1
  385. package/esm/types/2_gift_upgraded_component.d.ts +2 -2
  386. package/esm/types/2_gift_upgraded_component.d.ts.map +1 -1
  387. package/esm/types/2_inactive_chat.d.ts +1 -1
  388. package/esm/types/2_inactive_chat.d.ts.map +1 -1
  389. package/esm/types/2_inline_query.d.ts +3 -3
  390. package/esm/types/2_inline_query.d.ts.map +1 -1
  391. package/esm/types/2_inline_query.js +1 -1
  392. package/esm/types/2_invite_link.d.ts +3 -3
  393. package/esm/types/2_invite_link.d.ts.map +1 -1
  394. package/esm/types/2_message_interactions.d.ts +1 -1
  395. package/esm/types/2_message_interactions.d.ts.map +1 -1
  396. package/esm/types/2_message_reaction_count.d.ts +4 -4
  397. package/esm/types/2_message_reaction_count.d.ts.map +1 -1
  398. package/esm/types/2_message_reactions.d.ts +4 -4
  399. package/esm/types/2_message_reactions.d.ts.map +1 -1
  400. package/esm/types/2_poll.d.ts +3 -3
  401. package/esm/types/2_poll.d.ts.map +1 -1
  402. package/esm/types/2_poll.js +3 -3
  403. package/esm/types/2_poll_answer.d.ts +22 -3
  404. package/esm/types/2_poll_answer.d.ts.map +1 -1
  405. package/esm/types/2_poll_answer.js +19 -0
  406. package/esm/types/2_pre_checkout_query.d.ts +4 -4
  407. package/esm/types/2_pre_checkout_query.d.ts.map +1 -1
  408. package/esm/types/2_reply_markup.d.ts +3 -3
  409. package/esm/types/2_reply_markup.d.ts.map +1 -1
  410. package/esm/types/2_reply_to.d.ts +2 -2
  411. package/esm/types/2_reply_to.d.ts.map +1 -1
  412. package/esm/types/2_sticker_set.d.ts +51 -0
  413. package/esm/types/2_sticker_set.d.ts.map +1 -0
  414. package/esm/types/2_sticker_set.js +91 -0
  415. package/esm/types/2_story_content.d.ts +2 -2
  416. package/esm/types/2_story_content.d.ts.map +1 -1
  417. package/esm/types/2_story_interactions.d.ts +2 -2
  418. package/esm/types/2_story_interactions.d.ts.map +1 -1
  419. package/esm/types/2_story_interactive_area.d.ts +5 -5
  420. package/esm/types/2_story_interactive_area.d.ts.map +1 -1
  421. package/esm/types/2_successful_payment.d.ts +2 -2
  422. package/esm/types/2_successful_payment.d.ts.map +1 -1
  423. package/esm/types/3_chat_member_updated.d.ts +5 -5
  424. package/esm/types/3_chat_member_updated.d.ts.map +1 -1
  425. package/esm/types/3_gift.d.ts +4 -4
  426. package/esm/types/3_gift.d.ts.map +1 -1
  427. package/esm/types/3_join_request.d.ts +4 -4
  428. package/esm/types/3_join_request.d.ts.map +1 -1
  429. package/esm/types/3_story.d.ts +8 -8
  430. package/esm/types/3_story.d.ts.map +1 -1
  431. package/esm/types/4_claimed_gift.d.ts +4 -4
  432. package/esm/types/4_claimed_gift.d.ts.map +1 -1
  433. package/esm/types/4_link_preview.d.ts +5 -5
  434. package/esm/types/4_link_preview.d.ts.map +1 -1
  435. package/esm/types/5_claimed_gifts.d.ts +2 -2
  436. package/esm/types/5_claimed_gifts.d.ts.map +1 -1
  437. package/esm/types/5_claimed_gifts.js +3 -3
  438. package/esm/types/5_message.d.ts +29 -29
  439. package/esm/types/5_message.d.ts.map +1 -1
  440. package/esm/types/5_message.js +8 -8
  441. package/esm/types/5_message_content.d.ts +4 -4
  442. package/esm/types/5_message_content.d.ts.map +1 -1
  443. package/esm/types/6_callback_query.d.ts +3 -3
  444. package/esm/types/6_callback_query.d.ts.map +1 -1
  445. package/esm/types/6_callback_query.js +2 -2
  446. package/esm/types/6_chat_list_item.d.ts +4 -4
  447. package/esm/types/6_chat_list_item.d.ts.map +1 -1
  448. package/esm/types/6_chat_list_item.js +6 -6
  449. package/esm/types/6_inline_query_result.d.ts +6 -6
  450. package/esm/types/6_inline_query_result.d.ts.map +1 -1
  451. package/esm/types/6_inline_query_result.js +16 -16
  452. package/esm/types/6_saved_chat.d.ts +36 -0
  453. package/esm/types/6_saved_chat.d.ts.map +1 -0
  454. package/esm/types/6_saved_chat.js +43 -0
  455. package/esm/types/6_topic.d.ts +2 -2
  456. package/esm/types/6_topic.d.ts.map +1 -1
  457. package/esm/types/6_topic.js +1 -1
  458. package/esm/types/7_inline_query_answer.d.ts +2 -2
  459. package/esm/types/7_inline_query_answer.d.ts.map +1 -1
  460. package/esm/types/7_saved_chats.d.ts +33 -0
  461. package/esm/types/7_saved_chats.d.ts.map +1 -0
  462. package/esm/types/7_saved_chats.js +36 -0
  463. package/esm/types/7_update.d.ts +44 -25
  464. package/esm/types/7_update.d.ts.map +1 -1
  465. package/esm/types/_file_id.d.ts +60 -49
  466. package/esm/types/_file_id.d.ts.map +1 -1
  467. package/esm/types/_file_id.js +92 -73
  468. package/esm/types/_getters.d.ts +3 -3
  469. package/esm/types/_getters.d.ts.map +1 -1
  470. package/esm/utilities/0_bigint.js +5 -5
  471. package/esm/utilities/0_bigint_test.d.ts.map +1 -1
  472. package/esm/utilities/0_buffer.d.ts +1 -1
  473. package/esm/utilities/0_buffer.d.ts.map +1 -1
  474. package/esm/utilities/0_buffer.js +3 -3
  475. package/esm/utilities/0_buffer_test.d.ts.map +1 -1
  476. package/esm/utilities/0_env.js +1 -1
  477. package/esm/utilities/0_hash.d.ts +2 -2
  478. package/esm/utilities/0_hash.d.ts.map +1 -1
  479. package/esm/utilities/0_misc.d.ts.map +1 -1
  480. package/esm/utilities/0_misc.js +4 -3
  481. package/esm/utilities/0_mutex.js +4 -19
  482. package/esm/utilities/0_part_stream.js +11 -25
  483. package/esm/utilities/0_part_stream_test.d.ts.map +1 -1
  484. package/esm/utilities/0_rle.d.ts +2 -2
  485. package/esm/utilities/0_rle.d.ts.map +1 -1
  486. package/esm/utilities/0_rle.js +1 -1
  487. package/esm/utilities/0_rle_test.d.ts.map +1 -1
  488. package/esm/utilities/0_text.d.ts +20 -1
  489. package/esm/utilities/0_text.d.ts.map +1 -1
  490. package/esm/utilities/0_text.js +19 -0
  491. package/esm/utilities/1_auth.d.ts +1 -1
  492. package/esm/utilities/1_auth.d.ts.map +1 -1
  493. package/esm/utilities/1_auth.js +1 -1
  494. package/esm/utilities/1_base64.d.ts +1 -1
  495. package/esm/utilities/1_base64.d.ts.map +1 -1
  496. package/esm/utilities/1_base64.js +1 -1
  497. package/esm/utilities/1_base64_test.d.ts.map +1 -1
  498. package/esm/utilities/1_crypto.js +42 -53
  499. package/esm/utilities/1_crypto_test.d.ts.map +1 -1
  500. package/esm/utilities/1_logger.d.ts +2 -2
  501. package/esm/utilities/1_logger.js +2 -2
  502. package/esm/utilities/1_math.js +2 -2
  503. package/esm/utilities/1_math_test.d.ts.map +1 -1
  504. package/esm/utilities/2_queue.js +29 -47
  505. package/package.json +1 -1
  506. package/script/0_deps.d.ts +12 -12
  507. package/script/0_deps.js +14 -14
  508. package/script/0_errors.js +2 -6
  509. package/script/2_tl.js +17 -7
  510. package/script/3_errors.js +2 -12
  511. package/script/3_types.d.ts +4 -0
  512. package/script/3_types.d.ts.map +1 -1
  513. package/script/3_types.js +4 -0
  514. package/script/4_constants.d.ts +1 -1
  515. package/script/4_constants.d.ts.map +1 -1
  516. package/script/4_constants.js +17 -7
  517. package/script/4_errors.d.ts +2 -2
  518. package/script/4_errors.d.ts.map +1 -1
  519. package/script/4_errors.js +2 -12
  520. package/script/_dnt.polyfills.d.ts +99 -0
  521. package/script/_dnt.polyfills.d.ts.map +1 -1
  522. package/script/_dnt.polyfills.js +128 -0
  523. package/script/_dnt.test_polyfills.d.ts.map +1 -0
  524. package/script/client/0_client_abstract.d.ts +3 -3
  525. package/script/client/0_client_abstract.d.ts.map +1 -1
  526. package/script/client/0_filters.d.ts +1 -1
  527. package/script/client/0_filters.d.ts.map +1 -1
  528. package/script/client/0_filters.js +3 -3
  529. package/script/client/0_filters_test.d.ts.map +1 -1
  530. package/script/client/0_html.d.ts +1 -1
  531. package/script/client/0_html.d.ts.map +1 -1
  532. package/script/client/0_html.js +1 -1
  533. package/script/client/0_markdown.d.ts +1 -1
  534. package/script/client/0_markdown.d.ts.map +1 -1
  535. package/script/client/0_markdown.js +8 -8
  536. package/script/client/0_markdown_test.d.ts.map +1 -1
  537. package/script/client/0_params.d.ts +44 -8
  538. package/script/client/0_params.d.ts.map +1 -1
  539. package/script/client/0_password.d.ts +5 -5
  540. package/script/client/0_password.d.ts.map +1 -1
  541. package/script/client/0_password.js +18 -8
  542. package/script/client/0_password_test.d.ts.map +1 -1
  543. package/script/client/0_storage_operations.d.ts +4 -4
  544. package/script/client/0_storage_operations.d.ts.map +1 -1
  545. package/script/client/0_storage_operations.js +159 -171
  546. package/script/client/0_storage_operations_test.d.ts.map +1 -1
  547. package/script/client/0_update_processor.d.ts +2 -2
  548. package/script/client/0_update_processor.d.ts.map +1 -1
  549. package/script/client/0_utilities.d.ts +1 -1
  550. package/script/client/0_utilities.js +8 -8
  551. package/script/client/0_utilities_test.d.ts.map +1 -1
  552. package/script/client/1_client_plain.d.ts +3 -3
  553. package/script/client/1_client_plain.d.ts.map +1 -1
  554. package/script/client/1_client_plain.js +5 -23
  555. package/script/client/1_composer.d.ts +3 -3
  556. package/script/client/1_composer.d.ts.map +1 -1
  557. package/script/client/1_composer.js +14 -27
  558. package/script/client/1_types.d.ts +4 -4
  559. package/script/client/1_types.d.ts.map +1 -1
  560. package/script/client/2_account_manager.d.ts +3 -3
  561. package/script/client/2_account_manager.d.ts.map +1 -1
  562. package/script/client/2_account_manager.js +86 -98
  563. package/script/client/2_bot_info_manager.d.ts +3 -3
  564. package/script/client/2_bot_info_manager.d.ts.map +1 -1
  565. package/script/client/2_bot_info_manager.js +26 -38
  566. package/script/client/2_business_connection_manager.d.ts +3 -3
  567. package/script/client/2_business_connection_manager.d.ts.map +1 -1
  568. package/script/client/2_business_connection_manager.js +10 -23
  569. package/script/client/2_client_encrypted.d.ts +2 -2
  570. package/script/client/2_client_encrypted.d.ts.map +1 -1
  571. package/script/client/2_client_encrypted.js +195 -212
  572. package/script/client/2_file_manager.d.ts +7 -6
  573. package/script/client/2_file_manager.d.ts.map +1 -1
  574. package/script/client/2_file_manager.js +320 -252
  575. package/script/client/2_file_manager_test.d.ts.map +1 -1
  576. package/script/client/2_network_statistics_manager.d.ts +1 -1
  577. package/script/client/2_network_statistics_manager.d.ts.map +1 -1
  578. package/script/client/2_network_statistics_manager.js +8 -21
  579. package/script/client/2_payment_manager.d.ts +4 -4
  580. package/script/client/2_payment_manager.d.ts.map +1 -1
  581. package/script/client/2_payment_manager.js +7 -20
  582. package/script/client/2_reaction_manager.d.ts +3 -3
  583. package/script/client/2_reaction_manager.d.ts.map +1 -1
  584. package/script/client/2_reaction_manager.js +7 -20
  585. package/script/client/2_translations_manager.d.ts +4 -4
  586. package/script/client/2_translations_manager.d.ts.map +1 -1
  587. package/script/client/2_translations_manager.js +98 -108
  588. package/script/client/2_update_manager.d.ts +2 -2
  589. package/script/client/2_update_manager.d.ts.map +1 -1
  590. package/script/client/2_update_manager.js +766 -761
  591. package/script/client/3_client_encrypted_pool.d.ts +1 -1
  592. package/script/client/3_client_encrypted_pool.d.ts.map +1 -1
  593. package/script/client/3_client_encrypted_pool.js +10 -26
  594. package/script/client/3_client_encrypted_pool_test.d.ts.map +1 -1
  595. package/script/client/3_message_manager.d.ts +11 -8
  596. package/script/client/3_message_manager.d.ts.map +1 -1
  597. package/script/client/3_message_manager.js +580 -466
  598. package/script/client/3_message_manager_test.d.ts.map +1 -1
  599. package/script/client/3_video_chat_manager.d.ts +6 -6
  600. package/script/client/3_video_chat_manager.d.ts.map +1 -1
  601. package/script/client/3_video_chat_manager.js +61 -72
  602. package/script/client/4_callback_query_manager.d.ts +5 -5
  603. package/script/client/4_callback_query_manager.d.ts.map +1 -1
  604. package/script/client/4_callback_query_manager.js +18 -30
  605. package/script/client/4_chat_list_manager.d.ts +6 -6
  606. package/script/client/4_chat_list_manager.d.ts.map +1 -1
  607. package/script/client/4_chat_list_manager.js +328 -324
  608. package/script/client/4_chat_manager.d.ts +7 -7
  609. package/script/client/4_chat_manager.d.ts.map +1 -1
  610. package/script/client/4_chat_manager.js +120 -133
  611. package/script/client/4_forum_manager.d.ts +4 -4
  612. package/script/client/4_forum_manager.d.ts.map +1 -1
  613. package/script/client/4_forum_manager.js +67 -73
  614. package/script/client/4_gift_manager.d.ts +4 -4
  615. package/script/client/4_gift_manager.d.ts.map +1 -1
  616. package/script/client/4_gift_manager.js +17 -30
  617. package/script/client/4_inline_query_manager.d.ts +5 -5
  618. package/script/client/4_inline_query_manager.d.ts.map +1 -1
  619. package/script/client/4_inline_query_manager.js +16 -28
  620. package/script/client/4_link_preview_manager.d.ts +5 -5
  621. package/script/client/4_link_preview_manager.d.ts.map +1 -1
  622. package/script/client/4_link_preview_manager.js +6 -19
  623. package/script/client/4_poll_manager.d.ts +4 -4
  624. package/script/client/4_poll_manager.d.ts.map +1 -1
  625. package/script/client/4_poll_manager.js +44 -57
  626. package/script/client/4_story_manager.d.ts +7 -7
  627. package/script/client/4_story_manager.d.ts.map +1 -1
  628. package/script/client/4_story_manager.js +43 -55
  629. package/script/client/5_client.d.ts +34 -15
  630. package/script/client/5_client.d.ts.map +1 -1
  631. package/script/client/5_client.js +1299 -1291
  632. package/script/connection/0_connection.d.ts +1 -1
  633. package/script/connection/0_connection.d.ts.map +1 -1
  634. package/script/connection/1_connection_tcp.node.d.ts +1 -1
  635. package/script/connection/1_connection_tcp.node.d.ts.map +1 -1
  636. package/script/connection/1_connection_tcp.node.js +49 -66
  637. package/script/connection/1_connection_web_socket.d.ts +1 -1
  638. package/script/connection/1_connection_web_socket.d.ts.map +1 -1
  639. package/script/connection/1_connection_web_socket.js +92 -98
  640. package/script/deps/jsr.io/@roj/tgcrypto/1.0.1/dist/tgcrypto.js +3 -11
  641. package/{esm/deps/jsr.io/@std/assert/1.0.13 → script/deps/jsr.io/@std/assert/1.0.14}/assert.d.ts.map +1 -1
  642. package/script/deps/jsr.io/@std/assert/1.0.14/assertion_error.d.ts +26 -0
  643. package/script/deps/jsr.io/@std/assert/1.0.14/assertion_error.d.ts.map +1 -0
  644. package/script/deps/jsr.io/@std/assert/1.0.14/assertion_error.js +34 -0
  645. package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equal.d.ts.map +1 -1
  646. package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equal.js +17 -7
  647. package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equals.d.ts.map +1 -1
  648. package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/false.d.ts.map +1 -1
  649. package/script/deps/jsr.io/@std/assert/1.0.14/unreachable.d.ts +15 -0
  650. package/script/deps/jsr.io/@std/assert/1.0.14/unreachable.d.ts.map +1 -0
  651. package/script/deps/jsr.io/@std/assert/1.0.14/unreachable.js +23 -0
  652. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/_util.d.ts.map +1 -1
  653. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/abortable.d.ts.map +1 -1
  654. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/deadline.d.ts.map +1 -1
  655. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/debounce.d.ts.map +1 -1
  656. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/delay.d.ts.map +1 -1
  657. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/delay.js +34 -9
  658. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mod.d.ts.map +1 -1
  659. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mux_async_iterator.d.ts.map +1 -1
  660. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mux_async_iterator.js +31 -47
  661. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/pool.d.ts.map +1 -1
  662. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/retry.d.ts.map +1 -1
  663. package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/tee.d.ts.map +1 -1
  664. package/script/deps/jsr.io/@std/async/1.0.14/tee.js +82 -0
  665. package/script/deps/jsr.io/@std/datetime/0.225.5/_date_time_formatter.js +4 -17
  666. package/script/deps/jsr.io/@std/internal/1.0.10/_os.d.ts +2 -0
  667. package/script/deps/jsr.io/@std/internal/1.0.10/_os.d.ts.map +1 -0
  668. package/script/deps/jsr.io/@std/internal/1.0.10/_os.js +48 -0
  669. package/script/deps/jsr.io/@std/internal/1.0.10/format.js +17 -7
  670. package/script/deps/jsr.io/@std/internal/1.0.10/os.d.ts +3 -0
  671. package/script/deps/jsr.io/@std/internal/1.0.10/os.d.ts.map +1 -0
  672. package/script/deps/jsr.io/@std/internal/1.0.10/os.js +8 -0
  673. package/script/deps/jsr.io/@std/internal/1.0.10/styles.js +17 -7
  674. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/assert_path.d.ts.map +1 -1
  675. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/basename.d.ts.map +1 -1
  676. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/constants.d.ts.map +1 -1
  677. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/from_file_url.d.ts.map +1 -1
  678. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize.d.ts.map +1 -1
  679. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize_string.d.ts.map +1 -1
  680. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/strip_trailing_separators.d.ts.map +1 -1
  681. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/to_file_url.d.ts.map +1 -1
  682. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/basename.d.ts.map +1 -1
  683. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/basename.js +2 -2
  684. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/extname.d.ts.map +1 -1
  685. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/extname.js +2 -2
  686. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/is_absolute.d.ts.map +1 -1
  687. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/is_absolute.js +2 -2
  688. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/join.d.ts.map +1 -1
  689. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/join.js +2 -2
  690. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/_util.d.ts.map +1 -1
  691. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/posix/basename.d.ts.map +1 -1
  692. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/posix/extname.d.ts.map +1 -1
  693. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/from_file_url.d.ts.map +1 -1
  694. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/is_absolute.d.ts.map +1 -1
  695. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/posix/join.d.ts.map +1 -1
  696. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/posix/normalize.d.ts.map +1 -1
  697. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/posix/to_file_url.d.ts.map +1 -1
  698. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/to_file_url.d.ts.map +1 -1
  699. package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/to_file_url.js +2 -2
  700. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/_util.d.ts.map +1 -1
  701. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/basename.d.ts.map +1 -1
  702. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/extname.d.ts.map +1 -1
  703. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/from_file_url.d.ts.map +1 -1
  704. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/is_absolute.d.ts.map +1 -1
  705. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/join.d.ts.map +1 -1
  706. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/normalize.d.ts.map +1 -1
  707. package/{esm/deps/jsr.io/@std/path/1.1.0 → script/deps/jsr.io/@std/path/1.1.2}/windows/to_file_url.d.ts.map +1 -1
  708. package/script/deps/jsr.io/@std/streams/{1.0.10 → 1.0.11}/to_array_buffer.d.ts.map +1 -1
  709. package/script/mod.js +19 -19
  710. package/script/session/0_session_state.js +12 -38
  711. package/script/session/1_session.d.ts +2 -2
  712. package/script/session/1_session.d.ts.map +1 -1
  713. package/script/session/1_session.js +66 -79
  714. package/script/session/2_session_encrypted.d.ts +2 -2
  715. package/script/session/2_session_encrypted.d.ts.map +1 -1
  716. package/script/session/2_session_encrypted.js +325 -321
  717. package/script/session/2_session_plain.js +1 -1
  718. package/script/storage/0_storage.d.ts +1 -1
  719. package/script/storage/0_storage.d.ts.map +1 -1
  720. package/script/storage/1_utilities.d.ts +14 -11
  721. package/script/storage/1_utilities.d.ts.map +1 -1
  722. package/script/storage/1_utilities.js +39 -39
  723. package/script/storage/1_utilities_test.d.ts.map +1 -1
  724. package/script/storage/2_storage_indexed_db.d.ts +1 -1
  725. package/script/storage/2_storage_indexed_db.d.ts.map +1 -1
  726. package/script/storage/2_storage_indexed_db.js +29 -47
  727. package/script/storage/2_storage_local_storage.node.d.ts +1 -1
  728. package/script/storage/2_storage_local_storage.node.d.ts.map +1 -1
  729. package/script/storage/2_storage_local_storage.node.js +15 -28
  730. package/script/storage/2_storage_memory.d.ts +2 -2
  731. package/script/storage/2_storage_memory.d.ts.map +1 -1
  732. package/script/storage/2_storage_memory.js +26 -43
  733. package/script/storage/2_storage_session_storage.d.ts +2 -2
  734. package/script/storage/2_storage_session_storage.d.ts.map +1 -1
  735. package/script/storage/2_storage_session_storage.js +6 -19
  736. package/script/tl/0_utilities.js +1 -1
  737. package/script/tl/0_utilities_test.d.ts.map +1 -1
  738. package/script/tl/1_tl_reader.d.ts +1 -1
  739. package/script/tl/1_tl_reader.d.ts.map +1 -1
  740. package/script/tl/1_tl_reader.js +83 -91
  741. package/script/tl/1_tl_reader_test.d.ts.map +1 -1
  742. package/script/tl/1_tl_writer.d.ts +1 -1
  743. package/script/tl/1_tl_writer.d.ts.map +1 -1
  744. package/script/tl/1_tl_writer.js +156 -165
  745. package/script/tl/1_tl_writer_test.d.ts.map +1 -1
  746. package/script/tl/1_utilities.d.ts +1 -1
  747. package/script/tl/1_utilities.d.ts.map +1 -1
  748. package/script/tl/1_utilities.js +2 -2
  749. package/script/tl/2_message.js +1 -1
  750. package/script/tl/2_mtproto.d.ts +1 -1
  751. package/script/tl/2_mtproto.d.ts.map +1 -1
  752. package/script/tl/2_telegram.d.ts +1 -1
  753. package/script/tl/2_telegram.d.ts.map +1 -1
  754. package/script/tl/2_telegram.js +17 -7
  755. package/script/transport/0_obfuscation.d.ts +1 -1
  756. package/script/transport/0_obfuscation.d.ts.map +1 -1
  757. package/script/transport/0_obfuscation.js +19 -9
  758. package/script/transport/0_transport.d.ts +1 -1
  759. package/script/transport/0_transport.d.ts.map +1 -1
  760. package/script/transport/0_transport.js +1 -8
  761. package/script/transport/1_transport_abridged.d.ts +1 -1
  762. package/script/transport/1_transport_abridged.d.ts.map +1 -1
  763. package/script/transport/1_transport_abridged.js +11 -24
  764. package/script/transport/1_transport_intermediate.d.ts +1 -1
  765. package/script/transport/1_transport_intermediate.d.ts.map +1 -1
  766. package/script/transport/1_transport_intermediate.js +10 -23
  767. package/script/transport/1_transport_provider.d.ts +2 -2
  768. package/script/transport/1_transport_provider.d.ts.map +1 -1
  769. package/script/transport/2_transport_provider_tcp.d.ts +1 -1
  770. package/script/transport/2_transport_provider_tcp.d.ts.map +1 -1
  771. package/script/transport/2_transport_provider_web_socket.d.ts +1 -1
  772. package/script/transport/2_transport_provider_web_socket.d.ts.map +1 -1
  773. package/script/transport/2_transport_provider_web_socket.js +1 -1
  774. package/script/types/0_birthday.d.ts +1 -1
  775. package/script/types/0_birthday.d.ts.map +1 -1
  776. package/script/types/0_callback_query_answer.d.ts +1 -1
  777. package/script/types/0_callback_query_answer.d.ts.map +1 -1
  778. package/script/types/0_callback_query_question.js +2 -2
  779. package/script/types/0_chat_administrator_rights.d.ts +1 -1
  780. package/script/types/0_chat_administrator_rights.d.ts.map +1 -1
  781. package/script/types/0_chat_member_rights.d.ts +1 -1
  782. package/script/types/0_chat_member_rights.d.ts.map +1 -1
  783. package/script/types/0_contact.d.ts +1 -1
  784. package/script/types/0_contact.d.ts.map +1 -1
  785. package/script/types/0_dice.d.ts +1 -1
  786. package/script/types/0_dice.d.ts.map +1 -1
  787. package/script/types/0_failed_invitation.d.ts +1 -1
  788. package/script/types/0_failed_invitation.d.ts.map +1 -1
  789. package/script/types/0_invoice.d.ts +1 -1
  790. package/script/types/0_invoice.d.ts.map +1 -1
  791. package/script/types/0_live_stream_channel.d.ts +1 -1
  792. package/script/types/0_live_stream_channel.d.ts.map +1 -1
  793. package/script/types/0_mask_position.d.ts +1 -1
  794. package/script/types/0_mask_position.d.ts.map +1 -1
  795. package/script/types/0_mask_position.js +1 -1
  796. package/script/types/0_message_entity.d.ts +1 -1
  797. package/script/types/0_message_entity.d.ts.map +1 -1
  798. package/script/types/0_message_entity.js +1 -1
  799. package/script/types/0_message_search_filter.d.ts +1 -1
  800. package/script/types/0_message_search_filter.d.ts.map +1 -1
  801. package/script/types/0_opening_hours.d.ts +1 -1
  802. package/script/types/0_opening_hours.d.ts.map +1 -1
  803. package/script/types/0_reaction.js +5 -5
  804. package/script/types/0_refunded_payment.d.ts +1 -1
  805. package/script/types/0_refunded_payment.d.ts.map +1 -1
  806. package/script/types/0_restriction_reason.d.ts +1 -1
  807. package/script/types/0_restriction_reason.d.ts.map +1 -1
  808. package/script/types/0_self_destruct_option.js +3 -3
  809. package/script/types/0_shipping_address.d.ts +1 -1
  810. package/script/types/0_shipping_address.d.ts.map +1 -1
  811. package/script/types/0_slow_mode_duration.js +2 -2
  812. package/script/types/0_upload_progress.d.ts +29 -0
  813. package/script/types/0_upload_progress.d.ts.map +1 -0
  814. package/script/types/0_upload_progress.js +21 -0
  815. package/script/types/0_voice.d.ts +1 -1
  816. package/script/types/0_voice.d.ts.map +1 -1
  817. package/script/types/0_voice_transcription.d.ts +1 -1
  818. package/script/types/0_voice_transcription.d.ts.map +1 -1
  819. package/script/types/1_animation.d.ts +1 -1
  820. package/script/types/1_animation.d.ts.map +1 -1
  821. package/script/types/1_audio.d.ts +1 -1
  822. package/script/types/1_audio.d.ts.map +1 -1
  823. package/script/types/1_bot_command_scope.d.ts +2 -2
  824. package/script/types/1_bot_command_scope.d.ts.map +1 -1
  825. package/script/types/1_chat_p.d.ts +2 -2
  826. package/script/types/1_chat_p.d.ts.map +1 -1
  827. package/script/types/1_chat_p.js +2 -2
  828. package/script/types/1_document.d.ts +1 -1
  829. package/script/types/1_document.d.ts.map +1 -1
  830. package/script/types/1_giveaway.d.ts +2 -2
  831. package/script/types/1_giveaway.d.ts.map +1 -1
  832. package/script/types/1_inline_keyboard_button.d.ts +3 -3
  833. package/script/types/1_inline_keyboard_button.d.ts.map +1 -1
  834. package/script/types/1_inline_keyboard_button.js +4 -4
  835. package/script/types/1_inline_query_result_button.d.ts +1 -1
  836. package/script/types/1_inline_query_result_button.d.ts.map +1 -1
  837. package/script/types/1_input_media.d.ts +4 -4
  838. package/script/types/1_input_media.d.ts.map +1 -1
  839. package/script/types/1_input_story_content.d.ts +1 -1
  840. package/script/types/1_input_story_content.d.ts.map +1 -1
  841. package/script/types/1_keyboard_button.d.ts +3 -3
  842. package/script/types/1_keyboard_button.d.ts.map +1 -1
  843. package/script/types/1_keyboard_button.js +1 -1
  844. package/script/types/1_message_reaction.d.ts +1 -1
  845. package/script/types/1_message_reaction.d.ts.map +1 -1
  846. package/script/types/1_message_reaction.js +2 -2
  847. package/script/types/1_mini_app_info.d.ts +2 -2
  848. package/script/types/1_mini_app_info.d.ts.map +1 -1
  849. package/script/types/1_network_statistics.d.ts +1 -1
  850. package/script/types/1_network_statistics.d.ts.map +1 -1
  851. package/script/types/1_order_info.d.ts +2 -2
  852. package/script/types/1_order_info.d.ts.map +1 -1
  853. package/script/types/1_photo.d.ts +1 -1
  854. package/script/types/1_photo.d.ts.map +1 -1
  855. package/script/types/1_poll_option.d.ts +2 -2
  856. package/script/types/1_poll_option.d.ts.map +1 -1
  857. package/script/types/1_poll_option.js +2 -2
  858. package/script/types/1_reaction_count.d.ts +2 -2
  859. package/script/types/1_reaction_count.d.ts.map +1 -1
  860. package/script/types/1_reply_quote.d.ts +2 -2
  861. package/script/types/1_reply_quote.d.ts.map +1 -1
  862. package/script/types/1_sticker.d.ts +4 -4
  863. package/script/types/1_sticker.d.ts.map +1 -1
  864. package/script/types/1_sticker.js +2 -2
  865. package/script/types/1_story_privacy.d.ts +1 -1
  866. package/script/types/1_story_privacy.d.ts.map +1 -1
  867. package/script/types/1_story_reaction.d.ts +2 -2
  868. package/script/types/1_story_reaction.d.ts.map +1 -1
  869. package/script/types/1_user.d.ts +2 -2
  870. package/script/types/1_user.d.ts.map +1 -1
  871. package/script/types/1_user.js +1 -1
  872. package/script/types/1_venue.d.ts +1 -1
  873. package/script/types/1_venue.d.ts.map +1 -1
  874. package/script/types/1_video.d.ts +1 -1
  875. package/script/types/1_video.d.ts.map +1 -1
  876. package/script/types/1_video_note.d.ts +1 -1
  877. package/script/types/1_video_note.d.ts.map +1 -1
  878. package/script/types/2_business_connection.d.ts +3 -3
  879. package/script/types/2_business_connection.d.ts.map +1 -1
  880. package/script/types/2_chat.d.ts +6 -6
  881. package/script/types/2_chat.d.ts.map +1 -1
  882. package/script/types/2_chat.js +3 -3
  883. package/script/types/2_chat_member.d.ts +4 -4
  884. package/script/types/2_chat_member.d.ts.map +1 -1
  885. package/script/types/2_chat_member.js +1 -1
  886. package/script/types/2_chat_settings.d.ts +1 -1
  887. package/script/types/2_chat_settings.d.ts.map +1 -1
  888. package/script/types/2_chat_settings.js +1 -1
  889. package/script/types/2_chosen_inline_result.d.ts +3 -3
  890. package/script/types/2_chosen_inline_result.d.ts.map +1 -1
  891. package/script/types/2_forward_header.d.ts +4 -4
  892. package/script/types/2_forward_header.d.ts.map +1 -1
  893. package/script/types/2_forward_header.js +6 -6
  894. package/script/types/2_game.d.ts +3 -3
  895. package/script/types/2_game.d.ts.map +1 -1
  896. package/script/types/2_gift_upgraded_component.d.ts +2 -2
  897. package/script/types/2_gift_upgraded_component.d.ts.map +1 -1
  898. package/script/types/2_inactive_chat.d.ts +1 -1
  899. package/script/types/2_inactive_chat.d.ts.map +1 -1
  900. package/script/types/2_inline_query.d.ts +3 -3
  901. package/script/types/2_inline_query.d.ts.map +1 -1
  902. package/script/types/2_inline_query.js +1 -1
  903. package/script/types/2_invite_link.d.ts +3 -3
  904. package/script/types/2_invite_link.d.ts.map +1 -1
  905. package/script/types/2_message_interactions.d.ts +1 -1
  906. package/script/types/2_message_interactions.d.ts.map +1 -1
  907. package/script/types/2_message_reaction_count.d.ts +4 -4
  908. package/script/types/2_message_reaction_count.d.ts.map +1 -1
  909. package/script/types/2_message_reactions.d.ts +4 -4
  910. package/script/types/2_message_reactions.d.ts.map +1 -1
  911. package/script/types/2_poll.d.ts +3 -3
  912. package/script/types/2_poll.d.ts.map +1 -1
  913. package/script/types/2_poll.js +3 -3
  914. package/script/types/2_poll_answer.d.ts +22 -3
  915. package/script/types/2_poll_answer.d.ts.map +1 -1
  916. package/script/types/2_poll_answer.js +19 -0
  917. package/script/types/2_pre_checkout_query.d.ts +4 -4
  918. package/script/types/2_pre_checkout_query.d.ts.map +1 -1
  919. package/script/types/2_reply_markup.d.ts +3 -3
  920. package/script/types/2_reply_markup.d.ts.map +1 -1
  921. package/script/types/2_reply_to.d.ts +2 -2
  922. package/script/types/2_reply_to.d.ts.map +1 -1
  923. package/script/types/2_sticker_set.d.ts +51 -0
  924. package/script/types/2_sticker_set.d.ts.map +1 -0
  925. package/script/types/2_sticker_set.js +94 -0
  926. package/script/types/2_story_content.d.ts +2 -2
  927. package/script/types/2_story_content.d.ts.map +1 -1
  928. package/script/types/2_story_interactions.d.ts +2 -2
  929. package/script/types/2_story_interactions.d.ts.map +1 -1
  930. package/script/types/2_story_interactive_area.d.ts +5 -5
  931. package/script/types/2_story_interactive_area.d.ts.map +1 -1
  932. package/script/types/2_successful_payment.d.ts +2 -2
  933. package/script/types/2_successful_payment.d.ts.map +1 -1
  934. package/script/types/3_chat_member_updated.d.ts +5 -5
  935. package/script/types/3_chat_member_updated.d.ts.map +1 -1
  936. package/script/types/3_gift.d.ts +4 -4
  937. package/script/types/3_gift.d.ts.map +1 -1
  938. package/script/types/3_join_request.d.ts +4 -4
  939. package/script/types/3_join_request.d.ts.map +1 -1
  940. package/script/types/3_story.d.ts +8 -8
  941. package/script/types/3_story.d.ts.map +1 -1
  942. package/script/types/4_claimed_gift.d.ts +4 -4
  943. package/script/types/4_claimed_gift.d.ts.map +1 -1
  944. package/script/types/4_link_preview.d.ts +5 -5
  945. package/script/types/4_link_preview.d.ts.map +1 -1
  946. package/script/types/5_claimed_gifts.d.ts +2 -2
  947. package/script/types/5_claimed_gifts.d.ts.map +1 -1
  948. package/script/types/5_claimed_gifts.js +3 -3
  949. package/script/types/5_message.d.ts +29 -29
  950. package/script/types/5_message.d.ts.map +1 -1
  951. package/script/types/5_message.js +8 -8
  952. package/script/types/5_message_content.d.ts +4 -4
  953. package/script/types/5_message_content.d.ts.map +1 -1
  954. package/script/types/6_callback_query.d.ts +3 -3
  955. package/script/types/6_callback_query.d.ts.map +1 -1
  956. package/script/types/6_callback_query.js +2 -2
  957. package/script/types/6_chat_list_item.d.ts +4 -4
  958. package/script/types/6_chat_list_item.d.ts.map +1 -1
  959. package/script/types/6_chat_list_item.js +6 -6
  960. package/script/types/6_inline_query_result.d.ts +6 -6
  961. package/script/types/6_inline_query_result.d.ts.map +1 -1
  962. package/script/types/6_inline_query_result.js +16 -16
  963. package/script/types/6_saved_chat.d.ts +36 -0
  964. package/script/types/6_saved_chat.d.ts.map +1 -0
  965. package/script/types/6_saved_chat.js +46 -0
  966. package/script/types/6_topic.d.ts +2 -2
  967. package/script/types/6_topic.d.ts.map +1 -1
  968. package/script/types/6_topic.js +1 -1
  969. package/script/types/7_inline_query_answer.d.ts +2 -2
  970. package/script/types/7_inline_query_answer.d.ts.map +1 -1
  971. package/script/types/7_saved_chats.d.ts +33 -0
  972. package/script/types/7_saved_chats.d.ts.map +1 -0
  973. package/script/types/7_saved_chats.js +39 -0
  974. package/script/types/7_update.d.ts +44 -25
  975. package/script/types/7_update.d.ts.map +1 -1
  976. package/script/types/_file_id.d.ts +60 -49
  977. package/script/types/_file_id.d.ts.map +1 -1
  978. package/script/types/_file_id.js +155 -136
  979. package/script/types/_getters.d.ts +3 -3
  980. package/script/types/_getters.d.ts.map +1 -1
  981. package/script/utilities/0_bigint.js +22 -12
  982. package/script/utilities/0_bigint_test.d.ts.map +1 -1
  983. package/script/utilities/0_buffer.d.ts +1 -1
  984. package/script/utilities/0_buffer.d.ts.map +1 -1
  985. package/script/utilities/0_buffer.js +3 -3
  986. package/script/utilities/0_buffer_test.d.ts.map +1 -1
  987. package/script/utilities/0_env.js +18 -8
  988. package/script/utilities/0_hash.d.ts +2 -2
  989. package/script/utilities/0_hash.d.ts.map +1 -1
  990. package/script/utilities/0_hash.js +17 -7
  991. package/script/utilities/0_misc.d.ts.map +1 -1
  992. package/script/utilities/0_misc.js +21 -10
  993. package/script/utilities/0_mutex.js +4 -19
  994. package/script/utilities/0_part_stream.js +11 -25
  995. package/script/utilities/0_part_stream_test.d.ts.map +1 -1
  996. package/script/utilities/0_rle.d.ts +2 -2
  997. package/script/utilities/0_rle.d.ts.map +1 -1
  998. package/script/utilities/0_rle.js +1 -1
  999. package/script/utilities/0_rle_test.d.ts.map +1 -1
  1000. package/script/utilities/0_text.d.ts +20 -1
  1001. package/script/utilities/0_text.d.ts.map +1 -1
  1002. package/script/utilities/0_text.js +19 -0
  1003. package/script/utilities/1_auth.d.ts +1 -1
  1004. package/script/utilities/1_auth.d.ts.map +1 -1
  1005. package/script/utilities/1_auth.js +18 -8
  1006. package/script/utilities/1_base64.d.ts +1 -1
  1007. package/script/utilities/1_base64.d.ts.map +1 -1
  1008. package/script/utilities/1_base64.js +1 -1
  1009. package/script/utilities/1_base64_test.d.ts.map +1 -1
  1010. package/script/utilities/1_crypto.js +60 -61
  1011. package/script/utilities/1_crypto_test.d.ts.map +1 -1
  1012. package/script/utilities/1_logger.d.ts +2 -2
  1013. package/script/utilities/1_logger.js +2 -2
  1014. package/script/utilities/1_math.js +2 -2
  1015. package/script/utilities/1_math_test.d.ts.map +1 -1
  1016. package/script/utilities/2_queue.js +30 -48
  1017. package/esm/deps/jsr.io/@std/async/1.0.13/tee.js +0 -102
  1018. package/esm/deps/jsr.io/@std/path/1.1.0/_os.d.ts +0 -2
  1019. package/esm/deps/jsr.io/@std/path/1.1.0/_os.d.ts.map +0 -1
  1020. package/esm/deps/jsr.io/@std/path/1.1.0/_os.js +0 -9
  1021. package/script/deps/jsr.io/@std/async/1.0.13/tee.js +0 -105
  1022. package/script/deps/jsr.io/@std/path/1.1.0/_os.d.ts +0 -2
  1023. package/script/deps/jsr.io/@std/path/1.1.0/_os.d.ts.map +0 -1
  1024. package/script/deps/jsr.io/@std/path/1.1.0/_os.js +0 -35
  1025. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/assert.d.ts +0 -0
  1026. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/assert.js +0 -0
  1027. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equal.d.ts +0 -0
  1028. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equal.js +0 -0
  1029. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equals.d.ts +0 -0
  1030. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equals.js +0 -0
  1031. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/false.d.ts +0 -0
  1032. /package/esm/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/false.js +0 -0
  1033. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/_util.d.ts +0 -0
  1034. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/_util.js +0 -0
  1035. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/abortable.d.ts +0 -0
  1036. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/abortable.js +0 -0
  1037. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/deadline.d.ts +0 -0
  1038. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/deadline.js +0 -0
  1039. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/debounce.d.ts +0 -0
  1040. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/debounce.js +0 -0
  1041. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/delay.d.ts +0 -0
  1042. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mod.d.ts +0 -0
  1043. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mod.js +0 -0
  1044. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mux_async_iterator.d.ts +0 -0
  1045. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/pool.d.ts +0 -0
  1046. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/pool.js +0 -0
  1047. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/retry.d.ts +0 -0
  1048. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/retry.js +0 -0
  1049. /package/esm/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/tee.d.ts +0 -0
  1050. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/assert_path.d.ts +0 -0
  1051. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/assert_path.js +0 -0
  1052. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/basename.d.ts +0 -0
  1053. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/basename.js +0 -0
  1054. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/constants.d.ts +0 -0
  1055. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/constants.js +0 -0
  1056. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/from_file_url.d.ts +0 -0
  1057. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/from_file_url.js +0 -0
  1058. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize.d.ts +0 -0
  1059. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize.js +0 -0
  1060. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize_string.d.ts +0 -0
  1061. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize_string.js +0 -0
  1062. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/strip_trailing_separators.d.ts +0 -0
  1063. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/strip_trailing_separators.js +0 -0
  1064. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/to_file_url.d.ts +0 -0
  1065. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/to_file_url.js +0 -0
  1066. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/basename.d.ts +0 -0
  1067. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/extname.d.ts +0 -0
  1068. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/is_absolute.d.ts +0 -0
  1069. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/join.d.ts +0 -0
  1070. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/_util.d.ts +0 -0
  1071. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/_util.js +0 -0
  1072. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/basename.d.ts +0 -0
  1073. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/basename.js +0 -0
  1074. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/extname.d.ts +0 -0
  1075. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/extname.js +0 -0
  1076. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/from_file_url.d.ts +0 -0
  1077. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/from_file_url.js +0 -0
  1078. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/is_absolute.d.ts +0 -0
  1079. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/is_absolute.js +0 -0
  1080. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/join.d.ts +0 -0
  1081. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/join.js +0 -0
  1082. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/normalize.d.ts +0 -0
  1083. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/normalize.js +0 -0
  1084. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/to_file_url.d.ts +0 -0
  1085. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/to_file_url.js +0 -0
  1086. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/to_file_url.d.ts +0 -0
  1087. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/_util.d.ts +0 -0
  1088. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/_util.js +0 -0
  1089. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/basename.d.ts +0 -0
  1090. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/basename.js +0 -0
  1091. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/extname.d.ts +0 -0
  1092. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/extname.js +0 -0
  1093. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/from_file_url.d.ts +0 -0
  1094. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/from_file_url.js +0 -0
  1095. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/is_absolute.d.ts +0 -0
  1096. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/is_absolute.js +0 -0
  1097. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/join.d.ts +0 -0
  1098. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/join.js +0 -0
  1099. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/normalize.d.ts +0 -0
  1100. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/normalize.js +0 -0
  1101. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/to_file_url.d.ts +0 -0
  1102. /package/esm/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/to_file_url.js +0 -0
  1103. /package/esm/deps/jsr.io/@std/streams/{1.0.10 → 1.0.11}/to_array_buffer.d.ts +0 -0
  1104. /package/esm/deps/jsr.io/@std/streams/{1.0.10 → 1.0.11}/to_array_buffer.js +0 -0
  1105. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/assert.d.ts +0 -0
  1106. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/assert.js +0 -0
  1107. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equal.d.ts +0 -0
  1108. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equals.d.ts +0 -0
  1109. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/equals.js +0 -0
  1110. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/false.d.ts +0 -0
  1111. /package/script/deps/jsr.io/@std/assert/{1.0.13 → 1.0.14}/false.js +0 -0
  1112. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/_util.d.ts +0 -0
  1113. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/_util.js +0 -0
  1114. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/abortable.d.ts +0 -0
  1115. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/abortable.js +0 -0
  1116. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/deadline.d.ts +0 -0
  1117. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/deadline.js +0 -0
  1118. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/debounce.d.ts +0 -0
  1119. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/debounce.js +0 -0
  1120. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/delay.d.ts +0 -0
  1121. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mod.d.ts +0 -0
  1122. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mod.js +0 -0
  1123. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/mux_async_iterator.d.ts +0 -0
  1124. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/pool.d.ts +0 -0
  1125. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/pool.js +0 -0
  1126. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/retry.d.ts +0 -0
  1127. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/retry.js +0 -0
  1128. /package/script/deps/jsr.io/@std/async/{1.0.13 → 1.0.14}/tee.d.ts +0 -0
  1129. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/assert_path.d.ts +0 -0
  1130. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/assert_path.js +0 -0
  1131. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/basename.d.ts +0 -0
  1132. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/basename.js +0 -0
  1133. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/constants.d.ts +0 -0
  1134. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/constants.js +0 -0
  1135. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/from_file_url.d.ts +0 -0
  1136. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/from_file_url.js +0 -0
  1137. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize.d.ts +0 -0
  1138. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize.js +0 -0
  1139. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize_string.d.ts +0 -0
  1140. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/normalize_string.js +0 -0
  1141. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/strip_trailing_separators.d.ts +0 -0
  1142. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/strip_trailing_separators.js +0 -0
  1143. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/to_file_url.d.ts +0 -0
  1144. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/_common/to_file_url.js +0 -0
  1145. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/basename.d.ts +0 -0
  1146. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/extname.d.ts +0 -0
  1147. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/is_absolute.d.ts +0 -0
  1148. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/join.d.ts +0 -0
  1149. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/_util.d.ts +0 -0
  1150. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/_util.js +0 -0
  1151. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/basename.d.ts +0 -0
  1152. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/basename.js +0 -0
  1153. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/extname.d.ts +0 -0
  1154. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/extname.js +0 -0
  1155. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/from_file_url.d.ts +0 -0
  1156. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/from_file_url.js +0 -0
  1157. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/is_absolute.d.ts +0 -0
  1158. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/is_absolute.js +0 -0
  1159. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/join.d.ts +0 -0
  1160. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/join.js +0 -0
  1161. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/normalize.d.ts +0 -0
  1162. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/normalize.js +0 -0
  1163. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/to_file_url.d.ts +0 -0
  1164. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/posix/to_file_url.js +0 -0
  1165. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/to_file_url.d.ts +0 -0
  1166. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/_util.d.ts +0 -0
  1167. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/_util.js +0 -0
  1168. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/basename.d.ts +0 -0
  1169. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/basename.js +0 -0
  1170. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/extname.d.ts +0 -0
  1171. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/extname.js +0 -0
  1172. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/from_file_url.d.ts +0 -0
  1173. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/from_file_url.js +0 -0
  1174. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/is_absolute.d.ts +0 -0
  1175. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/is_absolute.js +0 -0
  1176. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/join.d.ts +0 -0
  1177. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/join.js +0 -0
  1178. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/normalize.d.ts +0 -0
  1179. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/normalize.js +0 -0
  1180. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/to_file_url.d.ts +0 -0
  1181. /package/script/deps/jsr.io/@std/path/{1.1.0 → 1.1.2}/windows/to_file_url.js +0 -0
  1182. /package/script/deps/jsr.io/@std/streams/{1.0.10 → 1.0.11}/to_array_buffer.d.ts +0 -0
  1183. /package/script/deps/jsr.io/@std/streams/{1.0.10 → 1.0.11}/to_array_buffer.js +0 -0
@@ -17,18 +17,7 @@
17
17
  * You should have received a copy of the GNU Lesser General Public License
18
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
19
  */
20
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
21
- if (kind === "m") throw new TypeError("Private method is not writable");
22
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
23
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
24
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
25
- };
26
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
27
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
28
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
29
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
30
- };
31
- var _UpdateManager_instances, _a, _UpdateManager_c, _UpdateManager_updateState, _UpdateManager_updateHandler, _UpdateManager_LrecoverUpdateGap, _UpdateManager_LrecoverChannelUpdateGap, _UpdateManager_L$handleUpdate, _UpdateManager_L$processUpdates, _UpdateManager_LfetchState, _UpdateManager_LopenChat, _UpdateManager_Lmin, _UpdateManager_defaultDropPendingUpdates, _UpdateManager_mustDropPendingUpdates, _UpdateManager_state, _UpdateManager_getState, _UpdateManager_setState, _UpdateManager_extractMessages, _UpdateManager_extractMinPeerReferences, _UpdateManager_handleUpdateQueues, _UpdateManager_nonFirst, _UpdateManager_getChannelPtsWithDropPendingUpdatesCheck, _UpdateManager_checkGap, _UpdateManager_checkGapQts, _UpdateManager_checkChannelGap, _UpdateManager_channelUpdateQueues, _UpdateManager_processChannelPtsUpdateInner, _UpdateManager_queueUpdate, _UpdateManager_processChannelPtsUpdate, _UpdateManager_processPtsUpdateInner, _UpdateManager_ptsUpdateQueue, _UpdateManager_processPtsUpdate, _UpdateManager_processQtsUpdateInner, _UpdateManager_qtsUpdateQueue, _UpdateManager_processQtsUpdate, _UpdateManager_processUpdatesQueue, _UpdateManager_processUpdates, _UpdateManager_setUpdateStateDate, _UpdateManager_setUpdatePts, _UpdateManager_setUpdateQts, _UpdateManager_getLocalState, _UpdateManager_recoveringUpdateGap, _UpdateManager_recoverUpdateGapMutex, _UpdateManager_recoverChannelUpdateGap, _UpdateManager_handleUpdatesSet, _UpdateManager_handleStoredUpdates, _UpdateManager_handleUpdate, _UpdateManager_needsGetDifference, _UpdateManager_collectChatIds, _UpdateManager_collectChatIdsFromEntities, _UpdateManager_openChats;
20
+ var _a;
32
21
  import { delay, SECOND, unreachable } from "../0_deps.js";
33
22
  import { InputError } from "../0_errors.js";
34
23
  import { getLogger, Mutex, Queue, ZERO_CHANNEL_ID } from "../1_utilities.js";
@@ -37,39 +26,28 @@ import { PersistentTimestampInvalid } from "../3_errors.js";
37
26
  import { CHANNEL_DIFFERENCE_LIMIT_BOT, CHANNEL_DIFFERENCE_LIMIT_USER } from "../4_constants.js";
38
27
  import { peerToChatId } from "../tl/2_telegram.js";
39
28
  export class UpdateManager {
29
+ static QTS_COUNT = 1;
30
+ static MAIN_BOX_ID = 0n;
31
+ #c;
32
+ #updateState;
33
+ #updateHandler;
34
+ #LrecoverUpdateGap;
35
+ #LrecoverChannelUpdateGap;
36
+ #L$handleUpdate;
37
+ #L$processUpdates;
38
+ #LfetchState;
39
+ #LopenChat;
40
+ #Lmin;
40
41
  constructor(c) {
41
- _UpdateManager_instances.add(this);
42
- _UpdateManager_c.set(this, void 0);
43
- _UpdateManager_updateState.set(this, void 0);
44
- _UpdateManager_updateHandler.set(this, void 0);
45
- _UpdateManager_LrecoverUpdateGap.set(this, void 0);
46
- _UpdateManager_LrecoverChannelUpdateGap.set(this, void 0);
47
- _UpdateManager_L$handleUpdate.set(this, void 0);
48
- _UpdateManager_L$processUpdates.set(this, void 0);
49
- _UpdateManager_LfetchState.set(this, void 0);
50
- _UpdateManager_LopenChat.set(this, void 0);
51
- _UpdateManager_Lmin.set(this, void 0);
52
- _UpdateManager_defaultDropPendingUpdates.set(this, null);
53
- _UpdateManager_state.set(this, undefined);
54
- _UpdateManager_handleUpdateQueues.set(this, new Map());
55
- _UpdateManager_nonFirst.set(this, new Set());
56
- _UpdateManager_channelUpdateQueues.set(this, new Map());
57
- _UpdateManager_ptsUpdateQueue.set(this, new Queue("ptsUpdate"));
58
- _UpdateManager_qtsUpdateQueue.set(this, new Queue("qtsUpdate"));
59
- _UpdateManager_processUpdatesQueue.set(this, new Queue("UpdateManager/processUpdates"));
60
- _UpdateManager_recoveringUpdateGap.set(this, false);
61
- _UpdateManager_recoverUpdateGapMutex.set(this, new Mutex());
62
- _UpdateManager_handleUpdatesSet.set(this, new Set());
63
- _UpdateManager_openChats.set(this, new Map());
64
- __classPrivateFieldSet(this, _UpdateManager_c, c, "f");
42
+ this.#c = c;
65
43
  const L = getLogger("UpdateManager").client(c.id);
66
- __classPrivateFieldSet(this, _UpdateManager_LrecoverUpdateGap, L.branch("recoverUpdateGap"), "f");
67
- __classPrivateFieldSet(this, _UpdateManager_LrecoverChannelUpdateGap, L.branch("recoverChannelUpdateGap"), "f");
68
- __classPrivateFieldSet(this, _UpdateManager_L$handleUpdate, L.branch("#handleUpdate"), "f");
69
- __classPrivateFieldSet(this, _UpdateManager_L$processUpdates, L.branch("#processUpdates"), "f");
70
- __classPrivateFieldSet(this, _UpdateManager_LfetchState, L.branch("fetchState"), "f");
71
- __classPrivateFieldSet(this, _UpdateManager_LopenChat, L.branch("openChat"), "f");
72
- __classPrivateFieldSet(this, _UpdateManager_Lmin, L.branch("min"), "f");
44
+ this.#LrecoverUpdateGap = L.branch("recoverUpdateGap");
45
+ this.#LrecoverChannelUpdateGap = L.branch("recoverChannelUpdateGap");
46
+ this.#L$handleUpdate = L.branch("#handleUpdate");
47
+ this.#L$processUpdates = L.branch("#processUpdates");
48
+ this.#LfetchState = L.branch("fetchState");
49
+ this.#LopenChat = L.branch("openChat");
50
+ this.#Lmin = L.branch("min");
73
51
  }
74
52
  static isPtsUpdate(v) {
75
53
  return Api.isOneOf(["updateNewMessage", "updateDeleteMessages", "updateReadHistoryInbox", "updateReadHistoryOutbox", "updatePinnedChannelMessages", "updatePinnedMessages", "updateFolderPeers", "updateChannelWebPage", "updateEditMessage", "updateReadMessagesContents", "updateWebPage"], v);
@@ -85,48 +63,121 @@ export class UpdateManager {
85
63
  "updateChannelTooLong",
86
64
  ], v);
87
65
  }
66
+ #defaultDropPendingUpdates = null;
67
+ async #mustDropPendingUpdates() {
68
+ if (typeof this.#c.dropPendingUpdates === "boolean") {
69
+ return this.#c.dropPendingUpdates;
70
+ }
71
+ if (this.#defaultDropPendingUpdates === null) {
72
+ this.#defaultDropPendingUpdates = await this.#c.storage.getAccountType() === "bot";
73
+ }
74
+ return this.#defaultDropPendingUpdates;
75
+ }
76
+ #state = undefined;
77
+ async #getState() {
78
+ if (await this.#mustDropPendingUpdates()) {
79
+ return this.#state ?? null;
80
+ }
81
+ if (this.#state !== undefined) {
82
+ return this.#state;
83
+ }
84
+ const state = await this.#c.storage.getState();
85
+ return this.#state = state;
86
+ }
87
+ async #setState(state) {
88
+ this.#state = state;
89
+ if (!await this.#mustDropPendingUpdates()) {
90
+ await this.#c.storage.setState(state);
91
+ }
92
+ }
88
93
  async fetchState(source) {
89
- let state = await __classPrivateFieldGet(this, _UpdateManager_c, "f").invoke({ _: "updates.getState" });
90
- const difference = await __classPrivateFieldGet(this, _UpdateManager_c, "f").invoke({ ...state, _: "updates.getDifference" });
94
+ let state = await this.#c.invoke({ _: "updates.getState" });
95
+ const difference = await this.#c.invoke({ ...state, _: "updates.getDifference" });
91
96
  if (Api.is("updates.difference", difference)) {
92
97
  state = difference.state;
93
98
  }
94
99
  else if (Api.is("updates.differenceSlice", difference)) {
95
100
  state = difference.intermediate_state;
96
101
  }
97
- __classPrivateFieldSet(this, _UpdateManager_updateState, state, "f");
98
- __classPrivateFieldGet(this, _UpdateManager_LfetchState, "f").debug(`state fetched [${source}]`);
99
- if (await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_mustDropPendingUpdates).call(this)) {
100
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, state);
102
+ this.#updateState = state;
103
+ this.#LfetchState.debug(`state fetched [${source}]`);
104
+ if (await this.#mustDropPendingUpdates()) {
105
+ await this.#setState(state);
101
106
  }
102
107
  }
108
+ #extractMessages(context) {
109
+ const messages = new Array();
110
+ if (Array.isArray(context)) {
111
+ for (const item of context) {
112
+ messages.push(...this.#extractMessages(item));
113
+ }
114
+ }
115
+ else if (Api.isOneOf(["updates", "updatesCombined"], context)) {
116
+ messages.push(...this.#extractMessages(context.updates));
117
+ }
118
+ else if (Api.isOneOf(["updates.difference", "updates.differenceSlice", "updates.channelDifference"], context)) {
119
+ for (const message of context.new_messages) {
120
+ if (Api.is("message", message)) {
121
+ messages.push(message);
122
+ }
123
+ }
124
+ messages.push(...this.#extractMessages(context.other_updates));
125
+ }
126
+ else if (Api.isOneOf(["updateNewMessage", "updateNewChannelMessage", "updateEditMessage", "updateEditChannelMessage", "updateBotNewBusinessMessage", "updateBotNewBusinessMessage"], context)) {
127
+ if (Api.is("message", context.message)) {
128
+ messages.push(context.message);
129
+ }
130
+ }
131
+ else if (Api.is("message", context)) {
132
+ messages.push(context);
133
+ }
134
+ else if (context !== null && typeof context === "object" && "messages" in context && Array.isArray(context.messages)) {
135
+ for (const message of context.messages) {
136
+ if (Api.is("message", message)) {
137
+ messages.push(message);
138
+ }
139
+ }
140
+ }
141
+ return messages;
142
+ }
143
+ #extractMinPeerReferences(context) {
144
+ const minPeerReferences = new Array();
145
+ const messages = this.#extractMessages(context);
146
+ for (const message of messages) {
147
+ if (!message.from_id) {
148
+ continue;
149
+ }
150
+ minPeerReferences.push({ chatId: Api.peerToChatId(message.peer_id), senderId: Api.peerToChatId(message.from_id), messageId: message.id });
151
+ }
152
+ return minPeerReferences;
153
+ }
103
154
  async processChats(chats, context) {
104
155
  for (const chat of chats) {
105
156
  if (Api.isOneOf(["channel", "channelForbidden"], chat)) {
106
- if (!Api.is("channel", chat) || !chat.min || chat.min && await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.getEntity(Api.peerToChatId(chat)) == null) {
107
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setEntity(chat);
157
+ if (!Api.is("channel", chat) || !chat.min || chat.min && await this.#c.messageStorage.getEntity(Api.peerToChatId(chat)) === null) {
158
+ await this.#c.messageStorage.setEntity(chat);
108
159
  }
109
160
  if (Api.is("channel", chat) && chat.min) {
110
- const entity = await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.getEntity(Api.peerToChatId(chat));
161
+ const entity = await this.#c.messageStorage.getEntity(Api.peerToChatId(chat));
111
162
  const senderChatId = Api.peerToChatId(chat);
112
163
  if (Api.is("channel", entity) && entity.min) {
113
- for (const { chatId, senderId, messageId } of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_extractMinPeerReferences).call(this, context)) {
114
- if (senderId == senderChatId) {
115
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setMinPeerReference(chatId, senderId, messageId);
116
- __classPrivateFieldGet(this, _UpdateManager_Lmin, "f").debug("channel min peer reference stored", chatId, senderId, messageId);
164
+ for (const { chatId, senderId, messageId } of this.#extractMinPeerReferences(context)) {
165
+ if (senderId === senderChatId) {
166
+ await this.#c.messageStorage.setMinPeerReference(chatId, senderId, messageId);
167
+ this.#Lmin.debug("channel min peer reference stored", chatId, senderId, messageId);
117
168
  }
118
169
  }
119
170
  }
120
171
  }
121
172
  if ("username" in chat && chat.username) {
122
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.updateUsernames(Api.peerToChatId(chat), [chat.username]);
173
+ await this.#c.messageStorage.updateUsernames(Api.peerToChatId(chat), [chat.username]);
123
174
  }
124
175
  if ("usernames" in chat && chat.usernames) {
125
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.updateUsernames(Api.peerToChatId(chat), chat.usernames.map((v) => v.username));
176
+ await this.#c.messageStorage.updateUsernames(Api.peerToChatId(chat), chat.usernames.map((v) => v.username));
126
177
  }
127
178
  }
128
179
  else if (Api.isOneOf(["chat", "chatForbidden"], chat)) {
129
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setEntity(chat);
180
+ await this.#c.messageStorage.setEntity(chat);
130
181
  }
131
182
  }
132
183
  }
@@ -159,7 +210,7 @@ export class UpdateManager {
159
210
  if ("messages" in result && Array.isArray(result.messages)) {
160
211
  for (const message of result.messages) {
161
212
  if (Api.is("message", message) || Api.is("messageService", message)) {
162
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setMessage(Api.peerToChatId(message.peer_id), message.id, message);
213
+ await this.#c.messageStorage.setMessage(Api.peerToChatId(message.peer_id), message.id, message);
163
214
  }
164
215
  }
165
216
  }
@@ -167,7 +218,7 @@ export class UpdateManager {
167
218
  if (Api.is("messages.messages", result)) {
168
219
  for (const message of result.messages) {
169
220
  if (Api.is("message", message) || Api.is("messageService", message)) {
170
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setMessage(Api.peerToChatId(message.peer_id), message.id, message);
221
+ await this.#c.messageStorage.setMessage(Api.peerToChatId(message.peer_id), message.id, message);
171
222
  }
172
223
  }
173
224
  }
@@ -175,35 +226,36 @@ export class UpdateManager {
175
226
  async processUsers(users, context) {
176
227
  for (const user of users) {
177
228
  if (Api.is("user", user) && user.access_hash) {
178
- if (!user.min || user.min && await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.getEntity(Api.peerToChatId(user)) == null) {
179
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setEntity(user);
229
+ if (!user.min || user.min && await this.#c.messageStorage.getEntity(Api.peerToChatId(user)) === null) {
230
+ await this.#c.messageStorage.setEntity(user);
180
231
  }
181
232
  if (user.min) {
182
- __classPrivateFieldGet(this, _UpdateManager_Lmin, "f").debug("encountered min user");
233
+ this.#Lmin.debug("encountered min user");
183
234
  }
184
235
  if (Api.is("user", user) && user.min) {
185
- const entity = await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.getEntity(Api.peerToChatId(user));
236
+ const entity = await this.#c.messageStorage.getEntity(Api.peerToChatId(user));
186
237
  const userId = Api.peerToChatId(user);
187
238
  if (Api.is("user", entity) && entity.min) {
188
- for (const { chatId, senderId, messageId } of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_extractMinPeerReferences).call(this, context)) {
189
- if (senderId == userId) {
190
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.setMinPeerReference(chatId, senderId, messageId);
191
- __classPrivateFieldGet(this, _UpdateManager_Lmin, "f").debug("user min peer reference stored", chatId, senderId, messageId);
239
+ for (const { chatId, senderId, messageId } of this.#extractMinPeerReferences(context)) {
240
+ if (senderId === userId) {
241
+ await this.#c.messageStorage.setMinPeerReference(chatId, senderId, messageId);
242
+ this.#Lmin.debug("user min peer reference stored", chatId, senderId, messageId);
192
243
  }
193
244
  }
194
245
  }
195
246
  }
196
247
  if (user.username) {
197
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.updateUsernames(Api.peerToChatId(user), [user.username]);
248
+ await this.#c.messageStorage.updateUsernames(Api.peerToChatId(user), [user.username]);
198
249
  }
199
250
  if (user.usernames) {
200
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.updateUsernames(Api.peerToChatId(user), user.usernames.map((v) => v.username));
251
+ await this.#c.messageStorage.updateUsernames(Api.peerToChatId(user), user.usernames.map((v) => v.username));
201
252
  }
202
253
  }
203
254
  }
204
255
  }
256
+ #handleUpdateQueues = new Map();
205
257
  getHandleUpdateQueue(boxId) {
206
- let queue = __classPrivateFieldGet(this, _UpdateManager_handleUpdateQueues, "f").get(boxId);
258
+ let queue = this.#handleUpdateQueues.get(boxId);
207
259
  if (queue !== undefined) {
208
260
  return queue;
209
261
  }
@@ -212,27 +264,365 @@ export class UpdateManager {
212
264
  return queue;
213
265
  }
214
266
  }
267
+ #nonFirst = new Set();
268
+ async #getChannelPtsWithDropPendingUpdatesCheck(channelId) {
269
+ if (!(await this.#mustDropPendingUpdates())) {
270
+ return await this.#c.storage.getChannelPts(channelId);
271
+ }
272
+ const first = !this.#nonFirst.has(channelId);
273
+ if (first) {
274
+ this.#nonFirst.add(channelId);
275
+ return null;
276
+ }
277
+ else {
278
+ return await this.#c.storage.getChannelPts(channelId);
279
+ }
280
+ }
281
+ async #checkGap(pts, ptsCount) {
282
+ const localState = await this.#getLocalState();
283
+ if (localState.pts + ptsCount < pts) {
284
+ await this.recoverUpdateGap("processUpdates[pts]");
285
+ }
286
+ }
287
+ async #checkGapQts(qts) {
288
+ const localState = await this.#getLocalState();
289
+ if (localState.qts + _a.QTS_COUNT < qts) {
290
+ await this.recoverUpdateGap("processUpdates[qts]");
291
+ }
292
+ }
293
+ async #checkChannelGap(channelId, pts, ptsCount) {
294
+ let localPts = await this.#getChannelPtsWithDropPendingUpdatesCheck(channelId);
295
+ if (!localPts) {
296
+ localPts = pts - ptsCount;
297
+ }
298
+ if (localPts + ptsCount < pts) {
299
+ await this.#recoverChannelUpdateGap(channelId, "processUpdates");
300
+ }
301
+ }
302
+ #channelUpdateQueues = new Map();
303
+ async #processChannelPtsUpdateInner(update, checkGap) {
304
+ const channelId = Api.is("updateNewChannelMessage", update) || Api.is("updateEditChannelMessage", update) ? Api.as("peerChannel", update.message.peer_id).channel_id : update.channel_id;
305
+ if (Api.is("updateChannelTooLong", update)) {
306
+ if (update.pts !== undefined) {
307
+ await this.#c.storage.setChannelPts(channelId, update.pts);
308
+ }
309
+ await this.#recoverChannelUpdateGap(channelId, "updateChannelTooLong");
310
+ return;
311
+ }
312
+ if (update.pts !== 0) {
313
+ const ptsCount = update.pts_count;
314
+ if (checkGap) {
315
+ await this.#checkChannelGap(channelId, update.pts, ptsCount);
316
+ }
317
+ let currentPts = await this.#getChannelPtsWithDropPendingUpdatesCheck(channelId);
318
+ currentPts ??= update.pts - ptsCount;
319
+ if (currentPts + ptsCount > update.pts) {
320
+ return;
321
+ }
322
+ }
323
+ if (this.#c.guaranteeUpdateDelivery) {
324
+ await this.#c.storage.setUpdate(channelId, update);
325
+ }
326
+ if (update.pts !== 0) {
327
+ await this.#c.storage.setChannelPts(channelId, update.pts);
328
+ }
329
+ this.#queueUpdate(update, channelId, true);
330
+ }
331
+ #queueUpdate(update, boxId, pts) {
332
+ this.getHandleUpdateQueue(boxId).add(async () => {
333
+ if (this.#c.guaranteeUpdateDelivery && pts) {
334
+ await this.#handleStoredUpdates(boxId);
335
+ }
336
+ else {
337
+ await (await this.#handleUpdate(update))();
338
+ }
339
+ });
340
+ }
341
+ #processChannelPtsUpdate(update, checkGap) {
342
+ const channelId = Api.is("updateNewChannelMessage", update) || Api.is("updateEditChannelMessage", update) ? Api.as("peerChannel", update.message.peer_id).channel_id : update.channel_id;
343
+ let queue = this.#channelUpdateQueues.get(channelId);
344
+ if (queue === undefined) {
345
+ queue = new Queue(`channelUpdates-${channelId}`);
346
+ this.#channelUpdateQueues.set(channelId, queue);
347
+ }
348
+ queue.add(async () => {
349
+ await this.#processChannelPtsUpdateInner(update, checkGap);
350
+ });
351
+ }
352
+ async #processPtsUpdateInner(update, checkGap) {
353
+ if (update.pts !== 0 && checkGap) {
354
+ await this.#checkGap(update.pts, update.pts_count);
355
+ if (await this.#needsGetDifference(update)) {
356
+ await this.recoverUpdateGap("needsGetDifference");
357
+ }
358
+ }
359
+ const localState = await this.#getLocalState();
360
+ if (localState.pts + update.pts_count > update.pts) {
361
+ return;
362
+ }
363
+ if (this.#c.guaranteeUpdateDelivery) {
364
+ await this.#c.storage.setUpdate(_a.MAIN_BOX_ID, update);
365
+ }
366
+ if (update.pts !== 0) {
367
+ await this.#setUpdatePts(update.pts);
368
+ }
369
+ this.#queueUpdate(update, 1n, false);
370
+ }
371
+ #ptsUpdateQueue = new Queue("ptsUpdate");
372
+ #processPtsUpdate(update, checkGap) {
373
+ this.#ptsUpdateQueue.add(async () => {
374
+ await this.#processPtsUpdateInner(update, checkGap);
375
+ });
376
+ }
377
+ async #processQtsUpdateInner(update, checkGap) {
378
+ const localState = await this.#getLocalState();
379
+ if (update.qts !== 0) {
380
+ if (checkGap) {
381
+ await this.#checkGapQts(update.qts);
382
+ }
383
+ if (localState.qts + _a.QTS_COUNT > update.qts) {
384
+ return;
385
+ }
386
+ }
387
+ if (this.#c.guaranteeUpdateDelivery) {
388
+ await this.#c.storage.setUpdate(_a.MAIN_BOX_ID, update);
389
+ }
390
+ if (update.qts !== 0) {
391
+ await this.#setUpdateQts(update.qts);
392
+ }
393
+ this.#queueUpdate(update, 0n, true);
394
+ }
395
+ #qtsUpdateQueue = new Queue("qtsUpdate");
396
+ #processQtsUpdate(update, checkGap) {
397
+ this.#qtsUpdateQueue.add(async () => {
398
+ await this.#processQtsUpdateInner(update, checkGap);
399
+ });
400
+ }
401
+ #processUpdatesQueue = new Queue("UpdateManager/processUpdates");
215
402
  processUpdates(updates, checkGap, call = null, callback) {
216
- __classPrivateFieldGet(this, _UpdateManager_processUpdatesQueue, "f").add(() => __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processUpdates).call(this, updates, checkGap, call).finally(callback));
403
+ this.#processUpdatesQueue.add(() => this.#processUpdates(updates, checkGap, call).finally(callback));
404
+ }
405
+ async #processUpdates(updates_, checkGap, call = null) {
406
+ /// First, individual updates (Update[1]) are extracted from Updates.[2]
407
+ ///
408
+ /// If an updatesTooLong[3] was received, an update gap recovery is initiated and no further action will be taken.
409
+ ///
410
+ /// [1]: https://core.telegram.org/type/Update
411
+ /// [2]: https://core.telegram.org/type/Updates
412
+ /// [3]: https://core.telegram.org/constructor/updatesTooLong
413
+ let updates;
414
+ if (Api.is("updatesCombined", updates_) || Api.is("updates", updates_)) {
415
+ updates = updates_.updates;
416
+ const seq = updates_.seq;
417
+ const seqStart = "seq_start" in updates_ ? updates_.seq_start : updates_.seq;
418
+ if (checkGap) {
419
+ if (seqStart === 0) {
420
+ checkGap = false;
421
+ this.#L$processUpdates.debug("seqStart=0");
422
+ }
423
+ else {
424
+ const localState = await this.#getLocalState();
425
+ const localSeq = localState.seq;
426
+ if (localSeq + 1 === seqStart) {
427
+ // The update sequence can be applied.
428
+ localState.seq = seq;
429
+ localState.date = updates_.date;
430
+ await this.#setUpdateStateDate(updates_.date);
431
+ await this.#setState(localState);
432
+ }
433
+ else if (localSeq + 1 > seqStart) {
434
+ // The update sequence was already applied, and must be ignored.
435
+ this.#L$processUpdates.debug("localSeq + 1 > seqStart");
436
+ return;
437
+ }
438
+ else if (localSeq + 1 < seqStart) {
439
+ // There's an updates gap that must be filled.
440
+ await this.recoverUpdateGap("localSeq + 1 < seqStart");
441
+ }
442
+ }
443
+ }
444
+ }
445
+ else if (Api.is("updateShort", updates_)) {
446
+ updates = [updates_.update];
447
+ }
448
+ else if (Api.is("updateShortMessage", updates_)) {
449
+ updates = [
450
+ {
451
+ _: "updateNewMessage",
452
+ message: ({
453
+ _: "message",
454
+ out: updates_.out,
455
+ mentioned: updates_.mentioned,
456
+ media_unread: updates_.media_unread,
457
+ silent: updates_.silent,
458
+ id: updates_.id,
459
+ from_id: updates_.out ? ({ _: "peerUser", user_id: BigInt(await this.#c.getSelfId()) }) : ({ _: "peerUser", user_id: updates_.user_id }),
460
+ peer_id: ({ _: "peerUser", user_id: updates_.user_id }),
461
+ message: updates_.message,
462
+ date: updates_.date,
463
+ fwd_from: updates_.fwd_from,
464
+ via_bot_id: updates_.via_bot_id,
465
+ reply_to: updates_.reply_to,
466
+ entities: updates_.entities,
467
+ ttl_period: updates_.ttl_period,
468
+ }),
469
+ pts: updates_.pts,
470
+ pts_count: updates_.pts_count,
471
+ },
472
+ ];
473
+ }
474
+ else if (Api.is("updateShortChatMessage", updates_)) {
475
+ updates = [
476
+ {
477
+ _: "updateNewMessage",
478
+ message: ({
479
+ _: "message",
480
+ mentioned: updates_.mentioned,
481
+ media_unread: updates_.media_unread,
482
+ silent: updates_.silent,
483
+ id: updates_.id,
484
+ from_id: { _: "peerUser", user_id: updates_.from_id },
485
+ peer_id: { _: "peerChat", chat_id: updates_.chat_id },
486
+ fwd_from: updates_.fwd_from,
487
+ via_bot_id: updates_.via_bot_id,
488
+ reply_to: updates_.reply_to,
489
+ date: updates_.date,
490
+ message: updates_.message,
491
+ entities: updates_.entities,
492
+ ttl_period: updates_.ttl_period,
493
+ }),
494
+ pts: updates_.pts,
495
+ pts_count: updates_.pts_count,
496
+ },
497
+ ];
498
+ }
499
+ else if (Api.is("updateShortSentMessage", updates_)) {
500
+ if (!Api.is("messages.sendMessage", call)) {
501
+ unreachable();
502
+ }
503
+ updates = [{
504
+ _: "updateNewMessage",
505
+ message: ({
506
+ _: "message",
507
+ out: updates_.out,
508
+ silent: call.silent,
509
+ id: updates_.id,
510
+ from_id: { _: "peerUser", user_id: BigInt(await this.#c.getSelfId()) },
511
+ peer_id: Api.inputPeerToPeer(call.peer),
512
+ message: call.message,
513
+ media: updates_.media,
514
+ date: updates_.date,
515
+ // reply_to: call.reply_to, // TODO?
516
+ entities: updates_.entities,
517
+ ttl_period: updates_.ttl_period,
518
+ }),
519
+ pts: updates_.pts,
520
+ pts_count: updates_.pts_count,
521
+ }];
522
+ }
523
+ else if (Api.is("updatesTooLong", updates_)) {
524
+ await this.recoverUpdateGap("updatesTooLong");
525
+ return;
526
+ }
527
+ else if (Api.isOfEnum("Update", updates_)) {
528
+ updates = [updates_];
529
+ }
530
+ else {
531
+ unreachable();
532
+ }
533
+ /// We process the updates when we are sure there is no gap.
534
+ if (Api.is("updates", updates_) || Api.is("updatesCombined", updates_)) {
535
+ await this.processChats(updates_.chats, updates_);
536
+ await this.processUsers(updates_.users, updates_);
537
+ await this.#setUpdateStateDate(updates_.date);
538
+ }
539
+ else if (Api.isOneOf([
540
+ "updateShort",
541
+ "updateShortMessage",
542
+ "updateShortChatMessage",
543
+ "updateShortSentMessage",
544
+ ], updates_)) {
545
+ await this.#setUpdateStateDate(updates_.date);
546
+ }
547
+ for (const update of updates) {
548
+ if (Api.is("updatePtsChanged", update)) {
549
+ await this.fetchState("updatePtsChanged");
550
+ if (this.#updateState) {
551
+ await this.#setState(this.#updateState);
552
+ }
553
+ else {
554
+ unreachable();
555
+ }
556
+ }
557
+ else if (_a.isPtsUpdate(update)) {
558
+ this.#processPtsUpdate(update, checkGap);
559
+ }
560
+ else if (_a.isChannelPtsUpdate(update)) {
561
+ this.#processChannelPtsUpdate(update, checkGap);
562
+ }
563
+ else if (_a.isQtsUpdate(update)) {
564
+ this.#processQtsUpdate(update, checkGap);
565
+ }
566
+ else {
567
+ this.#queueUpdate(update, 0n, false);
568
+ }
569
+ }
570
+ }
571
+ async #setUpdateStateDate(date) {
572
+ const localState = await this.#getLocalState();
573
+ localState.date = date;
574
+ await this.#setState(localState);
575
+ }
576
+ async #setUpdatePts(pts) {
577
+ const localState = await this.#getLocalState();
578
+ localState.pts = pts;
579
+ await this.#setState(localState);
217
580
  }
581
+ async #setUpdateQts(qts) {
582
+ const localState = await this.#getLocalState();
583
+ localState.qts = qts;
584
+ await this.#setState(localState);
585
+ }
586
+ async #getLocalState() {
587
+ let localState = await this.#getState();
588
+ if (!localState) {
589
+ if (this.#updateState) {
590
+ localState = this.#updateState;
591
+ await this.#setState(localState);
592
+ }
593
+ else {
594
+ await this.fetchState("getLocalState");
595
+ if (this.#updateState) {
596
+ localState = this.#updateState;
597
+ await this.#setState(localState);
598
+ }
599
+ else {
600
+ unreachable();
601
+ }
602
+ }
603
+ }
604
+ return localState;
605
+ }
606
+ #recoveringUpdateGap = false;
607
+ #recoverUpdateGapMutex = new Mutex();
218
608
  async recoverUpdateGap(source) {
219
- const wasRecoveringUpdateGap = __classPrivateFieldGet(this, _UpdateManager_recoveringUpdateGap, "f");
220
- const unlock = await __classPrivateFieldGet(this, _UpdateManager_recoverUpdateGapMutex, "f").lock();
609
+ const wasRecoveringUpdateGap = this.#recoveringUpdateGap;
610
+ const unlock = await this.#recoverUpdateGapMutex.lock();
221
611
  if (wasRecoveringUpdateGap) {
222
- __classPrivateFieldGet(this, _UpdateManager_LrecoverUpdateGap, "f").debug(`update gap was just recovered [${source}]`);
612
+ this.#LrecoverUpdateGap.debug(`update gap was just recovered [${source}]`);
223
613
  unlock();
224
614
  return;
225
615
  }
226
- __classPrivateFieldSet(this, _UpdateManager_recoveringUpdateGap, true, "f");
227
- __classPrivateFieldGet(this, _UpdateManager_LrecoverUpdateGap, "f").debug(`recovering from update gap [${source}]`);
228
- __classPrivateFieldGet(this, _UpdateManager_c, "f").setConnectionState("updating");
616
+ this.#recoveringUpdateGap = true;
617
+ this.#LrecoverUpdateGap.debug(`recovering from update gap [${source}]`);
618
+ this.#c.setConnectionState("updating");
229
619
  try {
230
620
  let retryIn = 5;
231
- let state = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
621
+ let state = await this.#getLocalState();
232
622
  while (true) {
233
623
  let difference;
234
624
  try {
235
- difference = await __classPrivateFieldGet(this, _UpdateManager_c, "f").invoke({ _: "updates.getDifference", pts: state.pts, date: state.date, qts: state.qts ?? 0 });
625
+ difference = await this.#c.invoke({ _: "updates.getDifference", pts: state.pts, date: state.date, qts: state.qts ?? 0 });
236
626
  }
237
627
  catch (err) {
238
628
  if (err instanceof PersistentTimestampInvalid) {
@@ -251,13 +641,13 @@ export class UpdateManager {
251
641
  await this.processChats(difference.chats, difference);
252
642
  await this.processUsers(difference.users, difference);
253
643
  for (const message of difference.new_messages) {
254
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processUpdates).call(this, { _: "updateNewMessage", message, pts: 0, pts_count: 0 }, false);
644
+ await this.#processUpdates({ _: "updateNewMessage", message, pts: 0, pts_count: 0 }, false);
255
645
  }
256
646
  for (const update of difference.other_updates) {
257
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processUpdates).call(this, update, false);
647
+ await this.#processUpdates(update, false);
258
648
  }
259
649
  if (Api.is("updates.difference", difference)) {
260
- __classPrivateFieldGet(this, _UpdateManager_LrecoverUpdateGap, "f").debug("recovered from update gap");
650
+ this.#LrecoverUpdateGap.debug("recovered from update gap");
261
651
  break;
262
652
  }
263
653
  else if (Api.is("updates.differenceSlice", difference)) {
@@ -268,15 +658,15 @@ export class UpdateManager {
268
658
  }
269
659
  }
270
660
  else if (Api.is("updates.differenceTooLong", difference)) {
271
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.deleteMessages();
272
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.removeChats(0);
273
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.removeChats(1);
661
+ await this.#c.messageStorage.deleteMessages();
662
+ await this.#c.storage.removeChats(0);
663
+ await this.#c.storage.removeChats(1);
274
664
  state.pts = difference.pts;
275
- __classPrivateFieldGet(this, _UpdateManager_LrecoverUpdateGap, "f").debug("received differenceTooLong");
665
+ this.#LrecoverUpdateGap.debug("received differenceTooLong");
276
666
  }
277
667
  else if (Api.is("updates.differenceEmpty", difference)) {
278
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setUpdateStateDate).call(this, difference.date);
279
- __classPrivateFieldGet(this, _UpdateManager_LrecoverUpdateGap, "f").debug("there was no update gap");
668
+ await this.#setUpdateStateDate(difference.date);
669
+ this.#LrecoverUpdateGap.debug("there was no update gap");
280
670
  break;
281
671
  }
282
672
  else {
@@ -285,40 +675,306 @@ export class UpdateManager {
285
675
  }
286
676
  }
287
677
  catch (err) {
288
- __classPrivateFieldGet(this, _UpdateManager_LrecoverUpdateGap, "f").error(err);
678
+ this.#LrecoverUpdateGap.error(err);
289
679
  }
290
680
  finally {
291
681
  unlock();
292
- __classPrivateFieldGet(this, _UpdateManager_c, "f").resetConnectionState();
293
- __classPrivateFieldSet(this, _UpdateManager_recoveringUpdateGap, false, "f");
682
+ this.#c.resetConnectionState();
683
+ this.#recoveringUpdateGap = false;
684
+ }
685
+ }
686
+ async #recoverChannelUpdateGap(channelId, source) {
687
+ let lastTimeout = 1;
688
+ this.#LrecoverChannelUpdateGap.debug(`recovering channel update gap [${channelId}, ${source}]`);
689
+ const pts_ = await this.#c.storage.getChannelPts(channelId);
690
+ let pts = pts_ === null ? 1 : pts_;
691
+ let retryIn = 5;
692
+ while (true) {
693
+ const { access_hash } = await this.#c.getInputPeer(ZERO_CHANNEL_ID + -Number(channelId)).then((v) => Api.as("inputPeerChannel", v));
694
+ let difference;
695
+ try {
696
+ difference = await this.#c.invoke({
697
+ _: "updates.getChannelDifference",
698
+ pts,
699
+ channel: { _: "inputChannel", channel_id: channelId, access_hash },
700
+ filter: { _: "channelMessagesFilterEmpty" },
701
+ limit: await this.#c.storage.getAccountType() === "user" ? CHANNEL_DIFFERENCE_LIMIT_USER : CHANNEL_DIFFERENCE_LIMIT_BOT,
702
+ });
703
+ lastTimeout = difference.timeout ?? 1;
704
+ }
705
+ catch (err) {
706
+ if (err instanceof PersistentTimestampInvalid) {
707
+ await delay(retryIn * SECOND);
708
+ retryIn += 5;
709
+ if (retryIn > 60) {
710
+ retryIn = 60;
711
+ }
712
+ continue;
713
+ }
714
+ else {
715
+ throw err;
716
+ }
717
+ }
718
+ if (Api.is("updates.channelDifference", difference)) {
719
+ await this.processChats(difference.chats, difference);
720
+ await this.processUsers(difference.users, difference);
721
+ for (const message of difference.new_messages) {
722
+ await this.#processUpdates({ _: "updateNewChannelMessage", message, pts: 0, pts_count: 0 }, false);
723
+ }
724
+ for (const update of difference.other_updates) {
725
+ await this.#processUpdates(update, false);
726
+ }
727
+ await this.#c.storage.setChannelPts(channelId, difference.pts);
728
+ this.#LrecoverChannelUpdateGap.debug(`recovered from update gap [${channelId}, ${source}]`, channelId, source);
729
+ break;
730
+ }
731
+ else if (Api.is("updates.channelDifferenceTooLong", difference)) {
732
+ // TODO: invalidate messages
733
+ this.#LrecoverChannelUpdateGap.debug("received channelDifferenceTooLong");
734
+ await this.processChats(difference.chats, difference);
735
+ await this.processUsers(difference.users, difference);
736
+ for (const message of difference.messages) {
737
+ await this.#processUpdates({ _: "updateNewChannelMessage", message, pts: 0, pts_count: 0 }, false);
738
+ }
739
+ const pts_ = Api.as("dialog", difference.dialog).pts;
740
+ if (pts_ !== undefined) {
741
+ pts = pts_;
742
+ }
743
+ else {
744
+ unreachable();
745
+ }
746
+ this.#LrecoverChannelUpdateGap.debug("processed channelDifferenceTooLong");
747
+ }
748
+ else if (Api.is("updates.channelDifferenceEmpty", difference)) {
749
+ this.#LrecoverChannelUpdateGap.debug("there was no update gap");
750
+ break;
751
+ }
752
+ }
753
+ return lastTimeout;
754
+ }
755
+ #handleUpdatesSet = new Set();
756
+ async #handleStoredUpdates(boxId) {
757
+ if (this.#handleUpdatesSet.has(boxId)) {
758
+ return;
759
+ }
760
+ this.#handleUpdatesSet.add(boxId);
761
+ do {
762
+ const maybeUpdate = await this.#c.storage.getFirstUpdate(boxId);
763
+ if (maybeUpdate === null) {
764
+ break;
765
+ }
766
+ const [key, update] = maybeUpdate;
767
+ for (let i = 0; i < 100; ++i) {
768
+ try {
769
+ const handle = await this.#handleUpdate(update);
770
+ handle: for (let i = 0; i < 2; ++i) {
771
+ try {
772
+ await handle();
773
+ break handle;
774
+ }
775
+ catch {
776
+ continue handle;
777
+ }
778
+ }
779
+ break;
780
+ }
781
+ catch (err) {
782
+ this.#L$handleUpdate.error(err);
783
+ }
784
+ }
785
+ await this.#c.storage.set(key, null);
786
+ } while (true);
787
+ this.#handleUpdatesSet.delete(boxId);
788
+ }
789
+ #handleUpdate(update) {
790
+ const handler = this.#updateHandler;
791
+ if (handler) {
792
+ return handler(update);
793
+ }
794
+ else {
795
+ return Promise.resolve(() => Promise.resolve());
294
796
  }
295
797
  }
798
+ async #needsGetDifference(update) {
799
+ const chatIds = this.#collectChatIds(update);
800
+ if (!chatIds.size) {
801
+ return false;
802
+ }
803
+ return (await Promise.all(chatIds.values().map((v) => this.#c.messageStorage.getEntity(v)))).some((v) => !v);
804
+ }
805
+ #collectChatIds(object) {
806
+ const chatIds = new Set();
807
+ if (Api.is("messageFwdHeader", object)) {
808
+ if (object.from_id) {
809
+ chatIds.add(peerToChatId(object.from_id));
810
+ }
811
+ if (object.saved_from_peer) {
812
+ chatIds.add(peerToChatId(object.saved_from_peer));
813
+ }
814
+ return chatIds;
815
+ }
816
+ if (Api.isOfEnum("MessageMedia", object)) {
817
+ switch (object._) {
818
+ case "messageMediaContact":
819
+ if (object.user_id) {
820
+ chatIds.add(peerToChatId({ _: "peerUser", user_id: object.user_id }));
821
+ }
822
+ break;
823
+ case "messageMediaStory":
824
+ chatIds.add(peerToChatId(object.peer));
825
+ break;
826
+ case "messageMediaGiveaway":
827
+ for (const chatId of object.channels.map((v) => peerToChatId({ _: "peerChannel", channel_id: v }))) {
828
+ chatIds.add(chatId);
829
+ }
830
+ break;
831
+ case "messageMediaGiveawayResults":
832
+ chatIds.add(peerToChatId({ _: "peerChannel", channel_id: object.channel_id }));
833
+ for (const chatId of object.winners.map((user_id) => peerToChatId({ _: "peerUser", user_id }))) {
834
+ chatIds.add(chatId);
835
+ }
836
+ }
837
+ return chatIds;
838
+ }
839
+ // messsages
840
+ if (!("message" in object)) {
841
+ return chatIds;
842
+ }
843
+ if (Api.is("messageEmpty", object.message)) {
844
+ return chatIds;
845
+ }
846
+ chatIds.add(peerToChatId(object.message.peer_id));
847
+ if (object.message.from_id) {
848
+ chatIds.add(peerToChatId(object.message.from_id));
849
+ }
850
+ if (Api.is("messageService", object.message)) {
851
+ switch (object.message.action._) {
852
+ case "messageActionChatCreate":
853
+ case "messageActionChatAddUser":
854
+ case "messageActionInviteToGroupCall":
855
+ for (const user_id of object.message.action.users) {
856
+ chatIds.add(peerToChatId({ _: "peerUser", user_id }));
857
+ }
858
+ break;
859
+ case "messageActionChatDeleteUser":
860
+ chatIds.add(peerToChatId({ _: "peerUser", user_id: object.message.action.user_id }));
861
+ break;
862
+ case "messageActionChatMigrateTo":
863
+ chatIds.add(peerToChatId({ _: "peerChannel", channel_id: object.message.action.channel_id }));
864
+ break;
865
+ case "messageActionChannelMigrateFrom":
866
+ chatIds.add(peerToChatId({ _: "peerChat", chat_id: object.message.action.chat_id }));
867
+ break;
868
+ case "messageActionConferenceCall":
869
+ if (object.message.action.other_participants) {
870
+ for (const participant of object.message.action.other_participants) {
871
+ chatIds.add(peerToChatId(participant));
872
+ }
873
+ }
874
+ break;
875
+ case "messageActionPaymentRefunded":
876
+ chatIds.add(peerToChatId(object.message.action.peer));
877
+ break;
878
+ case "messageActionGiftCode":
879
+ if (object.message.action.boost_peer) {
880
+ chatIds.add(peerToChatId(object.message.action.boost_peer));
881
+ }
882
+ break;
883
+ case "messageActionRequestedPeer":
884
+ if (this.#c.storage.accountType === "user") {
885
+ for (const peer of object.message.action.peers) {
886
+ chatIds.add(peerToChatId(peer));
887
+ }
888
+ }
889
+ break;
890
+ case "messageActionSetMessagesTTL":
891
+ if (object.message.action.auto_setting_from) {
892
+ chatIds.add(peerToChatId({ _: "peerUser", user_id: object.message.action.auto_setting_from }));
893
+ }
894
+ }
895
+ }
896
+ else {
897
+ if (object.message.reply_to) {
898
+ switch (object.message.reply_to._) {
899
+ case "messageReplyHeader":
900
+ if (object.message.reply_to.reply_to_peer_id) {
901
+ chatIds.add(peerToChatId(object.message.reply_to.reply_to_peer_id));
902
+ }
903
+ if (object.message.reply_to.reply_from) {
904
+ for (const chatId of this.#collectChatIds(object.message.reply_to.reply_from)) {
905
+ chatIds.add(chatId);
906
+ }
907
+ }
908
+ if (object.message.reply_to.quote_entities) {
909
+ for (const chatId of this.#collectChatIdsFromEntities(object.message.reply_to.quote_entities)) {
910
+ chatIds.add(chatId);
911
+ }
912
+ }
913
+ if (object.message.reply_to.reply_media) {
914
+ for (const chatId of this.#collectChatIds(object.message.reply_to.reply_media)) {
915
+ chatIds.add(chatId);
916
+ }
917
+ }
918
+ break;
919
+ case "messageReplyStoryHeader":
920
+ chatIds.add(peerToChatId(object.message.reply_to.peer));
921
+ }
922
+ }
923
+ if (object.message.fwd_from) {
924
+ for (const chatId of this.#collectChatIds(object.message.fwd_from)) {
925
+ chatIds.add(chatId);
926
+ }
927
+ }
928
+ if (object.message.via_bot_id) {
929
+ chatIds.add(peerToChatId({ _: "peerUser", user_id: object.message.via_bot_id }));
930
+ }
931
+ if (object.message.entities) {
932
+ for (const chatId of this.#collectChatIdsFromEntities(object.message.entities)) {
933
+ chatIds.add(chatId);
934
+ }
935
+ }
936
+ if (object.message.media) {
937
+ for (const chatId of this.#collectChatIds(object.message.media)) {
938
+ chatIds.add(chatId);
939
+ }
940
+ }
941
+ }
942
+ return chatIds;
943
+ }
944
+ #collectChatIdsFromEntities(entities) {
945
+ const chatIds = new Array();
946
+ for (const user_id of entities.filter((v) => Api.is("messageEntityMentionName", v)).map((v) => v.user_id)) {
947
+ chatIds.push(peerToChatId({ _: "peerUser", user_id }));
948
+ }
949
+ return chatIds;
950
+ }
296
951
  setUpdateHandler(handler) {
297
- __classPrivateFieldSet(this, _UpdateManager_updateHandler, handler, "f");
952
+ this.#updateHandler = handler;
298
953
  }
954
+ #openChats = new Map();
299
955
  async openChat(chatId) {
300
- const channel = await __classPrivateFieldGet(this, _UpdateManager_c, "f").getInputChannel(chatId);
956
+ const channel = await this.#c.getInputChannel(chatId);
301
957
  const channelId = channel.channel_id;
302
- if (__classPrivateFieldGet(this, _UpdateManager_openChats, "f").has(channelId)) {
958
+ if (this.#openChats.has(channelId)) {
303
959
  return;
304
960
  }
305
961
  const controller = new AbortController();
306
962
  const promise = Promise.resolve().then(async () => {
307
- const logger = __classPrivateFieldGet(this, _UpdateManager_LopenChat, "f").branch(Api.peerToChatId(channel) + "");
963
+ const logger = this.#LopenChat.branch(Api.peerToChatId(channel) + "");
308
964
  while (true) {
309
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").disconnected()) {
965
+ if (this.#c.disconnected()) {
310
966
  logger.debug("disconnected, stopping the loop");
311
- __classPrivateFieldGet(this, _UpdateManager_openChats, "f").delete(channelId);
967
+ this.#openChats.delete(channelId);
312
968
  break;
313
969
  }
314
- if (!__classPrivateFieldGet(this, _UpdateManager_openChats, "f").has(channelId)) {
970
+ if (!this.#openChats.has(channelId)) {
315
971
  const aborted = controller.signal.aborted;
316
972
  logger.debug(`closed${(aborted ? " (aborted)" : "")}, stopping the loop`);
317
973
  break;
318
974
  }
319
975
  try {
320
976
  const Ti = Date.now();
321
- const timeout = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_recoverChannelUpdateGap).call(this, channelId, "openChat");
977
+ const timeout = await this.#recoverChannelUpdateGap(channelId, "openChat");
322
978
  const dT = Date.now() - Ti;
323
979
  const delay = Math.max(timeout * 1_000 - dT, 0);
324
980
  logger.debug("timeout=", timeout, "delay=", delay, "dT=", dT);
@@ -337,20 +993,20 @@ export class UpdateManager {
337
993
  }
338
994
  }
339
995
  catch (err) {
340
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").disconnected()) {
996
+ if (this.#c.disconnected()) {
341
997
  continue; // breaks the loop
342
998
  }
343
- __classPrivateFieldGet(this, _UpdateManager_LopenChat, "f").error("An unexpected error occurred:", err);
999
+ this.#LopenChat.error("An unexpected error occurred:", err);
344
1000
  }
345
1001
  }
346
1002
  });
347
- __classPrivateFieldGet(this, _UpdateManager_openChats, "f").set(channelId, { controller, promise });
1003
+ this.#openChats.set(channelId, { controller, promise });
348
1004
  }
349
1005
  async closeChat(chatId) {
350
- const { channel_id } = await __classPrivateFieldGet(this, _UpdateManager_c, "f").getInputChannel(chatId);
351
- const openChat = __classPrivateFieldGet(this, _UpdateManager_openChats, "f").get(channel_id);
1006
+ const { channel_id } = await this.#c.getInputChannel(chatId);
1007
+ const openChat = this.#openChats.get(channel_id);
352
1008
  if (openChat) {
353
- __classPrivateFieldGet(this, _UpdateManager_openChats, "f").delete(channel_id);
1009
+ this.#openChats.delete(channel_id);
354
1010
  openChat.controller.abort();
355
1011
  }
356
1012
  else {
@@ -358,661 +1014,10 @@ export class UpdateManager {
358
1014
  }
359
1015
  }
360
1016
  closeAllChats() {
361
- for (const [channelId, openChat] of __classPrivateFieldGet(this, _UpdateManager_openChats, "f").entries()) {
362
- __classPrivateFieldGet(this, _UpdateManager_openChats, "f").delete(channelId);
1017
+ for (const [channelId, openChat] of this.#openChats.entries()) {
1018
+ this.#openChats.delete(channelId);
363
1019
  openChat.controller.abort();
364
1020
  }
365
1021
  }
366
1022
  }
367
- _a = UpdateManager, _UpdateManager_c = new WeakMap(), _UpdateManager_updateState = new WeakMap(), _UpdateManager_updateHandler = new WeakMap(), _UpdateManager_LrecoverUpdateGap = new WeakMap(), _UpdateManager_LrecoverChannelUpdateGap = new WeakMap(), _UpdateManager_L$handleUpdate = new WeakMap(), _UpdateManager_L$processUpdates = new WeakMap(), _UpdateManager_LfetchState = new WeakMap(), _UpdateManager_LopenChat = new WeakMap(), _UpdateManager_Lmin = new WeakMap(), _UpdateManager_defaultDropPendingUpdates = new WeakMap(), _UpdateManager_state = new WeakMap(), _UpdateManager_handleUpdateQueues = new WeakMap(), _UpdateManager_nonFirst = new WeakMap(), _UpdateManager_channelUpdateQueues = new WeakMap(), _UpdateManager_ptsUpdateQueue = new WeakMap(), _UpdateManager_qtsUpdateQueue = new WeakMap(), _UpdateManager_processUpdatesQueue = new WeakMap(), _UpdateManager_recoveringUpdateGap = new WeakMap(), _UpdateManager_recoverUpdateGapMutex = new WeakMap(), _UpdateManager_handleUpdatesSet = new WeakMap(), _UpdateManager_openChats = new WeakMap(), _UpdateManager_instances = new WeakSet(), _UpdateManager_mustDropPendingUpdates = async function _UpdateManager_mustDropPendingUpdates() {
368
- if (typeof __classPrivateFieldGet(this, _UpdateManager_c, "f").dropPendingUpdates === "boolean") {
369
- return __classPrivateFieldGet(this, _UpdateManager_c, "f").dropPendingUpdates;
370
- }
371
- if (__classPrivateFieldGet(this, _UpdateManager_defaultDropPendingUpdates, "f") == null) {
372
- __classPrivateFieldSet(this, _UpdateManager_defaultDropPendingUpdates, await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getAccountType() == "bot", "f");
373
- }
374
- return __classPrivateFieldGet(this, _UpdateManager_defaultDropPendingUpdates, "f");
375
- }, _UpdateManager_getState = async function _UpdateManager_getState() {
376
- if (await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_mustDropPendingUpdates).call(this)) {
377
- return __classPrivateFieldGet(this, _UpdateManager_state, "f") ?? null;
378
- }
379
- if (__classPrivateFieldGet(this, _UpdateManager_state, "f") !== undefined) {
380
- return __classPrivateFieldGet(this, _UpdateManager_state, "f");
381
- }
382
- const state = await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getState();
383
- return __classPrivateFieldSet(this, _UpdateManager_state, state, "f");
384
- }, _UpdateManager_setState = async function _UpdateManager_setState(state) {
385
- __classPrivateFieldSet(this, _UpdateManager_state, state, "f");
386
- if (!await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_mustDropPendingUpdates).call(this)) {
387
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setState(state);
388
- }
389
- }, _UpdateManager_extractMessages = function _UpdateManager_extractMessages(context) {
390
- const messages = new Array();
391
- if (Array.isArray(context)) {
392
- for (const item of context) {
393
- messages.push(...__classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_extractMessages).call(this, item));
394
- }
395
- }
396
- else if (Api.isOneOf(["updates", "updatesCombined"], context)) {
397
- messages.push(...__classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_extractMessages).call(this, context.updates));
398
- }
399
- else if (Api.isOneOf(["updates.difference", "updates.differenceSlice", "updates.channelDifference"], context)) {
400
- for (const message of context.new_messages) {
401
- if (Api.is("message", message)) {
402
- messages.push(message);
403
- }
404
- }
405
- messages.push(...__classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_extractMessages).call(this, context.other_updates));
406
- }
407
- else if (Api.isOneOf(["updateNewMessage", "updateNewChannelMessage", "updateEditMessage", "updateEditChannelMessage", "updateBotNewBusinessMessage", "updateBotNewBusinessMessage"], context)) {
408
- if (Api.is("message", context.message)) {
409
- messages.push(context.message);
410
- }
411
- }
412
- else if (Api.is("message", context)) {
413
- messages.push(context);
414
- }
415
- else if (context != null && typeof context === "object" && "messages" in context && Array.isArray(context.messages)) {
416
- for (const message of context.messages) {
417
- if (Api.is("message", message)) {
418
- messages.push(message);
419
- }
420
- }
421
- }
422
- return messages;
423
- }, _UpdateManager_extractMinPeerReferences = function _UpdateManager_extractMinPeerReferences(context) {
424
- const minPeerReferences = new Array();
425
- const messages = __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_extractMessages).call(this, context);
426
- for (const message of messages) {
427
- if (!message.from_id) {
428
- continue;
429
- }
430
- minPeerReferences.push({ chatId: Api.peerToChatId(message.peer_id), senderId: Api.peerToChatId(message.from_id), messageId: message.id });
431
- }
432
- return minPeerReferences;
433
- }, _UpdateManager_getChannelPtsWithDropPendingUpdatesCheck = async function _UpdateManager_getChannelPtsWithDropPendingUpdatesCheck(channelId) {
434
- if (!(await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_mustDropPendingUpdates).call(this))) {
435
- return await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getChannelPts(channelId);
436
- }
437
- const first = !__classPrivateFieldGet(this, _UpdateManager_nonFirst, "f").has(channelId);
438
- if (first) {
439
- __classPrivateFieldGet(this, _UpdateManager_nonFirst, "f").add(channelId);
440
- return null;
441
- }
442
- else {
443
- return await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getChannelPts(channelId);
444
- }
445
- }, _UpdateManager_checkGap = async function _UpdateManager_checkGap(pts, ptsCount) {
446
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
447
- if (localState.pts + ptsCount < pts) {
448
- await this.recoverUpdateGap("processUpdates[pts]");
449
- }
450
- }, _UpdateManager_checkGapQts = async function _UpdateManager_checkGapQts(qts) {
451
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
452
- if (localState.qts + _a.QTS_COUNT < qts) {
453
- await this.recoverUpdateGap("processUpdates[qts]");
454
- }
455
- }, _UpdateManager_checkChannelGap = async function _UpdateManager_checkChannelGap(channelId, pts, ptsCount) {
456
- let localPts = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getChannelPtsWithDropPendingUpdatesCheck).call(this, channelId);
457
- if (!localPts) {
458
- localPts = pts - ptsCount;
459
- }
460
- if (localPts + ptsCount < pts) {
461
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_recoverChannelUpdateGap).call(this, channelId, "processUpdates");
462
- }
463
- }, _UpdateManager_processChannelPtsUpdateInner = async function _UpdateManager_processChannelPtsUpdateInner(update, checkGap) {
464
- const channelId = Api.is("updateNewChannelMessage", update) || Api.is("updateEditChannelMessage", update) ? Api.as("peerChannel", update.message.peer_id).channel_id : update.channel_id;
465
- if (Api.is("updateChannelTooLong", update)) {
466
- if (update.pts != undefined) {
467
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setChannelPts(channelId, update.pts);
468
- }
469
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_recoverChannelUpdateGap).call(this, channelId, "updateChannelTooLong");
470
- return;
471
- }
472
- if (update.pts != 0) {
473
- const ptsCount = update.pts_count;
474
- if (checkGap) {
475
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_checkChannelGap).call(this, channelId, update.pts, ptsCount);
476
- }
477
- let currentPts = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getChannelPtsWithDropPendingUpdatesCheck).call(this, channelId);
478
- currentPts ??= update.pts - ptsCount;
479
- if (currentPts + ptsCount > update.pts) {
480
- return;
481
- }
482
- }
483
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").guaranteeUpdateDelivery) {
484
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setUpdate(channelId, update);
485
- }
486
- if (update.pts != 0) {
487
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setChannelPts(channelId, update.pts);
488
- }
489
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_queueUpdate).call(this, update, channelId, true);
490
- }, _UpdateManager_queueUpdate = function _UpdateManager_queueUpdate(update, boxId, pts) {
491
- this.getHandleUpdateQueue(boxId).add(async () => {
492
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").guaranteeUpdateDelivery && pts) {
493
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_handleStoredUpdates).call(this, boxId);
494
- }
495
- else {
496
- await (await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_handleUpdate).call(this, update))();
497
- }
498
- });
499
- }, _UpdateManager_processChannelPtsUpdate = function _UpdateManager_processChannelPtsUpdate(update, checkGap) {
500
- const channelId = Api.is("updateNewChannelMessage", update) || Api.is("updateEditChannelMessage", update) ? Api.as("peerChannel", update.message.peer_id).channel_id : update.channel_id;
501
- let queue = __classPrivateFieldGet(this, _UpdateManager_channelUpdateQueues, "f").get(channelId);
502
- if (queue == undefined) {
503
- queue = new Queue(`channelUpdates-${channelId}`);
504
- __classPrivateFieldGet(this, _UpdateManager_channelUpdateQueues, "f").set(channelId, queue);
505
- }
506
- queue.add(async () => {
507
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processChannelPtsUpdateInner).call(this, update, checkGap);
508
- });
509
- }, _UpdateManager_processPtsUpdateInner = async function _UpdateManager_processPtsUpdateInner(update, checkGap) {
510
- if (update.pts != 0 && checkGap) {
511
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_checkGap).call(this, update.pts, update.pts_count);
512
- if (await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_needsGetDifference).call(this, update)) {
513
- await this.recoverUpdateGap("needsGetDifference");
514
- }
515
- }
516
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
517
- if (localState.pts + update.pts_count > update.pts) {
518
- return;
519
- }
520
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").guaranteeUpdateDelivery) {
521
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setUpdate(_a.MAIN_BOX_ID, update);
522
- }
523
- if (update.pts != 0) {
524
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setUpdatePts).call(this, update.pts);
525
- }
526
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_queueUpdate).call(this, update, 1n, false);
527
- }, _UpdateManager_processPtsUpdate = function _UpdateManager_processPtsUpdate(update, checkGap) {
528
- __classPrivateFieldGet(this, _UpdateManager_ptsUpdateQueue, "f").add(async () => {
529
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processPtsUpdateInner).call(this, update, checkGap);
530
- });
531
- }, _UpdateManager_processQtsUpdateInner = async function _UpdateManager_processQtsUpdateInner(update, checkGap) {
532
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
533
- if (update.qts != 0) {
534
- if (checkGap) {
535
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_checkGapQts).call(this, update.qts);
536
- }
537
- if (localState.qts + _a.QTS_COUNT > update.qts) {
538
- return;
539
- }
540
- }
541
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").guaranteeUpdateDelivery) {
542
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setUpdate(_a.MAIN_BOX_ID, update);
543
- }
544
- if (update.qts != 0) {
545
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setUpdateQts).call(this, update.qts);
546
- }
547
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_queueUpdate).call(this, update, 0n, true);
548
- }, _UpdateManager_processQtsUpdate = function _UpdateManager_processQtsUpdate(update, checkGap) {
549
- __classPrivateFieldGet(this, _UpdateManager_qtsUpdateQueue, "f").add(async () => {
550
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processQtsUpdateInner).call(this, update, checkGap);
551
- });
552
- }, _UpdateManager_processUpdates = async function _UpdateManager_processUpdates(updates_, checkGap, call = null) {
553
- /// First, individual updates (Update[1]) are extracted from Updates.[2]
554
- ///
555
- /// If an updatesTooLong[3] was received, an update gap recovery is initiated and no further action will be taken.
556
- ///
557
- /// [1]: https://core.telegram.org/type/Update
558
- /// [2]: https://core.telegram.org/type/Updates
559
- /// [3]: https://core.telegram.org/constructor/updatesTooLong
560
- let updates;
561
- if (Api.is("updatesCombined", updates_) || Api.is("updates", updates_)) {
562
- updates = updates_.updates;
563
- const seq = updates_.seq;
564
- const seqStart = "seq_start" in updates_ ? updates_.seq_start : updates_.seq;
565
- if (checkGap) {
566
- if (seqStart == 0) {
567
- checkGap = false;
568
- __classPrivateFieldGet(this, _UpdateManager_L$processUpdates, "f").debug("seqStart=0");
569
- }
570
- else {
571
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
572
- const localSeq = localState.seq;
573
- if (localSeq + 1 == seqStart) {
574
- // The update sequence can be applied.
575
- localState.seq = seq;
576
- localState.date = updates_.date;
577
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setUpdateStateDate).call(this, updates_.date);
578
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, localState);
579
- }
580
- else if (localSeq + 1 > seqStart) {
581
- // The update sequence was already applied, and must be ignored.
582
- __classPrivateFieldGet(this, _UpdateManager_L$processUpdates, "f").debug("localSeq + 1 > seqStart");
583
- return;
584
- }
585
- else if (localSeq + 1 < seqStart) {
586
- // There's an updates gap that must be filled.
587
- await this.recoverUpdateGap("localSeq + 1 < seqStart");
588
- }
589
- }
590
- }
591
- }
592
- else if (Api.is("updateShort", updates_)) {
593
- updates = [updates_.update];
594
- }
595
- else if (Api.is("updateShortMessage", updates_)) {
596
- updates = [
597
- {
598
- _: "updateNewMessage",
599
- message: ({
600
- _: "message",
601
- out: updates_.out,
602
- mentioned: updates_.mentioned,
603
- media_unread: updates_.media_unread,
604
- silent: updates_.silent,
605
- id: updates_.id,
606
- from_id: updates_.out ? ({ _: "peerUser", user_id: BigInt(await __classPrivateFieldGet(this, _UpdateManager_c, "f").getSelfId()) }) : ({ _: "peerUser", user_id: updates_.user_id }),
607
- peer_id: ({ _: "peerUser", user_id: updates_.user_id }),
608
- message: updates_.message,
609
- date: updates_.date,
610
- fwd_from: updates_.fwd_from,
611
- via_bot_id: updates_.via_bot_id,
612
- reply_to: updates_.reply_to,
613
- entities: updates_.entities,
614
- ttl_period: updates_.ttl_period,
615
- }),
616
- pts: updates_.pts,
617
- pts_count: updates_.pts_count,
618
- },
619
- ];
620
- }
621
- else if (Api.is("updateShortChatMessage", updates_)) {
622
- updates = [
623
- {
624
- _: "updateNewMessage",
625
- message: ({
626
- _: "message",
627
- mentioned: updates_.mentioned,
628
- media_unread: updates_.media_unread,
629
- silent: updates_.silent,
630
- id: updates_.id,
631
- from_id: { _: "peerUser", user_id: updates_.from_id },
632
- peer_id: { _: "peerChat", chat_id: updates_.chat_id },
633
- fwd_from: updates_.fwd_from,
634
- via_bot_id: updates_.via_bot_id,
635
- reply_to: updates_.reply_to,
636
- date: updates_.date,
637
- message: updates_.message,
638
- entities: updates_.entities,
639
- ttl_period: updates_.ttl_period,
640
- }),
641
- pts: updates_.pts,
642
- pts_count: updates_.pts_count,
643
- },
644
- ];
645
- }
646
- else if (Api.is("updateShortSentMessage", updates_)) {
647
- if (!Api.is("messages.sendMessage", call)) {
648
- unreachable();
649
- }
650
- updates = [{
651
- _: "updateNewMessage",
652
- message: ({
653
- _: "message",
654
- out: updates_.out,
655
- silent: call.silent,
656
- id: updates_.id,
657
- from_id: { _: "peerUser", user_id: BigInt(await __classPrivateFieldGet(this, _UpdateManager_c, "f").getSelfId()) },
658
- peer_id: Api.inputPeerToPeer(call.peer),
659
- message: call.message,
660
- media: updates_.media,
661
- date: updates_.date,
662
- // reply_to: call.reply_to, // TODO?
663
- entities: updates_.entities,
664
- ttl_period: updates_.ttl_period,
665
- }),
666
- pts: updates_.pts,
667
- pts_count: updates_.pts_count,
668
- }];
669
- }
670
- else if (Api.is("updatesTooLong", updates_)) {
671
- await this.recoverUpdateGap("updatesTooLong");
672
- return;
673
- }
674
- else if (Api.isOfEnum("Update", updates_)) {
675
- updates = [updates_];
676
- }
677
- else {
678
- unreachable();
679
- }
680
- /// We process the updates when we are sure there is no gap.
681
- if (Api.is("updates", updates_) || Api.is("updatesCombined", updates_)) {
682
- await this.processChats(updates_.chats, updates_);
683
- await this.processUsers(updates_.users, updates_);
684
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setUpdateStateDate).call(this, updates_.date);
685
- }
686
- else if (Api.isOneOf([
687
- "updateShort",
688
- "updateShortMessage",
689
- "updateShortChatMessage",
690
- "updateShortSentMessage",
691
- ], updates_)) {
692
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setUpdateStateDate).call(this, updates_.date);
693
- }
694
- for (const update of updates) {
695
- if (Api.is("updatePtsChanged", update)) {
696
- await this.fetchState("updatePtsChanged");
697
- if (__classPrivateFieldGet(this, _UpdateManager_updateState, "f")) {
698
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, __classPrivateFieldGet(this, _UpdateManager_updateState, "f"));
699
- }
700
- else {
701
- unreachable();
702
- }
703
- }
704
- else if (_a.isPtsUpdate(update)) {
705
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processPtsUpdate).call(this, update, checkGap);
706
- }
707
- else if (_a.isChannelPtsUpdate(update)) {
708
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processChannelPtsUpdate).call(this, update, checkGap);
709
- }
710
- else if (_a.isQtsUpdate(update)) {
711
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processQtsUpdate).call(this, update, checkGap);
712
- }
713
- else {
714
- __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_queueUpdate).call(this, update, 0n, false);
715
- }
716
- }
717
- }, _UpdateManager_setUpdateStateDate = async function _UpdateManager_setUpdateStateDate(date) {
718
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
719
- localState.date = date;
720
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, localState);
721
- }, _UpdateManager_setUpdatePts = async function _UpdateManager_setUpdatePts(pts) {
722
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
723
- localState.pts = pts;
724
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, localState);
725
- }, _UpdateManager_setUpdateQts = async function _UpdateManager_setUpdateQts(qts) {
726
- const localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getLocalState).call(this);
727
- localState.qts = qts;
728
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, localState);
729
- }, _UpdateManager_getLocalState = async function _UpdateManager_getLocalState() {
730
- let localState = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_getState).call(this);
731
- if (!localState) {
732
- if (__classPrivateFieldGet(this, _UpdateManager_updateState, "f")) {
733
- localState = __classPrivateFieldGet(this, _UpdateManager_updateState, "f");
734
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, localState);
735
- }
736
- else {
737
- await this.fetchState("getLocalState");
738
- if (__classPrivateFieldGet(this, _UpdateManager_updateState, "f")) {
739
- localState = __classPrivateFieldGet(this, _UpdateManager_updateState, "f");
740
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_setState).call(this, localState);
741
- }
742
- else {
743
- unreachable();
744
- }
745
- }
746
- }
747
- return localState;
748
- }, _UpdateManager_recoverChannelUpdateGap = async function _UpdateManager_recoverChannelUpdateGap(channelId, source) {
749
- let lastTimeout = 1;
750
- __classPrivateFieldGet(this, _UpdateManager_LrecoverChannelUpdateGap, "f").debug(`recovering channel update gap [${channelId}, ${source}]`);
751
- const pts_ = await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getChannelPts(channelId);
752
- let pts = pts_ == null ? 1 : pts_;
753
- let retryIn = 5;
754
- while (true) {
755
- const { access_hash } = await __classPrivateFieldGet(this, _UpdateManager_c, "f").getInputPeer(ZERO_CHANNEL_ID + -Number(channelId)).then((v) => Api.as("inputPeerChannel", v));
756
- let difference;
757
- try {
758
- difference = await __classPrivateFieldGet(this, _UpdateManager_c, "f").invoke({
759
- _: "updates.getChannelDifference",
760
- pts,
761
- channel: { _: "inputChannel", channel_id: channelId, access_hash },
762
- filter: { _: "channelMessagesFilterEmpty" },
763
- limit: await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getAccountType() == "user" ? CHANNEL_DIFFERENCE_LIMIT_USER : CHANNEL_DIFFERENCE_LIMIT_BOT,
764
- });
765
- lastTimeout = difference.timeout ?? 1;
766
- }
767
- catch (err) {
768
- if (err instanceof PersistentTimestampInvalid) {
769
- await delay(retryIn * SECOND);
770
- retryIn += 5;
771
- if (retryIn > 60) {
772
- retryIn = 60;
773
- }
774
- continue;
775
- }
776
- else {
777
- throw err;
778
- }
779
- }
780
- if (Api.is("updates.channelDifference", difference)) {
781
- await this.processChats(difference.chats, difference);
782
- await this.processUsers(difference.users, difference);
783
- for (const message of difference.new_messages) {
784
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processUpdates).call(this, { _: "updateNewChannelMessage", message, pts: 0, pts_count: 0 }, false);
785
- }
786
- for (const update of difference.other_updates) {
787
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processUpdates).call(this, update, false);
788
- }
789
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.setChannelPts(channelId, difference.pts);
790
- __classPrivateFieldGet(this, _UpdateManager_LrecoverChannelUpdateGap, "f").debug(`recovered from update gap [${channelId}, ${source}]`, channelId, source);
791
- break;
792
- }
793
- else if (Api.is("updates.channelDifferenceTooLong", difference)) {
794
- // TODO: invalidate messages
795
- __classPrivateFieldGet(this, _UpdateManager_LrecoverChannelUpdateGap, "f").debug("received channelDifferenceTooLong");
796
- await this.processChats(difference.chats, difference);
797
- await this.processUsers(difference.users, difference);
798
- for (const message of difference.messages) {
799
- await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_processUpdates).call(this, { _: "updateNewChannelMessage", message, pts: 0, pts_count: 0 }, false);
800
- }
801
- const pts_ = Api.as("dialog", difference.dialog).pts;
802
- if (pts_ != undefined) {
803
- pts = pts_;
804
- }
805
- else {
806
- unreachable();
807
- }
808
- __classPrivateFieldGet(this, _UpdateManager_LrecoverChannelUpdateGap, "f").debug("processed channelDifferenceTooLong");
809
- }
810
- else if (Api.is("updates.channelDifferenceEmpty", difference)) {
811
- __classPrivateFieldGet(this, _UpdateManager_LrecoverChannelUpdateGap, "f").debug("there was no update gap");
812
- break;
813
- }
814
- }
815
- return lastTimeout;
816
- }, _UpdateManager_handleStoredUpdates = async function _UpdateManager_handleStoredUpdates(boxId) {
817
- if (__classPrivateFieldGet(this, _UpdateManager_handleUpdatesSet, "f").has(boxId)) {
818
- return;
819
- }
820
- __classPrivateFieldGet(this, _UpdateManager_handleUpdatesSet, "f").add(boxId);
821
- do {
822
- const maybeUpdate = await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.getFirstUpdate(boxId);
823
- if (maybeUpdate == null) {
824
- break;
825
- }
826
- const [key, update] = maybeUpdate;
827
- for (let i = 0; i < 100; ++i) {
828
- try {
829
- const handle = await __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_handleUpdate).call(this, update);
830
- handle: for (let i = 0; i < 2; ++i) {
831
- try {
832
- await handle();
833
- break handle;
834
- }
835
- catch {
836
- continue handle;
837
- }
838
- }
839
- break;
840
- }
841
- catch (err) {
842
- __classPrivateFieldGet(this, _UpdateManager_L$handleUpdate, "f").error(err);
843
- }
844
- }
845
- await __classPrivateFieldGet(this, _UpdateManager_c, "f").storage.set(key, null);
846
- } while (true);
847
- __classPrivateFieldGet(this, _UpdateManager_handleUpdatesSet, "f").delete(boxId);
848
- }, _UpdateManager_handleUpdate = function _UpdateManager_handleUpdate(update) {
849
- const handler = __classPrivateFieldGet(this, _UpdateManager_updateHandler, "f");
850
- if (handler) {
851
- return handler(update);
852
- }
853
- else {
854
- return Promise.resolve(() => Promise.resolve());
855
- }
856
- }, _UpdateManager_needsGetDifference = async function _UpdateManager_needsGetDifference(update) {
857
- const chatIds = __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIds).call(this, update);
858
- if (!chatIds.size) {
859
- return false;
860
- }
861
- return (await Promise.all(chatIds.values().map((v) => __classPrivateFieldGet(this, _UpdateManager_c, "f").messageStorage.getEntity(v)))).some((v) => !v);
862
- }, _UpdateManager_collectChatIds = function _UpdateManager_collectChatIds(object) {
863
- const chatIds = new Set();
864
- if (Api.is("messageFwdHeader", object)) {
865
- if (object.from_id) {
866
- chatIds.add(peerToChatId(object.from_id));
867
- }
868
- if (object.saved_from_peer) {
869
- chatIds.add(peerToChatId(object.saved_from_peer));
870
- }
871
- return chatIds;
872
- }
873
- if (Api.isOfEnum("MessageMedia", object)) {
874
- switch (object._) {
875
- case "messageMediaContact":
876
- if (object.user_id) {
877
- chatIds.add(peerToChatId({ _: "peerUser", user_id: object.user_id }));
878
- }
879
- break;
880
- case "messageMediaStory":
881
- chatIds.add(peerToChatId(object.peer));
882
- break;
883
- case "messageMediaGiveaway":
884
- for (const chatId of object.channels.map((v) => peerToChatId({ _: "peerChannel", channel_id: v }))) {
885
- chatIds.add(chatId);
886
- }
887
- break;
888
- case "messageMediaGiveawayResults":
889
- chatIds.add(peerToChatId({ _: "peerChannel", channel_id: object.channel_id }));
890
- for (const chatId of object.winners.map((user_id) => peerToChatId({ _: "peerUser", user_id }))) {
891
- chatIds.add(chatId);
892
- }
893
- }
894
- return chatIds;
895
- }
896
- // messsages
897
- if (!("message" in object)) {
898
- return chatIds;
899
- }
900
- if (Api.is("messageEmpty", object.message)) {
901
- return chatIds;
902
- }
903
- chatIds.add(peerToChatId(object.message.peer_id));
904
- if (object.message.from_id) {
905
- chatIds.add(peerToChatId(object.message.from_id));
906
- }
907
- if (Api.is("messageService", object.message)) {
908
- switch (object.message.action._) {
909
- case "messageActionChatCreate":
910
- case "messageActionChatAddUser":
911
- case "messageActionInviteToGroupCall":
912
- for (const user_id of object.message.action.users) {
913
- chatIds.add(peerToChatId({ _: "peerUser", user_id }));
914
- }
915
- break;
916
- case "messageActionChatDeleteUser":
917
- chatIds.add(peerToChatId({ _: "peerUser", user_id: object.message.action.user_id }));
918
- break;
919
- case "messageActionChatMigrateTo":
920
- chatIds.add(peerToChatId({ _: "peerChannel", channel_id: object.message.action.channel_id }));
921
- break;
922
- case "messageActionChannelMigrateFrom":
923
- chatIds.add(peerToChatId({ _: "peerChat", chat_id: object.message.action.chat_id }));
924
- break;
925
- case "messageActionConferenceCall":
926
- if (object.message.action.other_participants) {
927
- for (const participant of object.message.action.other_participants) {
928
- chatIds.add(peerToChatId(participant));
929
- }
930
- }
931
- break;
932
- case "messageActionPaymentRefunded":
933
- chatIds.add(peerToChatId(object.message.action.peer));
934
- break;
935
- case "messageActionGiftCode":
936
- if (object.message.action.boost_peer) {
937
- chatIds.add(peerToChatId(object.message.action.boost_peer));
938
- }
939
- break;
940
- case "messageActionRequestedPeer":
941
- if (__classPrivateFieldGet(this, _UpdateManager_c, "f").storage.accountType === "user") {
942
- for (const peer of object.message.action.peers) {
943
- chatIds.add(peerToChatId(peer));
944
- }
945
- }
946
- break;
947
- case "messageActionSetMessagesTTL":
948
- if (object.message.action.auto_setting_from) {
949
- chatIds.add(peerToChatId({ _: "peerUser", user_id: object.message.action.auto_setting_from }));
950
- }
951
- }
952
- }
953
- else {
954
- if (object.message.reply_to) {
955
- switch (object.message.reply_to._) {
956
- case "messageReplyHeader":
957
- if (object.message.reply_to.reply_to_peer_id) {
958
- chatIds.add(peerToChatId(object.message.reply_to.reply_to_peer_id));
959
- }
960
- if (object.message.reply_to.reply_from) {
961
- for (const chatId of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIds).call(this, object.message.reply_to.reply_from)) {
962
- chatIds.add(chatId);
963
- }
964
- }
965
- if (object.message.reply_to.quote_entities) {
966
- for (const chatId of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIdsFromEntities).call(this, object.message.reply_to.quote_entities)) {
967
- chatIds.add(chatId);
968
- }
969
- }
970
- if (object.message.reply_to.reply_media) {
971
- for (const chatId of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIds).call(this, object.message.reply_to.reply_media)) {
972
- chatIds.add(chatId);
973
- }
974
- }
975
- break;
976
- case "messageReplyStoryHeader":
977
- chatIds.add(peerToChatId(object.message.reply_to.peer));
978
- }
979
- }
980
- if (object.message.fwd_from) {
981
- for (const chatId of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIds).call(this, object.message.fwd_from)) {
982
- chatIds.add(chatId);
983
- }
984
- }
985
- if (object.message.via_bot_id) {
986
- chatIds.add(peerToChatId({ _: "peerUser", user_id: object.message.via_bot_id }));
987
- }
988
- if (object.message.entities) {
989
- for (const chatId of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIdsFromEntities).call(this, object.message.entities)) {
990
- chatIds.add(chatId);
991
- }
992
- }
993
- if (object.message.media) {
994
- for (const chatId of __classPrivateFieldGet(this, _UpdateManager_instances, "m", _UpdateManager_collectChatIds).call(this, object.message.media)) {
995
- chatIds.add(chatId);
996
- }
997
- }
998
- }
999
- return chatIds;
1000
- }, _UpdateManager_collectChatIdsFromEntities = function _UpdateManager_collectChatIdsFromEntities(entities) {
1001
- const chatIds = new Array();
1002
- for (const user_id of entities.filter((v) => Api.is("messageEntityMentionName", v)).map((v) => v.user_id)) {
1003
- chatIds.push(peerToChatId({ _: "peerUser", user_id }));
1004
- }
1005
- return chatIds;
1006
- };
1007
- Object.defineProperty(UpdateManager, "QTS_COUNT", {
1008
- enumerable: true,
1009
- configurable: true,
1010
- writable: true,
1011
- value: 1
1012
- });
1013
- Object.defineProperty(UpdateManager, "MAIN_BOX_ID", {
1014
- enumerable: true,
1015
- configurable: true,
1016
- writable: true,
1017
- value: 0n
1018
- });
1023
+ _a = UpdateManager;