@mtcute/core 0.7.2 → 0.8.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 (1132) hide show
  1. package/README.md +26 -3
  2. package/cjs/highlevel/base.d.ts +3 -1
  3. package/cjs/highlevel/base.js +18 -0
  4. package/cjs/highlevel/base.js.map +1 -1
  5. package/cjs/highlevel/client.d.ts +23 -10
  6. package/cjs/highlevel/client.js +26 -19
  7. package/cjs/highlevel/client.js.map +1 -1
  8. package/cjs/highlevel/client.types.d.ts +14 -0
  9. package/cjs/highlevel/client.types.js.map +1 -1
  10. package/cjs/highlevel/index.d.ts +0 -2
  11. package/cjs/highlevel/index.js +0 -2
  12. package/cjs/highlevel/index.js.map +1 -1
  13. package/cjs/highlevel/methods/_imports.js.map +1 -1
  14. package/cjs/highlevel/methods/_init.js +4 -29
  15. package/cjs/highlevel/methods/_init.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/get-callback-answer.js +2 -2
  17. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  18. package/cjs/highlevel/methods/dialogs/create-folder.js +1 -1
  19. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  20. package/cjs/highlevel/methods/dialogs/edit-folder.js +1 -1
  21. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  22. package/cjs/highlevel/methods/dialogs/find-folder.js +1 -1
  23. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  24. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +1 -1
  25. package/cjs/highlevel/methods/dialogs/get-folders.js +1 -1
  26. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  27. package/cjs/highlevel/methods/files/download-file.d.ts +1 -10
  28. package/cjs/highlevel/methods/files/download-file.js +1 -32
  29. package/cjs/highlevel/methods/files/download-file.js.map +1 -1
  30. package/cjs/highlevel/methods/files/download-iterable.js +2 -1
  31. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  32. package/cjs/highlevel/methods/files/download-node-stream.js +4 -0
  33. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -0
  34. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  35. package/cjs/highlevel/methods/files/normalize-input-media.js +2 -1
  36. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  37. package/cjs/highlevel/methods/files/upload-file.d.ts +0 -3
  38. package/cjs/highlevel/methods/files/upload-file.js +17 -13
  39. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  40. package/cjs/highlevel/methods/messages/find-in-update.js +23 -8
  41. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  42. package/cjs/highlevel/methods/messages/send-media-group.d.ts +1 -1
  43. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  44. package/cjs/highlevel/methods/messages/send-media.d.ts +2 -2
  45. package/cjs/highlevel/methods/messages/send-media.js +5 -4
  46. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  47. package/cjs/highlevel/methods/messages/send-text.d.ts +1 -1
  48. package/cjs/highlevel/methods/messages/send-text.js +7 -6
  49. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  50. package/cjs/highlevel/methods/misc/with-params.d.ts +10 -0
  51. package/cjs/highlevel/methods/misc/with-params.js +32 -0
  52. package/cjs/highlevel/methods/misc/with-params.js.map +1 -0
  53. package/cjs/highlevel/methods.d.ts +13 -1
  54. package/cjs/highlevel/methods.js +4 -6
  55. package/cjs/highlevel/methods.js.map +1 -1
  56. package/cjs/highlevel/types/bots/command-scope/index.d.ts +10 -0
  57. package/cjs/highlevel/types/bots/command-scope/index.js +29 -0
  58. package/cjs/highlevel/types/bots/command-scope/index.js.map +1 -0
  59. package/cjs/highlevel/types/bots/command-scope/inner.d.ts +54 -0
  60. package/cjs/highlevel/types/bots/command-scope/inner.js +76 -0
  61. package/cjs/highlevel/types/bots/command-scope/inner.js.map +1 -0
  62. package/cjs/highlevel/types/bots/index.d.ts +4 -4
  63. package/cjs/highlevel/types/bots/index.js +4 -4
  64. package/cjs/highlevel/types/bots/index.js.map +1 -1
  65. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +43 -0
  66. package/cjs/highlevel/types/bots/inline-message/factories.js +175 -0
  67. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -0
  68. package/cjs/highlevel/types/bots/inline-message/index.d.ts +3 -0
  69. package/cjs/highlevel/types/bots/inline-message/index.js +33 -0
  70. package/cjs/highlevel/types/bots/inline-message/index.js.map +1 -0
  71. package/{esm/highlevel/types/bots/input/input-inline-message.d.ts → cjs/highlevel/types/bots/inline-message/types.d.ts} +2 -45
  72. package/cjs/highlevel/types/bots/inline-message/types.js +3 -0
  73. package/cjs/highlevel/types/bots/inline-message/types.js.map +1 -0
  74. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +94 -0
  75. package/cjs/highlevel/types/bots/inline-result/factories.js +486 -0
  76. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -0
  77. package/cjs/highlevel/types/bots/inline-result/index.d.ts +3 -0
  78. package/cjs/highlevel/types/bots/inline-result/index.js +33 -0
  79. package/cjs/highlevel/types/bots/inline-result/index.js.map +1 -0
  80. package/{esm/highlevel/types/bots/input/input-inline-result.d.ts → cjs/highlevel/types/bots/inline-result/types.d.ts} +1 -95
  81. package/cjs/highlevel/types/bots/inline-result/types.js +3 -0
  82. package/cjs/highlevel/types/bots/inline-result/types.js.map +1 -0
  83. package/cjs/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
  84. package/cjs/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
  85. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -0
  86. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +195 -0
  87. package/cjs/highlevel/types/bots/keyboards/factories.js +366 -0
  88. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -0
  89. package/cjs/highlevel/types/bots/keyboards/index.d.ts +14 -0
  90. package/cjs/highlevel/types/bots/keyboards/index.js +33 -0
  91. package/cjs/highlevel/types/bots/keyboards/index.js.map +1 -0
  92. package/cjs/highlevel/types/bots/keyboards/types.d.ts +34 -0
  93. package/cjs/highlevel/types/bots/keyboards/types.js +3 -0
  94. package/cjs/highlevel/types/bots/keyboards/types.js.map +1 -0
  95. package/cjs/highlevel/types/media/document.js +3 -2
  96. package/cjs/highlevel/types/media/document.js.map +1 -1
  97. package/cjs/highlevel/types/media/index.d.ts +1 -1
  98. package/cjs/highlevel/types/media/index.js +1 -1
  99. package/cjs/highlevel/types/media/index.js.map +1 -1
  100. package/cjs/highlevel/types/media/input-media/factories.d.ts +141 -0
  101. package/cjs/highlevel/types/media/input-media/factories.js +250 -0
  102. package/cjs/highlevel/types/media/input-media/factories.js.map +1 -0
  103. package/cjs/highlevel/types/media/input-media/index.d.ts +3 -0
  104. package/cjs/highlevel/types/media/input-media/index.js +33 -0
  105. package/cjs/highlevel/types/media/input-media/index.js.map +1 -0
  106. package/cjs/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
  107. package/cjs/highlevel/types/media/input-media/types.js +3 -0
  108. package/cjs/highlevel/types/media/input-media/types.js.map +1 -0
  109. package/cjs/highlevel/types/media/thumbnail.js +5 -4
  110. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  111. package/cjs/highlevel/types/messages/message.d.ts +1 -1
  112. package/cjs/highlevel/types/messages/message.js +3 -3
  113. package/cjs/highlevel/types/messages/message.js.map +1 -1
  114. package/cjs/highlevel/types/misc/index.d.ts +1 -1
  115. package/cjs/highlevel/types/misc/index.js +1 -1
  116. package/cjs/highlevel/types/misc/index.js.map +1 -1
  117. package/cjs/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
  118. package/cjs/highlevel/types/misc/input-privacy-rule/allow.js +36 -0
  119. package/cjs/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
  120. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
  121. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js +31 -0
  122. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
  123. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
  124. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js +32 -0
  125. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
  126. package/cjs/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
  127. package/cjs/highlevel/types/misc/input-privacy-rule/index.js +33 -0
  128. package/cjs/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
  129. package/cjs/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
  130. package/cjs/highlevel/types/misc/input-privacy-rule/types.js +3 -0
  131. package/cjs/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
  132. package/cjs/highlevel/types/peers/chat-photo.js +3 -2
  133. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  134. package/cjs/highlevel/types/updates/callback-query.js +2 -2
  135. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  136. package/cjs/highlevel/types/updates/user-status-update.js +1 -1
  137. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  138. package/cjs/highlevel/updates/manager.d.ts +5 -3
  139. package/cjs/highlevel/updates/manager.js +81 -67
  140. package/cjs/highlevel/updates/manager.js.map +1 -1
  141. package/cjs/highlevel/utils/convert-file-id.js +7 -6
  142. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  143. package/cjs/highlevel/utils/file-utils.js +8 -4
  144. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  145. package/cjs/highlevel/utils/inline-utils.js +3 -2
  146. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  147. package/cjs/highlevel/utils/inspectable.d.ts +1 -1
  148. package/cjs/highlevel/utils/inspectable.js +3 -2
  149. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  150. package/cjs/highlevel/utils/memoize.d.ts +1 -1
  151. package/cjs/highlevel/utils/memoize.js +1 -0
  152. package/cjs/highlevel/utils/memoize.js.map +1 -1
  153. package/cjs/highlevel/utils/stream-utils.d.ts +0 -2
  154. package/cjs/highlevel/utils/stream-utils.js +1 -28
  155. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  156. package/cjs/highlevel/utils/string-session.js +3 -2
  157. package/cjs/highlevel/utils/string-session.js.map +1 -1
  158. package/cjs/highlevel/worker/index.d.ts +3 -0
  159. package/cjs/highlevel/{types/bots/input → worker}/index.js +3 -2
  160. package/cjs/highlevel/worker/index.js.map +1 -0
  161. package/cjs/highlevel/worker/port.d.ts +6 -3
  162. package/cjs/highlevel/worker/port.js +8 -2
  163. package/cjs/highlevel/worker/port.js.map +1 -1
  164. package/cjs/highlevel/worker/protocol.d.ts +5 -1
  165. package/cjs/highlevel/worker/protocol.js.map +1 -1
  166. package/cjs/highlevel/worker/worker.d.ts +11 -4
  167. package/cjs/highlevel/worker/worker.js +53 -49
  168. package/cjs/highlevel/worker/worker.js.map +1 -1
  169. package/cjs/network/authorization.js +1 -0
  170. package/cjs/network/authorization.js.map +1 -1
  171. package/cjs/network/client.d.ts +4 -4
  172. package/cjs/network/client.js +3 -1
  173. package/cjs/network/client.js.map +1 -1
  174. package/cjs/network/mtproto-session.d.ts +1 -0
  175. package/cjs/network/mtproto-session.js +7 -1
  176. package/cjs/network/mtproto-session.js.map +1 -1
  177. package/cjs/network/multi-session-connection.d.ts +1 -0
  178. package/cjs/network/multi-session-connection.js +6 -0
  179. package/cjs/network/multi-session-connection.js.map +1 -1
  180. package/cjs/network/network-manager.d.ts +5 -1
  181. package/cjs/network/network-manager.js +24 -15
  182. package/cjs/network/network-manager.js.map +1 -1
  183. package/cjs/network/persistent-connection.d.ts +3 -0
  184. package/cjs/network/persistent-connection.js +23 -1
  185. package/cjs/network/persistent-connection.js.map +1 -1
  186. package/cjs/network/session-connection.d.ts +2 -0
  187. package/cjs/network/session-connection.js +21 -7
  188. package/cjs/network/session-connection.js.map +1 -1
  189. package/cjs/network/transports/index.d.ts +0 -3
  190. package/cjs/network/transports/index.js +0 -4
  191. package/cjs/network/transports/index.js.map +1 -1
  192. package/cjs/platform.d.ts +18 -0
  193. package/cjs/platform.js +36 -0
  194. package/cjs/platform.js.map +1 -0
  195. package/cjs/storage/index.d.ts +1 -2
  196. package/cjs/storage/index.js +1 -2
  197. package/cjs/storage/index.js.map +1 -1
  198. package/{esm/storage/providers → cjs/storage}/memory/driver.d.ts +1 -1
  199. package/cjs/storage/memory/driver.js.map +1 -0
  200. package/{esm/storage/providers → cjs/storage}/memory/index.d.ts +2 -2
  201. package/cjs/storage/memory/index.js.map +1 -0
  202. package/cjs/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
  203. package/cjs/storage/memory/repository/auth-keys.js.map +1 -0
  204. package/{esm/storage/providers → cjs/storage}/memory/repository/kv.d.ts +1 -1
  205. package/cjs/storage/memory/repository/kv.js.map +1 -0
  206. package/{esm/storage/providers → cjs/storage}/memory/repository/peers.d.ts +1 -1
  207. package/cjs/storage/memory/repository/peers.js.map +1 -0
  208. package/{esm/storage/providers → cjs/storage}/memory/repository/ref-messages.d.ts +1 -1
  209. package/cjs/storage/memory/repository/ref-messages.js.map +1 -0
  210. package/cjs/storage/storage.js +2 -1
  211. package/cjs/storage/storage.js.map +1 -1
  212. package/cjs/utils/binary/asn1-parser.js +3 -3
  213. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  214. package/cjs/utils/crypto/abstract.d.ts +0 -1
  215. package/cjs/utils/crypto/abstract.js.map +1 -1
  216. package/cjs/utils/crypto/index.d.ts +0 -2
  217. package/cjs/utils/crypto/index.js +0 -3
  218. package/cjs/utils/crypto/index.js.map +1 -1
  219. package/cjs/utils/crypto/keys.js +5 -3
  220. package/cjs/utils/crypto/keys.js.map +1 -1
  221. package/cjs/utils/crypto/password.js +3 -3
  222. package/cjs/utils/crypto/password.js.map +1 -1
  223. package/cjs/utils/dcs.d.ts +4 -0
  224. package/cjs/utils/dcs.js +0 -4
  225. package/cjs/utils/dcs.js.map +1 -1
  226. package/cjs/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
  227. package/cjs/utils/error-reporting.js.map +1 -0
  228. package/cjs/utils/index.d.ts +4 -1
  229. package/cjs/utils/index.js +6 -1
  230. package/cjs/utils/index.js.map +1 -1
  231. package/cjs/utils/links/common.js +1 -1
  232. package/cjs/utils/links/common.js.map +1 -1
  233. package/cjs/utils/logger.d.ts +1 -0
  234. package/cjs/utils/logger.js +9 -22
  235. package/cjs/utils/logger.js.map +1 -1
  236. package/esm/highlevel/base.d.ts +3 -1
  237. package/esm/highlevel/base.js +18 -0
  238. package/esm/highlevel/base.js.map +1 -1
  239. package/esm/highlevel/client.d.ts +23 -10
  240. package/esm/highlevel/client.js +12 -19
  241. package/esm/highlevel/client.js.map +1 -1
  242. package/esm/highlevel/client.types.d.ts +14 -0
  243. package/esm/highlevel/client.types.js.map +1 -1
  244. package/esm/highlevel/index.d.ts +0 -2
  245. package/esm/highlevel/index.js +0 -2
  246. package/esm/highlevel/index.js.map +1 -1
  247. package/esm/highlevel/methods/_imports.js.map +1 -1
  248. package/esm/highlevel/methods/_init.js +4 -29
  249. package/esm/highlevel/methods/_init.js.map +1 -1
  250. package/esm/highlevel/methods/bots/get-callback-answer.js +2 -2
  251. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  252. package/esm/highlevel/methods/dialogs/create-folder.js +1 -1
  253. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  254. package/esm/highlevel/methods/dialogs/edit-folder.js +1 -1
  255. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  256. package/esm/highlevel/methods/dialogs/find-folder.js +1 -1
  257. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  258. package/esm/highlevel/methods/dialogs/get-folders.d.ts +1 -1
  259. package/esm/highlevel/methods/dialogs/get-folders.js +1 -1
  260. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  261. package/esm/highlevel/methods/files/download-file.d.ts +1 -10
  262. package/esm/highlevel/methods/files/download-file.js +2 -30
  263. package/esm/highlevel/methods/files/download-file.js.map +1 -1
  264. package/esm/highlevel/methods/files/download-iterable.js +2 -1
  265. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  266. package/esm/highlevel/methods/files/download-node-stream.js +3 -0
  267. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -0
  268. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  269. package/esm/highlevel/methods/files/normalize-input-media.js +2 -1
  270. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  271. package/esm/highlevel/methods/files/upload-file.d.ts +0 -3
  272. package/esm/highlevel/methods/files/upload-file.js +17 -13
  273. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  274. package/esm/highlevel/methods/messages/find-in-update.js +23 -8
  275. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  276. package/esm/highlevel/methods/messages/send-media-group.d.ts +1 -1
  277. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  278. package/esm/highlevel/methods/messages/send-media.d.ts +2 -2
  279. package/esm/highlevel/methods/messages/send-media.js +4 -3
  280. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  281. package/esm/highlevel/methods/messages/send-text.d.ts +1 -1
  282. package/esm/highlevel/methods/messages/send-text.js +4 -3
  283. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  284. package/esm/highlevel/methods/misc/with-params.d.ts +10 -0
  285. package/esm/highlevel/methods/misc/with-params.js +28 -0
  286. package/esm/highlevel/methods/misc/with-params.js.map +1 -0
  287. package/esm/highlevel/methods.d.ts +13 -1
  288. package/esm/highlevel/methods.js +0 -1
  289. package/esm/highlevel/methods.js.map +1 -1
  290. package/esm/highlevel/types/auth/sent-code.js +4 -3
  291. package/esm/highlevel/types/bots/command-scope/index.d.ts +10 -0
  292. package/esm/highlevel/types/bots/command-scope/index.js +11 -0
  293. package/esm/highlevel/types/bots/command-scope/index.js.map +1 -0
  294. package/esm/highlevel/types/bots/command-scope/inner.d.ts +54 -0
  295. package/esm/highlevel/types/bots/command-scope/inner.js +69 -0
  296. package/esm/highlevel/types/bots/command-scope/inner.js.map +1 -0
  297. package/esm/highlevel/types/bots/game-high-score.js +5 -4
  298. package/esm/highlevel/types/bots/index.d.ts +4 -4
  299. package/esm/highlevel/types/bots/index.js +4 -4
  300. package/esm/highlevel/types/bots/index.js.map +1 -1
  301. package/esm/highlevel/types/bots/inline-message/factories.d.ts +43 -0
  302. package/esm/highlevel/types/bots/inline-message/factories.js +163 -0
  303. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -0
  304. package/esm/highlevel/types/bots/inline-message/index.d.ts +3 -0
  305. package/esm/highlevel/types/bots/inline-message/index.js +4 -0
  306. package/esm/highlevel/types/bots/inline-message/index.js.map +1 -0
  307. package/{cjs/highlevel/types/bots/input/input-inline-message.d.ts → esm/highlevel/types/bots/inline-message/types.d.ts} +2 -45
  308. package/esm/highlevel/types/bots/inline-message/types.js +2 -0
  309. package/esm/highlevel/types/bots/inline-message/types.js.map +1 -0
  310. package/esm/highlevel/types/bots/inline-result/factories.d.ts +94 -0
  311. package/esm/highlevel/types/bots/inline-result/factories.js +470 -0
  312. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -0
  313. package/esm/highlevel/types/bots/inline-result/index.d.ts +3 -0
  314. package/esm/highlevel/types/bots/inline-result/index.js +4 -0
  315. package/esm/highlevel/types/bots/inline-result/index.js.map +1 -0
  316. package/{cjs/highlevel/types/bots/input/input-inline-result.d.ts → esm/highlevel/types/bots/inline-result/types.d.ts} +1 -95
  317. package/esm/highlevel/types/bots/inline-result/types.js +2 -0
  318. package/esm/highlevel/types/bots/inline-result/types.js.map +1 -0
  319. package/esm/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
  320. package/esm/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
  321. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -0
  322. package/esm/highlevel/types/bots/keyboards/factories.d.ts +195 -0
  323. package/esm/highlevel/types/bots/keyboards/factories.js +341 -0
  324. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -0
  325. package/esm/highlevel/types/bots/keyboards/index.d.ts +14 -0
  326. package/esm/highlevel/types/bots/keyboards/index.js +15 -0
  327. package/esm/highlevel/types/bots/keyboards/index.js.map +1 -0
  328. package/esm/highlevel/types/bots/keyboards/types.d.ts +34 -0
  329. package/esm/highlevel/types/bots/keyboards/types.js +2 -0
  330. package/esm/highlevel/types/bots/keyboards/types.js.map +1 -0
  331. package/esm/highlevel/types/files/file-location.js +4 -3
  332. package/esm/highlevel/types/files/web-document.js +4 -3
  333. package/esm/highlevel/types/media/audio.js +5 -4
  334. package/esm/highlevel/types/media/contact.js +4 -3
  335. package/esm/highlevel/types/media/dice.js +4 -3
  336. package/esm/highlevel/types/media/document.js +8 -6
  337. package/esm/highlevel/types/media/document.js.map +1 -1
  338. package/esm/highlevel/types/media/game.js +5 -4
  339. package/esm/highlevel/types/media/index.d.ts +1 -1
  340. package/esm/highlevel/types/media/index.js +1 -1
  341. package/esm/highlevel/types/media/index.js.map +1 -1
  342. package/esm/highlevel/types/media/input-media/factories.d.ts +141 -0
  343. package/esm/highlevel/types/media/input-media/factories.js +228 -0
  344. package/esm/highlevel/types/media/input-media/factories.js.map +1 -0
  345. package/esm/highlevel/types/media/input-media/index.d.ts +3 -0
  346. package/esm/highlevel/types/media/input-media/index.js +4 -0
  347. package/esm/highlevel/types/media/input-media/index.js.map +1 -0
  348. package/esm/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
  349. package/esm/highlevel/types/media/input-media/types.js +2 -0
  350. package/esm/highlevel/types/media/input-media/types.js.map +1 -0
  351. package/esm/highlevel/types/media/invoice.js +9 -7
  352. package/esm/highlevel/types/media/location.js +7 -5
  353. package/esm/highlevel/types/media/photo.js +5 -4
  354. package/esm/highlevel/types/media/poll.js +5 -4
  355. package/esm/highlevel/types/media/sticker.js +5 -4
  356. package/esm/highlevel/types/media/story.js +4 -3
  357. package/esm/highlevel/types/media/thumbnail.js +10 -8
  358. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  359. package/esm/highlevel/types/media/venue.js +5 -4
  360. package/esm/highlevel/types/media/video.js +5 -4
  361. package/esm/highlevel/types/media/voice.js +5 -4
  362. package/esm/highlevel/types/media/web-page.js +5 -4
  363. package/esm/highlevel/types/messages/dialog.js +5 -4
  364. package/esm/highlevel/types/messages/draft-message.js +5 -4
  365. package/esm/highlevel/types/messages/message-entity.js +5 -4
  366. package/esm/highlevel/types/messages/message-forward.js +5 -4
  367. package/esm/highlevel/types/messages/message-reactions.js +5 -4
  368. package/esm/highlevel/types/messages/message-replies.js +5 -4
  369. package/esm/highlevel/types/messages/message.d.ts +1 -1
  370. package/esm/highlevel/types/messages/message.js +6 -5
  371. package/esm/highlevel/types/messages/message.js.map +1 -1
  372. package/esm/highlevel/types/messages/replied-message.js +5 -4
  373. package/esm/highlevel/types/misc/index.d.ts +1 -1
  374. package/esm/highlevel/types/misc/index.js +1 -1
  375. package/esm/highlevel/types/misc/index.js.map +1 -1
  376. package/esm/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
  377. package/esm/highlevel/types/misc/input-privacy-rule/allow.js +31 -0
  378. package/esm/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
  379. package/esm/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
  380. package/esm/highlevel/types/misc/input-privacy-rule/bundle.js +4 -0
  381. package/esm/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
  382. package/esm/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
  383. package/esm/highlevel/types/misc/input-privacy-rule/disallow.js +27 -0
  384. package/esm/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
  385. package/esm/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
  386. package/esm/highlevel/types/misc/input-privacy-rule/index.js +4 -0
  387. package/esm/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
  388. package/esm/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
  389. package/esm/highlevel/types/misc/input-privacy-rule/types.js +2 -0
  390. package/esm/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
  391. package/esm/highlevel/types/misc/sticker-set.js +5 -4
  392. package/esm/highlevel/types/misc/takeout-session.js +4 -3
  393. package/esm/highlevel/types/peers/chat-colors.js +4 -3
  394. package/esm/highlevel/types/peers/chat-event/index.js +5 -4
  395. package/esm/highlevel/types/peers/chat-invite-link-member.js +5 -4
  396. package/esm/highlevel/types/peers/chat-invite-link.js +5 -4
  397. package/esm/highlevel/types/peers/chat-location.js +5 -4
  398. package/esm/highlevel/types/peers/chat-member.js +5 -4
  399. package/esm/highlevel/types/peers/chat-permissions.js +4 -3
  400. package/esm/highlevel/types/peers/chat-photo.js +12 -9
  401. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  402. package/esm/highlevel/types/peers/chat-preview.js +5 -4
  403. package/esm/highlevel/types/peers/chat.js +5 -4
  404. package/esm/highlevel/types/peers/forum-topic.js +5 -4
  405. package/esm/highlevel/types/peers/user.js +5 -4
  406. package/esm/highlevel/types/premium/boost-slot.js +5 -4
  407. package/esm/highlevel/types/premium/boost-stats.js +4 -3
  408. package/esm/highlevel/types/premium/boost.js +5 -4
  409. package/esm/highlevel/types/reactions/emoji-status.js +4 -3
  410. package/esm/highlevel/types/reactions/peer-reaction.js +5 -4
  411. package/esm/highlevel/types/reactions/reaction-count.js +4 -3
  412. package/esm/highlevel/types/stories/all-stories.js +5 -4
  413. package/esm/highlevel/types/stories/interactive/channel-post.js +5 -4
  414. package/esm/highlevel/types/stories/interactive/location.js +5 -4
  415. package/esm/highlevel/types/stories/interactive/reaction.js +4 -3
  416. package/esm/highlevel/types/stories/interactive/venue.js +5 -4
  417. package/esm/highlevel/types/stories/peer-stories.js +5 -4
  418. package/esm/highlevel/types/stories/stealth-mode.js +4 -3
  419. package/esm/highlevel/types/stories/story-interactions.js +5 -4
  420. package/esm/highlevel/types/stories/story-viewer.js +9 -7
  421. package/esm/highlevel/types/stories/story.js +5 -4
  422. package/esm/highlevel/types/updates/bot-chat-join-request.js +5 -4
  423. package/esm/highlevel/types/updates/bot-reaction.js +9 -7
  424. package/esm/highlevel/types/updates/bot-stopped.js +5 -4
  425. package/esm/highlevel/types/updates/callback-query.js +11 -9
  426. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  427. package/esm/highlevel/types/updates/chat-join-request.js +5 -4
  428. package/esm/highlevel/types/updates/chat-member-update.js +5 -4
  429. package/esm/highlevel/types/updates/chosen-inline-result.js +5 -4
  430. package/esm/highlevel/types/updates/delete-message-update.js +4 -3
  431. package/esm/highlevel/types/updates/delete-story-update.js +5 -4
  432. package/esm/highlevel/types/updates/history-read-update.js +4 -3
  433. package/esm/highlevel/types/updates/inline-query.js +5 -4
  434. package/esm/highlevel/types/updates/poll-update.js +5 -4
  435. package/esm/highlevel/types/updates/poll-vote.js +5 -4
  436. package/esm/highlevel/types/updates/pre-checkout-query.js +5 -4
  437. package/esm/highlevel/types/updates/story-update.js +5 -4
  438. package/esm/highlevel/types/updates/user-status-update.js +5 -4
  439. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  440. package/esm/highlevel/types/updates/user-typing-update.js +4 -3
  441. package/esm/highlevel/updates/manager.d.ts +5 -3
  442. package/esm/highlevel/updates/manager.js +81 -67
  443. package/esm/highlevel/updates/manager.js.map +1 -1
  444. package/esm/highlevel/utils/convert-file-id.js +7 -6
  445. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  446. package/esm/highlevel/utils/file-utils.js +8 -4
  447. package/esm/highlevel/utils/file-utils.js.map +1 -1
  448. package/esm/highlevel/utils/inline-utils.js +4 -3
  449. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  450. package/esm/highlevel/utils/inspectable.d.ts +1 -1
  451. package/esm/highlevel/utils/inspectable.js +3 -2
  452. package/esm/highlevel/utils/inspectable.js.map +1 -1
  453. package/esm/highlevel/utils/memoize.d.ts +1 -1
  454. package/esm/highlevel/utils/memoize.js +1 -0
  455. package/esm/highlevel/utils/memoize.js.map +1 -1
  456. package/esm/highlevel/utils/stream-utils.d.ts +0 -2
  457. package/esm/highlevel/utils/stream-utils.js +0 -26
  458. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  459. package/esm/highlevel/utils/string-session.js +4 -3
  460. package/esm/highlevel/utils/string-session.js.map +1 -1
  461. package/esm/highlevel/worker/index.d.ts +3 -0
  462. package/esm/highlevel/worker/index.js +4 -0
  463. package/esm/highlevel/worker/index.js.map +1 -0
  464. package/esm/highlevel/worker/port.d.ts +6 -3
  465. package/esm/highlevel/worker/port.js +8 -2
  466. package/esm/highlevel/worker/port.js.map +1 -1
  467. package/esm/highlevel/worker/protocol.d.ts +5 -1
  468. package/esm/highlevel/worker/protocol.js.map +1 -1
  469. package/esm/highlevel/worker/worker.d.ts +11 -4
  470. package/esm/highlevel/worker/worker.js +51 -47
  471. package/esm/highlevel/worker/worker.js.map +1 -1
  472. package/esm/network/authorization.js +1 -0
  473. package/esm/network/authorization.js.map +1 -1
  474. package/esm/network/client.d.ts +4 -4
  475. package/esm/network/client.js +4 -2
  476. package/esm/network/client.js.map +1 -1
  477. package/esm/network/mtproto-session.d.ts +1 -0
  478. package/esm/network/mtproto-session.js +7 -1
  479. package/esm/network/mtproto-session.js.map +1 -1
  480. package/esm/network/multi-session-connection.d.ts +1 -0
  481. package/esm/network/multi-session-connection.js +6 -0
  482. package/esm/network/multi-session-connection.js.map +1 -1
  483. package/esm/network/network-manager.d.ts +5 -1
  484. package/esm/network/network-manager.js +24 -15
  485. package/esm/network/network-manager.js.map +1 -1
  486. package/esm/network/persistent-connection.d.ts +3 -0
  487. package/esm/network/persistent-connection.js +23 -1
  488. package/esm/network/persistent-connection.js.map +1 -1
  489. package/esm/network/session-connection.d.ts +2 -0
  490. package/esm/network/session-connection.js +21 -7
  491. package/esm/network/session-connection.js.map +1 -1
  492. package/esm/network/transports/index.d.ts +0 -3
  493. package/esm/network/transports/index.js +0 -3
  494. package/esm/network/transports/index.js.map +1 -1
  495. package/esm/platform.d.ts +18 -0
  496. package/esm/platform.js +31 -0
  497. package/esm/platform.js.map +1 -0
  498. package/esm/storage/index.d.ts +1 -2
  499. package/esm/storage/index.js +1 -2
  500. package/esm/storage/index.js.map +1 -1
  501. package/{cjs/storage/providers → esm/storage}/memory/driver.d.ts +1 -1
  502. package/esm/storage/memory/driver.js.map +1 -0
  503. package/{cjs/storage/providers → esm/storage}/memory/index.d.ts +2 -2
  504. package/esm/storage/memory/index.js.map +1 -0
  505. package/esm/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
  506. package/esm/storage/memory/repository/auth-keys.js.map +1 -0
  507. package/{cjs/storage/providers → esm/storage}/memory/repository/kv.d.ts +1 -1
  508. package/esm/storage/memory/repository/kv.js.map +1 -0
  509. package/{cjs/storage/providers → esm/storage}/memory/repository/peers.d.ts +1 -1
  510. package/esm/storage/memory/repository/peers.js.map +1 -0
  511. package/{cjs/storage/providers → esm/storage}/memory/repository/ref-messages.d.ts +1 -1
  512. package/esm/storage/memory/repository/ref-messages.js.map +1 -0
  513. package/esm/storage/storage.js +3 -2
  514. package/esm/storage/storage.js.map +1 -1
  515. package/esm/utils/binary/asn1-parser.js +3 -3
  516. package/esm/utils/binary/asn1-parser.js.map +1 -1
  517. package/esm/utils/crypto/abstract.d.ts +0 -1
  518. package/esm/utils/crypto/abstract.js.map +1 -1
  519. package/esm/utils/crypto/index.d.ts +0 -2
  520. package/esm/utils/crypto/index.js +0 -2
  521. package/esm/utils/crypto/index.js.map +1 -1
  522. package/esm/utils/crypto/keys.js +6 -4
  523. package/esm/utils/crypto/keys.js.map +1 -1
  524. package/esm/utils/crypto/password.js +3 -3
  525. package/esm/utils/crypto/password.js.map +1 -1
  526. package/esm/utils/dcs.d.ts +4 -0
  527. package/esm/utils/dcs.js +0 -4
  528. package/esm/utils/dcs.js.map +1 -1
  529. package/esm/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
  530. package/esm/utils/error-reporting.js.map +1 -0
  531. package/esm/utils/index.d.ts +4 -1
  532. package/esm/utils/index.js +6 -1
  533. package/esm/utils/index.js.map +1 -1
  534. package/esm/utils/links/common.js +1 -1
  535. package/esm/utils/links/common.js.map +1 -1
  536. package/esm/utils/logger.d.ts +1 -0
  537. package/esm/utils/logger.js +9 -22
  538. package/esm/utils/logger.js.map +1 -1
  539. package/package.json +24 -52
  540. package/cjs/highlevel/base.test.js +0 -14
  541. package/cjs/highlevel/base.test.js.map +0 -1
  542. package/cjs/highlevel/methods/files/_platform.js +0 -33
  543. package/cjs/highlevel/methods/files/_platform.js.map +0 -1
  544. package/cjs/highlevel/methods/files/_platform.web.d.ts +0 -1
  545. package/cjs/highlevel/methods/files/_platform.web.js +0 -26
  546. package/cjs/highlevel/methods/files/_platform.web.js.map +0 -1
  547. package/cjs/highlevel/methods/files/download-file.web.d.ts +0 -1
  548. package/cjs/highlevel/methods/files/download-file.web.js +0 -9
  549. package/cjs/highlevel/methods/files/download-file.web.js.map +0 -1
  550. package/cjs/highlevel/methods/messages/send-text.test.d.ts +0 -1
  551. package/cjs/highlevel/methods/messages/send-text.test.js +0 -140
  552. package/cjs/highlevel/methods/messages/send-text.test.js.map +0 -1
  553. package/cjs/highlevel/methods/users/get-users.test.d.ts +0 -1
  554. package/cjs/highlevel/methods/users/get-users.test.js +0 -33
  555. package/cjs/highlevel/methods/users/get-users.test.js.map +0 -1
  556. package/cjs/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
  557. package/cjs/highlevel/methods/users/resolve-peer.test.js +0 -307
  558. package/cjs/highlevel/methods/users/resolve-peer.test.js.map +0 -1
  559. package/cjs/highlevel/types/bots/command-scope.d.ts +0 -63
  560. package/cjs/highlevel/types/bots/command-scope.js +0 -87
  561. package/cjs/highlevel/types/bots/command-scope.js.map +0 -1
  562. package/cjs/highlevel/types/bots/input/index.d.ts +0 -2
  563. package/cjs/highlevel/types/bots/input/index.js.map +0 -1
  564. package/cjs/highlevel/types/bots/input/input-inline-message.js +0 -179
  565. package/cjs/highlevel/types/bots/input/input-inline-message.js.map +0 -1
  566. package/cjs/highlevel/types/bots/input/input-inline-result.js +0 -490
  567. package/cjs/highlevel/types/bots/input/input-inline-result.js.map +0 -1
  568. package/cjs/highlevel/types/bots/keyboard-builder.js.map +0 -1
  569. package/cjs/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
  570. package/cjs/highlevel/types/bots/keyboard-builder.test.js +0 -162
  571. package/cjs/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
  572. package/cjs/highlevel/types/bots/keyboards.d.ts +0 -239
  573. package/cjs/highlevel/types/bots/keyboards.js +0 -380
  574. package/cjs/highlevel/types/bots/keyboards.js.map +0 -1
  575. package/cjs/highlevel/types/bots/keyboards.test.d.ts +0 -1
  576. package/cjs/highlevel/types/bots/keyboards.test.js +0 -146
  577. package/cjs/highlevel/types/bots/keyboards.test.js.map +0 -1
  578. package/cjs/highlevel/types/media/input-media.js +0 -254
  579. package/cjs/highlevel/types/media/input-media.js.map +0 -1
  580. package/cjs/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
  581. package/cjs/highlevel/types/misc/input-privacy-rule.js +0 -85
  582. package/cjs/highlevel/types/misc/input-privacy-rule.js.map +0 -1
  583. package/cjs/highlevel/types/peers/peers-index.test.d.ts +0 -1
  584. package/cjs/highlevel/types/peers/peers-index.test.js +0 -71
  585. package/cjs/highlevel/types/peers/peers-index.test.js.map +0 -1
  586. package/cjs/highlevel/types/peers/user.test.d.ts +0 -1
  587. package/cjs/highlevel/types/peers/user.test.js +0 -176
  588. package/cjs/highlevel/types/peers/user.test.js.map +0 -1
  589. package/cjs/highlevel/utils/file-type.test.d.ts +0 -1
  590. package/cjs/highlevel/utils/file-type.test.js +0 -64
  591. package/cjs/highlevel/utils/file-type.test.js.map +0 -1
  592. package/cjs/highlevel/utils/file-utils.test.d.ts +0 -1
  593. package/cjs/highlevel/utils/file-utils.test.js +0 -126
  594. package/cjs/highlevel/utils/file-utils.test.js.map +0 -1
  595. package/cjs/highlevel/utils/inline-utils.test.d.ts +0 -1
  596. package/cjs/highlevel/utils/inline-utils.test.js +0 -47
  597. package/cjs/highlevel/utils/inline-utils.test.js.map +0 -1
  598. package/cjs/highlevel/utils/inspectable.test.d.ts +0 -1
  599. package/cjs/highlevel/utils/inspectable.test.js +0 -97
  600. package/cjs/highlevel/utils/inspectable.test.js.map +0 -1
  601. package/cjs/highlevel/utils/memoize.test.d.ts +0 -1
  602. package/cjs/highlevel/utils/memoize.test.js +0 -60
  603. package/cjs/highlevel/utils/memoize.test.js.map +0 -1
  604. package/cjs/highlevel/utils/peer-utils.test.d.ts +0 -1
  605. package/cjs/highlevel/utils/peer-utils.test.js +0 -109
  606. package/cjs/highlevel/utils/peer-utils.test.js.map +0 -1
  607. package/cjs/highlevel/utils/platform/storage.d.ts +0 -1
  608. package/cjs/highlevel/utils/platform/storage.js +0 -10
  609. package/cjs/highlevel/utils/platform/storage.js.map +0 -1
  610. package/cjs/highlevel/utils/platform/storage.web.d.ts +0 -1
  611. package/cjs/highlevel/utils/platform/storage.web.js +0 -14
  612. package/cjs/highlevel/utils/platform/storage.web.js.map +0 -1
  613. package/cjs/highlevel/utils/query-batcher.test.d.ts +0 -1
  614. package/cjs/highlevel/utils/query-batcher.test.js +0 -502
  615. package/cjs/highlevel/utils/query-batcher.test.js.map +0 -1
  616. package/cjs/highlevel/utils/stream-utils.test.d.ts +0 -1
  617. package/cjs/highlevel/utils/stream-utils.test.js +0 -98
  618. package/cjs/highlevel/utils/stream-utils.test.js.map +0 -1
  619. package/cjs/highlevel/utils/string-session.test.d.ts +0 -1
  620. package/cjs/highlevel/utils/string-session.test.js +0 -198
  621. package/cjs/highlevel/utils/string-session.test.js.map +0 -1
  622. package/cjs/highlevel/utils/voice-utils.test.d.ts +0 -1
  623. package/cjs/highlevel/utils/voice-utils.test.js +0 -28
  624. package/cjs/highlevel/utils/voice-utils.test.js.map +0 -1
  625. package/cjs/highlevel/worker/platform/connect.d.ts +0 -2
  626. package/cjs/highlevel/worker/platform/connect.js +0 -19
  627. package/cjs/highlevel/worker/platform/connect.js.map +0 -1
  628. package/cjs/highlevel/worker/platform/connect.web.d.ts +0 -2
  629. package/cjs/highlevel/worker/platform/connect.web.js +0 -51
  630. package/cjs/highlevel/worker/platform/connect.web.js.map +0 -1
  631. package/cjs/highlevel/worker/platform/register.d.ts +0 -2
  632. package/cjs/highlevel/worker/platform/register.js +0 -20
  633. package/cjs/highlevel/worker/platform/register.js.map +0 -1
  634. package/cjs/highlevel/worker/platform/register.web.d.ts +0 -2
  635. package/cjs/highlevel/worker/platform/register.web.js +0 -64
  636. package/cjs/highlevel/worker/platform/register.web.js.map +0 -1
  637. package/cjs/network/auth-key.test.d.ts +0 -1
  638. package/cjs/network/auth-key.test.js +0 -111
  639. package/cjs/network/auth-key.test.js.map +0 -1
  640. package/cjs/network/config-manager.test.d.ts +0 -1
  641. package/cjs/network/config-manager.test.js +0 -174
  642. package/cjs/network/config-manager.test.js.map +0 -1
  643. package/cjs/network/persistent-connection.test.d.ts +0 -1
  644. package/cjs/network/persistent-connection.test.js +0 -157
  645. package/cjs/network/persistent-connection.test.js.map +0 -1
  646. package/cjs/network/transports/intermediate.test.d.ts +0 -1
  647. package/cjs/network/transports/intermediate.test.js +0 -84
  648. package/cjs/network/transports/intermediate.test.js.map +0 -1
  649. package/cjs/network/transports/obfuscated.test.d.ts +0 -1
  650. package/cjs/network/transports/obfuscated.test.js +0 -131
  651. package/cjs/network/transports/obfuscated.test.js.map +0 -1
  652. package/cjs/network/transports/tcp.d.ts +0 -32
  653. package/cjs/network/transports/tcp.js +0 -130
  654. package/cjs/network/transports/tcp.js.map +0 -1
  655. package/cjs/network/transports/tcp.test.d.ts +0 -1
  656. package/cjs/network/transports/tcp.test.js +0 -103
  657. package/cjs/network/transports/tcp.test.js.map +0 -1
  658. package/cjs/network/transports/websocket.d.ts +0 -46
  659. package/cjs/network/transports/websocket.js +0 -124
  660. package/cjs/network/transports/websocket.js.map +0 -1
  661. package/cjs/network/transports/websocket.test.d.ts +0 -1
  662. package/cjs/network/transports/websocket.test.js +0 -91
  663. package/cjs/network/transports/websocket.test.js.map +0 -1
  664. package/cjs/storage/providers/idb/driver.d.ts +0 -18
  665. package/cjs/storage/providers/idb/driver.js +0 -138
  666. package/cjs/storage/providers/idb/driver.js.map +0 -1
  667. package/cjs/storage/providers/idb/idb.test.d.ts +0 -1
  668. package/cjs/storage/providers/idb/idb.test.js +0 -29
  669. package/cjs/storage/providers/idb/idb.test.js.map +0 -1
  670. package/cjs/storage/providers/idb/index.d.ts +0 -22
  671. package/cjs/storage/providers/idb/index.js +0 -28
  672. package/cjs/storage/providers/idb/index.js.map +0 -1
  673. package/cjs/storage/providers/idb/repository/auth-keys.d.ts +0 -14
  674. package/cjs/storage/providers/idb/repository/auth-keys.js +0 -70
  675. package/cjs/storage/providers/idb/repository/auth-keys.js.map +0 -1
  676. package/cjs/storage/providers/idb/repository/kv.d.ts +0 -11
  677. package/cjs/storage/providers/idb/repository/kv.js +0 -34
  678. package/cjs/storage/providers/idb/repository/kv.js.map +0 -1
  679. package/cjs/storage/providers/idb/repository/peers.d.ts +0 -12
  680. package/cjs/storage/providers/idb/repository/peers.js +0 -38
  681. package/cjs/storage/providers/idb/repository/peers.js.map +0 -1
  682. package/cjs/storage/providers/idb/repository/ref-messages.d.ts +0 -12
  683. package/cjs/storage/providers/idb/repository/ref-messages.js +0 -57
  684. package/cjs/storage/providers/idb/repository/ref-messages.js.map +0 -1
  685. package/cjs/storage/providers/idb/utils.d.ts +0 -3
  686. package/cjs/storage/providers/idb/utils.js +0 -27
  687. package/cjs/storage/providers/idb/utils.js.map +0 -1
  688. package/cjs/storage/providers/memory/driver.js.map +0 -1
  689. package/cjs/storage/providers/memory/index.js.map +0 -1
  690. package/cjs/storage/providers/memory/memory.test.d.ts +0 -1
  691. package/cjs/storage/providers/memory/memory.test.js +0 -13
  692. package/cjs/storage/providers/memory/memory.test.js.map +0 -1
  693. package/cjs/storage/providers/memory/repository/auth-keys.js.map +0 -1
  694. package/cjs/storage/providers/memory/repository/kv.js.map +0 -1
  695. package/cjs/storage/providers/memory/repository/peers.js.map +0 -1
  696. package/cjs/storage/providers/memory/repository/ref-messages.js.map +0 -1
  697. package/cjs/storage/service/auth-keys.test.d.ts +0 -1
  698. package/cjs/storage/service/auth-keys.test.js +0 -22
  699. package/cjs/storage/service/auth-keys.test.js.map +0 -1
  700. package/cjs/storage/service/updates.test.d.ts +0 -1
  701. package/cjs/storage/service/updates.test.js +0 -60
  702. package/cjs/storage/service/updates.test.js.map +0 -1
  703. package/cjs/storage/service/utils.test-utils.d.ts +0 -2
  704. package/cjs/storage/service/utils.test-utils.js +0 -19
  705. package/cjs/storage/service/utils.test-utils.js.map +0 -1
  706. package/cjs/utils/async-lock.test.d.ts +0 -1
  707. package/cjs/utils/async-lock.test.js +0 -25
  708. package/cjs/utils/async-lock.test.js.map +0 -1
  709. package/cjs/utils/bigint-utils.test.d.ts +0 -1
  710. package/cjs/utils/bigint-utils.test.js +0 -150
  711. package/cjs/utils/bigint-utils.test.js.map +0 -1
  712. package/cjs/utils/buffer-utils.test.d.ts +0 -1
  713. package/cjs/utils/buffer-utils.test.js +0 -69
  714. package/cjs/utils/buffer-utils.test.js.map +0 -1
  715. package/cjs/utils/condition-variable.test.d.ts +0 -1
  716. package/cjs/utils/condition-variable.test.js +0 -27
  717. package/cjs/utils/condition-variable.test.js.map +0 -1
  718. package/cjs/utils/controllable-promise.test.d.ts +0 -1
  719. package/cjs/utils/controllable-promise.test.js +0 -17
  720. package/cjs/utils/controllable-promise.test.js.map +0 -1
  721. package/cjs/utils/crypto/factorization.test.d.ts +0 -1
  722. package/cjs/utils/crypto/factorization.test.js +0 -19
  723. package/cjs/utils/crypto/factorization.test.js.map +0 -1
  724. package/cjs/utils/crypto/keys.test.d.ts +0 -1
  725. package/cjs/utils/crypto/keys.test.js +0 -40
  726. package/cjs/utils/crypto/keys.test.js.map +0 -1
  727. package/cjs/utils/crypto/miller-rabin.test.d.ts +0 -1
  728. package/cjs/utils/crypto/miller-rabin.test.js +0 -60
  729. package/cjs/utils/crypto/miller-rabin.test.js.map +0 -1
  730. package/cjs/utils/crypto/mtproto.test.d.ts +0 -1
  731. package/cjs/utils/crypto/mtproto.test.js +0 -50
  732. package/cjs/utils/crypto/mtproto.test.js.map +0 -1
  733. package/cjs/utils/crypto/node.d.ts +0 -21
  734. package/cjs/utils/crypto/node.js +0 -74
  735. package/cjs/utils/crypto/node.js.map +0 -1
  736. package/cjs/utils/crypto/node.test.d.ts +0 -1
  737. package/cjs/utils/crypto/node.test.js +0 -14
  738. package/cjs/utils/crypto/node.test.js.map +0 -1
  739. package/cjs/utils/crypto/password.test.d.ts +0 -1
  740. package/cjs/utils/crypto/password.test.js +0 -95
  741. package/cjs/utils/crypto/password.test.js.map +0 -1
  742. package/cjs/utils/crypto/utils.test.d.ts +0 -1
  743. package/cjs/utils/crypto/utils.test.js +0 -49
  744. package/cjs/utils/crypto/utils.test.js.map +0 -1
  745. package/cjs/utils/crypto/wasm.d.ts +0 -22
  746. package/cjs/utils/crypto/wasm.js +0 -41
  747. package/cjs/utils/crypto/wasm.js.map +0 -1
  748. package/cjs/utils/crypto/web.d.ts +0 -11
  749. package/cjs/utils/crypto/web.js +0 -40
  750. package/cjs/utils/crypto/web.js.map +0 -1
  751. package/cjs/utils/crypto/web.test.d.ts +0 -1
  752. package/cjs/utils/crypto/web.test.js +0 -17
  753. package/cjs/utils/crypto/web.test.js.map +0 -1
  754. package/cjs/utils/deque.test.d.ts +0 -1
  755. package/cjs/utils/deque.test.js +0 -128
  756. package/cjs/utils/deque.test.js.map +0 -1
  757. package/cjs/utils/function-utils.test.d.ts +0 -1
  758. package/cjs/utils/function-utils.test.js +0 -23
  759. package/cjs/utils/function-utils.test.js.map +0 -1
  760. package/cjs/utils/linked-list.test.d.ts +0 -1
  761. package/cjs/utils/linked-list.test.js +0 -36
  762. package/cjs/utils/linked-list.test.js.map +0 -1
  763. package/cjs/utils/links/bots.test.d.ts +0 -1
  764. package/cjs/utils/links/bots.test.js +0 -152
  765. package/cjs/utils/links/bots.test.js.map +0 -1
  766. package/cjs/utils/links/chat.test.d.ts +0 -1
  767. package/cjs/utils/links/chat.test.js +0 -84
  768. package/cjs/utils/links/chat.test.js.map +0 -1
  769. package/cjs/utils/links/misc.test.d.ts +0 -1
  770. package/cjs/utils/links/misc.test.js +0 -153
  771. package/cjs/utils/links/misc.test.js.map +0 -1
  772. package/cjs/utils/links/proxy.test.d.ts +0 -1
  773. package/cjs/utils/links/proxy.test.js +0 -74
  774. package/cjs/utils/links/proxy.test.js.map +0 -1
  775. package/cjs/utils/links/user.test.d.ts +0 -1
  776. package/cjs/utils/links/user.test.js +0 -63
  777. package/cjs/utils/links/user.test.js.map +0 -1
  778. package/cjs/utils/logger.test.d.ts +0 -1
  779. package/cjs/utils/logger.test.js +0 -139
  780. package/cjs/utils/logger.test.js.map +0 -1
  781. package/cjs/utils/long-utils.test.d.ts +0 -1
  782. package/cjs/utils/long-utils.test.js +0 -158
  783. package/cjs/utils/long-utils.test.js.map +0 -1
  784. package/cjs/utils/lru-map.test.d.ts +0 -1
  785. package/cjs/utils/lru-map.test.js +0 -96
  786. package/cjs/utils/lru-map.test.js.map +0 -1
  787. package/cjs/utils/lru-set.test.d.ts +0 -1
  788. package/cjs/utils/lru-set.test.js +0 -77
  789. package/cjs/utils/lru-set.test.js.map +0 -1
  790. package/cjs/utils/peer-utils.test.d.ts +0 -1
  791. package/cjs/utils/peer-utils.test.js +0 -110
  792. package/cjs/utils/peer-utils.test.js.map +0 -1
  793. package/cjs/utils/platform/crypto.d.ts +0 -1
  794. package/cjs/utils/platform/crypto.js +0 -8
  795. package/cjs/utils/platform/crypto.js.map +0 -1
  796. package/cjs/utils/platform/crypto.web.d.ts +0 -1
  797. package/cjs/utils/platform/crypto.web.js +0 -14
  798. package/cjs/utils/platform/crypto.web.js.map +0 -1
  799. package/cjs/utils/platform/error-reporting.js.map +0 -1
  800. package/cjs/utils/platform/exit-hook.d.ts +0 -1
  801. package/cjs/utils/platform/exit-hook.js +0 -45
  802. package/cjs/utils/platform/exit-hook.js.map +0 -1
  803. package/cjs/utils/platform/exit-hook.web.d.ts +0 -1
  804. package/cjs/utils/platform/exit-hook.web.js +0 -21
  805. package/cjs/utils/platform/exit-hook.web.js.map +0 -1
  806. package/cjs/utils/platform/logging.d.ts +0 -1
  807. package/cjs/utils/platform/logging.js +0 -34
  808. package/cjs/utils/platform/logging.js.map +0 -1
  809. package/cjs/utils/platform/logging.web.d.ts +0 -1
  810. package/cjs/utils/platform/logging.web.js +0 -35
  811. package/cjs/utils/platform/logging.web.js.map +0 -1
  812. package/cjs/utils/platform/transport.d.ts +0 -1
  813. package/cjs/utils/platform/transport.js +0 -8
  814. package/cjs/utils/platform/transport.js.map +0 -1
  815. package/cjs/utils/platform/transport.web.d.ts +0 -1
  816. package/cjs/utils/platform/transport.web.js +0 -15
  817. package/cjs/utils/platform/transport.web.js.map +0 -1
  818. package/cjs/utils/sorted-array.test.d.ts +0 -1
  819. package/cjs/utils/sorted-array.test.js +0 -66
  820. package/cjs/utils/sorted-array.test.js.map +0 -1
  821. package/cjs/utils/tl-json.test.d.ts +0 -1
  822. package/cjs/utils/tl-json.test.js +0 -83
  823. package/cjs/utils/tl-json.test.js.map +0 -1
  824. package/cjs/utils/type-assertions.test.d.ts +0 -1
  825. package/cjs/utils/type-assertions.test.js +0 -67
  826. package/cjs/utils/type-assertions.test.js.map +0 -1
  827. package/esm/highlevel/base.test.d.ts +0 -1
  828. package/esm/highlevel/base.test.js +0 -12
  829. package/esm/highlevel/base.test.js.map +0 -1
  830. package/esm/highlevel/methods/files/_platform.d.ts +0 -1
  831. package/esm/highlevel/methods/files/_platform.js +0 -26
  832. package/esm/highlevel/methods/files/_platform.js.map +0 -1
  833. package/esm/highlevel/methods/files/_platform.web.d.ts +0 -1
  834. package/esm/highlevel/methods/files/_platform.web.js +0 -19
  835. package/esm/highlevel/methods/files/_platform.web.js.map +0 -1
  836. package/esm/highlevel/methods/files/download-file.web.d.ts +0 -1
  837. package/esm/highlevel/methods/files/download-file.web.js +0 -5
  838. package/esm/highlevel/methods/files/download-file.web.js.map +0 -1
  839. package/esm/highlevel/methods/messages/send-text.test.d.ts +0 -1
  840. package/esm/highlevel/methods/messages/send-text.test.js +0 -135
  841. package/esm/highlevel/methods/messages/send-text.test.js.map +0 -1
  842. package/esm/highlevel/methods/users/get-users.test.d.ts +0 -1
  843. package/esm/highlevel/methods/users/get-users.test.js +0 -28
  844. package/esm/highlevel/methods/users/get-users.test.js.map +0 -1
  845. package/esm/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
  846. package/esm/highlevel/methods/users/resolve-peer.test.js +0 -302
  847. package/esm/highlevel/methods/users/resolve-peer.test.js.map +0 -1
  848. package/esm/highlevel/types/bots/command-scope.d.ts +0 -63
  849. package/esm/highlevel/types/bots/command-scope.js +0 -84
  850. package/esm/highlevel/types/bots/command-scope.js.map +0 -1
  851. package/esm/highlevel/types/bots/input/index.d.ts +0 -2
  852. package/esm/highlevel/types/bots/input/index.js +0 -3
  853. package/esm/highlevel/types/bots/input/index.js.map +0 -1
  854. package/esm/highlevel/types/bots/input/input-inline-message.js +0 -176
  855. package/esm/highlevel/types/bots/input/input-inline-message.js.map +0 -1
  856. package/esm/highlevel/types/bots/input/input-inline-result.js +0 -487
  857. package/esm/highlevel/types/bots/input/input-inline-result.js.map +0 -1
  858. package/esm/highlevel/types/bots/keyboard-builder.js.map +0 -1
  859. package/esm/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
  860. package/esm/highlevel/types/bots/keyboard-builder.test.js +0 -160
  861. package/esm/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
  862. package/esm/highlevel/types/bots/keyboards.d.ts +0 -239
  863. package/esm/highlevel/types/bots/keyboards.js +0 -377
  864. package/esm/highlevel/types/bots/keyboards.js.map +0 -1
  865. package/esm/highlevel/types/bots/keyboards.test.d.ts +0 -1
  866. package/esm/highlevel/types/bots/keyboards.test.js +0 -144
  867. package/esm/highlevel/types/bots/keyboards.test.js.map +0 -1
  868. package/esm/highlevel/types/media/input-media.js +0 -251
  869. package/esm/highlevel/types/media/input-media.js.map +0 -1
  870. package/esm/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
  871. package/esm/highlevel/types/misc/input-privacy-rule.js +0 -82
  872. package/esm/highlevel/types/misc/input-privacy-rule.js.map +0 -1
  873. package/esm/highlevel/types/peers/peers-index.test.d.ts +0 -1
  874. package/esm/highlevel/types/peers/peers-index.test.js +0 -69
  875. package/esm/highlevel/types/peers/peers-index.test.js.map +0 -1
  876. package/esm/highlevel/types/peers/user.test.d.ts +0 -1
  877. package/esm/highlevel/types/peers/user.test.js +0 -171
  878. package/esm/highlevel/types/peers/user.test.js.map +0 -1
  879. package/esm/highlevel/utils/file-type.test.d.ts +0 -1
  880. package/esm/highlevel/utils/file-type.test.js +0 -62
  881. package/esm/highlevel/utils/file-type.test.js.map +0 -1
  882. package/esm/highlevel/utils/file-utils.test.d.ts +0 -1
  883. package/esm/highlevel/utils/file-utils.test.js +0 -124
  884. package/esm/highlevel/utils/file-utils.test.js.map +0 -1
  885. package/esm/highlevel/utils/inline-utils.test.d.ts +0 -1
  886. package/esm/highlevel/utils/inline-utils.test.js +0 -42
  887. package/esm/highlevel/utils/inline-utils.test.js.map +0 -1
  888. package/esm/highlevel/utils/inspectable.test.d.ts +0 -1
  889. package/esm/highlevel/utils/inspectable.test.js +0 -95
  890. package/esm/highlevel/utils/inspectable.test.js.map +0 -1
  891. package/esm/highlevel/utils/memoize.test.d.ts +0 -1
  892. package/esm/highlevel/utils/memoize.test.js +0 -58
  893. package/esm/highlevel/utils/memoize.test.js.map +0 -1
  894. package/esm/highlevel/utils/peer-utils.test.d.ts +0 -1
  895. package/esm/highlevel/utils/peer-utils.test.js +0 -107
  896. package/esm/highlevel/utils/peer-utils.test.js.map +0 -1
  897. package/esm/highlevel/utils/platform/storage.d.ts +0 -1
  898. package/esm/highlevel/utils/platform/storage.js +0 -6
  899. package/esm/highlevel/utils/platform/storage.js.map +0 -1
  900. package/esm/highlevel/utils/platform/storage.web.d.ts +0 -1
  901. package/esm/highlevel/utils/platform/storage.web.js +0 -10
  902. package/esm/highlevel/utils/platform/storage.web.js.map +0 -1
  903. package/esm/highlevel/utils/query-batcher.test.d.ts +0 -1
  904. package/esm/highlevel/utils/query-batcher.test.js +0 -500
  905. package/esm/highlevel/utils/query-batcher.test.js.map +0 -1
  906. package/esm/highlevel/utils/stream-utils.test.d.ts +0 -1
  907. package/esm/highlevel/utils/stream-utils.test.js +0 -96
  908. package/esm/highlevel/utils/stream-utils.test.js.map +0 -1
  909. package/esm/highlevel/utils/string-session.test.d.ts +0 -1
  910. package/esm/highlevel/utils/string-session.test.js +0 -196
  911. package/esm/highlevel/utils/string-session.test.js.map +0 -1
  912. package/esm/highlevel/utils/voice-utils.test.d.ts +0 -1
  913. package/esm/highlevel/utils/voice-utils.test.js +0 -26
  914. package/esm/highlevel/utils/voice-utils.test.js.map +0 -1
  915. package/esm/highlevel/worker/platform/connect.d.ts +0 -2
  916. package/esm/highlevel/worker/platform/connect.js +0 -15
  917. package/esm/highlevel/worker/platform/connect.js.map +0 -1
  918. package/esm/highlevel/worker/platform/connect.web.d.ts +0 -2
  919. package/esm/highlevel/worker/platform/connect.web.js +0 -47
  920. package/esm/highlevel/worker/platform/connect.web.js.map +0 -1
  921. package/esm/highlevel/worker/platform/register.d.ts +0 -2
  922. package/esm/highlevel/worker/platform/register.js +0 -16
  923. package/esm/highlevel/worker/platform/register.js.map +0 -1
  924. package/esm/highlevel/worker/platform/register.web.d.ts +0 -2
  925. package/esm/highlevel/worker/platform/register.web.js +0 -60
  926. package/esm/highlevel/worker/platform/register.web.js.map +0 -1
  927. package/esm/network/auth-key.test.d.ts +0 -1
  928. package/esm/network/auth-key.test.js +0 -106
  929. package/esm/network/auth-key.test.js.map +0 -1
  930. package/esm/network/config-manager.test.d.ts +0 -1
  931. package/esm/network/config-manager.test.js +0 -172
  932. package/esm/network/config-manager.test.js.map +0 -1
  933. package/esm/network/persistent-connection.test.d.ts +0 -1
  934. package/esm/network/persistent-connection.test.js +0 -155
  935. package/esm/network/persistent-connection.test.js.map +0 -1
  936. package/esm/network/transports/intermediate.test.d.ts +0 -1
  937. package/esm/network/transports/intermediate.test.js +0 -82
  938. package/esm/network/transports/intermediate.test.js.map +0 -1
  939. package/esm/network/transports/obfuscated.test.d.ts +0 -1
  940. package/esm/network/transports/obfuscated.test.js +0 -129
  941. package/esm/network/transports/obfuscated.test.js.map +0 -1
  942. package/esm/network/transports/tcp.d.ts +0 -32
  943. package/esm/network/transports/tcp.js +0 -122
  944. package/esm/network/transports/tcp.js.map +0 -1
  945. package/esm/network/transports/tcp.test.d.ts +0 -1
  946. package/esm/network/transports/tcp.test.js +0 -101
  947. package/esm/network/transports/tcp.test.js.map +0 -1
  948. package/esm/network/transports/websocket.d.ts +0 -46
  949. package/esm/network/transports/websocket.js +0 -116
  950. package/esm/network/transports/websocket.js.map +0 -1
  951. package/esm/network/transports/websocket.test.d.ts +0 -1
  952. package/esm/network/transports/websocket.test.js +0 -89
  953. package/esm/network/transports/websocket.test.js.map +0 -1
  954. package/esm/storage/providers/idb/driver.d.ts +0 -18
  955. package/esm/storage/providers/idb/driver.js +0 -134
  956. package/esm/storage/providers/idb/driver.js.map +0 -1
  957. package/esm/storage/providers/idb/idb.test.d.ts +0 -1
  958. package/esm/storage/providers/idb/idb.test.js +0 -27
  959. package/esm/storage/providers/idb/idb.test.js.map +0 -1
  960. package/esm/storage/providers/idb/index.d.ts +0 -22
  961. package/esm/storage/providers/idb/index.js +0 -23
  962. package/esm/storage/providers/idb/index.js.map +0 -1
  963. package/esm/storage/providers/idb/repository/auth-keys.d.ts +0 -14
  964. package/esm/storage/providers/idb/repository/auth-keys.js +0 -66
  965. package/esm/storage/providers/idb/repository/auth-keys.js.map +0 -1
  966. package/esm/storage/providers/idb/repository/kv.d.ts +0 -11
  967. package/esm/storage/providers/idb/repository/kv.js +0 -30
  968. package/esm/storage/providers/idb/repository/kv.js.map +0 -1
  969. package/esm/storage/providers/idb/repository/peers.d.ts +0 -12
  970. package/esm/storage/providers/idb/repository/peers.js +0 -34
  971. package/esm/storage/providers/idb/repository/peers.js.map +0 -1
  972. package/esm/storage/providers/idb/repository/ref-messages.d.ts +0 -12
  973. package/esm/storage/providers/idb/repository/ref-messages.js +0 -53
  974. package/esm/storage/providers/idb/repository/ref-messages.js.map +0 -1
  975. package/esm/storage/providers/idb/utils.d.ts +0 -3
  976. package/esm/storage/providers/idb/utils.js +0 -21
  977. package/esm/storage/providers/idb/utils.js.map +0 -1
  978. package/esm/storage/providers/memory/driver.js.map +0 -1
  979. package/esm/storage/providers/memory/index.js.map +0 -1
  980. package/esm/storage/providers/memory/memory.test.d.ts +0 -1
  981. package/esm/storage/providers/memory/memory.test.js +0 -11
  982. package/esm/storage/providers/memory/memory.test.js.map +0 -1
  983. package/esm/storage/providers/memory/repository/auth-keys.js.map +0 -1
  984. package/esm/storage/providers/memory/repository/kv.js.map +0 -1
  985. package/esm/storage/providers/memory/repository/peers.js.map +0 -1
  986. package/esm/storage/providers/memory/repository/ref-messages.js.map +0 -1
  987. package/esm/storage/service/auth-keys.test.d.ts +0 -1
  988. package/esm/storage/service/auth-keys.test.js +0 -20
  989. package/esm/storage/service/auth-keys.test.js.map +0 -1
  990. package/esm/storage/service/updates.test.d.ts +0 -1
  991. package/esm/storage/service/updates.test.js +0 -58
  992. package/esm/storage/service/updates.test.js.map +0 -1
  993. package/esm/storage/service/utils.test-utils.d.ts +0 -2
  994. package/esm/storage/service/utils.test-utils.js +0 -15
  995. package/esm/storage/service/utils.test-utils.js.map +0 -1
  996. package/esm/utils/async-lock.test.d.ts +0 -1
  997. package/esm/utils/async-lock.test.js +0 -23
  998. package/esm/utils/async-lock.test.js.map +0 -1
  999. package/esm/utils/bigint-utils.test.d.ts +0 -1
  1000. package/esm/utils/bigint-utils.test.js +0 -148
  1001. package/esm/utils/bigint-utils.test.js.map +0 -1
  1002. package/esm/utils/buffer-utils.test.d.ts +0 -1
  1003. package/esm/utils/buffer-utils.test.js +0 -67
  1004. package/esm/utils/buffer-utils.test.js.map +0 -1
  1005. package/esm/utils/condition-variable.test.d.ts +0 -1
  1006. package/esm/utils/condition-variable.test.js +0 -25
  1007. package/esm/utils/condition-variable.test.js.map +0 -1
  1008. package/esm/utils/controllable-promise.test.d.ts +0 -1
  1009. package/esm/utils/controllable-promise.test.js +0 -15
  1010. package/esm/utils/controllable-promise.test.js.map +0 -1
  1011. package/esm/utils/crypto/factorization.test.d.ts +0 -1
  1012. package/esm/utils/crypto/factorization.test.js +0 -17
  1013. package/esm/utils/crypto/factorization.test.js.map +0 -1
  1014. package/esm/utils/crypto/keys.test.d.ts +0 -1
  1015. package/esm/utils/crypto/keys.test.js +0 -38
  1016. package/esm/utils/crypto/keys.test.js.map +0 -1
  1017. package/esm/utils/crypto/miller-rabin.test.d.ts +0 -1
  1018. package/esm/utils/crypto/miller-rabin.test.js +0 -58
  1019. package/esm/utils/crypto/miller-rabin.test.js.map +0 -1
  1020. package/esm/utils/crypto/mtproto.test.d.ts +0 -1
  1021. package/esm/utils/crypto/mtproto.test.js +0 -48
  1022. package/esm/utils/crypto/mtproto.test.js.map +0 -1
  1023. package/esm/utils/crypto/node.d.ts +0 -21
  1024. package/esm/utils/crypto/node.js +0 -69
  1025. package/esm/utils/crypto/node.js.map +0 -1
  1026. package/esm/utils/crypto/node.test.d.ts +0 -1
  1027. package/esm/utils/crypto/node.test.js +0 -12
  1028. package/esm/utils/crypto/node.test.js.map +0 -1
  1029. package/esm/utils/crypto/password.test.d.ts +0 -1
  1030. package/esm/utils/crypto/password.test.js +0 -90
  1031. package/esm/utils/crypto/password.test.js.map +0 -1
  1032. package/esm/utils/crypto/utils.test.d.ts +0 -1
  1033. package/esm/utils/crypto/utils.test.js +0 -47
  1034. package/esm/utils/crypto/utils.test.js.map +0 -1
  1035. package/esm/utils/crypto/wasm.d.ts +0 -22
  1036. package/esm/utils/crypto/wasm.js +0 -37
  1037. package/esm/utils/crypto/wasm.js.map +0 -1
  1038. package/esm/utils/crypto/web.d.ts +0 -11
  1039. package/esm/utils/crypto/web.js +0 -36
  1040. package/esm/utils/crypto/web.js.map +0 -1
  1041. package/esm/utils/crypto/web.test.d.ts +0 -1
  1042. package/esm/utils/crypto/web.test.js +0 -15
  1043. package/esm/utils/crypto/web.test.js.map +0 -1
  1044. package/esm/utils/deque.test.d.ts +0 -1
  1045. package/esm/utils/deque.test.js +0 -126
  1046. package/esm/utils/deque.test.js.map +0 -1
  1047. package/esm/utils/function-utils.test.d.ts +0 -1
  1048. package/esm/utils/function-utils.test.js +0 -21
  1049. package/esm/utils/function-utils.test.js.map +0 -1
  1050. package/esm/utils/linked-list.test.d.ts +0 -1
  1051. package/esm/utils/linked-list.test.js +0 -34
  1052. package/esm/utils/linked-list.test.js.map +0 -1
  1053. package/esm/utils/links/bots.test.d.ts +0 -1
  1054. package/esm/utils/links/bots.test.js +0 -150
  1055. package/esm/utils/links/bots.test.js.map +0 -1
  1056. package/esm/utils/links/chat.test.d.ts +0 -1
  1057. package/esm/utils/links/chat.test.js +0 -82
  1058. package/esm/utils/links/chat.test.js.map +0 -1
  1059. package/esm/utils/links/misc.test.d.ts +0 -1
  1060. package/esm/utils/links/misc.test.js +0 -151
  1061. package/esm/utils/links/misc.test.js.map +0 -1
  1062. package/esm/utils/links/proxy.test.d.ts +0 -1
  1063. package/esm/utils/links/proxy.test.js +0 -72
  1064. package/esm/utils/links/proxy.test.js.map +0 -1
  1065. package/esm/utils/links/user.test.d.ts +0 -1
  1066. package/esm/utils/links/user.test.js +0 -61
  1067. package/esm/utils/links/user.test.js.map +0 -1
  1068. package/esm/utils/logger.test.d.ts +0 -1
  1069. package/esm/utils/logger.test.js +0 -134
  1070. package/esm/utils/logger.test.js.map +0 -1
  1071. package/esm/utils/long-utils.test.d.ts +0 -1
  1072. package/esm/utils/long-utils.test.js +0 -153
  1073. package/esm/utils/long-utils.test.js.map +0 -1
  1074. package/esm/utils/lru-map.test.d.ts +0 -1
  1075. package/esm/utils/lru-map.test.js +0 -94
  1076. package/esm/utils/lru-map.test.js.map +0 -1
  1077. package/esm/utils/lru-set.test.d.ts +0 -1
  1078. package/esm/utils/lru-set.test.js +0 -72
  1079. package/esm/utils/lru-set.test.js.map +0 -1
  1080. package/esm/utils/peer-utils.test.d.ts +0 -1
  1081. package/esm/utils/peer-utils.test.js +0 -105
  1082. package/esm/utils/peer-utils.test.js.map +0 -1
  1083. package/esm/utils/platform/crypto.d.ts +0 -1
  1084. package/esm/utils/platform/crypto.js +0 -4
  1085. package/esm/utils/platform/crypto.js.map +0 -1
  1086. package/esm/utils/platform/crypto.web.d.ts +0 -1
  1087. package/esm/utils/platform/crypto.web.js +0 -10
  1088. package/esm/utils/platform/crypto.web.js.map +0 -1
  1089. package/esm/utils/platform/error-reporting.js.map +0 -1
  1090. package/esm/utils/platform/exit-hook.d.ts +0 -1
  1091. package/esm/utils/platform/exit-hook.js +0 -41
  1092. package/esm/utils/platform/exit-hook.js.map +0 -1
  1093. package/esm/utils/platform/exit-hook.web.d.ts +0 -1
  1094. package/esm/utils/platform/exit-hook.web.js +0 -17
  1095. package/esm/utils/platform/exit-hook.web.js.map +0 -1
  1096. package/esm/utils/platform/logging.d.ts +0 -1
  1097. package/esm/utils/platform/logging.js +0 -31
  1098. package/esm/utils/platform/logging.js.map +0 -1
  1099. package/esm/utils/platform/logging.web.d.ts +0 -1
  1100. package/esm/utils/platform/logging.web.js +0 -31
  1101. package/esm/utils/platform/logging.web.js.map +0 -1
  1102. package/esm/utils/platform/transport.d.ts +0 -1
  1103. package/esm/utils/platform/transport.js +0 -4
  1104. package/esm/utils/platform/transport.js.map +0 -1
  1105. package/esm/utils/platform/transport.web.d.ts +0 -1
  1106. package/esm/utils/platform/transport.web.js +0 -12
  1107. package/esm/utils/platform/transport.web.js.map +0 -1
  1108. package/esm/utils/sorted-array.test.d.ts +0 -1
  1109. package/esm/utils/sorted-array.test.js +0 -64
  1110. package/esm/utils/sorted-array.test.js.map +0 -1
  1111. package/esm/utils/tl-json.test.d.ts +0 -1
  1112. package/esm/utils/tl-json.test.js +0 -81
  1113. package/esm/utils/tl-json.test.js.map +0 -1
  1114. package/esm/utils/type-assertions.test.d.ts +0 -1
  1115. package/esm/utils/type-assertions.test.js +0 -65
  1116. package/esm/utils/type-assertions.test.js.map +0 -1
  1117. /package/cjs/highlevel/{base.test.d.ts → methods/files/download-node-stream.d.ts} +0 -0
  1118. /package/cjs/storage/{providers/memory → memory}/driver.js +0 -0
  1119. /package/cjs/storage/{providers/memory → memory}/index.js +0 -0
  1120. /package/cjs/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
  1121. /package/cjs/storage/{providers/memory → memory}/repository/kv.js +0 -0
  1122. /package/cjs/storage/{providers/memory → memory}/repository/peers.js +0 -0
  1123. /package/cjs/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
  1124. /package/cjs/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
  1125. /package/{cjs/highlevel/methods/files/_platform.d.ts → esm/highlevel/methods/files/download-node-stream.d.ts} +0 -0
  1126. /package/esm/storage/{providers/memory → memory}/driver.js +0 -0
  1127. /package/esm/storage/{providers/memory → memory}/index.js +0 -0
  1128. /package/esm/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
  1129. /package/esm/storage/{providers/memory → memory}/repository/kv.js +0 -0
  1130. /package/esm/storage/{providers/memory → memory}/repository/peers.js +0 -0
  1131. /package/esm/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
  1132. /package/esm/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
