@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,8 +1,5 @@
1
- import { TransportFactory } from './abstract.js';
2
1
  export * from './abstract.js';
3
2
  export * from './intermediate.js';
4
3
  export * from './obfuscated.js';
5
4
  export * from './streamed.js';
6
5
  export * from './wrapped.js';
7
- /** Platform-defined default transport factory */
8
- export declare const defaultTransportFactory: TransportFactory;
@@ -3,7 +3,4 @@ export * from './intermediate.js';
3
3
  export * from './obfuscated.js';
4
4
  export * from './streamed.js';
5
5
  export * from './wrapped.js';
6
- import { _defaultTransportFactory } from '../../utils/platform/transport.js';
7
- /** Platform-defined default transport factory */
8
- export const defaultTransportFactory = _defaultTransportFactory;
9
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/network/transports/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAE5E,iDAAiD;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAqB,wBAAwB,CAAA","sourcesContent":["import { TransportFactory } from './abstract.js'\n\nexport * from './abstract.js'\nexport * from './intermediate.js'\nexport * from './obfuscated.js'\nexport * from './streamed.js'\nexport * from './wrapped.js'\n\nimport { _defaultTransportFactory } from '../../utils/platform/transport.js'\n\n/** Platform-defined default transport factory */\nexport const defaultTransportFactory: TransportFactory = _defaultTransportFactory\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/network/transports/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA","sourcesContent":["export * from './abstract.js'\nexport * from './intermediate.js'\nexport * from './obfuscated.js'\nexport * from './streamed.js'\nexport * from './wrapped.js'\n"]}
@@ -0,0 +1,18 @@
1
+ import { ITlPlatform } from '@mtcute/tl-runtime';
2
+ import { UploadFileLike } from './highlevel/types/files/utils.js';
3
+ import { MaybePromise } from './types/index.js';
4
+ export interface ICorePlatform extends ITlPlatform {
5
+ beforeExit(fn: () => void): () => void;
6
+ log(color: number, level: number, tag: string, fmt: string, args: unknown[]): void;
7
+ getDefaultLogLevel(): number | null;
8
+ getDeviceModel(): string;
9
+ normalizeFile?(file: UploadFileLike): MaybePromise<{
10
+ file?: UploadFileLike;
11
+ fileSize?: number;
12
+ fileName?: string;
13
+ } | null>;
14
+ onNetworkChanged?(fn: (connected: boolean) => void): () => void;
15
+ isOnline?(): boolean;
16
+ }
17
+ export declare function setPlatform(platform: ICorePlatform): void;
18
+ export declare function getPlatform(): ICorePlatform;
@@ -0,0 +1,31 @@
1
+ import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime';
2
+ import { MtUnsupportedError } from './types/errors.js';
3
+ // eslint-disable-next-line
4
+ const globalObject = (0, eval)('this');
5
+ // NB: when using with some bundlers (e.g. vite) re-importing this module will not return the same object
6
+ // so we need to store the platform in a global object to be able to survive hot-reloads etc.
7
+ // try to use Symbol if available, otherwise fallback to a string
8
+ const platformKey = typeof Symbol !== 'undefined' ? Symbol.for('mtcute.platform') : '__MTCUTE_PLATFORM__';
9
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
10
+ let _platform = globalObject?.[platformKey] ?? null;
11
+ export function setPlatform(platform) {
12
+ if (_platform) {
13
+ if (_platform.constructor !== platform.constructor) {
14
+ throw new MtUnsupportedError('Platform may not be changed at runtime!');
15
+ }
16
+ return;
17
+ }
18
+ _platform = platform;
19
+ TlBinaryReader.platform = platform;
20
+ TlBinaryWriter.platform = platform;
21
+ if (globalObject) {
22
+ globalObject[platformKey] = platform;
23
+ }
24
+ }
25
+ export function getPlatform() {
26
+ if (!_platform) {
27
+ throw new MtUnsupportedError('Platform is not set! Have you instantiated the client?');
28
+ }
29
+ return _platform;
30
+ }
31
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAiBtD,2BAA2B;AAC3B,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtC,yGAAyG;AACzG,6FAA6F;AAC7F,iEAAiE;AACjE,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAA;AAEzG,mEAAmE;AACnE,IAAI,SAAS,GAAyB,YAAY,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAA;AAEzE,MAAM,UAAU,WAAW,CAAC,QAAuB;IAC/C,IAAI,SAAS,EAAE;QACX,IAAI,SAAS,CAAC,WAAW,KAAK,QAAQ,CAAC,WAAW,EAAE;YAChD,MAAM,IAAI,kBAAkB,CAAC,yCAAyC,CAAC,CAAA;SAC1E;QAED,OAAM;KACT;IAED,SAAS,GAAG,QAAQ,CAAA;IACpB,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAClC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAElC,IAAI,YAAY,EAAE;QACd,YAAY,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAA;KACvC;AACL,CAAC;AAED,MAAM,UAAU,WAAW;IACvB,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,kBAAkB,CAAC,wDAAwD,CAAC,CAAA;KACzF;IAED,OAAO,SAAS,CAAA;AACpB,CAAC","sourcesContent":["import { ITlPlatform, TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { UploadFileLike } from './highlevel/types/files/utils.js'\nimport { MtUnsupportedError } from './types/errors.js'\nimport { MaybePromise } from './types/index.js'\n\nexport interface ICorePlatform extends ITlPlatform {\n beforeExit(fn: () => void): () => void\n log(color: number, level: number, tag: string, fmt: string, args: unknown[]): void\n getDefaultLogLevel(): number | null\n getDeviceModel(): string\n normalizeFile?(file: UploadFileLike): MaybePromise<{\n file?: UploadFileLike\n fileSize?: number\n fileName?: string\n } | null>\n onNetworkChanged?(fn: (connected: boolean) => void): () => void\n isOnline?(): boolean\n}\n\n// eslint-disable-next-line\nconst globalObject = (0, eval)('this')\n\n// NB: when using with some bundlers (e.g. vite) re-importing this module will not return the same object\n// so we need to store the platform in a global object to be able to survive hot-reloads etc.\n// try to use Symbol if available, otherwise fallback to a string\nconst platformKey = typeof Symbol !== 'undefined' ? Symbol.for('mtcute.platform') : '__MTCUTE_PLATFORM__'\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nlet _platform: ICorePlatform | null = globalObject?.[platformKey] ?? null\n\nexport function setPlatform(platform: ICorePlatform): void {\n if (_platform) {\n if (_platform.constructor !== platform.constructor) {\n throw new MtUnsupportedError('Platform may not be changed at runtime!')\n }\n\n return\n }\n\n _platform = platform\n TlBinaryReader.platform = platform\n TlBinaryWriter.platform = platform\n\n if (globalObject) {\n globalObject[platformKey] = platform\n }\n}\n\nexport function getPlatform(): ICorePlatform {\n if (!_platform) {\n throw new MtUnsupportedError('Platform is not set! Have you instantiated the client?')\n }\n\n return _platform\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  export * from './driver.js';
2
+ export * from './memory/index.js';
2
3
  export * from './provider.js';
3
- export * from './providers/idb/index.js';
4
- export * from './providers/memory/index.js';
5
4
  export * from './repository/index.js';
6
5
  export * from './storage.js';
@@ -1,7 +1,6 @@
1
1
  export * from './driver.js';
2
+ export * from './memory/index.js';
2
3
  export * from './provider.js';
3
- export * from './providers/idb/index.js';
4
- export * from './providers/memory/index.js';
5
4
  export * from './repository/index.js';
6
5
  export * from './storage.js';
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA","sourcesContent":["export * from './driver.js'\nexport * from './provider.js'\nexport * from './providers/idb/index.js'\nexport * from './providers/memory/index.js'\nexport * from './repository/index.js'\nexport * from './storage.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA","sourcesContent":["export * from './driver.js'\nexport * from './memory/index.js'\nexport * from './provider.js'\nexport * from './repository/index.js'\nexport * from './storage.js'\n"]}
@@ -1,4 +1,4 @@
1
- import { IStorageDriver } from '../../driver.js';
1
+ import { IStorageDriver } from '../driver.js';
2
2
  export declare class MemoryStorageDriver implements IStorageDriver {
3
3
  readonly states: Map<string, object>;
4
4
  getState<T extends object>(repo: string, def: () => T): T;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../src/storage/memory/driver.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAAhC;QACa,WAAM,GAAwB,IAAI,GAAG,EAAE,CAAA;IAWpD,CAAC;IATG,QAAQ,CAAmB,IAAY,EAAE,GAAY;QACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;SAC/B;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAM,CAAA;IACrC,CAAC;IAED,IAAI,KAAI,CAAC;CACZ","sourcesContent":["import { IStorageDriver } from '../driver.js'\n\nexport class MemoryStorageDriver implements IStorageDriver {\n readonly states: Map<string, object> = new Map()\n\n getState<T extends object>(repo: string, def: () => T) {\n if (!this.states.has(repo)) {\n this.states.set(repo, def())\n }\n\n return this.states.get(repo) as T\n }\n\n load() {}\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { ITelegramStorageProvider } from '../../../highlevel/storage/provider.js';
2
- import { IMtStorageProvider } from '../../provider.js';
1
+ import { ITelegramStorageProvider } from '../../highlevel/storage/provider.js';
2
+ import { IMtStorageProvider } from '../provider.js';
3
3
  import { MemoryStorageDriver } from './driver.js';
4
4
  import { MemoryAuthKeysRepository } from './repository/auth-keys.js';
5
5
  import { MemoryKeyValueRepository } from './repository/kv.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/storage/memory/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IAA1B;QACa,WAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;QAClC,OAAE,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,aAAQ,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpD,UAAK,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9C,gBAAW,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACvE,CAAC;CAAA","sourcesContent":["import { ITelegramStorageProvider } from '../../highlevel/storage/provider.js'\nimport { IMtStorageProvider } from '../provider.js'\nimport { MemoryStorageDriver } from './driver.js'\nimport { MemoryAuthKeysRepository } from './repository/auth-keys.js'\nimport { MemoryKeyValueRepository } from './repository/kv.js'\nimport { MemoryPeersRepository } from './repository/peers.js'\nimport { MemoryRefMessagesRepository } from './repository/ref-messages.js'\n\nexport { MemoryStorageDriver } from './driver.js'\n\n/**\n * In-memory storage driver implementation for mtcute.\n *\n * This storage is **not persistent**, meaning that all data\n * **will** be lost on restart. Only use this storage for testing,\n * or if you know exactly what you're doing.\n */\nexport class MemoryStorage implements IMtStorageProvider, ITelegramStorageProvider {\n readonly driver = new MemoryStorageDriver()\n readonly kv = new MemoryKeyValueRepository(this.driver)\n readonly authKeys = new MemoryAuthKeysRepository(this.driver)\n readonly peers = new MemoryPeersRepository(this.driver)\n readonly refMessages = new MemoryRefMessagesRepository(this.driver)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IAuthKeysRepository } from '../../../repository/auth-keys.js';
1
+ import { IAuthKeysRepository } from '../../repository/auth-keys.js';
2
2
  import { MemoryStorageDriver } from '../driver.js';
3
3
  interface AuthKeysState {
4
4
  authKeys: Map<number, Uint8Array>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-keys.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/auth-keys.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAgB,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACrE,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,YAAY,EAAE,IAAI,GAAG,EAAE;YACvB,kBAAkB,EAAE,IAAI,GAAG,EAAE;SAChC,CAAC,CAAC,CAAA;IANiD,CAAC;IAQrD,GAAG,CAAC,EAAU,EAAE,GAAsB;QAClC,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;SACnC;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SACjC;IACL,CAAC;IAED,GAAG,CAAC,EAAU;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,GAAW,EAAE,GAAsB,EAAE,OAAe;QACpE,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;QAExB,IAAI,GAAG,EAAE;YACL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;SAChD;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;SAC1C;IACL,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,GAAW,EAAE,GAAW;QACxC,MAAM,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,CAAA;QAExB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;YACnD,OAAO,IAAI,CAAA;SACd;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACjD,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAE9B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE;YAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACnC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC5C;SACJ;IACL,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;QAC/B,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;IACzC,CAAC;CACJ","sourcesContent":["import { IAuthKeysRepository } from '../../repository/auth-keys.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface AuthKeysState {\n authKeys: Map<number, Uint8Array>\n authKeysTemp: Map<string, Uint8Array>\n authKeysTempExpiry: Map<string, number>\n}\n\nexport class MemoryAuthKeysRepository implements IAuthKeysRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<AuthKeysState>('authKeys', () => ({\n authKeys: new Map(),\n authKeysTemp: new Map(),\n authKeysTempExpiry: new Map(),\n }))\n\n set(dc: number, key: Uint8Array | null): void {\n if (key) {\n this.state.authKeys.set(dc, key)\n } else {\n this.state.authKeys.delete(dc)\n }\n }\n\n get(dc: number): Uint8Array | null {\n return this.state.authKeys.get(dc) ?? null\n }\n\n setTemp(dc: number, idx: number, key: Uint8Array | null, expires: number): void {\n const k = `${dc}:${idx}`\n\n if (key) {\n this.state.authKeysTemp.set(k, key)\n this.state.authKeysTempExpiry.set(k, expires)\n } else {\n this.state.authKeysTemp.delete(k)\n this.state.authKeysTempExpiry.delete(k)\n }\n }\n\n getTemp(dc: number, idx: number, now: number): Uint8Array | null {\n const k = `${dc}:${idx}`\n\n if (now > (this.state.authKeysTempExpiry.get(k) ?? 0)) {\n return null\n }\n\n return this.state.authKeysTemp.get(k) ?? null\n }\n\n deleteByDc(dc: number): void {\n this.state.authKeys.delete(dc)\n\n for (const key of this.state.authKeysTemp.keys()) {\n if (key.startsWith(`${dc}:`)) {\n this.state.authKeysTemp.delete(key)\n this.state.authKeysTempExpiry.delete(key)\n }\n }\n }\n\n deleteAll(): void {\n this.state.authKeys.clear()\n this.state.authKeysTemp.clear()\n this.state.authKeysTempExpiry.clear()\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IKeyValueRepository } from '../../../repository/key-value.js';
1
+ import { IKeyValueRepository } from '../../repository/key-value.js';
2
2
  import { MemoryStorageDriver } from '../driver.js';
3
3
  export declare class MemoryKeyValueRepository implements IKeyValueRepository {
4
4
  readonly _driver: MemoryStorageDriver;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/kv.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,wBAAwB;IACjC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAA0B,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IAFlC,CAAC;IAIrD,GAAG,CAAC,GAAW,EAAE,KAAiB;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAW;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,GAAW;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACJ","sourcesContent":["import { IKeyValueRepository } from '../../repository/key-value.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\nexport class MemoryKeyValueRepository implements IKeyValueRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<Map<string, Uint8Array>>('kv', () => new Map())\n\n set(key: string, value: Uint8Array): void {\n this.state.set(key, value)\n }\n\n get(key: string): Uint8Array | null {\n return this.state.get(key) ?? null\n }\n\n delete(key: string): void {\n this.state.delete(key)\n }\n\n deleteAll(): void {\n this.state.clear()\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IPeersRepository } from '../../../../highlevel/storage/repository/peers.js';
1
+ import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js';
2
2
  import { MemoryStorageDriver } from '../driver.js';
3
3
  interface PeersState {
4
4
  entities: Map<number, IPeersRepository.PeerInfo>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/peers.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,qBAAqB;IAC9B,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAa,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/D,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,UAAU,EAAE,IAAI,GAAG,EAAE;SACxB,CAAC,CAAC,CAAA;IANiD,CAAC;IAQrD,KAAK,CAAC,IAA+B;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE5C,IAAI,GAAG,EAAE;YACL,qCAAqC;YACrC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC,CAAC,CAAA;YAEF,IAAI,GAAG,CAAC,KAAK,EAAE;gBACX,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;aAC1C;SACJ;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;aAClD;SACJ;QAED,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAE9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/D,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,UAAU,CAAC,KAAa;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAA;IAC9C,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;IACpC,CAAC;CACJ","sourcesContent":["import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface PeersState {\n entities: Map<number, IPeersRepository.PeerInfo>\n usernameIndex: Map<string, number>\n phoneIndex: Map<string, number>\n}\n\nexport class MemoryPeersRepository implements IPeersRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<PeersState>('peers', () => ({\n entities: new Map(),\n usernameIndex: new Map(),\n phoneIndex: new Map(),\n }))\n\n store(peer: IPeersRepository.PeerInfo): void {\n const old = this.state.entities.get(peer.id)\n\n if (old) {\n // delete old index entries if needed\n old.usernames.forEach((username) => {\n this.state.usernameIndex.delete(username)\n })\n\n if (old.phone) {\n this.state.phoneIndex.delete(old.phone)\n }\n }\n\n if (peer.usernames) {\n for (const username of peer.usernames) {\n this.state.usernameIndex.set(username, peer.id)\n }\n }\n\n if (peer.phone) this.state.phoneIndex.set(peer.phone, peer.id)\n\n this.state.entities.set(peer.id, peer)\n }\n\n getById(id: number): IPeersRepository.PeerInfo | null {\n return this.state.entities.get(id) ?? null\n }\n\n getByUsername(username: string): IPeersRepository.PeerInfo | null {\n const id = this.state.usernameIndex.get(username.toLowerCase())\n if (!id) return null\n\n return this.state.entities.get(id) ?? null\n }\n\n getByPhone(phone: string): IPeersRepository.PeerInfo | null {\n const id = this.state.phoneIndex.get(phone)\n if (!id) return null\n\n return this.state.entities.get(id) ?? null\n }\n\n deleteAll(): void {\n this.state.entities.clear()\n this.state.phoneIndex.clear()\n this.state.usernameIndex.clear()\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { IReferenceMessagesRepository } from '../../../../highlevel/storage/repository/ref-messages.js';
1
+ import { IReferenceMessagesRepository } from '../../../highlevel/storage/repository/ref-messages.js';
2
2
  import { MemoryStorageDriver } from '../driver.js';
3
3
  interface RefMessagesState {
4
4
  refs: Map<number, Set<string>>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-messages.js","sourceRoot":"","sources":["../../../../../src/storage/memory/repository/ref-messages.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,2BAA2B;IACpC,YAAqB,OAA4B;QAA5B,YAAO,GAAP,OAAO,CAAqB;QAExC,UAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAmB,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,IAAI,EAAE,IAAI,GAAG,EAAE;SAClB,CAAC,CAAC,CAAA;IAJiD,CAAC;IAMrD,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SACzC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS,CAAC,MAAc;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,EAAE,IAAI;YAAE,OAAO,IAAI,CAAA;QAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QAElB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEtC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAgB;QACnC,4CAA4C;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;YACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;aAClC;SACJ;IACL,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,SAAS;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;CACJ","sourcesContent":["import { IReferenceMessagesRepository } from '../../../highlevel/storage/repository/ref-messages.js'\nimport { MemoryStorageDriver } from '../driver.js'\n\ninterface RefMessagesState {\n refs: Map<number, Set<string>>\n}\n\nexport class MemoryRefMessagesRepository implements IReferenceMessagesRepository {\n constructor(readonly _driver: MemoryStorageDriver) {}\n\n readonly state = this._driver.getState<RefMessagesState>('refMessages', () => ({\n refs: new Map(),\n }))\n\n store(peerId: number, chatId: number, msgId: number): void {\n if (!this.state.refs.has(peerId)) {\n this.state.refs.set(peerId, new Set())\n }\n\n this.state.refs.get(peerId)!.add(`${chatId}:${msgId}`)\n }\n\n getByPeer(peerId: number): [number, number] | null {\n const refs = this.state.refs.get(peerId)\n if (!refs?.size) return null\n const [ref] = refs\n\n const [chatId, msgId] = ref.split(':')\n\n return [Number(chatId), Number(msgId)]\n }\n\n delete(chatId: number, msgIds: number[]): void {\n // not the most efficient way, but it's fine\n for (const refs of this.state.refs.values()) {\n for (const msg of msgIds) {\n refs.delete(`${chatId}:${msg}`)\n }\n }\n }\n\n deleteByPeer(peerId: number): void {\n this.state.refs.delete(peerId)\n }\n\n deleteAll(): void {\n this.state.refs.clear()\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
- import { asyncResettable, beforeExit } from '../utils/index.js';
1
+ import { getPlatform } from '../platform.js';
2
+ import { asyncResettable } from '../utils/index.js';
2
3
  import { AuthKeysService } from './service/auth-keys.js';
3
4
  import { DefaultDcsService } from './service/default-dcs.js';
4
5
  import { FutureSaltsService } from './service/future-salts.js';
@@ -20,7 +21,7 @@ export class StorageManager {
20
21
  this._load = asyncResettable(async () => {
21
22
  this.driver.setup?.(this.log);
22
23
  if (this.options.cleanup ?? true) {
23
- this._cleanupRestore = beforeExit(() => {
24
+ this._cleanupRestore = getPlatform().beforeExit(() => {
24
25
  this._destroy().catch((err) => this.log.error('cleanup error: %s', err));
25
26
  });
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/storage/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAgC9D,MAAM,OAAO,cAAc;IACvB,YAAqB,OAA2D;QAA3D,YAAO,GAAP,OAAO,CAAoD;QAEvE,aAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;QAChC,WAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;QAC7B,QAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAExC,oBAAe,GAAmB;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAAA;QAEQ,QAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACnE,UAAK,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACtE,SAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAIrF,UAAK,GAAG,eAAe,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAE7B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;gBAC9B,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;oBACnC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAA;gBAC5E,CAAC,CAAC,CAAA;aACL;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;IA7BiF,CAAC;IA8BpF,IAAI;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK;QAC5B,IAAI,YAAY,EAAE;YACd,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;SAC3C;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAA;QAClC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IACrB,CAAC;IAEO,KAAK,CAAC,QAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAAE,OAAM;QAClC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEvB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAA;QAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;SACnC;QAED,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;CACJ","sourcesContent":["import { TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { asyncResettable, beforeExit } from '../utils/index.js'\nimport { Logger } from '../utils/logger.js'\nimport { IMtStorageProvider } from './provider.js'\nimport { AuthKeysService } from './service/auth-keys.js'\nimport { ServiceOptions } from './service/base.js'\nimport { DefaultDcsService } from './service/default-dcs.js'\nimport { FutureSaltsService } from './service/future-salts.js'\n\ninterface StorageManagerOptions {\n provider: IMtStorageProvider\n log: Logger\n readerMap: TlReaderMap\n writerMap: TlWriterMap\n}\n\n/**\n * Additional options for {@link StorageManager}, that\n * can be customized by the user.\n *\n * @internal\n */\nexport interface StorageManagerExtraOptions {\n /**\n * Interval in milliseconds for saving the storage.\n *\n * When saving, the storage is expected to persist\n * all changes to disk, so that they are not lost.\n */\n saveInterval?: number\n\n /**\n * Whether to finalize database before exiting.\n *\n * @default `true`\n */\n cleanup?: boolean\n}\n\nexport class StorageManager {\n constructor(readonly options: StorageManagerOptions & StorageManagerExtraOptions) {}\n\n readonly provider = this.options.provider\n readonly driver = this.provider.driver\n readonly log = this.options.log.create('storage')\n\n readonly _serviceOptions: ServiceOptions = {\n driver: this.driver,\n readerMap: this.options.readerMap,\n writerMap: this.options.writerMap,\n log: this.log,\n }\n\n readonly dcs = new DefaultDcsService(this.provider.kv, this._serviceOptions)\n readonly salts = new FutureSaltsService(this.provider.kv, this._serviceOptions)\n readonly keys = new AuthKeysService(this.provider.authKeys, this.salts, this._serviceOptions)\n\n private _cleanupRestore?: () => void\n\n private _load = asyncResettable(async () => {\n this.driver.setup?.(this.log)\n\n if (this.options.cleanup ?? true) {\n this._cleanupRestore = beforeExit(() => {\n this._destroy().catch((err) => this.log.error('cleanup error: %s', err))\n })\n }\n\n await this.driver.load?.()\n })\n load(): Promise<void> {\n return this._load.run()\n }\n\n async save(): Promise<void> {\n await this.driver.save?.()\n }\n\n async clear(withAuthKeys = false) {\n if (withAuthKeys) {\n await this.provider.authKeys.deleteAll()\n }\n await this.provider.kv.deleteAll()\n await this.save()\n }\n\n private async _destroy(): Promise<void> {\n if (!this._load.finished()) return\n await this._load.wait()\n\n await this.driver.destroy?.()\n this._load.reset()\n }\n\n async destroy(): Promise<void> {\n if (this._cleanupRestore) {\n this._cleanupRestore()\n this._cleanupRestore = undefined\n }\n\n await this._destroy()\n }\n}\n"]}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/storage/storage.ts"],"names":[],"mappings":"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","sourcesContent":["import { TlReaderMap, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { getPlatform } from '../platform.js'\nimport { asyncResettable } from '../utils/index.js'\nimport { Logger } from '../utils/logger.js'\nimport { IMtStorageProvider } from './provider.js'\nimport { AuthKeysService } from './service/auth-keys.js'\nimport { ServiceOptions } from './service/base.js'\nimport { DefaultDcsService } from './service/default-dcs.js'\nimport { FutureSaltsService } from './service/future-salts.js'\n\ninterface StorageManagerOptions {\n provider: IMtStorageProvider\n log: Logger\n readerMap: TlReaderMap\n writerMap: TlWriterMap\n}\n\n/**\n * Additional options for {@link StorageManager}, that\n * can be customized by the user.\n *\n * @internal\n */\nexport interface StorageManagerExtraOptions {\n /**\n * Interval in milliseconds for saving the storage.\n *\n * When saving, the storage is expected to persist\n * all changes to disk, so that they are not lost.\n */\n saveInterval?: number\n\n /**\n * Whether to finalize database before exiting.\n *\n * @default `true`\n */\n cleanup?: boolean\n}\n\nexport class StorageManager {\n constructor(readonly options: StorageManagerOptions & StorageManagerExtraOptions) {}\n\n readonly provider = this.options.provider\n readonly driver = this.provider.driver\n readonly log = this.options.log.create('storage')\n\n readonly _serviceOptions: ServiceOptions = {\n driver: this.driver,\n readerMap: this.options.readerMap,\n writerMap: this.options.writerMap,\n log: this.log,\n }\n\n readonly dcs = new DefaultDcsService(this.provider.kv, this._serviceOptions)\n readonly salts = new FutureSaltsService(this.provider.kv, this._serviceOptions)\n readonly keys = new AuthKeysService(this.provider.authKeys, this.salts, this._serviceOptions)\n\n private _cleanupRestore?: () => void\n\n private _load = asyncResettable(async () => {\n this.driver.setup?.(this.log)\n\n if (this.options.cleanup ?? true) {\n this._cleanupRestore = getPlatform().beforeExit(() => {\n this._destroy().catch((err) => this.log.error('cleanup error: %s', err))\n })\n }\n\n await this.driver.load?.()\n })\n load(): Promise<void> {\n return this._load.run()\n }\n\n async save(): Promise<void> {\n await this.driver.save?.()\n }\n\n async clear(withAuthKeys = false) {\n if (withAuthKeys) {\n await this.provider.authKeys.deleteAll()\n }\n await this.provider.kv.deleteAll()\n await this.save()\n }\n\n private async _destroy(): Promise<void> {\n if (!this._load.finished()) return\n await this._load.wait()\n\n await this.driver.destroy?.()\n this._load.reset()\n }\n\n async destroy(): Promise<void> {\n if (this._cleanupRestore) {\n this._cleanupRestore()\n this._cleanupRestore = undefined\n }\n\n await this._destroy()\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  // all available libraries either suck or are extremely large for the use case, so i made my own~
2
- import { base64DecodeToBuffer, hexEncode } from '@mtcute/tl-runtime';
2
+ import { getPlatform } from '../../platform.js';
3
3
  /**
4
4
  * Parses a single PEM block to buffer.
5
5
  * In fact just strips begin/end tags and parses the rest as Base64
6
6
  */
7
7
  export function parsePemContents(pem) {
8
- return base64DecodeToBuffer(pem.replace(/^-----(BEGIN|END)( RSA)? PUBLIC KEY-----$|\n/gm, ''));
8
+ return getPlatform().base64Decode(pem.replace(/^-----(BEGIN|END)( RSA)? PUBLIC KEY-----$|\n/gm, ''));
9
9
  }
10
10
  const ELOOPN = 102;
11
11
  const ELOOP = `iterated over ${ELOOPN} elements (probably a malformed file)`;
@@ -48,7 +48,7 @@ export function parseAsn1(data) {
48
48
  if (0x80 & asn1.length) {
49
49
  asn1.lengthSize = 0x7f & asn1.length;
50
50
  // I think that buf->hex->int solves the problem of Endianness... not sure
51
- asn1.length = parseInt(hexEncode(buf.subarray(index, index + asn1.lengthSize)), 16);
51
+ asn1.length = parseInt(getPlatform().hexEncode(buf.subarray(index, index + asn1.lengthSize)), 16);
52
52
  index += asn1.lengthSize;
53
53
  }
54
54
  // High-order bit Integers have a leading 0x00 to signify that they are positive.
@@ -1 +1 @@
1
- {"version":3,"file":"asn1-parser.js","sourceRoot":"","sources":["../../../../src/utils/binary/asn1-parser.ts"],"names":[],"mappings":"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","sourcesContent":["// all available libraries either suck or are extremely large for the use case, so i made my own~\n\nimport { base64DecodeToBuffer, hexEncode } from '@mtcute/tl-runtime'\n\n/**\n * Parses a single PEM block to buffer.\n * In fact just strips begin/end tags and parses the rest as Base64\n */\nexport function parsePemContents(pem: string): Uint8Array {\n return base64DecodeToBuffer(pem.replace(/^-----(BEGIN|END)( RSA)? PUBLIC KEY-----$|\\n/gm, ''))\n}\n\n// based on https://git.coolaj86.com/coolaj86/asn1-parser.js/src/branch/master/asn1-parser.js\n// but modified for typescript and node buffers\n\ninterface Asn1Object {\n type: number\n lengthSize: number\n length: number\n children?: Asn1Object[]\n value?: Uint8Array\n}\n\nconst ELOOPN = 102\nconst ELOOP = `iterated over ${ELOOPN} elements (probably a malformed file)`\nconst EDEEPN = 60\nconst EDEEP = `element nested over ${EDEEPN} layers deep (probably a malformed file)`\n\n// Container Types are Sequence 0x30, Container Array? (0xA0, 0xA1)\n// Value Types are Boolean 0x01, Integer 0x02, Null 0x05, Object ID 0x06, String 0x0C, 0x16, 0x13, 0x1e\n// Value Array? (0x82)\n// Bit String (0x03) and Octet String (0x04) may be values or containers\n// Sometimes Bit String is used as a container (RSA Pub Spki)\nconst CTYPES: Record<number, true> = {\n '48': true,\n '49': true,\n '160': true,\n '161': true,\n}\nconst VTYPES: Record<number, true> = {\n '1': true,\n '2': true,\n '5': true,\n '6': true,\n '12': true,\n '130': true,\n}\n\n/**\n * Parses ASN.1 data to an object\n */\nexport function parseAsn1(data: Uint8Array): Asn1Object {\n function parseAsn1Inner(buf: Uint8Array, depth: number[], eager = false) {\n if (depth.length >= EDEEPN) {\n throw new Error(EDEEP)\n }\n\n let index = 2 // we know, at minimum, data starts after type (0) and lengthSize (1)\n const asn1: Asn1Object = { type: buf[0], lengthSize: 0, length: buf[1] }\n let child\n let iters = 0\n let adjust = 0\n let adjustedLen = 0\n\n // Determine how many bytes the length uses, and what it is\n if (0x80 & asn1.length) {\n asn1.lengthSize = 0x7f & asn1.length\n // I think that buf->hex->int solves the problem of Endianness... not sure\n asn1.length = parseInt(hexEncode(buf.subarray(index, index + asn1.lengthSize)), 16)\n index += asn1.lengthSize\n }\n\n // High-order bit Integers have a leading 0x00 to signify that they are positive.\n // Bit Streams use the first byte to signify padding, which x.509 doesn't use.\n if (buf[index] === 0x00 && (asn1.type === 0x02 || asn1.type === 0x03)) {\n // However, 0x00 on its own is a valid number\n if (asn1.length > 1) {\n index += 1\n adjust = -1\n }\n }\n adjustedLen = asn1.length + adjust\n\n function parseChildren(eager = false) {\n asn1.children = []\n\n while (iters < ELOOPN && index < 2 + asn1.length + asn1.lengthSize) {\n iters += 1\n depth.length += 1\n child = parseAsn1Inner(buf.subarray(index, index + adjustedLen), depth, eager)\n depth.length -= 1\n // The numbers don't match up exactly and I don't remember why...\n // probably something with adjustedLen or some such, but the tests pass\n index += 2 + child.lengthSize + child.length\n\n if (index > 2 + asn1.lengthSize + asn1.length) {\n throw new Error(\n `Parse error: child value length (${child.length}) is ` +\n `greater than remaining parent length (${asn1.length - index} = ${asn1.length} - ${index})`,\n )\n }\n asn1.children.push(child)\n }\n if (index !== 2 + asn1.lengthSize + asn1.length) {\n throw new Error('Unexpected EOF')\n }\n if (iters >= ELOOPN) {\n throw new Error(ELOOP)\n }\n\n delete asn1.value\n\n return asn1\n }\n\n // Recurse into types that are _always_ containers\n if (CTYPES[asn1.type]) {\n return parseChildren(eager)\n }\n\n // Return types that are _always_ values\n asn1.value = buf.subarray(index, index + adjustedLen)\n\n if (VTYPES[asn1.type]) {\n return asn1\n }\n\n // For ambiguous / unknown types, recurse and return on failure\n // (and return child array size to zero)\n try {\n return parseChildren(true)\n } catch (e) {\n if (asn1.children) asn1.children.length = 0\n\n return asn1\n }\n }\n\n const asn1 = parseAsn1Inner(data, [])\n const len = data.length\n\n if (len !== 2 + asn1.lengthSize + asn1.length) {\n throw new Error('Length of buffer does not match length of ASN.1 sequence.')\n }\n\n return asn1\n}\n"]}
1
+ {"version":3,"file":"asn1-parser.js","sourceRoot":"","sources":["../../../../src/utils/binary/asn1-parser.ts"],"names":[],"mappings":"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","sourcesContent":["// all available libraries either suck or are extremely large for the use case, so i made my own~\n\nimport { getPlatform } from '../../platform.js'\n\n/**\n * Parses a single PEM block to buffer.\n * In fact just strips begin/end tags and parses the rest as Base64\n */\nexport function parsePemContents(pem: string): Uint8Array {\n return getPlatform().base64Decode(pem.replace(/^-----(BEGIN|END)( RSA)? PUBLIC KEY-----$|\\n/gm, ''))\n}\n\n// based on https://git.coolaj86.com/coolaj86/asn1-parser.js/src/branch/master/asn1-parser.js\n// but modified for typescript and node buffers\n\ninterface Asn1Object {\n type: number\n lengthSize: number\n length: number\n children?: Asn1Object[]\n value?: Uint8Array\n}\n\nconst ELOOPN = 102\nconst ELOOP = `iterated over ${ELOOPN} elements (probably a malformed file)`\nconst EDEEPN = 60\nconst EDEEP = `element nested over ${EDEEPN} layers deep (probably a malformed file)`\n\n// Container Types are Sequence 0x30, Container Array? (0xA0, 0xA1)\n// Value Types are Boolean 0x01, Integer 0x02, Null 0x05, Object ID 0x06, String 0x0C, 0x16, 0x13, 0x1e\n// Value Array? (0x82)\n// Bit String (0x03) and Octet String (0x04) may be values or containers\n// Sometimes Bit String is used as a container (RSA Pub Spki)\nconst CTYPES: Record<number, true> = {\n '48': true,\n '49': true,\n '160': true,\n '161': true,\n}\nconst VTYPES: Record<number, true> = {\n '1': true,\n '2': true,\n '5': true,\n '6': true,\n '12': true,\n '130': true,\n}\n\n/**\n * Parses ASN.1 data to an object\n */\nexport function parseAsn1(data: Uint8Array): Asn1Object {\n function parseAsn1Inner(buf: Uint8Array, depth: number[], eager = false) {\n if (depth.length >= EDEEPN) {\n throw new Error(EDEEP)\n }\n\n let index = 2 // we know, at minimum, data starts after type (0) and lengthSize (1)\n const asn1: Asn1Object = { type: buf[0], lengthSize: 0, length: buf[1] }\n let child\n let iters = 0\n let adjust = 0\n let adjustedLen = 0\n\n // Determine how many bytes the length uses, and what it is\n if (0x80 & asn1.length) {\n asn1.lengthSize = 0x7f & asn1.length\n // I think that buf->hex->int solves the problem of Endianness... not sure\n asn1.length = parseInt(getPlatform().hexEncode(buf.subarray(index, index + asn1.lengthSize)), 16)\n index += asn1.lengthSize\n }\n\n // High-order bit Integers have a leading 0x00 to signify that they are positive.\n // Bit Streams use the first byte to signify padding, which x.509 doesn't use.\n if (buf[index] === 0x00 && (asn1.type === 0x02 || asn1.type === 0x03)) {\n // However, 0x00 on its own is a valid number\n if (asn1.length > 1) {\n index += 1\n adjust = -1\n }\n }\n adjustedLen = asn1.length + adjust\n\n function parseChildren(eager = false) {\n asn1.children = []\n\n while (iters < ELOOPN && index < 2 + asn1.length + asn1.lengthSize) {\n iters += 1\n depth.length += 1\n child = parseAsn1Inner(buf.subarray(index, index + adjustedLen), depth, eager)\n depth.length -= 1\n // The numbers don't match up exactly and I don't remember why...\n // probably something with adjustedLen or some such, but the tests pass\n index += 2 + child.lengthSize + child.length\n\n if (index > 2 + asn1.lengthSize + asn1.length) {\n throw new Error(\n `Parse error: child value length (${child.length}) is ` +\n `greater than remaining parent length (${asn1.length - index} = ${asn1.length} - ${index})`,\n )\n }\n asn1.children.push(child)\n }\n if (index !== 2 + asn1.lengthSize + asn1.length) {\n throw new Error('Unexpected EOF')\n }\n if (iters >= ELOOPN) {\n throw new Error(ELOOP)\n }\n\n delete asn1.value\n\n return asn1\n }\n\n // Recurse into types that are _always_ containers\n if (CTYPES[asn1.type]) {\n return parseChildren(eager)\n }\n\n // Return types that are _always_ values\n asn1.value = buf.subarray(index, index + adjustedLen)\n\n if (VTYPES[asn1.type]) {\n return asn1\n }\n\n // For ambiguous / unknown types, recurse and return on failure\n // (and return child array size to zero)\n try {\n return parseChildren(true)\n } catch (e) {\n if (asn1.children) asn1.children.length = 0\n\n return asn1\n }\n }\n\n const asn1 = parseAsn1Inner(data, [])\n const len = data.length\n\n if (len !== 2 + asn1.lengthSize + asn1.length) {\n throw new Error('Length of buffer does not match length of ASN.1 sequence.')\n }\n\n return asn1\n}\n"]}
@@ -27,4 +27,3 @@ export declare abstract class BaseCryptoProvider {
27
27
  factorizePQ(pq: Uint8Array): [Uint8Array, Uint8Array];
28
28
  randomBytes(size: number): Uint8Array;
29
29
  }
30
- export type CryptoProviderFactory = () => ICryptoProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/utils/crypto/abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA0CpD,MAAM,OAAgB,kBAAkB;IAGpC,WAAW,CAAC,EAAc;QACtB,OAAO,eAAe,CAAC,IAAkC,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEpB,OAAO,GAAG,CAAA;IACd,CAAC;CACJ","sourcesContent":["import { MaybePromise } from '../../types/index.js'\nimport { factorizePQSync } from './factorization.js'\n\nexport interface IEncryptionScheme {\n encrypt(data: Uint8Array): Uint8Array\n decrypt(data: Uint8Array): Uint8Array\n}\n\nexport interface IAesCtr {\n process(data: Uint8Array): Uint8Array\n close?(): void\n}\n\nexport interface ICryptoProvider {\n initialize?(): MaybePromise<void>\n\n sha1(data: Uint8Array): Uint8Array\n\n sha256(data: Uint8Array): Uint8Array\n\n pbkdf2(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n keylen?: number, // = 64\n algo?: string, // sha1 or sha512 (default sha512)\n ): MaybePromise<Uint8Array>\n\n hmacSha256(data: Uint8Array, key: Uint8Array): MaybePromise<Uint8Array>\n\n createAesCtr(key: Uint8Array, iv: Uint8Array, encrypt: boolean): IAesCtr\n\n createAesIge(key: Uint8Array, iv: Uint8Array): IEncryptionScheme\n\n factorizePQ(pq: Uint8Array): MaybePromise<[Uint8Array, Uint8Array]>\n\n gzip(data: Uint8Array, maxSize: number): Uint8Array | null\n gunzip(data: Uint8Array): Uint8Array\n\n randomFill(buf: Uint8Array): void\n randomBytes(size: number): Uint8Array\n}\n\nexport abstract class BaseCryptoProvider {\n abstract randomFill(buf: Uint8Array): void\n\n factorizePQ(pq: Uint8Array) {\n return factorizePQSync(this as unknown as ICryptoProvider, pq)\n }\n\n randomBytes(size: number) {\n const buf = new Uint8Array(size)\n this.randomFill(buf)\n\n return buf\n }\n}\n\nexport type CryptoProviderFactory = () => ICryptoProvider\n"]}
1
+ {"version":3,"file":"abstract.js","sourceRoot":"","sources":["../../../../src/utils/crypto/abstract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AA0CpD,MAAM,OAAgB,kBAAkB;IAGpC,WAAW,CAAC,EAAc;QACtB,OAAO,eAAe,CAAC,IAAkC,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,WAAW,CAAC,IAAY;QACpB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEpB,OAAO,GAAG,CAAA;IACd,CAAC;CACJ","sourcesContent":["import { MaybePromise } from '../../types/index.js'\nimport { factorizePQSync } from './factorization.js'\n\nexport interface IEncryptionScheme {\n encrypt(data: Uint8Array): Uint8Array\n decrypt(data: Uint8Array): Uint8Array\n}\n\nexport interface IAesCtr {\n process(data: Uint8Array): Uint8Array\n close?(): void\n}\n\nexport interface ICryptoProvider {\n initialize?(): MaybePromise<void>\n\n sha1(data: Uint8Array): Uint8Array\n\n sha256(data: Uint8Array): Uint8Array\n\n pbkdf2(\n password: Uint8Array,\n salt: Uint8Array,\n iterations: number,\n keylen?: number, // = 64\n algo?: string, // sha1 or sha512 (default sha512)\n ): MaybePromise<Uint8Array>\n\n hmacSha256(data: Uint8Array, key: Uint8Array): MaybePromise<Uint8Array>\n\n createAesCtr(key: Uint8Array, iv: Uint8Array, encrypt: boolean): IAesCtr\n\n createAesIge(key: Uint8Array, iv: Uint8Array): IEncryptionScheme\n\n factorizePQ(pq: Uint8Array): MaybePromise<[Uint8Array, Uint8Array]>\n\n gzip(data: Uint8Array, maxSize: number): Uint8Array | null\n gunzip(data: Uint8Array): Uint8Array\n\n randomFill(buf: Uint8Array): void\n randomBytes(size: number): Uint8Array\n}\n\nexport abstract class BaseCryptoProvider {\n abstract randomFill(buf: Uint8Array): void\n\n factorizePQ(pq: Uint8Array) {\n return factorizePQSync(this as unknown as ICryptoProvider, pq)\n }\n\n randomBytes(size: number) {\n const buf = new Uint8Array(size)\n this.randomFill(buf)\n\n return buf\n }\n}\n"]}
@@ -5,5 +5,3 @@ export * from './miller-rabin.js';
5
5
  export * from './mtproto.js';
6
6
  export * from './password.js';
7
7
  export * from './utils.js';
8
- import { CryptoProviderFactory } from './abstract.js';
9
- export declare const defaultCryptoProviderFactory: CryptoProviderFactory;
@@ -5,6 +5,4 @@ export * from './miller-rabin.js';
5
5
  export * from './mtproto.js';
6
6
  export * from './password.js';
7
7
  export * from './utils.js';
8
- import { _defaultCryptoProviderFactory } from '../platform/crypto.js';
9
- export const defaultCryptoProviderFactory = _defaultCryptoProviderFactory;
10
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AAGrE,MAAM,CAAC,MAAM,4BAA4B,GAA0B,6BAA6B,CAAA","sourcesContent":["export * from './abstract.js'\nexport * from './factorization.js'\nexport * from './keys.js'\nexport * from './miller-rabin.js'\nexport * from './mtproto.js'\nexport * from './password.js'\nexport * from './utils.js'\n\nimport { _defaultCryptoProviderFactory } from '../platform/crypto.js'\nimport { CryptoProviderFactory } from './abstract.js'\n\nexport const defaultCryptoProviderFactory: CryptoProviderFactory = _defaultCryptoProviderFactory\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/crypto/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA","sourcesContent":["export * from './abstract.js'\nexport * from './factorization.js'\nexport * from './keys.js'\nexport * from './miller-rabin.js'\nexport * from './mtproto.js'\nexport * from './password.js'\nexport * from './utils.js'\n"]}
@@ -1,5 +1,6 @@
1
1
  import { __publicKeyIndex as keysIndex } from '@mtcute/tl/binary/rsa-keys.js';
2
- import { hexEncode, TlBinaryWriter } from '@mtcute/tl-runtime';
2
+ import { TlBinaryWriter } from '@mtcute/tl-runtime';
3
+ import { getPlatform } from '../../platform.js';
3
4
  import { parseAsn1, parsePemContents } from '../binary/asn1-parser.js';
4
5
  /**
5
6
  * Parse PEM-encoded RSA public key information into modulus and exponent
@@ -19,12 +20,13 @@ export function parsePublicKey(crypto, key, old = false) {
19
20
  // they are actually smaller, about 270 bytes, but idc :D
20
21
  writer.bytes(modulus);
21
22
  writer.bytes(exponent);
23
+ const platform = getPlatform();
22
24
  const data = writer.result();
23
25
  const sha = crypto.sha1(data);
24
- const fp = hexEncode(sha.slice(-8).reverse());
26
+ const fp = platform.hexEncode(sha.slice(-8).reverse());
25
27
  return {
26
- modulus: hexEncode(modulus),
27
- exponent: hexEncode(exponent),
28
+ modulus: platform.hexEncode(modulus),
29
+ exponent: platform.hexEncode(exponent),
28
30
  fingerprint: fp,
29
31
  old,
30
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/utils/crypto/keys.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAe,MAAM,+BAA+B,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGtE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC5E,MAAM,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAEhE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzC,yDAAyD;IACzD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEtB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAE7C,OAAO;QACH,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;QAC3B,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC7B,WAAW,EAAE,EAAE;QACf,GAAG;KACN,CAAA;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/C,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,YAA+B,EAAE,QAAQ,GAAG,KAAK;IACnF,KAAK,IAAI,EAAE,IAAI,YAAY,EAAE;QACzB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACxB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;SACpC;QACD,IAAI,EAAE,IAAI,SAAS,EAAE;YACjB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;gBAAE,SAAQ;YAE5C,OAAO,SAAS,CAAC,EAAE,CAAC,CAAA;SACvB;KACJ;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO,IAAI,CAAA;AACf,CAAC","sourcesContent":["import Long from 'long'\n\nimport { __publicKeyIndex as keysIndex, TlPublicKey } from '@mtcute/tl/binary/rsa-keys.js'\nimport { hexEncode, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { parseAsn1, parsePemContents } from '../binary/asn1-parser.js'\nimport { ICryptoProvider } from './abstract.js'\n\n/**\n * Parse PEM-encoded RSA public key information into modulus and exponent\n * and compute its fingerprint as defined by MTProto.\n *\n * @param crypto Crypto provider\n * @param key PEM-encoded RSA public key\n * @param old Whether this is an \"old\" key\n */\nexport function parsePublicKey(crypto: ICryptoProvider, key: string, old = false): TlPublicKey {\n const asn1 = parseAsn1(parsePemContents(key))\n const modulus = asn1.children?.[0].value\n const exponent = asn1.children?.[1].value\n if (!modulus || !exponent) throw new Error('Invalid public key')\n\n const writer = TlBinaryWriter.manual(512)\n // they are actually smaller, about 270 bytes, but idc :D\n writer.bytes(modulus)\n writer.bytes(exponent)\n\n const data = writer.result()\n const sha = crypto.sha1(data)\n const fp = hexEncode(sha.slice(-8).reverse())\n\n return {\n modulus: hexEncode(modulus),\n exponent: hexEncode(exponent),\n fingerprint: fp,\n old,\n }\n}\n\n/**\n * Add public key to the global index.\n *\n * @param crypto Crypto provider\n * @param key PEM-encoded RSA public key\n * @param old Whether this is an \"old\" key\n */\nexport function addPublicKey(crypto: ICryptoProvider, key: string, old = false): void {\n const parsed = parsePublicKey(crypto, key, old)\n keysIndex[parsed.fingerprint] = parsed\n}\n\n/**\n * Get public key by its fingerprint.\n *\n * @param fingerprints Fingerprints to match. The first one to match is returned.\n * @param allowOld Whether to allow \"old\" keys\n */\nexport function findKeyByFingerprints(fingerprints: (string | Long)[], allowOld = false): TlPublicKey | null {\n for (let fp of fingerprints) {\n if (typeof fp !== 'string') {\n fp = fp.toUnsigned().toString(16)\n }\n if (fp in keysIndex) {\n if (keysIndex[fp].old && !allowOld) continue\n\n return keysIndex[fp]\n }\n }\n if (!allowOld) return findKeyByFingerprints(fingerprints, true)\n\n return null\n}\n"]}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/utils/crypto/keys.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAe,MAAM,+BAA+B,CAAA;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAGtE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC5E,MAAM,IAAI,GAAG,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAEhE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzC,yDAAyD;IACzD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACrB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEtB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAA;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAEtD,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;QACpC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;QACtC,WAAW,EAAE,EAAE;QACf,GAAG;KACN,CAAA;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/C,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,YAA+B,EAAE,QAAQ,GAAG,KAAK;IACnF,KAAK,IAAI,EAAE,IAAI,YAAY,EAAE;QACzB,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACxB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;SACpC;QACD,IAAI,EAAE,IAAI,SAAS,EAAE;YACjB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;gBAAE,SAAQ;YAE5C,OAAO,SAAS,CAAC,EAAE,CAAC,CAAA;SACvB;KACJ;IACD,IAAI,CAAC,QAAQ;QAAE,OAAO,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO,IAAI,CAAA;AACf,CAAC","sourcesContent":["import Long from 'long'\n\nimport { __publicKeyIndex as keysIndex, TlPublicKey } from '@mtcute/tl/binary/rsa-keys.js'\nimport { TlBinaryWriter } from '@mtcute/tl-runtime'\n\nimport { getPlatform } from '../../platform.js'\nimport { parseAsn1, parsePemContents } from '../binary/asn1-parser.js'\nimport { ICryptoProvider } from './abstract.js'\n\n/**\n * Parse PEM-encoded RSA public key information into modulus and exponent\n * and compute its fingerprint as defined by MTProto.\n *\n * @param crypto Crypto provider\n * @param key PEM-encoded RSA public key\n * @param old Whether this is an \"old\" key\n */\nexport function parsePublicKey(crypto: ICryptoProvider, key: string, old = false): TlPublicKey {\n const asn1 = parseAsn1(parsePemContents(key))\n const modulus = asn1.children?.[0].value\n const exponent = asn1.children?.[1].value\n if (!modulus || !exponent) throw new Error('Invalid public key')\n\n const writer = TlBinaryWriter.manual(512)\n // they are actually smaller, about 270 bytes, but idc :D\n writer.bytes(modulus)\n writer.bytes(exponent)\n\n const platform = getPlatform()\n\n const data = writer.result()\n const sha = crypto.sha1(data)\n const fp = platform.hexEncode(sha.slice(-8).reverse())\n\n return {\n modulus: platform.hexEncode(modulus),\n exponent: platform.hexEncode(exponent),\n fingerprint: fp,\n old,\n }\n}\n\n/**\n * Add public key to the global index.\n *\n * @param crypto Crypto provider\n * @param key PEM-encoded RSA public key\n * @param old Whether this is an \"old\" key\n */\nexport function addPublicKey(crypto: ICryptoProvider, key: string, old = false): void {\n const parsed = parsePublicKey(crypto, key, old)\n keysIndex[parsed.fingerprint] = parsed\n}\n\n/**\n * Get public key by its fingerprint.\n *\n * @param fingerprints Fingerprints to match. The first one to match is returned.\n * @param allowOld Whether to allow \"old\" keys\n */\nexport function findKeyByFingerprints(fingerprints: (string | Long)[], allowOld = false): TlPublicKey | null {\n for (let fp of fingerprints) {\n if (typeof fp !== 'string') {\n fp = fp.toUnsigned().toString(16)\n }\n if (fp in keysIndex) {\n if (keysIndex[fp].old && !allowOld) continue\n\n return keysIndex[fp]\n }\n }\n if (!allowOld) return findKeyByFingerprints(fingerprints, true)\n\n return null\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { utf8EncodeToBuffer } from '@mtcute/tl-runtime';
1
+ import { getPlatform } from '../../platform.js';
2
2
  import { MtSecurityError, MtUnsupportedError } from '../../types/errors.js';
3
3
  import { bigIntModPow, bigIntToBuffer, bufferToBigInt } from '../bigint-utils.js';
4
4
  import { concatBuffers } from '../buffer-utils.js';
@@ -32,7 +32,7 @@ export async function computeNewPasswordHash(crypto, algo, password) {
32
32
  salt1.set(algo.salt1);
33
33
  crypto.randomFill(salt1.subarray(algo.salt1.length));
34
34
  algo.salt1 = salt1;
35
- const _x = await computePasswordHash(crypto, utf8EncodeToBuffer(password), algo.salt1, algo.salt2);
35
+ const _x = await computePasswordHash(crypto, getPlatform().utf8Encode(password), algo.salt1, algo.salt2);
36
36
  const g = BigInt(algo.g);
37
37
  const p = bufferToBigInt(algo.p);
38
38
  const x = bufferToBigInt(_x);
@@ -69,7 +69,7 @@ export async function computeSrpParams(crypto, request, password) {
69
69
  const H = (data) => crypto.sha256(data);
70
70
  const _k = crypto.sha256(concatBuffers([algo.p, _g]));
71
71
  const _u = crypto.sha256(concatBuffers([_gA, request.srpB]));
72
- const _x = await computePasswordHash(crypto, utf8EncodeToBuffer(password), algo.salt1, algo.salt2);
72
+ const _x = await computePasswordHash(crypto, getPlatform().utf8Encode(password), algo.salt1, algo.salt2);
73
73
  const k = bufferToBigInt(_k);
74
74
  const u = bufferToBigInt(_u);
75
75
  const x = bufferToBigInt(_x);
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"","sources":["../../../../src/utils/crypto/password.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\nimport { utf8EncodeToBuffer } from '@mtcute/tl-runtime'\n\nimport { MtSecurityError, MtUnsupportedError } from '../../types/errors.js'\nimport { bigIntModPow, bigIntToBuffer, bufferToBigInt } from '../bigint-utils.js'\nimport { concatBuffers } from '../buffer-utils.js'\nimport { assertTypeIs } from '../type-assertions.js'\nimport { ICryptoProvider } from './abstract.js'\nimport { xorBuffer } from './utils.js'\n\n/**\n * Compute password hash as defined by MTProto.\n *\n * See https://core.telegram.org/api/srp#checking-the-password-with-srp\n *\n * @param crypto Crypto provider\n * @param password Password\n * @param salt1 Salt 1\n * @param salt2 Salt 2\n */\nexport async function computePasswordHash(\n crypto: ICryptoProvider,\n password: Uint8Array,\n salt1: Uint8Array,\n salt2: Uint8Array,\n): Promise<Uint8Array> {\n const SH = (data: Uint8Array, salt: Uint8Array) => crypto.sha256(concatBuffers([salt, data, salt]))\n const PH1 = (pwd: Uint8Array, salt1: Uint8Array, salt2: Uint8Array) => SH(SH(pwd, salt1), salt2)\n\n return SH(await crypto.pbkdf2(PH1(password, salt1, salt2), salt1, 100000), salt2)\n}\n\n/**\n * Compute new password SRP hash as defined by MTProto.\n *\n * @param crypto Crypto provider\n * @param algo KDF algorithm\n * @param password Password\n */\nexport async function computeNewPasswordHash(\n crypto: ICryptoProvider,\n algo: tl.TypePasswordKdfAlgo,\n password: string,\n): Promise<Uint8Array> {\n assertTypeIs('account.getPassword', algo, 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow')\n\n const salt1 = new Uint8Array(algo.salt1.length + 32)\n salt1.set(algo.salt1)\n crypto.randomFill(salt1.subarray(algo.salt1.length))\n ;(algo as tl.Mutable<typeof algo>).salt1 = salt1\n\n const _x = await computePasswordHash(crypto, utf8EncodeToBuffer(password), algo.salt1, algo.salt2)\n\n const g = BigInt(algo.g)\n const p = bufferToBigInt(algo.p)\n const x = bufferToBigInt(_x)\n\n return bigIntToBuffer(bigIntModPow(g, x, p), 256)\n}\n\n/**\n * Compute SRP check parameters for 2fa password as defined by MTProto.\n *\n * @param crypto Crypto provider\n * @param request SRP request\n * @param password 2fa password\n */\nexport async function computeSrpParams(\n crypto: ICryptoProvider,\n request: tl.account.RawPassword,\n password: string,\n): Promise<tl.RawInputCheckPasswordSRP> {\n // nice naming thx durov\n if (\n !request.currentAlgo ||\n request.currentAlgo._ !== 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow'\n ) {\n throw new MtUnsupportedError(`Unknown algo ${request.currentAlgo?._}`)\n }\n\n const algo = request.currentAlgo\n\n // here and after: underscored variables are buffers, non-underscored are bigInts\n\n if (!request.srpB) {\n throw new MtSecurityError('SRP_B is not present in the request')\n }\n\n if (!request.srpId) {\n throw new MtSecurityError('SRP_ID is not present in the request')\n }\n\n const g = BigInt(algo.g)\n const _g = bigIntToBuffer(g, 256)\n const p = bufferToBigInt(algo.p)\n const gB = bufferToBigInt(request.srpB)\n\n const a = bufferToBigInt(crypto.randomBytes(256))\n const gA = bigIntModPow(g, a, p)\n const _gA = bigIntToBuffer(gA, 256)\n\n const H = (data: Uint8Array) => crypto.sha256(data)\n\n const _k = crypto.sha256(concatBuffers([algo.p, _g]))\n const _u = crypto.sha256(concatBuffers([_gA, request.srpB]))\n const _x = await computePasswordHash(crypto, utf8EncodeToBuffer(password), algo.salt1, algo.salt2)\n const k = bufferToBigInt(_k)\n const u = bufferToBigInt(_u)\n const x = bufferToBigInt(_x)\n\n const v = bigIntModPow(g, x, p)\n const kV = (k * v) % p\n\n let t = gB - kV\n if (t < 0n) t += p\n const sA = bigIntModPow(t, a + u * x, p)\n const _kA = H(bigIntToBuffer(sA, 256))\n\n const _M1 = H(concatBuffers([xorBuffer(H(algo.p), H(_g)), H(algo.salt1), H(algo.salt2), _gA, request.srpB, _kA]))\n\n return {\n _: 'inputCheckPasswordSRP',\n srpId: request.srpId,\n A: _gA,\n M1: _M1,\n }\n}\n"]}
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../../../src/utils/crypto/password.ts"],"names":[],"mappings":"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","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { getPlatform } from '../../platform.js'\nimport { MtSecurityError, MtUnsupportedError } from '../../types/errors.js'\nimport { bigIntModPow, bigIntToBuffer, bufferToBigInt } from '../bigint-utils.js'\nimport { concatBuffers } from '../buffer-utils.js'\nimport { assertTypeIs } from '../type-assertions.js'\nimport { ICryptoProvider } from './abstract.js'\nimport { xorBuffer } from './utils.js'\n\n/**\n * Compute password hash as defined by MTProto.\n *\n * See https://core.telegram.org/api/srp#checking-the-password-with-srp\n *\n * @param crypto Crypto provider\n * @param password Password\n * @param salt1 Salt 1\n * @param salt2 Salt 2\n */\nexport async function computePasswordHash(\n crypto: ICryptoProvider,\n password: Uint8Array,\n salt1: Uint8Array,\n salt2: Uint8Array,\n): Promise<Uint8Array> {\n const SH = (data: Uint8Array, salt: Uint8Array) => crypto.sha256(concatBuffers([salt, data, salt]))\n const PH1 = (pwd: Uint8Array, salt1: Uint8Array, salt2: Uint8Array) => SH(SH(pwd, salt1), salt2)\n\n return SH(await crypto.pbkdf2(PH1(password, salt1, salt2), salt1, 100000), salt2)\n}\n\n/**\n * Compute new password SRP hash as defined by MTProto.\n *\n * @param crypto Crypto provider\n * @param algo KDF algorithm\n * @param password Password\n */\nexport async function computeNewPasswordHash(\n crypto: ICryptoProvider,\n algo: tl.TypePasswordKdfAlgo,\n password: string,\n): Promise<Uint8Array> {\n assertTypeIs('account.getPassword', algo, 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow')\n\n const salt1 = new Uint8Array(algo.salt1.length + 32)\n salt1.set(algo.salt1)\n crypto.randomFill(salt1.subarray(algo.salt1.length))\n ;(algo as tl.Mutable<typeof algo>).salt1 = salt1\n\n const _x = await computePasswordHash(crypto, getPlatform().utf8Encode(password), algo.salt1, algo.salt2)\n\n const g = BigInt(algo.g)\n const p = bufferToBigInt(algo.p)\n const x = bufferToBigInt(_x)\n\n return bigIntToBuffer(bigIntModPow(g, x, p), 256)\n}\n\n/**\n * Compute SRP check parameters for 2fa password as defined by MTProto.\n *\n * @param crypto Crypto provider\n * @param request SRP request\n * @param password 2fa password\n */\nexport async function computeSrpParams(\n crypto: ICryptoProvider,\n request: tl.account.RawPassword,\n password: string,\n): Promise<tl.RawInputCheckPasswordSRP> {\n // nice naming thx durov\n if (\n !request.currentAlgo ||\n request.currentAlgo._ !== 'passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow'\n ) {\n throw new MtUnsupportedError(`Unknown algo ${request.currentAlgo?._}`)\n }\n\n const algo = request.currentAlgo\n\n // here and after: underscored variables are buffers, non-underscored are bigInts\n\n if (!request.srpB) {\n throw new MtSecurityError('SRP_B is not present in the request')\n }\n\n if (!request.srpId) {\n throw new MtSecurityError('SRP_ID is not present in the request')\n }\n\n const g = BigInt(algo.g)\n const _g = bigIntToBuffer(g, 256)\n const p = bufferToBigInt(algo.p)\n const gB = bufferToBigInt(request.srpB)\n\n const a = bufferToBigInt(crypto.randomBytes(256))\n const gA = bigIntModPow(g, a, p)\n const _gA = bigIntToBuffer(gA, 256)\n\n const H = (data: Uint8Array) => crypto.sha256(data)\n\n const _k = crypto.sha256(concatBuffers([algo.p, _g]))\n const _u = crypto.sha256(concatBuffers([_gA, request.srpB]))\n const _x = await computePasswordHash(crypto, getPlatform().utf8Encode(password), algo.salt1, algo.salt2)\n const k = bufferToBigInt(_k)\n const u = bufferToBigInt(_u)\n const x = bufferToBigInt(_x)\n\n const v = bigIntModPow(g, x, p)\n const kV = (k * v) % p\n\n let t = gB - kV\n if (t < 0n) t += p\n const sA = bigIntModPow(t, a + u * x, p)\n const _kA = H(bigIntToBuffer(sA, 256))\n\n const _M1 = H(concatBuffers([xorBuffer(H(algo.p), H(_g)), H(algo.salt1), H(algo.salt2), _gA, request.srpB, _kA]))\n\n return {\n _: 'inputCheckPasswordSRP',\n srpId: request.srpId,\n A: _gA,\n M1: _M1,\n }\n}\n"]}
@@ -11,3 +11,7 @@ export interface DcOptions {
11
11
  main: BasicDcOption;
12
12
  media: BasicDcOption;
13
13
  }
14
+ export declare const defaultProductionDc: DcOptions;
15
+ export declare const defaultProductionIpv6Dc: DcOptions;
16
+ export declare const defaultTestDc: DcOptions;
17
+ export declare const defaultTestIpv6Dc: DcOptions;
package/esm/utils/dcs.js CHANGED
@@ -26,7 +26,6 @@ export function parseBasicDcOption(data) {
26
26
  mediaOnly: (flags & 2) !== 0,
27
27
  };
28
28
  }
29
- /** @internal */
30
29
  export const defaultProductionDc = {
31
30
  main: {
32
31
  ipAddress: '149.154.167.50',
@@ -40,7 +39,6 @@ export const defaultProductionDc = {
40
39
  mediaOnly: true,
41
40
  },
42
41
  };
43
- /** @internal */
44
42
  export const defaultProductionIpv6Dc = {
45
43
  main: {
46
44
  ipAddress: '2001:067c:04e8:f002:0000:0000:0000:000a',
@@ -56,7 +54,6 @@ export const defaultProductionIpv6Dc = {
56
54
  mediaOnly: true,
57
55
  },
58
56
  };
59
- /** @internal */
60
57
  export const defaultTestDc = {
61
58
  main: {
62
59
  ipAddress: '149.154.167.40',
@@ -70,7 +67,6 @@ export const defaultTestDc = {
70
67
  mediaOnly: true,
71
68
  },
72
69
  };
73
- /** @internal */
74
70
  export const defaultTestIpv6Dc = {
75
71
  main: {
76
72
  ipAddress: '2001:67c:4e8:f002::e',
@@ -1 +1 @@
1
- {"version":3,"file":"dcs.js","sourceRoot":"","sources":["../../../src/utils/dcs.ts"],"names":[],"mappings":"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","sourcesContent":["import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nexport interface BasicDcOption {\n ipAddress: string\n port: number\n id: number\n ipv6?: boolean\n mediaOnly?: boolean\n}\n\nexport function serializeBasicDcOption(dc: BasicDcOption): Uint8Array {\n const writer = TlBinaryWriter.manual(64)\n\n const flags = (dc.ipv6 ? 1 : 0) | (dc.mediaOnly ? 2 : 0)\n writer.raw(\n new Uint8Array([\n 1, // version\n dc.id,\n flags,\n ]),\n )\n\n writer.string(dc.ipAddress)\n writer.int(dc.port)\n\n return writer.result()\n}\n\nexport function parseBasicDcOption(data: Uint8Array): BasicDcOption | null {\n const reader = TlBinaryReader.manual(data)\n\n const [version, id, flags] = reader.raw(3)\n if (version !== 1) return null\n\n const ipAddress = reader.string()\n const port = reader.int()\n\n return {\n id,\n ipAddress,\n port,\n ipv6: (flags & 1) !== 0,\n mediaOnly: (flags & 2) !== 0,\n }\n}\n\nexport interface DcOptions {\n main: BasicDcOption\n media: BasicDcOption\n}\n\n/** @internal */\nexport const defaultProductionDc: DcOptions = {\n main: {\n ipAddress: '149.154.167.50',\n port: 443,\n id: 2,\n },\n media: {\n ipAddress: '149.154.167.222',\n port: 443,\n id: 2,\n mediaOnly: true,\n },\n}\n\n/** @internal */\nexport const defaultProductionIpv6Dc: DcOptions = {\n main: {\n ipAddress: '2001:067c:04e8:f002:0000:0000:0000:000a',\n ipv6: true,\n port: 443,\n id: 2,\n },\n media: {\n ipAddress: '2001:067c:04e8:f002:0000:0000:0000:000b',\n ipv6: true,\n port: 443,\n id: 2,\n mediaOnly: true,\n },\n}\n\n/** @internal */\nexport const defaultTestDc: DcOptions = {\n main: {\n ipAddress: '149.154.167.40',\n port: 443,\n id: 2,\n },\n media: {\n ipAddress: '149.154.167.40',\n port: 443,\n id: 2,\n mediaOnly: true,\n },\n}\n\n/** @internal */\nexport const defaultTestIpv6Dc: DcOptions = {\n main: {\n ipAddress: '2001:67c:4e8:f002::e',\n port: 443,\n ipv6: true,\n id: 2,\n },\n media: {\n ipAddress: '2001:67c:4e8:f002::e',\n port: 443,\n ipv6: true,\n id: 2,\n mediaOnly: true,\n },\n}\n"]}
1
+ {"version":3,"file":"dcs.js","sourceRoot":"","sources":["../../../src/utils/dcs.ts"],"names":[],"mappings":"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","sourcesContent":["import { TlBinaryReader, TlBinaryWriter } from '@mtcute/tl-runtime'\n\nexport interface BasicDcOption {\n ipAddress: string\n port: number\n id: number\n ipv6?: boolean\n mediaOnly?: boolean\n}\n\nexport function serializeBasicDcOption(dc: BasicDcOption): Uint8Array {\n const writer = TlBinaryWriter.manual(64)\n\n const flags = (dc.ipv6 ? 1 : 0) | (dc.mediaOnly ? 2 : 0)\n writer.raw(\n new Uint8Array([\n 1, // version\n dc.id,\n flags,\n ]),\n )\n\n writer.string(dc.ipAddress)\n writer.int(dc.port)\n\n return writer.result()\n}\n\nexport function parseBasicDcOption(data: Uint8Array): BasicDcOption | null {\n const reader = TlBinaryReader.manual(data)\n\n const [version, id, flags] = reader.raw(3)\n if (version !== 1) return null\n\n const ipAddress = reader.string()\n const port = reader.int()\n\n return {\n id,\n ipAddress,\n port,\n ipv6: (flags & 1) !== 0,\n mediaOnly: (flags & 2) !== 0,\n }\n}\n\nexport interface DcOptions {\n main: BasicDcOption\n media: BasicDcOption\n}\n\nexport const defaultProductionDc: DcOptions = {\n main: {\n ipAddress: '149.154.167.50',\n port: 443,\n id: 2,\n },\n media: {\n ipAddress: '149.154.167.222',\n port: 443,\n id: 2,\n mediaOnly: true,\n },\n}\n\nexport const defaultProductionIpv6Dc: DcOptions = {\n main: {\n ipAddress: '2001:067c:04e8:f002:0000:0000:0000:000a',\n ipv6: true,\n port: 443,\n id: 2,\n },\n media: {\n ipAddress: '2001:067c:04e8:f002:0000:0000:0000:000b',\n ipv6: true,\n port: 443,\n id: 2,\n mediaOnly: true,\n },\n}\n\nexport const defaultTestDc: DcOptions = {\n main: {\n ipAddress: '149.154.167.40',\n port: 443,\n id: 2,\n },\n media: {\n ipAddress: '149.154.167.40',\n port: 443,\n id: 2,\n mediaOnly: true,\n },\n}\n\nexport const defaultTestIpv6Dc: DcOptions = {\n main: {\n ipAddress: '2001:67c:4e8:f002::e',\n port: 443,\n ipv6: true,\n id: 2,\n },\n media: {\n ipAddress: '2001:67c:4e8:f002::e',\n port: 443,\n ipv6: true,\n id: 2,\n mediaOnly: true,\n },\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  import { tl } from '@mtcute/tl';
2
- import { Logger } from '../logger.js';
2
+ import { Logger } from './logger.js';
3
3
  export declare function reportUnknownError(log: Logger, error: tl.RpcError, method: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporting.js","sourceRoot":"","sources":["../../../src/utils/error-reporting.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,KAAkB,EAAE,MAAc;IAC9E,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAM;IAEvC,KAAK,CAAC,qCAAqC,KAAK,CAAC,IAAI,WAAW,MAAM,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC;SACxF,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACR,IAAI,CAAC,CAAC,EAAE,EAAE;YACN,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;SACjF;aAAM;YACH,GAAG,CAAC,IAAI,CACJ,wFAAwF,EACxF,KAAK,CAAC,IAAI,CACb,CAAA;SACJ;IACL,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;AACV,CAAC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { Logger } from './logger.js'\n\nexport function reportUnknownError(log: Logger, error: tl.RpcError, method: string): void {\n if (typeof fetch !== 'function') return\n\n fetch(`https://rpc.pwrtelegram.xyz/?code=${error.code}&method=${method}&error=${error.text}`)\n .then((r) => r.json())\n .then((r) => {\n if (r.ok) {\n log.info('telerpc responded with error info for %s: %s', error.text, r.result)\n } else {\n log.info(\n 'Reported error %s to telerpc. You can disable this using `enableErrorReporting: false`',\n error.text,\n )\n }\n })\n .catch((e) => {\n log.debug('failed to report error %s to telerpc: %s', error.text, e)\n })\n}\n"]}
@@ -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';