@@ -1,4 +1,8 @@
1
1
  export * from '../highlevel/utils/index.js';
2
+ export * from '../highlevel/storage/service/current-user.js';
3
+ export * from '../highlevel/storage/service/updates.js';
4
+ export * from '../storage/service/base.js';
5
+ export * from '../storage/service/default-dcs.js';
2
6
  export * from './async-lock.js';
3
7
  export * from './bigint-utils.js';
4
8
  export * from './buffer-utils.js';
@@ -17,7 +21,6 @@ export * from './lru-map.js';
17
21
  export * from './lru-set.js';
18
22
  export * from './misc-utils.js';
19
23
  export * from './peer-utils.js';
20
- export * from './platform/exit-hook.js';
21
24
  export * from './sorted-array.js';
22
25
  export * from './tl-json.js';
23
26
  export * from './type-assertions.js';
@@ -15,6 +15,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("../highlevel/utils/index.js"), exports);
18
+ // todo: remove after 1.0.0
19
+ __exportStar(require("../highlevel/storage/service/current-user.js"), exports);
20
+ __exportStar(require("../highlevel/storage/service/updates.js"), exports);
21
+ __exportStar(require("../storage/service/base.js"), exports);
22
+ __exportStar(require("../storage/service/default-dcs.js"), exports);
23
+ // end todo
18
24
  __exportStar(require("./async-lock.js"), exports);
19
25
  __exportStar(require("./bigint-utils.js"), exports);
20
26
  __exportStar(require("./buffer-utils.js"), exports);
@@ -33,7 +39,6 @@ __exportStar(require("./lru-map.js"), exports);
33
39
  __exportStar(require("./lru-set.js"), exports);
34
40
  __exportStar(require("./misc-utils.js"), exports);
35
41
  __exportStar(require("./peer-utils.js"), exports);
36
- __exportStar(require("./platform/exit-hook.js"), exports);
37
42
  __exportStar(require("./sorted-array.js"), exports);
38
43
  __exportStar(require("./tl-json.js"), exports);
39
44
  __exportStar(require("./type-assertions.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C;AAC3C,kDAA+B;AAC/B,oDAAiC;AACjC,oDAAiC;AACjC,0DAAuC;AACvC,4DAAyC;AACzC,oDAAiC;AACjC,2CAAwB;AACxB,6CAA0B;AAC1B,mDAAgC;AAChC,sDAAmC;AACnC,mDAAgC;AAChC,mDAAgC;AAChC,8CAA2B;AAC3B,kDAA+B;AAC/B,+CAA4B;AAC5B,+CAA4B;AAC5B,kDAA+B;AAC/B,kDAA+B;AAC/B,0DAAuC;AACvC,oDAAiC;AACjC,+CAA4B;AAC5B,uDAAoC;AACpC,qDAAkC","sourcesContent":["export * from '../highlevel/utils/index.js'\nexport * from './async-lock.js'\nexport * from './bigint-utils.js'\nexport * from './buffer-utils.js'\nexport * from './condition-variable.js'\nexport * from './controllable-promise.js'\nexport * from './crypto/index.js'\nexport * from './dcs.js'\nexport * from './deque.js'\nexport * from './early-timer.js'\nexport * from './function-utils.js'\nexport * from './linked-list.js'\nexport * from './links/index.js'\nexport * from './logger.js'\nexport * from './long-utils.js'\nexport * from './lru-map.js'\nexport * from './lru-set.js'\nexport * from './misc-utils.js'\nexport * from './peer-utils.js'\nexport * from './platform/exit-hook.js'\nexport * from './sorted-array.js'\nexport * from './tl-json.js'\nexport * from './type-assertions.js'\nexport * from '@mtcute/tl-runtime'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C;AAC3C,2BAA2B;AAC3B,+EAA4D;AAC5D,0EAAuD;AACvD,6DAA0C;AAC1C,oEAAiD;AACjD,WAAW;AACX,kDAA+B;AAC/B,oDAAiC;AACjC,oDAAiC;AACjC,0DAAuC;AACvC,4DAAyC;AACzC,oDAAiC;AACjC,2CAAwB;AACxB,6CAA0B;AAC1B,mDAAgC;AAChC,sDAAmC;AACnC,mDAAgC;AAChC,mDAAgC;AAChC,8CAA2B;AAC3B,kDAA+B;AAC/B,+CAA4B;AAC5B,+CAA4B;AAC5B,kDAA+B;AAC/B,kDAA+B;AAC/B,oDAAiC;AACjC,+CAA4B;AAC5B,uDAAoC;AACpC,qDAAkC","sourcesContent":["export * from '../highlevel/utils/index.js'\n// todo: remove after 1.0.0\nexport * from '../highlevel/storage/service/current-user.js'\nexport * from '../highlevel/storage/service/updates.js'\nexport * from '../storage/service/base.js'\nexport * from '../storage/service/default-dcs.js'\n// end todo\nexport * from './async-lock.js'\nexport * from './bigint-utils.js'\nexport * from './buffer-utils.js'\nexport * from './condition-variable.js'\nexport * from './controllable-promise.js'\nexport * from './crypto/index.js'\nexport * from './dcs.js'\nexport * from './deque.js'\nexport * from './early-timer.js'\nexport * from './function-utils.js'\nexport * from './linked-list.js'\nexport * from './links/index.js'\nexport * from './logger.js'\nexport * from './long-utils.js'\nexport * from './lru-map.js'\nexport * from './lru-set.js'\nexport * from './misc-utils.js'\nexport * from './peer-utils.js'\nexport * from './sorted-array.js'\nexport * from './tl-json.js'\nexport * from './type-assertions.js'\nexport * from '@mtcute/tl-runtime'\n"]}
@@ -21,7 +21,7 @@ function writeQuery(query) {
21
21
  return '';
22
22
  return `?${str}`;
23
23
  }
24
- function deeplinkBuilder(params) {
24
+ /* @__NO_SIDE_EFFECTS__ */ function deeplinkBuilder(params) {
25
25
  const { internalBuild, internalParse, externalBuild, externalParse } = params;
26
26
  const fn_ = (options) => {
27
27
  const { protocol = 'https', domain = 't.me', ...rest } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/links/common.ts"],"names":[],"mappings":";;;AAmCA,SAAS,UAAU,CAAC,KAAiB;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC9C,kCAAkC;QAClC,IAAI,KAAK,IAAI,SAAS;YAAE,SAAQ;QAEhC,IAAI,GAAG;YAAE,GAAG,IAAI,GAAG,CAAA;QAEnB,IAAI,KAAK,KAAK,IAAI,EAAE;YAChB,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA;YACf,SAAQ;SACX;QAED,GAAG,IAAI,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;KAC/C;IAED,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IAEnB,OAAO,IAAI,GAAG,EAAE,CAAA;AACpB,CAAC;AAED,SAAgB,eAAe,CAAI,MAA+B;IAC9D,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IAE7E,MAAM,GAAG,GAAG,CAAC,OAAkC,EAAE,EAAE;QAC/C,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAEhE,IAAI,QAAQ,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAEtE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,IAAS,CAAC,CAAA;YAE9C,OAAO,QAAQ,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;SAC5C;QAED,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAErE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,IAAS,CAAC,CAAA;QAE9C,OAAO,GAAG,QAAQ,MAAM,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IAChE,CAAC,CAAA;IAED,MAAM,EAAE,GAAG,GAAkB,CAAA;IAE7B,EAAE,CAAC,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAE1C,uEAAuE;QACvE,IAAI,UAAU;YAAE,GAAG,GAAG,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAEpD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAE3B,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAEtE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAErC,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;SAClD;QAED,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAErC,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;IACnD,CAAC,CAAA;IAED,OAAO,EAAE,CAAA;AACb,CAAC;AA/CD,0CA+CC","sourcesContent":["export interface CommonDeeplinkOptions {\n /**\n * Protocol to use for deeplink\n * - `tg` - use `tg://` protocol links (default)\n * - `http` - use `http://` protocol\n * - `https` - use `https://` protocol\n * - `none` - don't use any protocol\n *\n * @default 'https'\n */\n protocol?: 'tg' | 'http' | 'https' | 'none'\n\n /**\n * For protocols except `tg://`, domain to use\n *\n * @default 't.me'\n */\n domain?: string\n}\n\ntype InputQuery = Record<string, string | number | true | undefined> | null\n\ninterface BuildDeeplinkOptions<T> {\n internalBuild?: (options: T) => [string, InputQuery]\n internalParse?: (path: string, query: URLSearchParams) => T | null\n\n externalBuild?: (options: T) => [string, InputQuery]\n externalParse?: (path: string, query: URLSearchParams) => T | null\n}\n\nexport type Deeplink<T> = {\n (options: T & CommonDeeplinkOptions): string\n parse: (url: string) => T | null\n}\n\nfunction writeQuery(query: InputQuery) {\n if (!query) return ''\n\n let str = ''\n\n for (const [key, value] of Object.entries(query)) {\n // eslint-disable-next-line eqeqeq\n if (value == undefined) continue\n\n if (str) str += '&'\n\n if (value === true) {\n str += `${key}`\n continue\n }\n\n str += `${key}=${encodeURIComponent(value)}`\n }\n\n if (!str) return ''\n\n return `?${str}`\n}\n\nexport function deeplinkBuilder<T>(params: BuildDeeplinkOptions<T>): Deeplink<T> {\n const { internalBuild, internalParse, externalBuild, externalParse } = params\n\n const fn_ = (options: T & CommonDeeplinkOptions) => {\n const { protocol = 'https', domain = 't.me', ...rest } = options\n\n if (protocol === 'tg') {\n if (!internalBuild) throw new Error('tg:// deeplink is not supported')\n\n const [path, query] = internalBuild(rest as T)\n\n return `tg://${path}${writeQuery(query)}`\n }\n\n if (!externalBuild) throw new Error('t.me deeplink is not supported')\n\n const [path, query] = externalBuild(rest as T)\n\n return `${protocol}://${domain}/${path}${writeQuery(query)}`\n }\n\n const fn = fn_ as Deeplink<T>\n\n fn.parse = (url: string) => {\n const isInternal = url.startsWith('tg://')\n\n // URL with non-standard protocols has bad behavior across environments\n if (isInternal) url = `https://fake/${url.slice(5)}`\n\n const parsed = new URL(url)\n\n if (isInternal) {\n if (!internalParse) throw new Error('tg:// deeplink is not supported')\n\n const path = parsed.pathname.slice(1)\n\n return internalParse(path, parsed.searchParams)\n }\n\n if (!externalParse) throw new Error('t.me deeplink is not supported')\n\n const path = parsed.pathname.slice(1)\n\n return externalParse(path, parsed.searchParams)\n }\n\n return fn\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/utils/links/common.ts"],"names":[],"mappings":";;;AAmCA,SAAS,UAAU,CAAC,KAAiB;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC9C,kCAAkC;QAClC,IAAI,KAAK,IAAI,SAAS;YAAE,SAAQ;QAEhC,IAAI,GAAG;YAAE,GAAG,IAAI,GAAG,CAAA;QAEnB,IAAI,KAAK,KAAK,IAAI,EAAE;YAChB,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA;YACf,SAAQ;SACX;QAED,GAAG,IAAI,GAAG,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAA;KAC/C;IAED,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IAEnB,OAAO,IAAI,GAAG,EAAE,CAAA;AACpB,CAAC;AAED,0BAA0B,CAAC,SAAgB,eAAe,CAAI,MAA+B;IACzF,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAAA;IAE7E,MAAM,GAAG,GAAG,CAAC,OAAkC,EAAE,EAAE;QAC/C,MAAM,EAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;QAEhE,IAAI,QAAQ,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAEtE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,IAAS,CAAC,CAAA;YAE9C,OAAO,QAAQ,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;SAC5C;QAED,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAErE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,IAAS,CAAC,CAAA;QAE9C,OAAO,GAAG,QAAQ,MAAM,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAA;IAChE,CAAC,CAAA;IAED,MAAM,EAAE,GAAG,GAAkB,CAAA;IAE7B,EAAE,CAAC,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;QACvB,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAE1C,uEAAuE;QACvE,IAAI,UAAU;YAAE,GAAG,GAAG,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAEpD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAE3B,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;YAEtE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAErC,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;SAClD;QAED,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAErE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAErC,OAAO,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;IACnD,CAAC,CAAA;IAED,OAAO,EAAE,CAAA;AACb,CAAC;AA/C0B,0CA+C1B","sourcesContent":["export interface CommonDeeplinkOptions {\n /**\n * Protocol to use for deeplink\n * - `tg` - use `tg://` protocol links (default)\n * - `http` - use `http://` protocol\n * - `https` - use `https://` protocol\n * - `none` - don't use any protocol\n *\n * @default 'https'\n */\n protocol?: 'tg' | 'http' | 'https' | 'none'\n\n /**\n * For protocols except `tg://`, domain to use\n *\n * @default 't.me'\n */\n domain?: string\n}\n\ntype InputQuery = Record<string, string | number | true | undefined> | null\n\ninterface BuildDeeplinkOptions<T> {\n internalBuild?: (options: T) => [string, InputQuery]\n internalParse?: (path: string, query: URLSearchParams) => T | null\n\n externalBuild?: (options: T) => [string, InputQuery]\n externalParse?: (path: string, query: URLSearchParams) => T | null\n}\n\nexport type Deeplink<T> = {\n (options: T & CommonDeeplinkOptions): string\n parse: (url: string) => T | null\n}\n\nfunction writeQuery(query: InputQuery) {\n if (!query) return ''\n\n let str = ''\n\n for (const [key, value] of Object.entries(query)) {\n // eslint-disable-next-line eqeqeq\n if (value == undefined) continue\n\n if (str) str += '&'\n\n if (value === true) {\n str += `${key}`\n continue\n }\n\n str += `${key}=${encodeURIComponent(value)}`\n }\n\n if (!str) return ''\n\n return `?${str}`\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function deeplinkBuilder<T>(params: BuildDeeplinkOptions<T>): Deeplink<T> {\n const { internalBuild, internalParse, externalBuild, externalParse } = params\n\n const fn_ = (options: T & CommonDeeplinkOptions) => {\n const { protocol = 'https', domain = 't.me', ...rest } = options\n\n if (protocol === 'tg') {\n if (!internalBuild) throw new Error('tg:// deeplink is not supported')\n\n const [path, query] = internalBuild(rest as T)\n\n return `tg://${path}${writeQuery(query)}`\n }\n\n if (!externalBuild) throw new Error('t.me deeplink is not supported')\n\n const [path, query] = externalBuild(rest as T)\n\n return `${protocol}://${domain}/${path}${writeQuery(query)}`\n }\n\n const fn = fn_ as Deeplink<T>\n\n fn.parse = (url: string) => {\n const isInternal = url.startsWith('tg://')\n\n // URL with non-standard protocols has bad behavior across environments\n if (isInternal) url = `https://fake/${url.slice(5)}`\n\n const parsed = new URL(url)\n\n if (isInternal) {\n if (!internalParse) throw new Error('tg:// deeplink is not supported')\n\n const path = parsed.pathname.slice(1)\n\n return internalParse(path, parsed.searchParams)\n }\n\n if (!externalParse) throw new Error('t.me deeplink is not supported')\n\n const path = parsed.pathname.slice(1)\n\n return externalParse(path, parsed.searchParams)\n }\n\n return fn\n}\n"]}
@@ -36,6 +36,7 @@ export declare class LogManager extends Logger {
36
36
  static VERBOSE: number;
37
37
  constructor(tag?: string);
38
38
  private _filter;
39
+ readonly platform: import("../platform.js").ICorePlatform;
39
40
  level: number;
40
41
  handler: (color: number, level: number, tag: string, fmt: string, args: unknown[]) => void;
41
42
  /**
@@ -1,23 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LogManager = exports.Logger = void 0;
4
- const tl_runtime_1 = require("@mtcute/tl-runtime");
5
- const logging_js_1 = require("./platform/logging.js");
6
- let defaultLogLevel = 3;
7
- /* c8 ignore start */
8
- if (typeof process !== 'undefined') {
9
- const envLogLevel = parseInt(process.env.MTCUTE_LOG_LEVEL ?? '');
10
- if (!isNaN(envLogLevel)) {
11
- defaultLogLevel = envLogLevel;
12
- }
13
- }
14
- else if (typeof localStorage !== 'undefined') {
15
- const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL);
16
- if (!isNaN(localLogLevel)) {
17
- defaultLogLevel = localLogLevel;
18
- }
19
- }
20
- /* c8 ignore end */
4
+ const platform_js_1 = require("../platform.js");
5
+ const DEFAULT_LOG_LEVEL = 3;
21
6
  const FORMATTER_RE = /%[a-zA-Z]/g;
22
7
  /**
23
8
  * Logger created by {@link LogManager}
@@ -71,7 +56,7 @@ class Logger {
71
56
  args.splice(idx, 1);
72
57
  if (m === '%h') {
73
58
  if (ArrayBuffer.isView(val))
74
- return (0, tl_runtime_1.hexEncode)(val);
59
+ return this.mgr.platform.hexEncode(val);
75
60
  if (typeof val === 'number' || typeof val === 'bigint')
76
61
  return val.toString(16);
77
62
  return String(val);
@@ -84,9 +69,10 @@ class Logger {
84
69
  }
85
70
  return JSON.stringify(val, (k, v) => {
86
71
  if (ArrayBuffer.isView(v) ||
87
- (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data))) {
72
+ (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data)) // todo: how can we do this better?
73
+ ) {
88
74
  // eslint-disable-next-line
89
- let str = v.data ? Buffer.from(v.data).toString('hex') : (0, tl_runtime_1.hexEncode)(v);
75
+ let str = v.data ? Buffer.from(v.data).toString('hex') : this.mgr.platform.hexEncode(v);
90
76
  if (str.length > 300) {
91
77
  str = str.slice(0, 300) + '...';
92
78
  }
@@ -132,8 +118,9 @@ class LogManager extends Logger {
132
118
  // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument
133
119
  super(null, tag);
134
120
  this._filter = defaultFilter;
135
- this.level = defaultLogLevel;
136
- this.handler = logging_js_1._defaultLoggingHandler;
121
+ this.platform = (0, platform_js_1.getPlatform)();
122
+ this.level = this.platform.getDefaultLogLevel() ?? DEFAULT_LOG_LEVEL;
123
+ this.handler = this.platform.log.bind(this.platform);
137
124
  this.mgr = this;
138
125
  }
139
126
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAE9C,sDAA8D;AAE9D,IAAI,eAAe,GAAG,CAAC,CAAA;AAEvB,qBAAqB;AACrB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;IAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;IAEhE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;QACrB,eAAe,GAAG,WAAW,CAAA;KAChC;CACJ;KAAM,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;IAC5C,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC,gBAA0B,CAAC,CAAA;IAEvE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;QACvB,eAAe,GAAG,aAAa,CAAA;KAClC;CACJ;AACD,mBAAmB;AAEnB,MAAM,YAAY,GAAG,YAAY,CAAA;AAEjC;;GAEG;AACH,MAAa,MAAM;IAKf,YACa,GAAe,EACf,GAAW,EACX,SAAiB,GAAG;QAFpB,QAAG,GAAH,GAAG,CAAY;QACf,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAc;QALjC,WAAM,GAAG,EAAE,CAAA;QAsGF,UAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;QAC7C,SAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3C,SAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3C,UAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;QAC7C,YAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;QAnGtD,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YAC7C,IAAI,IAAI,CAAC,CAAA,CAAC,uBAAuB;SACpC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,SAAS;QACL,IAAI,CAAC,GAAG,EAAE,CAAA;QAEV,4DAA4D;QAC5D,IAAI,GAAG,GAAuB,IAAI,CAAA;QAElC,OAAO,GAAG,EAAE;YACR,IAAI,GAAG,CAAC,MAAM;gBAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;YAClC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAA;SACnB;QAED,OAAO,CAAC,CAAA;IACZ,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAG,IAAe;QAC9C,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,OAAM;QAClC,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAM;QAE1C,oBAAoB;QACpB,IACI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpB;YACE,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;gBAClC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;oBAClF,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;oBAEnB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBAEnB,IAAI,CAAC,KAAK,IAAI,EAAE;wBACZ,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;4BAAE,OAAO,IAAA,sBAAS,EAAC,GAAiB,CAAC,CAAA;wBAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ;4BAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;wBAE/E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;qBACrB;oBACD,IAAI,CAAC,KAAK,IAAI;wBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;oBAE3C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;wBAC1B,IAAI,CAAC,KAAK,IAAI,EAAE;4BACZ,GAAG,GAAG,CAAC,GAAI,GAAiC,CAAC,CAAA;yBAChD;wBAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;4BAChC,IACI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;gCACrB,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EACzE;gCACE,2BAA2B;gCAC3B,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAS,EAAC,CAAC,CAAC,CAAA;gCAEjF,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;oCAClB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAA;iCAClC;gCAED,OAAO,GAAG,CAAA;6BACb;4BAED,+DAA+D;4BAC/D,OAAO,CAAC,CAAA;wBACZ,CAAC,CAAC,CAAA;qBACL;oBACD,IAAI,CAAC,KAAK,IAAI;wBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;oBAElC,IAAI,CAAC,KAAK,IAAI,EAAE;wBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;4BAAE,OAAO,KAAK,CAAA;wBAErC,OAAO,IAAK,GAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;qBAC1D;iBACJ;gBAED,GAAG,EAAE,CAAA;gBAEL,OAAO,CAAC,CAAA;YACZ,CAAC,CAAC,CAAA;SACL;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,CAAA;IAC/E,CAAC;IAQD;;;;;;OAMG;IACH,MAAM,CAAC,GAAW;QACd,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;CACJ;AAzHD,wBAyHC;AAED,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;AAEhC;;GAEG;AACH,MAAa,UAAW,SAAQ,MAAM;IAQlC,YAAY,GAAG,GAAG,MAAM;QACpB,gDAAgD;QAChD,oGAAoG;QACpG,KAAK,CAAC,IAAW,EAAE,GAAG,CAAC,CAEtB;QAGG,YAAO,GAA6B,aAAa,CAAA;QAEzD,UAAK,GAAG,eAAe,CAAA;QACvB,YAAO,GAAG,mCAAsB,CAAA;QAN1B,IAAY,CAAC,GAAG,GAAG,IAAI,CAAA;IAC7B,CAAC;IAOD;;;;OAIG;IACH,MAAM,CAAC,GAAW;QACd,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAqC;QACxC,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,aAAa,CAAA;IACtC,CAAC;;AArCL,gCAsCC;AArCU,cAAG,GAAG,CAAC,AAAJ,CAAI;AACP,gBAAK,GAAG,CAAC,AAAJ,CAAI;AACT,eAAI,GAAG,CAAC,AAAJ,CAAI;AACR,eAAI,GAAG,CAAC,AAAJ,CAAI;AACR,gBAAK,GAAG,CAAC,AAAJ,CAAI;AACT,kBAAO,GAAG,CAAC,AAAJ,CAAI","sourcesContent":["import { hexEncode } from '@mtcute/tl-runtime'\n\nimport { _defaultLoggingHandler } from './platform/logging.js'\n\nlet defaultLogLevel = 3\n\n/* c8 ignore start */\nif (typeof process !== 'undefined') {\n const envLogLevel = parseInt(process.env.MTCUTE_LOG_LEVEL ?? '')\n\n if (!isNaN(envLogLevel)) {\n defaultLogLevel = envLogLevel\n }\n} else if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n defaultLogLevel = localLogLevel\n }\n}\n/* c8 ignore end */\n\nconst FORMATTER_RE = /%[a-zA-Z]/g\n\n/**\n * Logger created by {@link LogManager}\n */\nexport class Logger {\n private color: number\n\n prefix = ''\n\n constructor(\n readonly mgr: LogManager,\n readonly tag: string,\n readonly parent: Logger = mgr,\n ) {\n let hash = 0\n\n for (let i = 0; i < tag.length; i++) {\n hash = (hash << 5) - hash + tag.charCodeAt(i)\n hash |= 0 // convert to 32bit int\n }\n\n this.color = Math.abs(hash) % 6\n }\n\n getPrefix(): string {\n let s = ''\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let obj: Logger | undefined = this\n\n while (obj) {\n if (obj.prefix) s = obj.prefix + s\n obj = obj.parent\n }\n\n return s\n }\n\n log(level: number, fmt: string, ...args: unknown[]): void {\n if (level > this.mgr.level) return\n // eslint-disable-next-line dot-notation\n if (!this.mgr['_filter'](this.tag)) return\n\n // custom formatters\n if (\n fmt.includes('%h') ||\n fmt.includes('%b') ||\n fmt.includes('%j') ||\n fmt.includes('%J') ||\n fmt.includes('%l') ||\n fmt.includes('%L')\n ) {\n let idx = 0\n fmt = fmt.replace(FORMATTER_RE, (m) => {\n if (m === '%h' || m === '%b' || m === '%j' || m === '%J' || m === '%l' || m === '%L') {\n let val = args[idx]\n\n args.splice(idx, 1)\n\n if (m === '%h') {\n if (ArrayBuffer.isView(val)) return hexEncode(val as Uint8Array)\n if (typeof val === 'number' || typeof val === 'bigint') return val.toString(16)\n\n return String(val)\n }\n if (m === '%b') return String(Boolean(val))\n\n if (m === '%j' || m === '%J') {\n if (m === '%J') {\n val = [...(val as IterableIterator<unknown>)]\n }\n\n return JSON.stringify(val, (k, v) => {\n if (\n ArrayBuffer.isView(v) ||\n (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data))\n ) {\n // eslint-disable-next-line\n let str = v.data ? Buffer.from(v.data as number[]).toString('hex') : hexEncode(v)\n\n if (str.length > 300) {\n str = str.slice(0, 300) + '...'\n }\n\n return str\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return v\n })\n }\n if (m === '%l') return String(val)\n\n if (m === '%L') {\n if (!Array.isArray(val)) return 'n/a'\n\n return `[${(val as unknown[]).map(String).join(', ')}]`\n }\n }\n\n idx++\n\n return m\n })\n }\n\n this.mgr.handler(this.color, level, this.tag, this.getPrefix() + fmt, args)\n }\n\n readonly error = this.log.bind(this, LogManager.ERROR)\n readonly warn = this.log.bind(this, LogManager.WARN)\n readonly info = this.log.bind(this, LogManager.INFO)\n readonly debug = this.log.bind(this, LogManager.DEBUG)\n readonly verbose = this.log.bind(this, LogManager.VERBOSE)\n\n /**\n * Create a {@link Logger} with the given tag\n * from the same {@link LogManager} as the current\n * Logger.\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this.mgr, tag, this)\n }\n}\n\nconst defaultFilter = () => true\n\n/**\n * Log manager. A logger that allows managing child loggers\n */\nexport class LogManager extends Logger {\n static OFF = 0\n static ERROR = 1\n static WARN = 2\n static INFO = 3\n static DEBUG = 4\n static VERBOSE = 5\n\n constructor(tag = 'base') {\n // workaround because we cant pass this to super\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument\n super(null as any, tag)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(this as any).mgr = this\n }\n\n private _filter: (tag: string) => boolean = defaultFilter\n\n level = defaultLogLevel\n handler = _defaultLoggingHandler\n\n /**\n * Create a {@link Logger} with the given tag\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this, tag)\n }\n\n /**\n * Filter logging by tags.\n *\n * @param cb\n */\n filter(cb: ((tag: string) => boolean) | null): void {\n this._filter = cb ?? defaultFilter\n }\n}\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPlatform } from '../platform.js'\n\nconst DEFAULT_LOG_LEVEL = 3\nconst FORMATTER_RE = /%[a-zA-Z]/g\n\n/**\n * Logger created by {@link LogManager}\n */\nexport class Logger {\n private color: number\n\n prefix = ''\n\n constructor(\n readonly mgr: LogManager,\n readonly tag: string,\n readonly parent: Logger = mgr,\n ) {\n let hash = 0\n\n for (let i = 0; i < tag.length; i++) {\n hash = (hash << 5) - hash + tag.charCodeAt(i)\n hash |= 0 // convert to 32bit int\n }\n\n this.color = Math.abs(hash) % 6\n }\n\n getPrefix(): string {\n let s = ''\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let obj: Logger | undefined = this\n\n while (obj) {\n if (obj.prefix) s = obj.prefix + s\n obj = obj.parent\n }\n\n return s\n }\n\n log(level: number, fmt: string, ...args: unknown[]): void {\n if (level > this.mgr.level) return\n // eslint-disable-next-line dot-notation\n if (!this.mgr['_filter'](this.tag)) return\n\n // custom formatters\n if (\n fmt.includes('%h') ||\n fmt.includes('%b') ||\n fmt.includes('%j') ||\n fmt.includes('%J') ||\n fmt.includes('%l') ||\n fmt.includes('%L')\n ) {\n let idx = 0\n fmt = fmt.replace(FORMATTER_RE, (m) => {\n if (m === '%h' || m === '%b' || m === '%j' || m === '%J' || m === '%l' || m === '%L') {\n let val = args[idx]\n\n args.splice(idx, 1)\n\n if (m === '%h') {\n if (ArrayBuffer.isView(val)) return this.mgr.platform.hexEncode(val as Uint8Array)\n if (typeof val === 'number' || typeof val === 'bigint') return val.toString(16)\n\n return String(val)\n }\n if (m === '%b') return String(Boolean(val))\n\n if (m === '%j' || m === '%J') {\n if (m === '%J') {\n val = [...(val as IterableIterator<unknown>)]\n }\n\n return JSON.stringify(val, (k, v) => {\n if (\n ArrayBuffer.isView(v) ||\n (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data)) // todo: how can we do this better?\n ) {\n // eslint-disable-next-line\n let str = v.data ? Buffer.from(v.data as number[]).toString('hex') : this.mgr.platform.hexEncode(v)\n\n if (str.length > 300) {\n str = str.slice(0, 300) + '...'\n }\n\n return str\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return v\n })\n }\n if (m === '%l') return String(val)\n\n if (m === '%L') {\n if (!Array.isArray(val)) return 'n/a'\n\n return `[${(val as unknown[]).map(String).join(', ')}]`\n }\n }\n\n idx++\n\n return m\n })\n }\n\n this.mgr.handler(this.color, level, this.tag, this.getPrefix() + fmt, args)\n }\n\n readonly error = this.log.bind(this, LogManager.ERROR)\n readonly warn = this.log.bind(this, LogManager.WARN)\n readonly info = this.log.bind(this, LogManager.INFO)\n readonly debug = this.log.bind(this, LogManager.DEBUG)\n readonly verbose = this.log.bind(this, LogManager.VERBOSE)\n\n /**\n * Create a {@link Logger} with the given tag\n * from the same {@link LogManager} as the current\n * Logger.\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this.mgr, tag, this)\n }\n}\n\nconst defaultFilter = () => true\n\n/**\n * Log manager. A logger that allows managing child loggers\n */\nexport class LogManager extends Logger {\n static OFF = 0\n static ERROR = 1\n static WARN = 2\n static INFO = 3\n static DEBUG = 4\n static VERBOSE = 5\n\n constructor(tag = 'base') {\n // workaround because we cant pass this to super\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument\n super(null as any, tag)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(this as any).mgr = this\n }\n\n private _filter: (tag: string) => boolean = defaultFilter\n\n readonly platform = getPlatform()\n\n level = this.platform.getDefaultLogLevel() ?? DEFAULT_LOG_LEVEL\n handler = this.platform.log.bind(this.platform)\n\n /**\n * Create a {@link Logger} with the given tag\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this, tag)\n }\n\n /**\n * Filter logging by tags.\n *\n * @param cb\n */\n filter(cb: ((tag: string) => boolean) | null): void {\n this._filter = cb ?? defaultFilter\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { ConnectionKind, RpcCallOptions } from '../network/network-manager.js';
4
4
  import { StorageManagerExtraOptions } from '../storage/storage.js';
5
5
  import { MustEqual } from '../types/utils.js';
6
6
  import { StringSessionData } from '../utils/index.js';
7
- import { ITelegramClient } from './client.types.js';
7
+ import { ConnectionState, ITelegramClient } from './client.types.js';
8
8
  import { AppConfigManager } from './managers/app-config-manager.js';
9
9
  import { ITelegramStorageProvider } from './storage/provider.js';
10
10
  import { TelegramStorageManager, TelegramStorageManagerExtraOptions } from './storage/storage.js';
@@ -19,6 +19,7 @@ export declare class BaseTelegramClient implements ITelegramClient {
19
19
  readonly params: BaseTelegramClientOptions;
20
20
  readonly updates?: UpdatesManager;
21
21
  private _serverUpdatesHandler;
22
+ private _connectionStateHandler;
22
23
  constructor(params: BaseTelegramClientOptions);
23
24
  readonly log: import("../utils/logger.js").Logger;
24
25
  readonly mt: MtClient;
@@ -100,6 +101,7 @@ export declare class BaseTelegramClient implements ITelegramClient {
100
101
  handleClientUpdate(updates: tl.TypeUpdates, noDispatch?: boolean): void;
101
102
  onServerUpdate(handler: (update: tl.TypeUpdates) => void): void;
102
103
  onUpdate(handler: RawUpdateHandler): void;
104
+ onConnectionState(handler: (state: ConnectionState) => void): void;
103
105
  getApiCrenetials(): Promise<{
104
106
  id: number;
105
107
  hash: string;
@@ -9,6 +9,7 @@ export class BaseTelegramClient {
9
9
  constructor(params) {
10
10
  this.params = params;
11
11
  this._serverUpdatesHandler = () => { };
12
+ this._connectionStateHandler = () => { };
12
13
  this.log = this.params.logger ?? new LogManager('client');
13
14
  this.mt = new MtClient({
14
15
  ...this.params,
@@ -37,10 +38,24 @@ export class BaseTelegramClient {
37
38
  if (!params.disableUpdates && params.updates !== false) {
38
39
  this.updates = new UpdatesManager(this, params.updates);
39
40
  this._serverUpdatesHandler = this.updates.handleUpdate.bind(this.updates);
41
+ this.updates.onCatchingUp((catchingUp) => {
42
+ this._connectionStateHandler(catchingUp ? 'updating' : 'connected');
43
+ });
40
44
  }
41
45
  this.mt.on('update', (update) => {
42
46
  this._serverUpdatesHandler(update);
43
47
  });
48
+ this.mt.on('usable', () => {
49
+ this._connectionStateHandler('connected');
50
+ });
51
+ this.mt.on('wait', () => {
52
+ this._connectionStateHandler('connecting');
53
+ });
54
+ this.mt.on('networkChanged', (connected) => {
55
+ if (!connected) {
56
+ this._connectionStateHandler('offline');
57
+ }
58
+ });
44
59
  }
45
60
  /**
46
61
  * **ADVANCED**
@@ -196,6 +211,9 @@ export class BaseTelegramClient {
196
211
  }
197
212
  this.updates.setHandler(handler);
198
213
  }
214
+ onConnectionState(handler) {
215
+ this._connectionStateHandler = handler;
216
+ }
199
217
  async getApiCrenetials() {
200
218
  return {
201
219
  id: this.params.apiId,
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/highlevel/base.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/require-await */\nimport { tl } from '@mtcute/tl'\n\nimport { MtClient, MtClientOptions } from '../network/client.js'\nimport { ConnectionKind, RpcCallOptions } from '../network/network-manager.js'\nimport { StorageManagerExtraOptions } from '../storage/storage.js'\nimport { MtArgumentError } from '../types/errors.js'\nimport { MustEqual } from '../types/utils.js'\nimport {\n asyncResettable,\n computeNewPasswordHash,\n computeSrpParams,\n readStringSession,\n StringSessionData,\n writeStringSession,\n} from '../utils/index.js'\nimport { LogManager } from '../utils/logger.js'\nimport { ITelegramClient } from './client.types.js'\nimport { AppConfigManager } from './managers/app-config-manager.js'\nimport { ITelegramStorageProvider } from './storage/provider.js'\nimport { TelegramStorageManager, TelegramStorageManagerExtraOptions } from './storage/storage.js'\nimport { UpdatesManager } from './updates/manager.js'\nimport { RawUpdateHandler, UpdatesManagerParams } from './updates/types.js'\n\nexport interface BaseTelegramClientOptions extends MtClientOptions {\n storage: ITelegramStorageProvider\n storageOptions?: StorageManagerExtraOptions & TelegramStorageManagerExtraOptions\n updates?: UpdatesManagerParams | false\n}\n\nexport class BaseTelegramClient implements ITelegramClient {\n readonly updates?: UpdatesManager\n private _serverUpdatesHandler: (updates: tl.TypeUpdates) => void = () => {}\n\n constructor(readonly params: BaseTelegramClientOptions) {\n if (!params.disableUpdates && params.updates !== false) {\n this.updates = new UpdatesManager(this, params.updates)\n this._serverUpdatesHandler = this.updates.handleUpdate.bind(this.updates)\n }\n\n this.mt.on('update', (update: tl.TypeUpdates) => {\n this._serverUpdatesHandler(update)\n })\n }\n\n readonly log = this.params.logger ?? new LogManager('client')\n readonly mt = new MtClient({\n ...this.params,\n logger: this.log.create('mtproto'),\n })\n readonly crypto = this.mt.crypto\n readonly storage = new TelegramStorageManager(this.mt.storage, {\n provider: this.params.storage,\n ...this.params.storageOptions,\n })\n readonly appConfig = new AppConfigManager(this)\n\n private _prepare = asyncResettable(async () => {\n await this.mt.prepare()\n\n const self = await this.storage.self.fetch()\n this.log.prefix = `[USER ${self?.userId ?? 'n/a'}] `\n this.mt.network.setIsPremium(self?.isPremium ?? false)\n\n await this.updates?.prepare()\n })\n\n /**\n * **ADVANCED**\n *\n * Do all the preparations, but don't connect just yet.\n * Useful when you want to do some preparations before\n * connecting, like setting up session.\n *\n * Call {@link connect} to actually connect.\n */\n prepare() {\n return this._prepare.run()\n }\n\n // used in a hot path, avoid extra function calls\n private _connected = false\n private _connect = asyncResettable(async () => {\n await this._prepare.run()\n await this.mt.connect()\n this._connected = true\n })\n\n /**\n * Initialize the connection to the primary DC.\n *\n * You shouldn't usually call this method directly as it is called\n * implicitly the first time you call {@link call}.\n */\n async connect(): Promise<void> {\n return this._connect.run()\n }\n\n get isConnected(): boolean {\n return this._connected\n }\n\n async close(): Promise<void> {\n await this.mt.close()\n this.updates?.stopLoop()\n this._prepare.reset()\n this._connect.reset()\n this._connected = false\n }\n\n async notifyLoggedIn(auth: tl.auth.TypeAuthorization | tl.RawUser): Promise<tl.RawUser> {\n const user = this.mt.network.notifyLoggedIn(auth)\n\n this.log.prefix = `[USER ${user.id}] `\n const self = await this.storage.self.storeFrom(user)\n\n this.updates?.notifyLoggedIn(self)\n\n return user\n }\n\n async notifyLoggedOut(): Promise<void> {\n this.mt.network.notifyLoggedOut()\n\n this.log.prefix = '[USER n/a] '\n await this.storage.self.store(null)\n }\n\n async notifyChannelOpened(channelId: number, pts?: number): Promise<boolean> {\n return this.updates?.notifyChannelOpened(channelId, pts) ?? false\n }\n\n async notifyChannelClosed(channelId: number): Promise<boolean> {\n return this.updates?.notifyChannelClosed(channelId) ?? false\n }\n\n async startUpdatesLoop(): Promise<void> {\n await this.updates?.startLoop()\n }\n\n async stopUpdatesLoop(): Promise<void> {\n this.updates?.stopLoop()\n }\n\n /**\n * Make an RPC call\n *\n * This method is still quite low-level and you shouldn't use this\n * when using high-level API provided by `@mtcute/client`.\n *\n * @param message RPC method to call\n * @param params Additional call parameters\n */\n async call<T extends tl.RpcMethod>(\n message: MustEqual<T, tl.RpcMethod>,\n params?: RpcCallOptions,\n ): Promise<tl.RpcCallReturn[T['_']]> {\n if (!this._connected) {\n await this._connect.run()\n }\n\n const res = await this.mt.call(message, params)\n\n await this.storage.peers.updatePeersFrom(res)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return res\n }\n\n /**\n * Import the session from the given session string.\n *\n * Note that the session will only be imported in case\n * the storage is missing authorization (i.e. does not contain\n * auth key for the primary DC), otherwise it will be ignored (unless `force`).\n *\n * @param session Session string to import\n * @param force Whether to overwrite existing session\n */\n async importSession(session: string | StringSessionData, force = false): Promise<void> {\n await this.prepare()\n\n const defaultDcAuthKey = await this.mt.storage.provider.authKeys.get(this.mt._defaultDcs.main.id)\n\n if (defaultDcAuthKey && !force) return\n\n const data = typeof session === 'string' ? readStringSession(this.mt._readerMap, session) : session\n\n if (data.testMode && !this.params.testMode) {\n throw new Error(\n 'This session string is not for the current backend. ' +\n `Session is ${data.testMode ? 'test' : 'prod'}, ` +\n `but the client is ${this.params.testMode ? 'test' : 'prod'}`,\n )\n }\n\n this.mt._defaultDcs = data.primaryDcs\n await this.mt.storage.dcs.store(data.primaryDcs)\n\n if (data.self) {\n await this.storage.self.store(data.self)\n }\n\n await this.mt.storage.provider.authKeys.set(data.primaryDcs.main.id, data.authKey)\n\n await this.mt.storage.save()\n }\n\n /**\n * Export current session to a single *LONG* string, containing\n * all the needed information.\n *\n * > **Warning!** Anyone with this string will be able\n * > to authorize as you and do anything. Treat this\n * > as your password, and never give it away!\n * >\n * > In case you have accidentally leaked this string,\n * > make sure to revoke this session in account settings:\n * > \"Privacy & Security\" > \"Active sessions\" >\n * > find the one containing `mtcute` > Revoke,\n * > or, in case this is a bot, revoke bot token\n * > with [@BotFather](//t.me/botfather)\n */\n async exportSession(): Promise<string> {\n await this._prepare.run()\n\n const primaryDcs = (await this.mt.storage.dcs.fetch()) ?? this.mt._defaultDcs\n\n const authKey = await this.mt.storage.provider.authKeys.get(primaryDcs.main.id)\n if (!authKey) throw new Error('Auth key is not ready yet')\n\n return writeStringSession({\n version: 3,\n self: await this.storage.self.fetch(),\n testMode: Boolean(this.params.testMode),\n primaryDcs,\n authKey,\n })\n }\n\n /**\n * Register an error handler for the client\n *\n * @param handler Error handler.\n */\n onError(handler: (err: unknown) => void): void {\n this.mt.onError(handler)\n }\n\n emitError(err: unknown): void {\n this.mt.emitError(err)\n }\n\n handleClientUpdate(updates: tl.TypeUpdates, noDispatch?: boolean): void {\n this.updates?.handleClientUpdate(updates, noDispatch)\n }\n\n onServerUpdate(handler: (update: tl.TypeUpdates) => void): void {\n this._serverUpdatesHandler = handler\n }\n\n onUpdate(handler: RawUpdateHandler): void {\n if (!this.updates) {\n throw new MtArgumentError('Updates manager is disabled')\n }\n\n this.updates.setHandler(handler)\n }\n\n async getApiCrenetials() {\n return {\n id: this.params.apiId,\n hash: this.params.apiHash,\n }\n }\n\n async getPoolSize(kind: ConnectionKind, dcId?: number): Promise<number> {\n if (!this._connected) {\n await this._connect.run()\n }\n\n return this.mt.network.getPoolSize(kind, dcId)\n }\n\n async getPrimaryDcId(): Promise<number> {\n if (!this._connected) {\n await this._connect.run()\n }\n\n return this.mt.network.getPrimaryDcId()\n }\n\n computeSrpParams(request: tl.account.RawPassword, password: string): Promise<tl.RawInputCheckPasswordSRP> {\n return computeSrpParams(this.crypto, request, password)\n }\n computeNewPasswordHash(algo: tl.TypePasswordKdfAlgo, password: string): Promise<Uint8Array> {\n return computeNewPasswordHash(this.crypto, algo, password)\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/highlevel/base.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/require-await */\nimport { tl } from '@mtcute/tl'\n\nimport { MtClient, MtClientOptions } from '../network/client.js'\nimport { ConnectionKind, RpcCallOptions } from '../network/network-manager.js'\nimport { StorageManagerExtraOptions } from '../storage/storage.js'\nimport { MtArgumentError } from '../types/errors.js'\nimport { MustEqual } from '../types/utils.js'\nimport {\n asyncResettable,\n computeNewPasswordHash,\n computeSrpParams,\n readStringSession,\n StringSessionData,\n writeStringSession,\n} from '../utils/index.js'\nimport { LogManager } from '../utils/logger.js'\nimport { ConnectionState, ITelegramClient } from './client.types.js'\nimport { AppConfigManager } from './managers/app-config-manager.js'\nimport { ITelegramStorageProvider } from './storage/provider.js'\nimport { TelegramStorageManager, TelegramStorageManagerExtraOptions } from './storage/storage.js'\nimport { UpdatesManager } from './updates/manager.js'\nimport { RawUpdateHandler, UpdatesManagerParams } from './updates/types.js'\n\nexport interface BaseTelegramClientOptions extends MtClientOptions {\n storage: ITelegramStorageProvider\n storageOptions?: StorageManagerExtraOptions & TelegramStorageManagerExtraOptions\n updates?: UpdatesManagerParams | false\n}\n\nexport class BaseTelegramClient implements ITelegramClient {\n readonly updates?: UpdatesManager\n private _serverUpdatesHandler: (updates: tl.TypeUpdates) => void = () => {}\n private _connectionStateHandler: (state: ConnectionState) => void = () => {}\n\n constructor(readonly params: BaseTelegramClientOptions) {\n if (!params.disableUpdates && params.updates !== false) {\n this.updates = new UpdatesManager(this, params.updates)\n this._serverUpdatesHandler = this.updates.handleUpdate.bind(this.updates)\n this.updates.onCatchingUp((catchingUp) => {\n this._connectionStateHandler(catchingUp ? 'updating' : 'connected')\n })\n }\n\n this.mt.on('update', (update: tl.TypeUpdates) => {\n this._serverUpdatesHandler(update)\n })\n this.mt.on('usable', () => {\n this._connectionStateHandler('connected')\n })\n this.mt.on('wait', () => {\n this._connectionStateHandler('connecting')\n })\n this.mt.on('networkChanged', (connected: boolean) => {\n if (!connected) {\n this._connectionStateHandler('offline')\n }\n })\n }\n\n readonly log = this.params.logger ?? new LogManager('client')\n readonly mt = new MtClient({\n ...this.params,\n logger: this.log.create('mtproto'),\n })\n readonly crypto = this.mt.crypto\n readonly storage = new TelegramStorageManager(this.mt.storage, {\n provider: this.params.storage,\n ...this.params.storageOptions,\n })\n readonly appConfig = new AppConfigManager(this)\n\n private _prepare = asyncResettable(async () => {\n await this.mt.prepare()\n\n const self = await this.storage.self.fetch()\n this.log.prefix = `[USER ${self?.userId ?? 'n/a'}] `\n this.mt.network.setIsPremium(self?.isPremium ?? false)\n\n await this.updates?.prepare()\n })\n\n /**\n * **ADVANCED**\n *\n * Do all the preparations, but don't connect just yet.\n * Useful when you want to do some preparations before\n * connecting, like setting up session.\n *\n * Call {@link connect} to actually connect.\n */\n prepare() {\n return this._prepare.run()\n }\n\n // used in a hot path, avoid extra function calls\n private _connected = false\n private _connect = asyncResettable(async () => {\n await this._prepare.run()\n await this.mt.connect()\n this._connected = true\n })\n\n /**\n * Initialize the connection to the primary DC.\n *\n * You shouldn't usually call this method directly as it is called\n * implicitly the first time you call {@link call}.\n */\n async connect(): Promise<void> {\n return this._connect.run()\n }\n\n get isConnected(): boolean {\n return this._connected\n }\n\n async close(): Promise<void> {\n await this.mt.close()\n this.updates?.stopLoop()\n this._prepare.reset()\n this._connect.reset()\n this._connected = false\n }\n\n async notifyLoggedIn(auth: tl.auth.TypeAuthorization | tl.RawUser): Promise<tl.RawUser> {\n const user = this.mt.network.notifyLoggedIn(auth)\n\n this.log.prefix = `[USER ${user.id}] `\n const self = await this.storage.self.storeFrom(user)\n\n this.updates?.notifyLoggedIn(self)\n\n return user\n }\n\n async notifyLoggedOut(): Promise<void> {\n this.mt.network.notifyLoggedOut()\n\n this.log.prefix = '[USER n/a] '\n await this.storage.self.store(null)\n }\n\n async notifyChannelOpened(channelId: number, pts?: number): Promise<boolean> {\n return this.updates?.notifyChannelOpened(channelId, pts) ?? false\n }\n\n async notifyChannelClosed(channelId: number): Promise<boolean> {\n return this.updates?.notifyChannelClosed(channelId) ?? false\n }\n\n async startUpdatesLoop(): Promise<void> {\n await this.updates?.startLoop()\n }\n\n async stopUpdatesLoop(): Promise<void> {\n this.updates?.stopLoop()\n }\n\n /**\n * Make an RPC call\n *\n * This method is still quite low-level and you shouldn't use this\n * when using high-level API provided by `@mtcute/client`.\n *\n * @param message RPC method to call\n * @param params Additional call parameters\n */\n async call<T extends tl.RpcMethod>(\n message: MustEqual<T, tl.RpcMethod>,\n params?: RpcCallOptions,\n ): Promise<tl.RpcCallReturn[T['_']]> {\n if (!this._connected) {\n await this._connect.run()\n }\n\n const res = await this.mt.call(message, params)\n\n await this.storage.peers.updatePeersFrom(res)\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return res\n }\n\n /**\n * Import the session from the given session string.\n *\n * Note that the session will only be imported in case\n * the storage is missing authorization (i.e. does not contain\n * auth key for the primary DC), otherwise it will be ignored (unless `force`).\n *\n * @param session Session string to import\n * @param force Whether to overwrite existing session\n */\n async importSession(session: string | StringSessionData, force = false): Promise<void> {\n await this.prepare()\n\n const defaultDcAuthKey = await this.mt.storage.provider.authKeys.get(this.mt._defaultDcs.main.id)\n\n if (defaultDcAuthKey && !force) return\n\n const data = typeof session === 'string' ? readStringSession(this.mt._readerMap, session) : session\n\n if (data.testMode && !this.params.testMode) {\n throw new Error(\n 'This session string is not for the current backend. ' +\n `Session is ${data.testMode ? 'test' : 'prod'}, ` +\n `but the client is ${this.params.testMode ? 'test' : 'prod'}`,\n )\n }\n\n this.mt._defaultDcs = data.primaryDcs\n await this.mt.storage.dcs.store(data.primaryDcs)\n\n if (data.self) {\n await this.storage.self.store(data.self)\n }\n\n await this.mt.storage.provider.authKeys.set(data.primaryDcs.main.id, data.authKey)\n\n await this.mt.storage.save()\n }\n\n /**\n * Export current session to a single *LONG* string, containing\n * all the needed information.\n *\n * > **Warning!** Anyone with this string will be able\n * > to authorize as you and do anything. Treat this\n * > as your password, and never give it away!\n * >\n * > In case you have accidentally leaked this string,\n * > make sure to revoke this session in account settings:\n * > \"Privacy & Security\" > \"Active sessions\" >\n * > find the one containing `mtcute` > Revoke,\n * > or, in case this is a bot, revoke bot token\n * > with [@BotFather](//t.me/botfather)\n */\n async exportSession(): Promise<string> {\n await this._prepare.run()\n\n const primaryDcs = (await this.mt.storage.dcs.fetch()) ?? this.mt._defaultDcs\n\n const authKey = await this.mt.storage.provider.authKeys.get(primaryDcs.main.id)\n if (!authKey) throw new Error('Auth key is not ready yet')\n\n return writeStringSession({\n version: 3,\n self: await this.storage.self.fetch(),\n testMode: Boolean(this.params.testMode),\n primaryDcs,\n authKey,\n })\n }\n\n /**\n * Register an error handler for the client\n *\n * @param handler Error handler.\n */\n onError(handler: (err: unknown) => void): void {\n this.mt.onError(handler)\n }\n\n emitError(err: unknown): void {\n this.mt.emitError(err)\n }\n\n handleClientUpdate(updates: tl.TypeUpdates, noDispatch?: boolean): void {\n this.updates?.handleClientUpdate(updates, noDispatch)\n }\n\n onServerUpdate(handler: (update: tl.TypeUpdates) => void): void {\n this._serverUpdatesHandler = handler\n }\n\n onUpdate(handler: RawUpdateHandler): void {\n if (!this.updates) {\n throw new MtArgumentError('Updates manager is disabled')\n }\n\n this.updates.setHandler(handler)\n }\n\n onConnectionState(handler: (state: ConnectionState) => void): void {\n this._connectionStateHandler = handler\n }\n\n async getApiCrenetials() {\n return {\n id: this.params.apiId,\n hash: this.params.apiHash,\n }\n }\n\n async getPoolSize(kind: ConnectionKind, dcId?: number): Promise<number> {\n if (!this._connected) {\n await this._connect.run()\n }\n\n return this.mt.network.getPoolSize(kind, dcId)\n }\n\n async getPrimaryDcId(): Promise<number> {\n if (!this._connected) {\n await this._connect.run()\n }\n\n return this.mt.network.getPrimaryDcId()\n }\n\n computeSrpParams(request: tl.account.RawPassword, password: string): Promise<tl.RawInputCheckPasswordSRP> {\n return computeSrpParams(this.crypto, request, password)\n }\n computeNewPasswordHash(algo: tl.TypePasswordKdfAlgo, password: string): Promise<Uint8Array> {\n return computeNewPasswordHash(this.crypto, algo, password)\n }\n}\n"]}
@@ -3,6 +3,7 @@ import EventEmitter from 'events';
3
3
  import Long from 'long';
4
4
  import { tdFileId } from '@mtcute/file-id';
5
5
  import { tl } from '@mtcute/tl';
6
+ import { RpcCallOptions } from '../network/index.js';
6
7
  import { MaybeArray, MaybePromise, PartialExcept, PartialOnly } from '../types/index.js';
7
8
  import { BaseTelegramClientOptions } from './base.js';
8
9
  import { ITelegramClient } from './client.types.js';
@@ -36,15 +37,14 @@ import { ITelegramStorageProvider } from './storage/provider.js';
36
37
  import { AllStories, ArrayPaginated, ArrayWithTotal, Boost, BoostSlot, BoostStats, BotChatJoinRequestUpdate, BotCommands, BotReactionCountUpdate, BotReactionUpdate, BotStoppedUpdate, CallbackQuery, Chat, ChatEvent, ChatInviteLink, ChatInviteLinkMember, ChatJoinRequestUpdate, ChatMember, ChatMemberUpdate, ChatPreview, ChosenInlineResult, DeleteMessageUpdate, DeleteStoryUpdate, Dialog, FileDownloadLocation, FileDownloadParameters, ForumTopic, GameHighScore, HistoryReadUpdate, InlineCallbackQuery, InlineQuery, InputChatEventFilters, InputDialogFolder, InputFileLike, InputInlineResult, InputMediaLike, InputMessageId, InputPeerLike, InputPrivacyRule, InputReaction, InputStickerSet, InputStickerSetItem, InputText, MaybeDynamic, Message, MessageMedia, MessageReactions, ParametersSkip2, ParsedUpdate, PeerReaction, PeersIndex, PeerStories, Photo, Poll, PollUpdate, PollVoteUpdate, PreCheckoutQuery, RawDocument, ReplyMarkup, SentCode, Sticker, StickerSet, StickerSourceType, StickerType, StoriesStealthMode, Story, StoryInteractions, StoryUpdate, StoryViewer, StoryViewersList, TakeoutSession, TextWithEntities, TypingStatus, UploadedFile, UploadFileLike, User, UserStatusUpdate, UserTypingUpdate } from './types/index.js';
37
38
  import { ParsedUpdateHandlerParams } from './updates/parsed.js';
38
39
  import { StringSessionData } from './utils/string-session.js';
39
- type TelegramClientOptions = ((Omit<BaseTelegramClientOptions, 'storage'> & {
40
+ type TelegramClientOptions = ((PartialOnly<Omit<BaseTelegramClientOptions, 'storage'>, 'transport' | 'crypto'> & {
40
41
  /**
41
42
  * Storage to use for this client.
42
43
  *
43
- * If a string is passed, it will be used as:
44
- * - a path to a JSON file for Node.js
45
- * - IndexedDB database name for browsers
44
+ * If a string is passed, it will be used as
45
+ * a name for the default platform-specific storage provider to use.
46
46
  *
47
- * If omitted, {@link MemoryStorage} is used
47
+ * @default `"client.session"`
48
48
  */
49
49
  storage?: string | ITelegramStorageProvider;
50
50
  }) | {
@@ -229,6 +229,13 @@ export interface TelegramClient extends ITelegramClient {
229
229
  */
230
230
  on(name: 'bot_reaction_count', handler: (upd: BotReactionCountUpdate) => void): this;
231
231
  on(name: string, handler: (...args: any[]) => void): this;
232
+ /**
233
+ * Wrap this client so that all RPC calls will use the specified parameters.
234
+ *
235
+ * @param params Parameters to use
236
+ * @returns Wrapped client
237
+ */
238
+ withParams(params: RpcCallOptions): this;
232
239
  /**
233
240
  * Check your Two-Step verification password and log in
234
241
  *
@@ -1696,7 +1703,7 @@ export interface TelegramClient extends ITelegramClient {
1696
1703
  * **Available**: 👤 users only
1697
1704
  *
1698
1705
  */
1699
- getFolders(): Promise<tl.TypeDialogFilter[]>;
1706
+ getFolders(): Promise<tl.messages.RawDialogFilters>;
1700
1707
  /**
1701
1708
  * Get dialogs with certain peers.
1702
1709
  *
@@ -1827,7 +1834,7 @@ export interface TelegramClient extends ITelegramClient {
1827
1834
  */
1828
1835
  downloadAsBuffer(location: FileDownloadLocation, params?: FileDownloadParameters): Promise<Uint8Array>;
1829
1836
  /**
1830
- * Download a remote file to a local file (only for NodeJS).
1837
+ * Download a remote file to a local file (only for Node.js).
1831
1838
  * Promise will resolve once the download is complete.
1832
1839
  *
1833
1840
  * **Available**: ✅ both users and bots
@@ -1846,6 +1853,14 @@ export interface TelegramClient extends ITelegramClient {
1846
1853
  * @param params Download parameters
1847
1854
  */
1848
1855
  downloadAsIterable(input: FileDownloadLocation, params?: FileDownloadParameters): AsyncIterableIterator<Uint8Array>;
1856
+ /**
1857
+ * Download a remote file as a Node.js Readable stream.
1858
+ *
1859
+ * **Available**: ✅ both users and bots
1860
+ *
1861
+ * @param params File download parameters
1862
+ */
1863
+ downloadAsNodeStream(location: FileDownloadLocation, params?: FileDownloadParameters): import('stream').Readable;
1849
1864
  /**
1850
1865
  * Download a file and return it as a readable stream,
1851
1866
  * streaming file contents.
@@ -1891,9 +1906,6 @@ export interface TelegramClient extends ITelegramClient {
1891
1906
  uploadFile(params: {
1892
1907
  /**
1893
1908
  * Upload file source.
1894
- *
1895
- * > **Note**: `fs.ReadStream` is a subclass of `stream.Readable` and contains
1896
- * > info about file name, thus you don't need to pass them explicitly.
1897
1909
  */
1898
1910
  file: UploadFileLike;
1899
1911
  /**
@@ -4406,6 +4418,7 @@ export interface TelegramClient extends ITelegramClient {
4406
4418
  }): Promise<User>;
4407
4419
  }
4408
4420
  export type { TelegramClientOptions };
4421
+ export * from './base.js';
4409
4422
  export declare class TelegramClient extends EventEmitter implements ITelegramClient {
4410
4423
  _client: ITelegramClient;
4411
4424
  constructor(opts: TelegramClientOptions);
@@ -2,7 +2,7 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
3
  /* THIS FILE WAS AUTO-GENERATED */
4
4
  import EventEmitter from 'events';
5
- import { MemoryStorage } from '../storage/providers/memory/index.js';
5
+ import { MtUnsupportedError } from '../types/index.js';
6
6
  import { BaseTelegramClient } from './base.js';
7
7
  import { checkPassword } from './methods/auth/check-password.js';
8
8
  import { getPasswordHint } from './methods/auth/get-password-hint.js';
@@ -88,7 +88,6 @@ import { getPeerDialogs } from './methods/dialogs/get-peer-dialogs.js';
88
88
  import { iterDialogs } from './methods/dialogs/iter-dialogs.js';
89
89
  import { setFoldersOrder } from './methods/dialogs/set-folders-order.js';
90
90
  import { downloadAsBuffer } from './methods/files/download-buffer.js';
91
- import { downloadToFile } from './methods/files/download-file.js';
92
91
  import { downloadAsIterable } from './methods/files/download-iterable.js';
93
92
  import { downloadAsStream } from './methods/files/download-stream.js';
94
93
  import { _normalizeInputFile } from './methods/files/normalize-input-file.js';
@@ -163,6 +162,7 @@ import { unpinAllMessages } from './methods/messages/unpin-all-messages.js';
163
162
  import { unpinMessage } from './methods/messages/unpin-message.js';
164
163
  import { initTakeoutSession } from './methods/misc/init-takeout-session.js';
165
164
  import { _normalizePrivacyRules } from './methods/misc/normalize-privacy-rules.js';
165
+ import { withParams } from './methods/misc/with-params.js';
166
166
  import { changeCloudPassword } from './methods/password/change-cloud-password.js';
167
167
  import { enableCloudPassword } from './methods/password/enable-cloud-password.js';
168
168
  import { cancelPasswordEmail, resendPasswordEmail, verifyPasswordEmail } from './methods/password/password-email.js';
@@ -225,7 +225,7 @@ import { unblockUser } from './methods/users/unblock-user.js';
225
225
  import { updateProfile } from './methods/users/update-profile.js';
226
226
  import { Conversation } from './types/conversation.js';
227
227
  import { makeParsedUpdateHandler } from './updates/parsed.js';
228
- import { _defaultStorageFactory } from './utils/platform/storage.js';
228
+ export * from './base.js';
229
229
  export class TelegramClient extends EventEmitter {
230
230
  constructor(opts) {
231
231
  super();
@@ -233,20 +233,10 @@ export class TelegramClient extends EventEmitter {
233
233
  this._client = opts.client;
234
234
  }
235
235
  else {
236
- let storage;
237
- if (typeof opts.storage === 'string') {
238
- storage = _defaultStorageFactory(opts.storage);
236
+ if (!opts.storage || typeof opts.storage === 'string' || !opts.transport || !opts.crypto) {
237
+ throw new MtUnsupportedError('You need to explicitly provide storage, transport and crypto for @mtcute/core');
239
238
  }
240
- else if (!opts.storage) {
241
- storage = new MemoryStorage();
242
- }
243
- else {
244
- storage = opts.storage;
245
- }
246
- this._client = new BaseTelegramClient({
247
- ...opts,
248
- storage,
249
- });
239
+ this._client = new BaseTelegramClient(opts);
250
240
  }
251
241
  // @ts-expect-error codegen
252
242
  this.log = this._client.log;
@@ -267,6 +257,9 @@ export class TelegramClient extends EventEmitter {
267
257
  },
268
258
  }));
269
259
  }
260
+ withParams(params) {
261
+ return withParams(this, params);
262
+ }
270
263
  }
271
264
  TelegramClient.prototype.checkPassword = function (...args) {
272
265
  return checkPassword(this._client, ...args);
@@ -535,9 +528,6 @@ TelegramClient.prototype.setFoldersOrder = function (...args) {
535
528
  TelegramClient.prototype.downloadAsBuffer = function (...args) {
536
529
  return downloadAsBuffer(this._client, ...args);
537
530
  };
538
- TelegramClient.prototype.downloadToFile = function (...args) {
539
- return downloadToFile(this._client, ...args);
540
- };
541
531
  TelegramClient.prototype.downloadAsIterable = function (...args) {
542
532
  return downloadAsIterable(this._client, ...args);
543
533
  };
@@ -1053,6 +1043,9 @@ TelegramClient.prototype.computeSrpParams = function (...args) {
1053
1043
  TelegramClient.prototype.computeNewPasswordHash = function (...args) {
1054
1044
  return this._client.computeNewPasswordHash(...args);
1055
1045
  };
1046
+ TelegramClient.prototype.onConnectionState = function (...args) {
1047
+ return this._client.onConnectionState(...args);
1048
+ };
1056
1049
  TelegramClient.prototype.onServerUpdate = function () {
1057
1050
  throw new Error('onServerUpdate is not available for TelegramClient, use .on() methods instead');
1058
1051
  };