@mtcute/core 0.7.3 → 0.9.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 (1169) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +26 -3
  3. package/cjs/highlevel/base.d.ts +3 -1
  4. package/cjs/highlevel/base.js +18 -0
  5. package/cjs/highlevel/base.js.map +1 -1
  6. package/cjs/highlevel/client.d.ts +23 -10
  7. package/cjs/highlevel/client.js +26 -19
  8. package/cjs/highlevel/client.js.map +1 -1
  9. package/cjs/highlevel/client.types.d.ts +14 -0
  10. package/cjs/highlevel/client.types.js.map +1 -1
  11. package/cjs/highlevel/index.d.ts +0 -2
  12. package/cjs/highlevel/index.js +0 -2
  13. package/cjs/highlevel/index.js.map +1 -1
  14. package/cjs/highlevel/methods/_imports.js.map +1 -1
  15. package/cjs/highlevel/methods/_init.js +4 -29
  16. package/cjs/highlevel/methods/_init.js.map +1 -1
  17. package/cjs/highlevel/methods/bots/get-callback-answer.js +2 -2
  18. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  19. package/cjs/highlevel/methods/dialogs/create-folder.js +1 -1
  20. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  21. package/cjs/highlevel/methods/dialogs/edit-folder.js +1 -1
  22. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  23. package/cjs/highlevel/methods/dialogs/find-folder.js +1 -1
  24. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  25. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +1 -1
  26. package/cjs/highlevel/methods/dialogs/get-folders.js +1 -1
  27. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  28. package/cjs/highlevel/methods/files/download-file.d.ts +1 -10
  29. package/cjs/highlevel/methods/files/download-file.js +1 -32
  30. package/cjs/highlevel/methods/files/download-file.js.map +1 -1
  31. package/cjs/highlevel/methods/files/download-iterable.js +2 -1
  32. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  33. package/cjs/highlevel/methods/files/download-node-stream.js +4 -0
  34. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -0
  35. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  36. package/cjs/highlevel/methods/files/normalize-input-media.js +2 -1
  37. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  38. package/cjs/highlevel/methods/files/upload-file.d.ts +0 -3
  39. package/cjs/highlevel/methods/files/upload-file.js +24 -11
  40. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  41. package/cjs/highlevel/methods/messages/find-in-update.js +23 -8
  42. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  43. package/cjs/highlevel/methods/messages/send-media-group.d.ts +1 -1
  44. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  45. package/cjs/highlevel/methods/messages/send-media.d.ts +2 -2
  46. package/cjs/highlevel/methods/messages/send-media.js +5 -4
  47. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  48. package/cjs/highlevel/methods/messages/send-text.d.ts +1 -1
  49. package/cjs/highlevel/methods/messages/send-text.js +7 -6
  50. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  51. package/cjs/highlevel/methods/misc/with-params.d.ts +10 -0
  52. package/cjs/highlevel/methods/misc/with-params.js +32 -0
  53. package/cjs/highlevel/methods/misc/with-params.js.map +1 -0
  54. package/cjs/highlevel/methods.d.ts +13 -1
  55. package/cjs/highlevel/methods.js +4 -6
  56. package/cjs/highlevel/methods.js.map +1 -1
  57. package/cjs/highlevel/types/bots/command-scope/index.d.ts +10 -0
  58. package/cjs/highlevel/types/bots/command-scope/index.js +29 -0
  59. package/cjs/highlevel/types/bots/command-scope/index.js.map +1 -0
  60. package/cjs/highlevel/types/bots/command-scope/inner.d.ts +54 -0
  61. package/cjs/highlevel/types/bots/command-scope/inner.js +76 -0
  62. package/cjs/highlevel/types/bots/command-scope/inner.js.map +1 -0
  63. package/cjs/highlevel/types/bots/index.d.ts +4 -4
  64. package/cjs/highlevel/types/bots/index.js +4 -4
  65. package/cjs/highlevel/types/bots/index.js.map +1 -1
  66. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +43 -0
  67. package/cjs/highlevel/types/bots/inline-message/factories.js +175 -0
  68. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -0
  69. package/cjs/highlevel/types/bots/inline-message/index.d.ts +3 -0
  70. package/cjs/highlevel/types/bots/inline-message/index.js +33 -0
  71. package/cjs/highlevel/types/bots/inline-message/index.js.map +1 -0
  72. package/{esm/highlevel/types/bots/input/input-inline-message.d.ts → cjs/highlevel/types/bots/inline-message/types.d.ts} +2 -45
  73. package/cjs/highlevel/types/bots/inline-message/types.js +3 -0
  74. package/cjs/highlevel/types/bots/inline-message/types.js.map +1 -0
  75. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +94 -0
  76. package/cjs/highlevel/types/bots/inline-result/factories.js +486 -0
  77. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -0
  78. package/cjs/highlevel/types/bots/inline-result/index.d.ts +3 -0
  79. package/cjs/highlevel/types/bots/inline-result/index.js +33 -0
  80. package/cjs/highlevel/types/bots/inline-result/index.js.map +1 -0
  81. package/{esm/highlevel/types/bots/input/input-inline-result.d.ts → cjs/highlevel/types/bots/inline-result/types.d.ts} +1 -95
  82. package/cjs/highlevel/types/bots/inline-result/types.js +3 -0
  83. package/cjs/highlevel/types/bots/inline-result/types.js.map +1 -0
  84. package/cjs/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
  85. package/cjs/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
  86. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -0
  87. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +195 -0
  88. package/cjs/highlevel/types/bots/keyboards/factories.js +366 -0
  89. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -0
  90. package/cjs/highlevel/types/bots/keyboards/index.d.ts +14 -0
  91. package/cjs/highlevel/types/bots/keyboards/index.js +33 -0
  92. package/cjs/highlevel/types/bots/keyboards/index.js.map +1 -0
  93. package/cjs/highlevel/types/bots/keyboards/types.d.ts +34 -0
  94. package/cjs/highlevel/types/bots/keyboards/types.js +3 -0
  95. package/cjs/highlevel/types/bots/keyboards/types.js.map +1 -0
  96. package/cjs/highlevel/types/files/utils.d.ts +9 -6
  97. package/cjs/highlevel/types/files/utils.js.map +1 -1
  98. package/cjs/highlevel/types/media/document.js +3 -2
  99. package/cjs/highlevel/types/media/document.js.map +1 -1
  100. package/cjs/highlevel/types/media/index.d.ts +1 -1
  101. package/cjs/highlevel/types/media/index.js +1 -1
  102. package/cjs/highlevel/types/media/index.js.map +1 -1
  103. package/cjs/highlevel/types/media/input-media/factories.d.ts +141 -0
  104. package/cjs/highlevel/types/media/input-media/factories.js +250 -0
  105. package/cjs/highlevel/types/media/input-media/factories.js.map +1 -0
  106. package/cjs/highlevel/types/media/input-media/index.d.ts +3 -0
  107. package/cjs/highlevel/types/media/input-media/index.js +33 -0
  108. package/cjs/highlevel/types/media/input-media/index.js.map +1 -0
  109. package/cjs/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
  110. package/cjs/highlevel/types/media/input-media/types.js +3 -0
  111. package/cjs/highlevel/types/media/input-media/types.js.map +1 -0
  112. package/cjs/highlevel/types/media/thumbnail.js +5 -4
  113. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  114. package/cjs/highlevel/types/messages/message.d.ts +1 -1
  115. package/cjs/highlevel/types/messages/message.js +3 -3
  116. package/cjs/highlevel/types/messages/message.js.map +1 -1
  117. package/cjs/highlevel/types/misc/index.d.ts +1 -1
  118. package/cjs/highlevel/types/misc/index.js +1 -1
  119. package/cjs/highlevel/types/misc/index.js.map +1 -1
  120. package/cjs/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
  121. package/cjs/highlevel/types/misc/input-privacy-rule/allow.js +36 -0
  122. package/cjs/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
  123. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
  124. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js +31 -0
  125. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
  126. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
  127. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js +32 -0
  128. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
  129. package/cjs/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
  130. package/cjs/highlevel/types/misc/input-privacy-rule/index.js +33 -0
  131. package/cjs/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
  132. package/cjs/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
  133. package/cjs/highlevel/types/misc/input-privacy-rule/types.js +3 -0
  134. package/cjs/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
  135. package/cjs/highlevel/types/peers/chat-photo.js +3 -2
  136. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  137. package/cjs/highlevel/types/updates/callback-query.js +2 -2
  138. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  139. package/cjs/highlevel/types/updates/user-status-update.js +1 -1
  140. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  141. package/cjs/highlevel/updates/manager.d.ts +5 -3
  142. package/cjs/highlevel/updates/manager.js +81 -67
  143. package/cjs/highlevel/updates/manager.js.map +1 -1
  144. package/cjs/highlevel/utils/convert-file-id.js +7 -6
  145. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  146. package/cjs/highlevel/utils/file-utils.js +8 -4
  147. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  148. package/cjs/highlevel/utils/inline-utils.js +3 -2
  149. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  150. package/cjs/highlevel/utils/inspectable.d.ts +1 -1
  151. package/cjs/highlevel/utils/inspectable.js +3 -2
  152. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  153. package/cjs/highlevel/utils/memoize.d.ts +1 -1
  154. package/cjs/highlevel/utils/memoize.js +1 -0
  155. package/cjs/highlevel/utils/memoize.js.map +1 -1
  156. package/cjs/highlevel/utils/stream-utils.d.ts +0 -2
  157. package/cjs/highlevel/utils/stream-utils.js +1 -28
  158. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  159. package/cjs/highlevel/utils/string-session.js +3 -2
  160. package/cjs/highlevel/utils/string-session.js.map +1 -1
  161. package/cjs/highlevel/worker/index.d.ts +3 -0
  162. package/cjs/highlevel/{types/bots/input → worker}/index.js +3 -2
  163. package/cjs/highlevel/worker/index.js.map +1 -0
  164. package/cjs/highlevel/worker/port.d.ts +6 -3
  165. package/cjs/highlevel/worker/port.js +8 -2
  166. package/cjs/highlevel/worker/port.js.map +1 -1
  167. package/cjs/highlevel/worker/protocol.d.ts +5 -1
  168. package/cjs/highlevel/worker/protocol.js.map +1 -1
  169. package/cjs/highlevel/worker/worker.d.ts +11 -4
  170. package/cjs/highlevel/worker/worker.js +53 -49
  171. package/cjs/highlevel/worker/worker.js.map +1 -1
  172. package/cjs/network/client.d.ts +4 -4
  173. package/cjs/network/client.js +3 -1
  174. package/cjs/network/client.js.map +1 -1
  175. package/cjs/network/multi-session-connection.d.ts +1 -0
  176. package/cjs/network/multi-session-connection.js +6 -0
  177. package/cjs/network/multi-session-connection.js.map +1 -1
  178. package/cjs/network/network-manager.d.ts +5 -1
  179. package/cjs/network/network-manager.js +24 -15
  180. package/cjs/network/network-manager.js.map +1 -1
  181. package/cjs/network/persistent-connection.d.ts +3 -0
  182. package/cjs/network/persistent-connection.js +23 -1
  183. package/cjs/network/persistent-connection.js.map +1 -1
  184. package/cjs/network/session-connection.d.ts +2 -0
  185. package/cjs/network/session-connection.js +18 -4
  186. package/cjs/network/session-connection.js.map +1 -1
  187. package/cjs/network/transports/index.d.ts +0 -3
  188. package/cjs/network/transports/index.js +0 -4
  189. package/cjs/network/transports/index.js.map +1 -1
  190. package/cjs/platform.d.ts +18 -0
  191. package/cjs/platform.js +36 -0
  192. package/cjs/platform.js.map +1 -0
  193. package/cjs/storage/index.d.ts +2 -2
  194. package/cjs/storage/index.js +2 -2
  195. package/cjs/storage/index.js.map +1 -1
  196. package/{esm/storage/providers → cjs/storage}/memory/driver.d.ts +1 -1
  197. package/cjs/storage/memory/driver.js.map +1 -0
  198. package/{esm/storage/providers → cjs/storage}/memory/index.d.ts +2 -2
  199. package/cjs/storage/memory/index.js.map +1 -0
  200. package/cjs/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
  201. package/cjs/storage/memory/repository/auth-keys.js.map +1 -0
  202. package/{esm/storage/providers → cjs/storage}/memory/repository/kv.d.ts +1 -1
  203. package/cjs/storage/memory/repository/kv.js.map +1 -0
  204. package/{esm/storage/providers → cjs/storage}/memory/repository/peers.d.ts +1 -1
  205. package/cjs/storage/memory/repository/peers.js.map +1 -0
  206. package/{esm/storage/providers → cjs/storage}/memory/repository/ref-messages.d.ts +1 -1
  207. package/cjs/storage/memory/repository/ref-messages.js.map +1 -0
  208. package/cjs/storage/sqlite/driver.d.ts +24 -0
  209. package/cjs/storage/sqlite/driver.js +129 -0
  210. package/cjs/storage/sqlite/driver.js.map +1 -0
  211. package/cjs/storage/sqlite/index.d.ts +17 -0
  212. package/cjs/storage/sqlite/index.js +35 -0
  213. package/cjs/storage/sqlite/index.js.map +1 -0
  214. package/cjs/storage/sqlite/repository/auth-keys.d.ts +20 -0
  215. package/cjs/storage/sqlite/repository/auth-keys.js +68 -0
  216. package/cjs/storage/sqlite/repository/auth-keys.js.map +1 -0
  217. package/cjs/storage/sqlite/repository/kv.d.ts +14 -0
  218. package/cjs/storage/sqlite/repository/kv.js +96 -0
  219. package/cjs/storage/sqlite/repository/kv.js.map +1 -0
  220. package/cjs/storage/sqlite/repository/peers.d.ts +16 -0
  221. package/cjs/storage/sqlite/repository/peers.js +77 -0
  222. package/cjs/storage/sqlite/repository/peers.js.map +1 -0
  223. package/cjs/storage/sqlite/repository/ref-messages.d.ts +16 -0
  224. package/cjs/storage/sqlite/repository/ref-messages.js +49 -0
  225. package/cjs/storage/sqlite/repository/ref-messages.js.map +1 -0
  226. package/cjs/storage/sqlite/types.d.ts +18 -0
  227. package/cjs/storage/sqlite/types.js +3 -0
  228. package/cjs/storage/sqlite/types.js.map +1 -0
  229. package/cjs/storage/storage.js +2 -1
  230. package/cjs/storage/storage.js.map +1 -1
  231. package/cjs/utils/binary/asn1-parser.js +3 -3
  232. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  233. package/cjs/utils/crypto/abstract.d.ts +0 -1
  234. package/cjs/utils/crypto/abstract.js.map +1 -1
  235. package/cjs/utils/crypto/index.d.ts +0 -2
  236. package/cjs/utils/crypto/index.js +0 -3
  237. package/cjs/utils/crypto/index.js.map +1 -1
  238. package/cjs/utils/crypto/keys.js +5 -3
  239. package/cjs/utils/crypto/keys.js.map +1 -1
  240. package/cjs/utils/crypto/password.js +3 -3
  241. package/cjs/utils/crypto/password.js.map +1 -1
  242. package/cjs/utils/dcs.d.ts +4 -0
  243. package/cjs/utils/dcs.js +0 -4
  244. package/cjs/utils/dcs.js.map +1 -1
  245. package/cjs/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
  246. package/cjs/utils/error-reporting.js.map +1 -0
  247. package/cjs/utils/index.d.ts +4 -1
  248. package/cjs/utils/index.js +6 -1
  249. package/cjs/utils/index.js.map +1 -1
  250. package/cjs/utils/links/common.js +1 -1
  251. package/cjs/utils/links/common.js.map +1 -1
  252. package/cjs/utils/logger.d.ts +1 -0
  253. package/cjs/utils/logger.js +9 -22
  254. package/cjs/utils/logger.js.map +1 -1
  255. package/esm/highlevel/base.d.ts +3 -1
  256. package/esm/highlevel/base.js +18 -0
  257. package/esm/highlevel/base.js.map +1 -1
  258. package/esm/highlevel/client.d.ts +23 -10
  259. package/esm/highlevel/client.js +12 -19
  260. package/esm/highlevel/client.js.map +1 -1
  261. package/esm/highlevel/client.types.d.ts +14 -0
  262. package/esm/highlevel/client.types.js.map +1 -1
  263. package/esm/highlevel/index.d.ts +0 -2
  264. package/esm/highlevel/index.js +0 -2
  265. package/esm/highlevel/index.js.map +1 -1
  266. package/esm/highlevel/methods/_imports.js.map +1 -1
  267. package/esm/highlevel/methods/_init.js +4 -29
  268. package/esm/highlevel/methods/_init.js.map +1 -1
  269. package/esm/highlevel/methods/bots/get-callback-answer.js +2 -2
  270. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  271. package/esm/highlevel/methods/dialogs/create-folder.js +1 -1
  272. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  273. package/esm/highlevel/methods/dialogs/edit-folder.js +1 -1
  274. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  275. package/esm/highlevel/methods/dialogs/find-folder.js +1 -1
  276. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  277. package/esm/highlevel/methods/dialogs/get-folders.d.ts +1 -1
  278. package/esm/highlevel/methods/dialogs/get-folders.js +1 -1
  279. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  280. package/esm/highlevel/methods/files/download-file.d.ts +1 -10
  281. package/esm/highlevel/methods/files/download-file.js +2 -30
  282. package/esm/highlevel/methods/files/download-file.js.map +1 -1
  283. package/esm/highlevel/methods/files/download-iterable.js +2 -1
  284. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  285. package/esm/highlevel/methods/files/download-node-stream.js +3 -0
  286. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -0
  287. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  288. package/esm/highlevel/methods/files/normalize-input-media.js +2 -1
  289. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  290. package/esm/highlevel/methods/files/upload-file.d.ts +0 -3
  291. package/esm/highlevel/methods/files/upload-file.js +24 -11
  292. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  293. package/esm/highlevel/methods/messages/find-in-update.js +23 -8
  294. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  295. package/esm/highlevel/methods/messages/send-media-group.d.ts +1 -1
  296. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  297. package/esm/highlevel/methods/messages/send-media.d.ts +2 -2
  298. package/esm/highlevel/methods/messages/send-media.js +4 -3
  299. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  300. package/esm/highlevel/methods/messages/send-text.d.ts +1 -1
  301. package/esm/highlevel/methods/messages/send-text.js +4 -3
  302. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  303. package/esm/highlevel/methods/misc/with-params.d.ts +10 -0
  304. package/esm/highlevel/methods/misc/with-params.js +28 -0
  305. package/esm/highlevel/methods/misc/with-params.js.map +1 -0
  306. package/esm/highlevel/methods.d.ts +13 -1
  307. package/esm/highlevel/methods.js +0 -1
  308. package/esm/highlevel/methods.js.map +1 -1
  309. package/esm/highlevel/types/auth/sent-code.js +4 -3
  310. package/esm/highlevel/types/bots/command-scope/index.d.ts +10 -0
  311. package/esm/highlevel/types/bots/command-scope/index.js +11 -0
  312. package/esm/highlevel/types/bots/command-scope/index.js.map +1 -0
  313. package/esm/highlevel/types/bots/command-scope/inner.d.ts +54 -0
  314. package/esm/highlevel/types/bots/command-scope/inner.js +69 -0
  315. package/esm/highlevel/types/bots/command-scope/inner.js.map +1 -0
  316. package/esm/highlevel/types/bots/game-high-score.js +5 -4
  317. package/esm/highlevel/types/bots/index.d.ts +4 -4
  318. package/esm/highlevel/types/bots/index.js +4 -4
  319. package/esm/highlevel/types/bots/index.js.map +1 -1
  320. package/esm/highlevel/types/bots/inline-message/factories.d.ts +43 -0
  321. package/esm/highlevel/types/bots/inline-message/factories.js +163 -0
  322. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -0
  323. package/esm/highlevel/types/bots/inline-message/index.d.ts +3 -0
  324. package/esm/highlevel/types/bots/inline-message/index.js +4 -0
  325. package/esm/highlevel/types/bots/inline-message/index.js.map +1 -0
  326. package/{cjs/highlevel/types/bots/input/input-inline-message.d.ts → esm/highlevel/types/bots/inline-message/types.d.ts} +2 -45
  327. package/esm/highlevel/types/bots/inline-message/types.js +2 -0
  328. package/esm/highlevel/types/bots/inline-message/types.js.map +1 -0
  329. package/esm/highlevel/types/bots/inline-result/factories.d.ts +94 -0
  330. package/esm/highlevel/types/bots/inline-result/factories.js +470 -0
  331. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -0
  332. package/esm/highlevel/types/bots/inline-result/index.d.ts +3 -0
  333. package/esm/highlevel/types/bots/inline-result/index.js +4 -0
  334. package/esm/highlevel/types/bots/inline-result/index.js.map +1 -0
  335. package/{cjs/highlevel/types/bots/input/input-inline-result.d.ts → esm/highlevel/types/bots/inline-result/types.d.ts} +1 -95
  336. package/esm/highlevel/types/bots/inline-result/types.js +2 -0
  337. package/esm/highlevel/types/bots/inline-result/types.js.map +1 -0
  338. package/esm/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
  339. package/esm/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
  340. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -0
  341. package/esm/highlevel/types/bots/keyboards/factories.d.ts +195 -0
  342. package/esm/highlevel/types/bots/keyboards/factories.js +341 -0
  343. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -0
  344. package/esm/highlevel/types/bots/keyboards/index.d.ts +14 -0
  345. package/esm/highlevel/types/bots/keyboards/index.js +15 -0
  346. package/esm/highlevel/types/bots/keyboards/index.js.map +1 -0
  347. package/esm/highlevel/types/bots/keyboards/types.d.ts +34 -0
  348. package/esm/highlevel/types/bots/keyboards/types.js +2 -0
  349. package/esm/highlevel/types/bots/keyboards/types.js.map +1 -0
  350. package/esm/highlevel/types/files/file-location.js +4 -3
  351. package/esm/highlevel/types/files/utils.d.ts +9 -6
  352. package/esm/highlevel/types/files/utils.js.map +1 -1
  353. package/esm/highlevel/types/files/web-document.js +4 -3
  354. package/esm/highlevel/types/media/audio.js +5 -4
  355. package/esm/highlevel/types/media/contact.js +4 -3
  356. package/esm/highlevel/types/media/dice.js +4 -3
  357. package/esm/highlevel/types/media/document.js +8 -6
  358. package/esm/highlevel/types/media/document.js.map +1 -1
  359. package/esm/highlevel/types/media/game.js +5 -4
  360. package/esm/highlevel/types/media/index.d.ts +1 -1
  361. package/esm/highlevel/types/media/index.js +1 -1
  362. package/esm/highlevel/types/media/index.js.map +1 -1
  363. package/esm/highlevel/types/media/input-media/factories.d.ts +141 -0
  364. package/esm/highlevel/types/media/input-media/factories.js +228 -0
  365. package/esm/highlevel/types/media/input-media/factories.js.map +1 -0
  366. package/esm/highlevel/types/media/input-media/index.d.ts +3 -0
  367. package/esm/highlevel/types/media/input-media/index.js +4 -0
  368. package/esm/highlevel/types/media/input-media/index.js.map +1 -0
  369. package/esm/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
  370. package/esm/highlevel/types/media/input-media/types.js +2 -0
  371. package/esm/highlevel/types/media/input-media/types.js.map +1 -0
  372. package/esm/highlevel/types/media/invoice.js +9 -7
  373. package/esm/highlevel/types/media/location.js +7 -5
  374. package/esm/highlevel/types/media/photo.js +5 -4
  375. package/esm/highlevel/types/media/poll.js +5 -4
  376. package/esm/highlevel/types/media/sticker.js +5 -4
  377. package/esm/highlevel/types/media/story.js +4 -3
  378. package/esm/highlevel/types/media/thumbnail.js +10 -8
  379. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  380. package/esm/highlevel/types/media/venue.js +5 -4
  381. package/esm/highlevel/types/media/video.js +5 -4
  382. package/esm/highlevel/types/media/voice.js +5 -4
  383. package/esm/highlevel/types/media/web-page.js +5 -4
  384. package/esm/highlevel/types/messages/dialog.js +5 -4
  385. package/esm/highlevel/types/messages/draft-message.js +5 -4
  386. package/esm/highlevel/types/messages/message-entity.js +5 -4
  387. package/esm/highlevel/types/messages/message-forward.js +5 -4
  388. package/esm/highlevel/types/messages/message-reactions.js +5 -4
  389. package/esm/highlevel/types/messages/message-replies.js +5 -4
  390. package/esm/highlevel/types/messages/message.d.ts +1 -1
  391. package/esm/highlevel/types/messages/message.js +6 -5
  392. package/esm/highlevel/types/messages/message.js.map +1 -1
  393. package/esm/highlevel/types/messages/replied-message.js +5 -4
  394. package/esm/highlevel/types/misc/index.d.ts +1 -1
  395. package/esm/highlevel/types/misc/index.js +1 -1
  396. package/esm/highlevel/types/misc/index.js.map +1 -1
  397. package/esm/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
  398. package/esm/highlevel/types/misc/input-privacy-rule/allow.js +31 -0
  399. package/esm/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
  400. package/esm/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
  401. package/esm/highlevel/types/misc/input-privacy-rule/bundle.js +4 -0
  402. package/esm/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
  403. package/esm/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
  404. package/esm/highlevel/types/misc/input-privacy-rule/disallow.js +27 -0
  405. package/esm/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
  406. package/esm/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
  407. package/esm/highlevel/types/misc/input-privacy-rule/index.js +4 -0
  408. package/esm/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
  409. package/esm/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
  410. package/esm/highlevel/types/misc/input-privacy-rule/types.js +2 -0
  411. package/esm/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
  412. package/esm/highlevel/types/misc/sticker-set.js +5 -4
  413. package/esm/highlevel/types/misc/takeout-session.js +4 -3
  414. package/esm/highlevel/types/peers/chat-colors.js +4 -3
  415. package/esm/highlevel/types/peers/chat-event/index.js +5 -4
  416. package/esm/highlevel/types/peers/chat-invite-link-member.js +5 -4
  417. package/esm/highlevel/types/peers/chat-invite-link.js +5 -4
  418. package/esm/highlevel/types/peers/chat-location.js +5 -4
  419. package/esm/highlevel/types/peers/chat-member.js +5 -4
  420. package/esm/highlevel/types/peers/chat-permissions.js +4 -3
  421. package/esm/highlevel/types/peers/chat-photo.js +12 -9
  422. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  423. package/esm/highlevel/types/peers/chat-preview.js +5 -4
  424. package/esm/highlevel/types/peers/chat.js +5 -4
  425. package/esm/highlevel/types/peers/forum-topic.js +5 -4
  426. package/esm/highlevel/types/peers/user.js +5 -4
  427. package/esm/highlevel/types/premium/boost-slot.js +5 -4
  428. package/esm/highlevel/types/premium/boost-stats.js +4 -3
  429. package/esm/highlevel/types/premium/boost.js +5 -4
  430. package/esm/highlevel/types/reactions/emoji-status.js +4 -3
  431. package/esm/highlevel/types/reactions/peer-reaction.js +5 -4
  432. package/esm/highlevel/types/reactions/reaction-count.js +4 -3
  433. package/esm/highlevel/types/stories/all-stories.js +5 -4
  434. package/esm/highlevel/types/stories/interactive/channel-post.js +5 -4
  435. package/esm/highlevel/types/stories/interactive/location.js +5 -4
  436. package/esm/highlevel/types/stories/interactive/reaction.js +4 -3
  437. package/esm/highlevel/types/stories/interactive/venue.js +5 -4
  438. package/esm/highlevel/types/stories/peer-stories.js +5 -4
  439. package/esm/highlevel/types/stories/stealth-mode.js +4 -3
  440. package/esm/highlevel/types/stories/story-interactions.js +5 -4
  441. package/esm/highlevel/types/stories/story-viewer.js +9 -7
  442. package/esm/highlevel/types/stories/story.js +5 -4
  443. package/esm/highlevel/types/updates/bot-chat-join-request.js +5 -4
  444. package/esm/highlevel/types/updates/bot-reaction.js +9 -7
  445. package/esm/highlevel/types/updates/bot-stopped.js +5 -4
  446. package/esm/highlevel/types/updates/callback-query.js +11 -9
  447. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  448. package/esm/highlevel/types/updates/chat-join-request.js +5 -4
  449. package/esm/highlevel/types/updates/chat-member-update.js +5 -4
  450. package/esm/highlevel/types/updates/chosen-inline-result.js +5 -4
  451. package/esm/highlevel/types/updates/delete-message-update.js +4 -3
  452. package/esm/highlevel/types/updates/delete-story-update.js +5 -4
  453. package/esm/highlevel/types/updates/history-read-update.js +4 -3
  454. package/esm/highlevel/types/updates/inline-query.js +5 -4
  455. package/esm/highlevel/types/updates/poll-update.js +5 -4
  456. package/esm/highlevel/types/updates/poll-vote.js +5 -4
  457. package/esm/highlevel/types/updates/pre-checkout-query.js +5 -4
  458. package/esm/highlevel/types/updates/story-update.js +5 -4
  459. package/esm/highlevel/types/updates/user-status-update.js +5 -4
  460. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  461. package/esm/highlevel/types/updates/user-typing-update.js +4 -3
  462. package/esm/highlevel/updates/manager.d.ts +5 -3
  463. package/esm/highlevel/updates/manager.js +81 -67
  464. package/esm/highlevel/updates/manager.js.map +1 -1
  465. package/esm/highlevel/utils/convert-file-id.js +7 -6
  466. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  467. package/esm/highlevel/utils/file-utils.js +8 -4
  468. package/esm/highlevel/utils/file-utils.js.map +1 -1
  469. package/esm/highlevel/utils/inline-utils.js +4 -3
  470. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  471. package/esm/highlevel/utils/inspectable.d.ts +1 -1
  472. package/esm/highlevel/utils/inspectable.js +3 -2
  473. package/esm/highlevel/utils/inspectable.js.map +1 -1
  474. package/esm/highlevel/utils/memoize.d.ts +1 -1
  475. package/esm/highlevel/utils/memoize.js +1 -0
  476. package/esm/highlevel/utils/memoize.js.map +1 -1
  477. package/esm/highlevel/utils/stream-utils.d.ts +0 -2
  478. package/esm/highlevel/utils/stream-utils.js +0 -26
  479. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  480. package/esm/highlevel/utils/string-session.js +4 -3
  481. package/esm/highlevel/utils/string-session.js.map +1 -1
  482. package/esm/highlevel/worker/index.d.ts +3 -0
  483. package/esm/highlevel/worker/index.js +4 -0
  484. package/esm/highlevel/worker/index.js.map +1 -0
  485. package/esm/highlevel/worker/port.d.ts +6 -3
  486. package/esm/highlevel/worker/port.js +8 -2
  487. package/esm/highlevel/worker/port.js.map +1 -1
  488. package/esm/highlevel/worker/protocol.d.ts +5 -1
  489. package/esm/highlevel/worker/protocol.js.map +1 -1
  490. package/esm/highlevel/worker/worker.d.ts +11 -4
  491. package/esm/highlevel/worker/worker.js +51 -47
  492. package/esm/highlevel/worker/worker.js.map +1 -1
  493. package/esm/network/client.d.ts +4 -4
  494. package/esm/network/client.js +4 -2
  495. package/esm/network/client.js.map +1 -1
  496. package/esm/network/multi-session-connection.d.ts +1 -0
  497. package/esm/network/multi-session-connection.js +6 -0
  498. package/esm/network/multi-session-connection.js.map +1 -1
  499. package/esm/network/network-manager.d.ts +5 -1
  500. package/esm/network/network-manager.js +24 -15
  501. package/esm/network/network-manager.js.map +1 -1
  502. package/esm/network/persistent-connection.d.ts +3 -0
  503. package/esm/network/persistent-connection.js +23 -1
  504. package/esm/network/persistent-connection.js.map +1 -1
  505. package/esm/network/session-connection.d.ts +2 -0
  506. package/esm/network/session-connection.js +18 -4
  507. package/esm/network/session-connection.js.map +1 -1
  508. package/esm/network/transports/index.d.ts +0 -3
  509. package/esm/network/transports/index.js +0 -3
  510. package/esm/network/transports/index.js.map +1 -1
  511. package/esm/platform.d.ts +18 -0
  512. package/esm/platform.js +31 -0
  513. package/esm/platform.js.map +1 -0
  514. package/esm/storage/index.d.ts +2 -2
  515. package/esm/storage/index.js +2 -2
  516. package/esm/storage/index.js.map +1 -1
  517. package/{cjs/storage/providers → esm/storage}/memory/driver.d.ts +1 -1
  518. package/esm/storage/memory/driver.js.map +1 -0
  519. package/{cjs/storage/providers → esm/storage}/memory/index.d.ts +2 -2
  520. package/esm/storage/memory/index.js.map +1 -0
  521. package/esm/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
  522. package/esm/storage/memory/repository/auth-keys.js.map +1 -0
  523. package/{cjs/storage/providers → esm/storage}/memory/repository/kv.d.ts +1 -1
  524. package/esm/storage/memory/repository/kv.js.map +1 -0
  525. package/{cjs/storage/providers → esm/storage}/memory/repository/peers.d.ts +1 -1
  526. package/esm/storage/memory/repository/peers.js.map +1 -0
  527. package/{cjs/storage/providers → esm/storage}/memory/repository/ref-messages.d.ts +1 -1
  528. package/esm/storage/memory/repository/ref-messages.js.map +1 -0
  529. package/esm/storage/sqlite/driver.d.ts +24 -0
  530. package/esm/storage/sqlite/driver.js +125 -0
  531. package/esm/storage/sqlite/driver.js.map +1 -0
  532. package/esm/storage/sqlite/index.d.ts +17 -0
  533. package/esm/storage/sqlite/index.js +17 -0
  534. package/esm/storage/sqlite/index.js.map +1 -0
  535. package/esm/storage/sqlite/repository/auth-keys.d.ts +20 -0
  536. package/esm/storage/sqlite/repository/auth-keys.js +64 -0
  537. package/esm/storage/sqlite/repository/auth-keys.js.map +1 -0
  538. package/esm/storage/sqlite/repository/kv.d.ts +14 -0
  539. package/esm/storage/sqlite/repository/kv.js +92 -0
  540. package/esm/storage/sqlite/repository/kv.js.map +1 -0
  541. package/esm/storage/sqlite/repository/peers.d.ts +16 -0
  542. package/esm/storage/sqlite/repository/peers.js +73 -0
  543. package/esm/storage/sqlite/repository/peers.js.map +1 -0
  544. package/esm/storage/sqlite/repository/ref-messages.d.ts +16 -0
  545. package/esm/storage/sqlite/repository/ref-messages.js +45 -0
  546. package/esm/storage/sqlite/repository/ref-messages.js.map +1 -0
  547. package/esm/storage/sqlite/types.d.ts +18 -0
  548. package/esm/storage/sqlite/types.js +2 -0
  549. package/esm/storage/sqlite/types.js.map +1 -0
  550. package/esm/storage/storage.js +3 -2
  551. package/esm/storage/storage.js.map +1 -1
  552. package/esm/utils/binary/asn1-parser.js +3 -3
  553. package/esm/utils/binary/asn1-parser.js.map +1 -1
  554. package/esm/utils/crypto/abstract.d.ts +0 -1
  555. package/esm/utils/crypto/abstract.js.map +1 -1
  556. package/esm/utils/crypto/index.d.ts +0 -2
  557. package/esm/utils/crypto/index.js +0 -2
  558. package/esm/utils/crypto/index.js.map +1 -1
  559. package/esm/utils/crypto/keys.js +6 -4
  560. package/esm/utils/crypto/keys.js.map +1 -1
  561. package/esm/utils/crypto/password.js +3 -3
  562. package/esm/utils/crypto/password.js.map +1 -1
  563. package/esm/utils/dcs.d.ts +4 -0
  564. package/esm/utils/dcs.js +0 -4
  565. package/esm/utils/dcs.js.map +1 -1
  566. package/esm/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
  567. package/esm/utils/error-reporting.js.map +1 -0
  568. package/esm/utils/index.d.ts +4 -1
  569. package/esm/utils/index.js +6 -1
  570. package/esm/utils/index.js.map +1 -1
  571. package/esm/utils/links/common.js +1 -1
  572. package/esm/utils/links/common.js.map +1 -1
  573. package/esm/utils/logger.d.ts +1 -0
  574. package/esm/utils/logger.js +9 -22
  575. package/esm/utils/logger.js.map +1 -1
  576. package/package.json +25 -53
  577. package/cjs/highlevel/base.test.js +0 -14
  578. package/cjs/highlevel/base.test.js.map +0 -1
  579. package/cjs/highlevel/methods/files/_platform.js +0 -33
  580. package/cjs/highlevel/methods/files/_platform.js.map +0 -1
  581. package/cjs/highlevel/methods/files/_platform.web.d.ts +0 -1
  582. package/cjs/highlevel/methods/files/_platform.web.js +0 -26
  583. package/cjs/highlevel/methods/files/_platform.web.js.map +0 -1
  584. package/cjs/highlevel/methods/files/download-file.web.d.ts +0 -1
  585. package/cjs/highlevel/methods/files/download-file.web.js +0 -9
  586. package/cjs/highlevel/methods/files/download-file.web.js.map +0 -1
  587. package/cjs/highlevel/methods/messages/send-text.test.d.ts +0 -1
  588. package/cjs/highlevel/methods/messages/send-text.test.js +0 -140
  589. package/cjs/highlevel/methods/messages/send-text.test.js.map +0 -1
  590. package/cjs/highlevel/methods/users/get-users.test.d.ts +0 -1
  591. package/cjs/highlevel/methods/users/get-users.test.js +0 -33
  592. package/cjs/highlevel/methods/users/get-users.test.js.map +0 -1
  593. package/cjs/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
  594. package/cjs/highlevel/methods/users/resolve-peer.test.js +0 -307
  595. package/cjs/highlevel/methods/users/resolve-peer.test.js.map +0 -1
  596. package/cjs/highlevel/types/bots/command-scope.d.ts +0 -63
  597. package/cjs/highlevel/types/bots/command-scope.js +0 -87
  598. package/cjs/highlevel/types/bots/command-scope.js.map +0 -1
  599. package/cjs/highlevel/types/bots/input/index.d.ts +0 -2
  600. package/cjs/highlevel/types/bots/input/index.js.map +0 -1
  601. package/cjs/highlevel/types/bots/input/input-inline-message.js +0 -179
  602. package/cjs/highlevel/types/bots/input/input-inline-message.js.map +0 -1
  603. package/cjs/highlevel/types/bots/input/input-inline-result.js +0 -490
  604. package/cjs/highlevel/types/bots/input/input-inline-result.js.map +0 -1
  605. package/cjs/highlevel/types/bots/keyboard-builder.js.map +0 -1
  606. package/cjs/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
  607. package/cjs/highlevel/types/bots/keyboard-builder.test.js +0 -162
  608. package/cjs/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
  609. package/cjs/highlevel/types/bots/keyboards.d.ts +0 -239
  610. package/cjs/highlevel/types/bots/keyboards.js +0 -380
  611. package/cjs/highlevel/types/bots/keyboards.js.map +0 -1
  612. package/cjs/highlevel/types/bots/keyboards.test.d.ts +0 -1
  613. package/cjs/highlevel/types/bots/keyboards.test.js +0 -146
  614. package/cjs/highlevel/types/bots/keyboards.test.js.map +0 -1
  615. package/cjs/highlevel/types/media/input-media.js +0 -254
  616. package/cjs/highlevel/types/media/input-media.js.map +0 -1
  617. package/cjs/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
  618. package/cjs/highlevel/types/misc/input-privacy-rule.js +0 -85
  619. package/cjs/highlevel/types/misc/input-privacy-rule.js.map +0 -1
  620. package/cjs/highlevel/types/peers/peers-index.test.d.ts +0 -1
  621. package/cjs/highlevel/types/peers/peers-index.test.js +0 -71
  622. package/cjs/highlevel/types/peers/peers-index.test.js.map +0 -1
  623. package/cjs/highlevel/types/peers/user.test.d.ts +0 -1
  624. package/cjs/highlevel/types/peers/user.test.js +0 -176
  625. package/cjs/highlevel/types/peers/user.test.js.map +0 -1
  626. package/cjs/highlevel/utils/file-type.test.d.ts +0 -1
  627. package/cjs/highlevel/utils/file-type.test.js +0 -64
  628. package/cjs/highlevel/utils/file-type.test.js.map +0 -1
  629. package/cjs/highlevel/utils/file-utils.test.d.ts +0 -1
  630. package/cjs/highlevel/utils/file-utils.test.js +0 -126
  631. package/cjs/highlevel/utils/file-utils.test.js.map +0 -1
  632. package/cjs/highlevel/utils/inline-utils.test.d.ts +0 -1
  633. package/cjs/highlevel/utils/inline-utils.test.js +0 -47
  634. package/cjs/highlevel/utils/inline-utils.test.js.map +0 -1
  635. package/cjs/highlevel/utils/inspectable.test.d.ts +0 -1
  636. package/cjs/highlevel/utils/inspectable.test.js +0 -97
  637. package/cjs/highlevel/utils/inspectable.test.js.map +0 -1
  638. package/cjs/highlevel/utils/memoize.test.d.ts +0 -1
  639. package/cjs/highlevel/utils/memoize.test.js +0 -60
  640. package/cjs/highlevel/utils/memoize.test.js.map +0 -1
  641. package/cjs/highlevel/utils/peer-utils.test.d.ts +0 -1
  642. package/cjs/highlevel/utils/peer-utils.test.js +0 -109
  643. package/cjs/highlevel/utils/peer-utils.test.js.map +0 -1
  644. package/cjs/highlevel/utils/platform/storage.d.ts +0 -1
  645. package/cjs/highlevel/utils/platform/storage.js +0 -10
  646. package/cjs/highlevel/utils/platform/storage.js.map +0 -1
  647. package/cjs/highlevel/utils/platform/storage.web.d.ts +0 -1
  648. package/cjs/highlevel/utils/platform/storage.web.js +0 -14
  649. package/cjs/highlevel/utils/platform/storage.web.js.map +0 -1
  650. package/cjs/highlevel/utils/query-batcher.test.d.ts +0 -1
  651. package/cjs/highlevel/utils/query-batcher.test.js +0 -502
  652. package/cjs/highlevel/utils/query-batcher.test.js.map +0 -1
  653. package/cjs/highlevel/utils/stream-utils.test.d.ts +0 -1
  654. package/cjs/highlevel/utils/stream-utils.test.js +0 -98
  655. package/cjs/highlevel/utils/stream-utils.test.js.map +0 -1
  656. package/cjs/highlevel/utils/string-session.test.d.ts +0 -1
  657. package/cjs/highlevel/utils/string-session.test.js +0 -198
  658. package/cjs/highlevel/utils/string-session.test.js.map +0 -1
  659. package/cjs/highlevel/utils/voice-utils.test.d.ts +0 -1
  660. package/cjs/highlevel/utils/voice-utils.test.js +0 -28
  661. package/cjs/highlevel/utils/voice-utils.test.js.map +0 -1
  662. package/cjs/highlevel/worker/platform/connect.d.ts +0 -2
  663. package/cjs/highlevel/worker/platform/connect.js +0 -19
  664. package/cjs/highlevel/worker/platform/connect.js.map +0 -1
  665. package/cjs/highlevel/worker/platform/connect.web.d.ts +0 -2
  666. package/cjs/highlevel/worker/platform/connect.web.js +0 -51
  667. package/cjs/highlevel/worker/platform/connect.web.js.map +0 -1
  668. package/cjs/highlevel/worker/platform/register.d.ts +0 -2
  669. package/cjs/highlevel/worker/platform/register.js +0 -20
  670. package/cjs/highlevel/worker/platform/register.js.map +0 -1
  671. package/cjs/highlevel/worker/platform/register.web.d.ts +0 -2
  672. package/cjs/highlevel/worker/platform/register.web.js +0 -64
  673. package/cjs/highlevel/worker/platform/register.web.js.map +0 -1
  674. package/cjs/network/auth-key.test.d.ts +0 -1
  675. package/cjs/network/auth-key.test.js +0 -111
  676. package/cjs/network/auth-key.test.js.map +0 -1
  677. package/cjs/network/config-manager.test.d.ts +0 -1
  678. package/cjs/network/config-manager.test.js +0 -174
  679. package/cjs/network/config-manager.test.js.map +0 -1
  680. package/cjs/network/persistent-connection.test.d.ts +0 -1
  681. package/cjs/network/persistent-connection.test.js +0 -157
  682. package/cjs/network/persistent-connection.test.js.map +0 -1
  683. package/cjs/network/transports/intermediate.test.d.ts +0 -1
  684. package/cjs/network/transports/intermediate.test.js +0 -84
  685. package/cjs/network/transports/intermediate.test.js.map +0 -1
  686. package/cjs/network/transports/obfuscated.test.d.ts +0 -1
  687. package/cjs/network/transports/obfuscated.test.js +0 -131
  688. package/cjs/network/transports/obfuscated.test.js.map +0 -1
  689. package/cjs/network/transports/tcp.d.ts +0 -32
  690. package/cjs/network/transports/tcp.js +0 -130
  691. package/cjs/network/transports/tcp.js.map +0 -1
  692. package/cjs/network/transports/tcp.test.d.ts +0 -1
  693. package/cjs/network/transports/tcp.test.js +0 -103
  694. package/cjs/network/transports/tcp.test.js.map +0 -1
  695. package/cjs/network/transports/websocket.d.ts +0 -46
  696. package/cjs/network/transports/websocket.js +0 -124
  697. package/cjs/network/transports/websocket.js.map +0 -1
  698. package/cjs/network/transports/websocket.test.d.ts +0 -1
  699. package/cjs/network/transports/websocket.test.js +0 -91
  700. package/cjs/network/transports/websocket.test.js.map +0 -1
  701. package/cjs/storage/providers/idb/driver.d.ts +0 -18
  702. package/cjs/storage/providers/idb/driver.js +0 -138
  703. package/cjs/storage/providers/idb/driver.js.map +0 -1
  704. package/cjs/storage/providers/idb/idb.test.d.ts +0 -1
  705. package/cjs/storage/providers/idb/idb.test.js +0 -29
  706. package/cjs/storage/providers/idb/idb.test.js.map +0 -1
  707. package/cjs/storage/providers/idb/index.d.ts +0 -22
  708. package/cjs/storage/providers/idb/index.js +0 -28
  709. package/cjs/storage/providers/idb/index.js.map +0 -1
  710. package/cjs/storage/providers/idb/repository/auth-keys.d.ts +0 -14
  711. package/cjs/storage/providers/idb/repository/auth-keys.js +0 -70
  712. package/cjs/storage/providers/idb/repository/auth-keys.js.map +0 -1
  713. package/cjs/storage/providers/idb/repository/kv.d.ts +0 -11
  714. package/cjs/storage/providers/idb/repository/kv.js +0 -34
  715. package/cjs/storage/providers/idb/repository/kv.js.map +0 -1
  716. package/cjs/storage/providers/idb/repository/peers.d.ts +0 -12
  717. package/cjs/storage/providers/idb/repository/peers.js +0 -38
  718. package/cjs/storage/providers/idb/repository/peers.js.map +0 -1
  719. package/cjs/storage/providers/idb/repository/ref-messages.d.ts +0 -12
  720. package/cjs/storage/providers/idb/repository/ref-messages.js +0 -57
  721. package/cjs/storage/providers/idb/repository/ref-messages.js.map +0 -1
  722. package/cjs/storage/providers/idb/utils.d.ts +0 -3
  723. package/cjs/storage/providers/idb/utils.js +0 -27
  724. package/cjs/storage/providers/idb/utils.js.map +0 -1
  725. package/cjs/storage/providers/memory/driver.js.map +0 -1
  726. package/cjs/storage/providers/memory/index.js.map +0 -1
  727. package/cjs/storage/providers/memory/memory.test.d.ts +0 -1
  728. package/cjs/storage/providers/memory/memory.test.js +0 -13
  729. package/cjs/storage/providers/memory/memory.test.js.map +0 -1
  730. package/cjs/storage/providers/memory/repository/auth-keys.js.map +0 -1
  731. package/cjs/storage/providers/memory/repository/kv.js.map +0 -1
  732. package/cjs/storage/providers/memory/repository/peers.js.map +0 -1
  733. package/cjs/storage/providers/memory/repository/ref-messages.js.map +0 -1
  734. package/cjs/storage/service/auth-keys.test.d.ts +0 -1
  735. package/cjs/storage/service/auth-keys.test.js +0 -22
  736. package/cjs/storage/service/auth-keys.test.js.map +0 -1
  737. package/cjs/storage/service/updates.test.d.ts +0 -1
  738. package/cjs/storage/service/updates.test.js +0 -60
  739. package/cjs/storage/service/updates.test.js.map +0 -1
  740. package/cjs/storage/service/utils.test-utils.d.ts +0 -2
  741. package/cjs/storage/service/utils.test-utils.js +0 -19
  742. package/cjs/storage/service/utils.test-utils.js.map +0 -1
  743. package/cjs/utils/async-lock.test.d.ts +0 -1
  744. package/cjs/utils/async-lock.test.js +0 -25
  745. package/cjs/utils/async-lock.test.js.map +0 -1
  746. package/cjs/utils/bigint-utils.test.d.ts +0 -1
  747. package/cjs/utils/bigint-utils.test.js +0 -150
  748. package/cjs/utils/bigint-utils.test.js.map +0 -1
  749. package/cjs/utils/buffer-utils.test.d.ts +0 -1
  750. package/cjs/utils/buffer-utils.test.js +0 -69
  751. package/cjs/utils/buffer-utils.test.js.map +0 -1
  752. package/cjs/utils/condition-variable.test.d.ts +0 -1
  753. package/cjs/utils/condition-variable.test.js +0 -27
  754. package/cjs/utils/condition-variable.test.js.map +0 -1
  755. package/cjs/utils/controllable-promise.test.d.ts +0 -1
  756. package/cjs/utils/controllable-promise.test.js +0 -17
  757. package/cjs/utils/controllable-promise.test.js.map +0 -1
  758. package/cjs/utils/crypto/factorization.test.d.ts +0 -1
  759. package/cjs/utils/crypto/factorization.test.js +0 -19
  760. package/cjs/utils/crypto/factorization.test.js.map +0 -1
  761. package/cjs/utils/crypto/keys.test.d.ts +0 -1
  762. package/cjs/utils/crypto/keys.test.js +0 -40
  763. package/cjs/utils/crypto/keys.test.js.map +0 -1
  764. package/cjs/utils/crypto/miller-rabin.test.d.ts +0 -1
  765. package/cjs/utils/crypto/miller-rabin.test.js +0 -60
  766. package/cjs/utils/crypto/miller-rabin.test.js.map +0 -1
  767. package/cjs/utils/crypto/mtproto.test.d.ts +0 -1
  768. package/cjs/utils/crypto/mtproto.test.js +0 -50
  769. package/cjs/utils/crypto/mtproto.test.js.map +0 -1
  770. package/cjs/utils/crypto/node.d.ts +0 -21
  771. package/cjs/utils/crypto/node.js +0 -74
  772. package/cjs/utils/crypto/node.js.map +0 -1
  773. package/cjs/utils/crypto/node.test.d.ts +0 -1
  774. package/cjs/utils/crypto/node.test.js +0 -14
  775. package/cjs/utils/crypto/node.test.js.map +0 -1
  776. package/cjs/utils/crypto/password.test.d.ts +0 -1
  777. package/cjs/utils/crypto/password.test.js +0 -95
  778. package/cjs/utils/crypto/password.test.js.map +0 -1
  779. package/cjs/utils/crypto/utils.test.d.ts +0 -1
  780. package/cjs/utils/crypto/utils.test.js +0 -49
  781. package/cjs/utils/crypto/utils.test.js.map +0 -1
  782. package/cjs/utils/crypto/wasm.d.ts +0 -22
  783. package/cjs/utils/crypto/wasm.js +0 -41
  784. package/cjs/utils/crypto/wasm.js.map +0 -1
  785. package/cjs/utils/crypto/web.d.ts +0 -11
  786. package/cjs/utils/crypto/web.js +0 -40
  787. package/cjs/utils/crypto/web.js.map +0 -1
  788. package/cjs/utils/crypto/web.test.d.ts +0 -1
  789. package/cjs/utils/crypto/web.test.js +0 -17
  790. package/cjs/utils/crypto/web.test.js.map +0 -1
  791. package/cjs/utils/deque.test.d.ts +0 -1
  792. package/cjs/utils/deque.test.js +0 -128
  793. package/cjs/utils/deque.test.js.map +0 -1
  794. package/cjs/utils/function-utils.test.d.ts +0 -1
  795. package/cjs/utils/function-utils.test.js +0 -23
  796. package/cjs/utils/function-utils.test.js.map +0 -1
  797. package/cjs/utils/linked-list.test.d.ts +0 -1
  798. package/cjs/utils/linked-list.test.js +0 -36
  799. package/cjs/utils/linked-list.test.js.map +0 -1
  800. package/cjs/utils/links/bots.test.d.ts +0 -1
  801. package/cjs/utils/links/bots.test.js +0 -152
  802. package/cjs/utils/links/bots.test.js.map +0 -1
  803. package/cjs/utils/links/chat.test.d.ts +0 -1
  804. package/cjs/utils/links/chat.test.js +0 -84
  805. package/cjs/utils/links/chat.test.js.map +0 -1
  806. package/cjs/utils/links/misc.test.d.ts +0 -1
  807. package/cjs/utils/links/misc.test.js +0 -153
  808. package/cjs/utils/links/misc.test.js.map +0 -1
  809. package/cjs/utils/links/proxy.test.d.ts +0 -1
  810. package/cjs/utils/links/proxy.test.js +0 -74
  811. package/cjs/utils/links/proxy.test.js.map +0 -1
  812. package/cjs/utils/links/user.test.d.ts +0 -1
  813. package/cjs/utils/links/user.test.js +0 -63
  814. package/cjs/utils/links/user.test.js.map +0 -1
  815. package/cjs/utils/logger.test.d.ts +0 -1
  816. package/cjs/utils/logger.test.js +0 -139
  817. package/cjs/utils/logger.test.js.map +0 -1
  818. package/cjs/utils/long-utils.test.d.ts +0 -1
  819. package/cjs/utils/long-utils.test.js +0 -158
  820. package/cjs/utils/long-utils.test.js.map +0 -1
  821. package/cjs/utils/lru-map.test.d.ts +0 -1
  822. package/cjs/utils/lru-map.test.js +0 -96
  823. package/cjs/utils/lru-map.test.js.map +0 -1
  824. package/cjs/utils/lru-set.test.d.ts +0 -1
  825. package/cjs/utils/lru-set.test.js +0 -77
  826. package/cjs/utils/lru-set.test.js.map +0 -1
  827. package/cjs/utils/peer-utils.test.d.ts +0 -1
  828. package/cjs/utils/peer-utils.test.js +0 -110
  829. package/cjs/utils/peer-utils.test.js.map +0 -1
  830. package/cjs/utils/platform/crypto.d.ts +0 -1
  831. package/cjs/utils/platform/crypto.js +0 -8
  832. package/cjs/utils/platform/crypto.js.map +0 -1
  833. package/cjs/utils/platform/crypto.web.d.ts +0 -1
  834. package/cjs/utils/platform/crypto.web.js +0 -14
  835. package/cjs/utils/platform/crypto.web.js.map +0 -1
  836. package/cjs/utils/platform/error-reporting.js.map +0 -1
  837. package/cjs/utils/platform/exit-hook.d.ts +0 -1
  838. package/cjs/utils/platform/exit-hook.js +0 -45
  839. package/cjs/utils/platform/exit-hook.js.map +0 -1
  840. package/cjs/utils/platform/exit-hook.web.d.ts +0 -1
  841. package/cjs/utils/platform/exit-hook.web.js +0 -21
  842. package/cjs/utils/platform/exit-hook.web.js.map +0 -1
  843. package/cjs/utils/platform/logging.d.ts +0 -1
  844. package/cjs/utils/platform/logging.js +0 -34
  845. package/cjs/utils/platform/logging.js.map +0 -1
  846. package/cjs/utils/platform/logging.web.d.ts +0 -1
  847. package/cjs/utils/platform/logging.web.js +0 -35
  848. package/cjs/utils/platform/logging.web.js.map +0 -1
  849. package/cjs/utils/platform/transport.d.ts +0 -1
  850. package/cjs/utils/platform/transport.js +0 -8
  851. package/cjs/utils/platform/transport.js.map +0 -1
  852. package/cjs/utils/platform/transport.web.d.ts +0 -1
  853. package/cjs/utils/platform/transport.web.js +0 -15
  854. package/cjs/utils/platform/transport.web.js.map +0 -1
  855. package/cjs/utils/sorted-array.test.d.ts +0 -1
  856. package/cjs/utils/sorted-array.test.js +0 -66
  857. package/cjs/utils/sorted-array.test.js.map +0 -1
  858. package/cjs/utils/tl-json.test.d.ts +0 -1
  859. package/cjs/utils/tl-json.test.js +0 -83
  860. package/cjs/utils/tl-json.test.js.map +0 -1
  861. package/cjs/utils/type-assertions.test.d.ts +0 -1
  862. package/cjs/utils/type-assertions.test.js +0 -67
  863. package/cjs/utils/type-assertions.test.js.map +0 -1
  864. package/esm/highlevel/base.test.d.ts +0 -1
  865. package/esm/highlevel/base.test.js +0 -12
  866. package/esm/highlevel/base.test.js.map +0 -1
  867. package/esm/highlevel/methods/files/_platform.d.ts +0 -1
  868. package/esm/highlevel/methods/files/_platform.js +0 -26
  869. package/esm/highlevel/methods/files/_platform.js.map +0 -1
  870. package/esm/highlevel/methods/files/_platform.web.d.ts +0 -1
  871. package/esm/highlevel/methods/files/_platform.web.js +0 -19
  872. package/esm/highlevel/methods/files/_platform.web.js.map +0 -1
  873. package/esm/highlevel/methods/files/download-file.web.d.ts +0 -1
  874. package/esm/highlevel/methods/files/download-file.web.js +0 -5
  875. package/esm/highlevel/methods/files/download-file.web.js.map +0 -1
  876. package/esm/highlevel/methods/messages/send-text.test.d.ts +0 -1
  877. package/esm/highlevel/methods/messages/send-text.test.js +0 -135
  878. package/esm/highlevel/methods/messages/send-text.test.js.map +0 -1
  879. package/esm/highlevel/methods/users/get-users.test.d.ts +0 -1
  880. package/esm/highlevel/methods/users/get-users.test.js +0 -28
  881. package/esm/highlevel/methods/users/get-users.test.js.map +0 -1
  882. package/esm/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
  883. package/esm/highlevel/methods/users/resolve-peer.test.js +0 -302
  884. package/esm/highlevel/methods/users/resolve-peer.test.js.map +0 -1
  885. package/esm/highlevel/types/bots/command-scope.d.ts +0 -63
  886. package/esm/highlevel/types/bots/command-scope.js +0 -84
  887. package/esm/highlevel/types/bots/command-scope.js.map +0 -1
  888. package/esm/highlevel/types/bots/input/index.d.ts +0 -2
  889. package/esm/highlevel/types/bots/input/index.js +0 -3
  890. package/esm/highlevel/types/bots/input/index.js.map +0 -1
  891. package/esm/highlevel/types/bots/input/input-inline-message.js +0 -176
  892. package/esm/highlevel/types/bots/input/input-inline-message.js.map +0 -1
  893. package/esm/highlevel/types/bots/input/input-inline-result.js +0 -487
  894. package/esm/highlevel/types/bots/input/input-inline-result.js.map +0 -1
  895. package/esm/highlevel/types/bots/keyboard-builder.js.map +0 -1
  896. package/esm/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
  897. package/esm/highlevel/types/bots/keyboard-builder.test.js +0 -160
  898. package/esm/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
  899. package/esm/highlevel/types/bots/keyboards.d.ts +0 -239
  900. package/esm/highlevel/types/bots/keyboards.js +0 -377
  901. package/esm/highlevel/types/bots/keyboards.js.map +0 -1
  902. package/esm/highlevel/types/bots/keyboards.test.d.ts +0 -1
  903. package/esm/highlevel/types/bots/keyboards.test.js +0 -144
  904. package/esm/highlevel/types/bots/keyboards.test.js.map +0 -1
  905. package/esm/highlevel/types/media/input-media.js +0 -251
  906. package/esm/highlevel/types/media/input-media.js.map +0 -1
  907. package/esm/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
  908. package/esm/highlevel/types/misc/input-privacy-rule.js +0 -82
  909. package/esm/highlevel/types/misc/input-privacy-rule.js.map +0 -1
  910. package/esm/highlevel/types/peers/peers-index.test.d.ts +0 -1
  911. package/esm/highlevel/types/peers/peers-index.test.js +0 -69
  912. package/esm/highlevel/types/peers/peers-index.test.js.map +0 -1
  913. package/esm/highlevel/types/peers/user.test.d.ts +0 -1
  914. package/esm/highlevel/types/peers/user.test.js +0 -171
  915. package/esm/highlevel/types/peers/user.test.js.map +0 -1
  916. package/esm/highlevel/utils/file-type.test.d.ts +0 -1
  917. package/esm/highlevel/utils/file-type.test.js +0 -62
  918. package/esm/highlevel/utils/file-type.test.js.map +0 -1
  919. package/esm/highlevel/utils/file-utils.test.d.ts +0 -1
  920. package/esm/highlevel/utils/file-utils.test.js +0 -124
  921. package/esm/highlevel/utils/file-utils.test.js.map +0 -1
  922. package/esm/highlevel/utils/inline-utils.test.d.ts +0 -1
  923. package/esm/highlevel/utils/inline-utils.test.js +0 -42
  924. package/esm/highlevel/utils/inline-utils.test.js.map +0 -1
  925. package/esm/highlevel/utils/inspectable.test.d.ts +0 -1
  926. package/esm/highlevel/utils/inspectable.test.js +0 -95
  927. package/esm/highlevel/utils/inspectable.test.js.map +0 -1
  928. package/esm/highlevel/utils/memoize.test.d.ts +0 -1
  929. package/esm/highlevel/utils/memoize.test.js +0 -58
  930. package/esm/highlevel/utils/memoize.test.js.map +0 -1
  931. package/esm/highlevel/utils/peer-utils.test.d.ts +0 -1
  932. package/esm/highlevel/utils/peer-utils.test.js +0 -107
  933. package/esm/highlevel/utils/peer-utils.test.js.map +0 -1
  934. package/esm/highlevel/utils/platform/storage.d.ts +0 -1
  935. package/esm/highlevel/utils/platform/storage.js +0 -6
  936. package/esm/highlevel/utils/platform/storage.js.map +0 -1
  937. package/esm/highlevel/utils/platform/storage.web.d.ts +0 -1
  938. package/esm/highlevel/utils/platform/storage.web.js +0 -10
  939. package/esm/highlevel/utils/platform/storage.web.js.map +0 -1
  940. package/esm/highlevel/utils/query-batcher.test.d.ts +0 -1
  941. package/esm/highlevel/utils/query-batcher.test.js +0 -500
  942. package/esm/highlevel/utils/query-batcher.test.js.map +0 -1
  943. package/esm/highlevel/utils/stream-utils.test.d.ts +0 -1
  944. package/esm/highlevel/utils/stream-utils.test.js +0 -96
  945. package/esm/highlevel/utils/stream-utils.test.js.map +0 -1
  946. package/esm/highlevel/utils/string-session.test.d.ts +0 -1
  947. package/esm/highlevel/utils/string-session.test.js +0 -196
  948. package/esm/highlevel/utils/string-session.test.js.map +0 -1
  949. package/esm/highlevel/utils/voice-utils.test.d.ts +0 -1
  950. package/esm/highlevel/utils/voice-utils.test.js +0 -26
  951. package/esm/highlevel/utils/voice-utils.test.js.map +0 -1
  952. package/esm/highlevel/worker/platform/connect.d.ts +0 -2
  953. package/esm/highlevel/worker/platform/connect.js +0 -15
  954. package/esm/highlevel/worker/platform/connect.js.map +0 -1
  955. package/esm/highlevel/worker/platform/connect.web.d.ts +0 -2
  956. package/esm/highlevel/worker/platform/connect.web.js +0 -47
  957. package/esm/highlevel/worker/platform/connect.web.js.map +0 -1
  958. package/esm/highlevel/worker/platform/register.d.ts +0 -2
  959. package/esm/highlevel/worker/platform/register.js +0 -16
  960. package/esm/highlevel/worker/platform/register.js.map +0 -1
  961. package/esm/highlevel/worker/platform/register.web.d.ts +0 -2
  962. package/esm/highlevel/worker/platform/register.web.js +0 -60
  963. package/esm/highlevel/worker/platform/register.web.js.map +0 -1
  964. package/esm/network/auth-key.test.d.ts +0 -1
  965. package/esm/network/auth-key.test.js +0 -106
  966. package/esm/network/auth-key.test.js.map +0 -1
  967. package/esm/network/config-manager.test.d.ts +0 -1
  968. package/esm/network/config-manager.test.js +0 -172
  969. package/esm/network/config-manager.test.js.map +0 -1
  970. package/esm/network/persistent-connection.test.d.ts +0 -1
  971. package/esm/network/persistent-connection.test.js +0 -155
  972. package/esm/network/persistent-connection.test.js.map +0 -1
  973. package/esm/network/transports/intermediate.test.d.ts +0 -1
  974. package/esm/network/transports/intermediate.test.js +0 -82
  975. package/esm/network/transports/intermediate.test.js.map +0 -1
  976. package/esm/network/transports/obfuscated.test.d.ts +0 -1
  977. package/esm/network/transports/obfuscated.test.js +0 -129
  978. package/esm/network/transports/obfuscated.test.js.map +0 -1
  979. package/esm/network/transports/tcp.d.ts +0 -32
  980. package/esm/network/transports/tcp.js +0 -122
  981. package/esm/network/transports/tcp.js.map +0 -1
  982. package/esm/network/transports/tcp.test.d.ts +0 -1
  983. package/esm/network/transports/tcp.test.js +0 -101
  984. package/esm/network/transports/tcp.test.js.map +0 -1
  985. package/esm/network/transports/websocket.d.ts +0 -46
  986. package/esm/network/transports/websocket.js +0 -116
  987. package/esm/network/transports/websocket.js.map +0 -1
  988. package/esm/network/transports/websocket.test.d.ts +0 -1
  989. package/esm/network/transports/websocket.test.js +0 -89
  990. package/esm/network/transports/websocket.test.js.map +0 -1
  991. package/esm/storage/providers/idb/driver.d.ts +0 -18
  992. package/esm/storage/providers/idb/driver.js +0 -134
  993. package/esm/storage/providers/idb/driver.js.map +0 -1
  994. package/esm/storage/providers/idb/idb.test.d.ts +0 -1
  995. package/esm/storage/providers/idb/idb.test.js +0 -27
  996. package/esm/storage/providers/idb/idb.test.js.map +0 -1
  997. package/esm/storage/providers/idb/index.d.ts +0 -22
  998. package/esm/storage/providers/idb/index.js +0 -23
  999. package/esm/storage/providers/idb/index.js.map +0 -1
  1000. package/esm/storage/providers/idb/repository/auth-keys.d.ts +0 -14
  1001. package/esm/storage/providers/idb/repository/auth-keys.js +0 -66
  1002. package/esm/storage/providers/idb/repository/auth-keys.js.map +0 -1
  1003. package/esm/storage/providers/idb/repository/kv.d.ts +0 -11
  1004. package/esm/storage/providers/idb/repository/kv.js +0 -30
  1005. package/esm/storage/providers/idb/repository/kv.js.map +0 -1
  1006. package/esm/storage/providers/idb/repository/peers.d.ts +0 -12
  1007. package/esm/storage/providers/idb/repository/peers.js +0 -34
  1008. package/esm/storage/providers/idb/repository/peers.js.map +0 -1
  1009. package/esm/storage/providers/idb/repository/ref-messages.d.ts +0 -12
  1010. package/esm/storage/providers/idb/repository/ref-messages.js +0 -53
  1011. package/esm/storage/providers/idb/repository/ref-messages.js.map +0 -1
  1012. package/esm/storage/providers/idb/utils.d.ts +0 -3
  1013. package/esm/storage/providers/idb/utils.js +0 -21
  1014. package/esm/storage/providers/idb/utils.js.map +0 -1
  1015. package/esm/storage/providers/memory/driver.js.map +0 -1
  1016. package/esm/storage/providers/memory/index.js.map +0 -1
  1017. package/esm/storage/providers/memory/memory.test.d.ts +0 -1
  1018. package/esm/storage/providers/memory/memory.test.js +0 -11
  1019. package/esm/storage/providers/memory/memory.test.js.map +0 -1
  1020. package/esm/storage/providers/memory/repository/auth-keys.js.map +0 -1
  1021. package/esm/storage/providers/memory/repository/kv.js.map +0 -1
  1022. package/esm/storage/providers/memory/repository/peers.js.map +0 -1
  1023. package/esm/storage/providers/memory/repository/ref-messages.js.map +0 -1
  1024. package/esm/storage/service/auth-keys.test.d.ts +0 -1
  1025. package/esm/storage/service/auth-keys.test.js +0 -20
  1026. package/esm/storage/service/auth-keys.test.js.map +0 -1
  1027. package/esm/storage/service/updates.test.d.ts +0 -1
  1028. package/esm/storage/service/updates.test.js +0 -58
  1029. package/esm/storage/service/updates.test.js.map +0 -1
  1030. package/esm/storage/service/utils.test-utils.d.ts +0 -2
  1031. package/esm/storage/service/utils.test-utils.js +0 -15
  1032. package/esm/storage/service/utils.test-utils.js.map +0 -1
  1033. package/esm/utils/async-lock.test.d.ts +0 -1
  1034. package/esm/utils/async-lock.test.js +0 -23
  1035. package/esm/utils/async-lock.test.js.map +0 -1
  1036. package/esm/utils/bigint-utils.test.d.ts +0 -1
  1037. package/esm/utils/bigint-utils.test.js +0 -148
  1038. package/esm/utils/bigint-utils.test.js.map +0 -1
  1039. package/esm/utils/buffer-utils.test.d.ts +0 -1
  1040. package/esm/utils/buffer-utils.test.js +0 -67
  1041. package/esm/utils/buffer-utils.test.js.map +0 -1
  1042. package/esm/utils/condition-variable.test.d.ts +0 -1
  1043. package/esm/utils/condition-variable.test.js +0 -25
  1044. package/esm/utils/condition-variable.test.js.map +0 -1
  1045. package/esm/utils/controllable-promise.test.d.ts +0 -1
  1046. package/esm/utils/controllable-promise.test.js +0 -15
  1047. package/esm/utils/controllable-promise.test.js.map +0 -1
  1048. package/esm/utils/crypto/factorization.test.d.ts +0 -1
  1049. package/esm/utils/crypto/factorization.test.js +0 -17
  1050. package/esm/utils/crypto/factorization.test.js.map +0 -1
  1051. package/esm/utils/crypto/keys.test.d.ts +0 -1
  1052. package/esm/utils/crypto/keys.test.js +0 -38
  1053. package/esm/utils/crypto/keys.test.js.map +0 -1
  1054. package/esm/utils/crypto/miller-rabin.test.d.ts +0 -1
  1055. package/esm/utils/crypto/miller-rabin.test.js +0 -58
  1056. package/esm/utils/crypto/miller-rabin.test.js.map +0 -1
  1057. package/esm/utils/crypto/mtproto.test.d.ts +0 -1
  1058. package/esm/utils/crypto/mtproto.test.js +0 -48
  1059. package/esm/utils/crypto/mtproto.test.js.map +0 -1
  1060. package/esm/utils/crypto/node.d.ts +0 -21
  1061. package/esm/utils/crypto/node.js +0 -69
  1062. package/esm/utils/crypto/node.js.map +0 -1
  1063. package/esm/utils/crypto/node.test.d.ts +0 -1
  1064. package/esm/utils/crypto/node.test.js +0 -12
  1065. package/esm/utils/crypto/node.test.js.map +0 -1
  1066. package/esm/utils/crypto/password.test.d.ts +0 -1
  1067. package/esm/utils/crypto/password.test.js +0 -90
  1068. package/esm/utils/crypto/password.test.js.map +0 -1
  1069. package/esm/utils/crypto/utils.test.d.ts +0 -1
  1070. package/esm/utils/crypto/utils.test.js +0 -47
  1071. package/esm/utils/crypto/utils.test.js.map +0 -1
  1072. package/esm/utils/crypto/wasm.d.ts +0 -22
  1073. package/esm/utils/crypto/wasm.js +0 -37
  1074. package/esm/utils/crypto/wasm.js.map +0 -1
  1075. package/esm/utils/crypto/web.d.ts +0 -11
  1076. package/esm/utils/crypto/web.js +0 -36
  1077. package/esm/utils/crypto/web.js.map +0 -1
  1078. package/esm/utils/crypto/web.test.d.ts +0 -1
  1079. package/esm/utils/crypto/web.test.js +0 -15
  1080. package/esm/utils/crypto/web.test.js.map +0 -1
  1081. package/esm/utils/deque.test.d.ts +0 -1
  1082. package/esm/utils/deque.test.js +0 -126
  1083. package/esm/utils/deque.test.js.map +0 -1
  1084. package/esm/utils/function-utils.test.d.ts +0 -1
  1085. package/esm/utils/function-utils.test.js +0 -21
  1086. package/esm/utils/function-utils.test.js.map +0 -1
  1087. package/esm/utils/linked-list.test.d.ts +0 -1
  1088. package/esm/utils/linked-list.test.js +0 -34
  1089. package/esm/utils/linked-list.test.js.map +0 -1
  1090. package/esm/utils/links/bots.test.d.ts +0 -1
  1091. package/esm/utils/links/bots.test.js +0 -150
  1092. package/esm/utils/links/bots.test.js.map +0 -1
  1093. package/esm/utils/links/chat.test.d.ts +0 -1
  1094. package/esm/utils/links/chat.test.js +0 -82
  1095. package/esm/utils/links/chat.test.js.map +0 -1
  1096. package/esm/utils/links/misc.test.d.ts +0 -1
  1097. package/esm/utils/links/misc.test.js +0 -151
  1098. package/esm/utils/links/misc.test.js.map +0 -1
  1099. package/esm/utils/links/proxy.test.d.ts +0 -1
  1100. package/esm/utils/links/proxy.test.js +0 -72
  1101. package/esm/utils/links/proxy.test.js.map +0 -1
  1102. package/esm/utils/links/user.test.d.ts +0 -1
  1103. package/esm/utils/links/user.test.js +0 -61
  1104. package/esm/utils/links/user.test.js.map +0 -1
  1105. package/esm/utils/logger.test.d.ts +0 -1
  1106. package/esm/utils/logger.test.js +0 -134
  1107. package/esm/utils/logger.test.js.map +0 -1
  1108. package/esm/utils/long-utils.test.d.ts +0 -1
  1109. package/esm/utils/long-utils.test.js +0 -153
  1110. package/esm/utils/long-utils.test.js.map +0 -1
  1111. package/esm/utils/lru-map.test.d.ts +0 -1
  1112. package/esm/utils/lru-map.test.js +0 -94
  1113. package/esm/utils/lru-map.test.js.map +0 -1
  1114. package/esm/utils/lru-set.test.d.ts +0 -1
  1115. package/esm/utils/lru-set.test.js +0 -72
  1116. package/esm/utils/lru-set.test.js.map +0 -1
  1117. package/esm/utils/peer-utils.test.d.ts +0 -1
  1118. package/esm/utils/peer-utils.test.js +0 -105
  1119. package/esm/utils/peer-utils.test.js.map +0 -1
  1120. package/esm/utils/platform/crypto.d.ts +0 -1
  1121. package/esm/utils/platform/crypto.js +0 -4
  1122. package/esm/utils/platform/crypto.js.map +0 -1
  1123. package/esm/utils/platform/crypto.web.d.ts +0 -1
  1124. package/esm/utils/platform/crypto.web.js +0 -10
  1125. package/esm/utils/platform/crypto.web.js.map +0 -1
  1126. package/esm/utils/platform/error-reporting.js.map +0 -1
  1127. package/esm/utils/platform/exit-hook.d.ts +0 -1
  1128. package/esm/utils/platform/exit-hook.js +0 -41
  1129. package/esm/utils/platform/exit-hook.js.map +0 -1
  1130. package/esm/utils/platform/exit-hook.web.d.ts +0 -1
  1131. package/esm/utils/platform/exit-hook.web.js +0 -17
  1132. package/esm/utils/platform/exit-hook.web.js.map +0 -1
  1133. package/esm/utils/platform/logging.d.ts +0 -1
  1134. package/esm/utils/platform/logging.js +0 -31
  1135. package/esm/utils/platform/logging.js.map +0 -1
  1136. package/esm/utils/platform/logging.web.d.ts +0 -1
  1137. package/esm/utils/platform/logging.web.js +0 -31
  1138. package/esm/utils/platform/logging.web.js.map +0 -1
  1139. package/esm/utils/platform/transport.d.ts +0 -1
  1140. package/esm/utils/platform/transport.js +0 -4
  1141. package/esm/utils/platform/transport.js.map +0 -1
  1142. package/esm/utils/platform/transport.web.d.ts +0 -1
  1143. package/esm/utils/platform/transport.web.js +0 -12
  1144. package/esm/utils/platform/transport.web.js.map +0 -1
  1145. package/esm/utils/sorted-array.test.d.ts +0 -1
  1146. package/esm/utils/sorted-array.test.js +0 -64
  1147. package/esm/utils/sorted-array.test.js.map +0 -1
  1148. package/esm/utils/tl-json.test.d.ts +0 -1
  1149. package/esm/utils/tl-json.test.js +0 -81
  1150. package/esm/utils/tl-json.test.js.map +0 -1
  1151. package/esm/utils/type-assertions.test.d.ts +0 -1
  1152. package/esm/utils/type-assertions.test.js +0 -65
  1153. package/esm/utils/type-assertions.test.js.map +0 -1
  1154. /package/cjs/highlevel/{base.test.d.ts → methods/files/download-node-stream.d.ts} +0 -0
  1155. /package/cjs/storage/{providers/memory → memory}/driver.js +0 -0
  1156. /package/cjs/storage/{providers/memory → memory}/index.js +0 -0
  1157. /package/cjs/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
  1158. /package/cjs/storage/{providers/memory → memory}/repository/kv.js +0 -0
  1159. /package/cjs/storage/{providers/memory → memory}/repository/peers.js +0 -0
  1160. /package/cjs/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
  1161. /package/cjs/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
  1162. /package/{cjs/highlevel/methods/files/_platform.d.ts → esm/highlevel/methods/files/download-node-stream.d.ts} +0 -0
  1163. /package/esm/storage/{providers/memory → memory}/driver.js +0 -0
  1164. /package/esm/storage/{providers/memory → memory}/index.js +0 -0
  1165. /package/esm/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
  1166. /package/esm/storage/{providers/memory → memory}/repository/kv.js +0 -0
  1167. /package/esm/storage/{providers/memory → memory}/repository/peers.js +0 -0
  1168. /package/esm/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
  1169. /package/esm/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqliteKeyValueRepository = void 0;
4
+ const reader_js_1 = require("@mtcute/tl/binary/reader.js");
5
+ const writer_js_1 = require("@mtcute/tl/binary/writer.js");
6
+ const current_user_js_1 = require("../../../highlevel/storage/service/current-user.js");
7
+ const updates_js_1 = require("../../../highlevel/storage/service/updates.js");
8
+ const default_dcs_js_1 = require("../../service/default-dcs.js");
9
+ class SqliteKeyValueRepository {
10
+ constructor(_driver) {
11
+ this._driver = _driver;
12
+ _driver.registerMigration('kv', 1, (db) => {
13
+ db.exec(`
14
+ create table key_value (
15
+ key text primary key,
16
+ value blob not null
17
+ );
18
+ `);
19
+ });
20
+ _driver.onLoad((db) => {
21
+ this._get = db.prepare('select value from key_value where key = ?');
22
+ this._set = db.prepare('insert or replace into key_value (key, value) values (?, ?)');
23
+ this._del = db.prepare('delete from key_value where key = ?');
24
+ this._delAll = db.prepare('delete from key_value');
25
+ });
26
+ // awkward dependencies, unsafe code, awful crutches
27
+ // all in the name of backwards compatibility
28
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any */
29
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-floating-promises */
30
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
31
+ _driver.registerLegacyMigration('kv', (db) => {
32
+ // fetch all values from the old table
33
+ const all = db.prepare('select key, value from kv').all();
34
+ const obj = {};
35
+ for (const { key, value } of all) {
36
+ obj[key] = JSON.parse(value);
37
+ }
38
+ db.exec('drop table kv');
39
+ // lol
40
+ const options = {
41
+ driver: this._driver,
42
+ readerMap: reader_js_1.__tlReaderMap,
43
+ writerMap: writer_js_1.__tlWriterMap,
44
+ // eslint-disable-next-line dot-notation
45
+ log: this._driver['_log'],
46
+ };
47
+ if (obj.self) {
48
+ new current_user_js_1.CurrentUserService(this, options).store({
49
+ userId: obj.self.userId,
50
+ isBot: obj.self.isBot,
51
+ isPremium: false,
52
+ usernames: [],
53
+ });
54
+ }
55
+ if (obj.pts) {
56
+ const svc = new updates_js_1.UpdatesStateService(this, options);
57
+ svc.setPts(obj.pts);
58
+ if (obj.qts)
59
+ svc.setQts(obj.qts);
60
+ if (obj.date)
61
+ svc.setDate(obj.date);
62
+ if (obj.seq)
63
+ svc.setSeq(obj.seq);
64
+ // also fetch channel states. they were moved to kv from a separate table
65
+ const channels = db.prepare('select * from pts').all();
66
+ for (const channel of channels) {
67
+ svc.setChannelPts(channel.channel_id, channel.pts);
68
+ }
69
+ }
70
+ db.exec('drop table pts');
71
+ if (obj.def_dc) {
72
+ new default_dcs_js_1.DefaultDcsService(this, options).store(obj.def_dc);
73
+ }
74
+ });
75
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any */
76
+ /* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-floating-promises */
77
+ /* eslint-enable @typescript-eslint/no-unsafe-argument */
78
+ }
79
+ set(key, value) {
80
+ this._driver._writeLater(this._set, [key, value]);
81
+ }
82
+ get(key) {
83
+ const res = this._get.get(key);
84
+ if (!res)
85
+ return null;
86
+ return res.value;
87
+ }
88
+ delete(key) {
89
+ this._del.run(key);
90
+ }
91
+ deleteAll() {
92
+ this._delAll.run();
93
+ }
94
+ }
95
+ exports.SqliteKeyValueRepository = SqliteKeyValueRepository;
96
+ //# sourceMappingURL=kv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../../../../src/storage/sqlite/repository/kv.ts"],"names":[],"mappings":"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","sourcesContent":["import { __tlReaderMap } from '@mtcute/tl/binary/reader.js'\nimport { __tlWriterMap } from '@mtcute/tl/binary/writer.js'\n\nimport { CurrentUserService } from '../../../highlevel/storage/service/current-user.js'\nimport { UpdatesStateService } from '../../../highlevel/storage/service/updates.js'\nimport { IKeyValueRepository } from '../../repository/key-value.js'\nimport { ServiceOptions } from '../../service/base.js'\nimport { DefaultDcsService } from '../../service/default-dcs.js'\nimport { BaseSqliteStorageDriver } from '../driver.js'\nimport { ISqliteStatement } from '../types.js'\n\ninterface KeyValueDto {\n key: string\n value: Uint8Array\n}\n\nexport class SqliteKeyValueRepository implements IKeyValueRepository {\n constructor(readonly _driver: BaseSqliteStorageDriver) {\n _driver.registerMigration('kv', 1, (db) => {\n db.exec(`\n create table key_value (\n key text primary key,\n value blob not null\n );\n `)\n })\n _driver.onLoad((db) => {\n this._get = db.prepare('select value from key_value where key = ?')\n this._set = db.prepare('insert or replace into key_value (key, value) values (?, ?)')\n this._del = db.prepare('delete from key_value where key = ?')\n this._delAll = db.prepare('delete from key_value')\n })\n\n // awkward dependencies, unsafe code, awful crutches\n // all in the name of backwards compatibility\n /* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any */\n /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-floating-promises */\n /* eslint-disable @typescript-eslint/no-unsafe-argument */\n _driver.registerLegacyMigration('kv', (db) => {\n // fetch all values from the old table\n const all = db.prepare('select key, value from kv').all() as { key: string; value: string }[]\n const obj: Record<string, any> = {}\n\n for (const { key, value } of all) {\n obj[key] = JSON.parse(value)\n }\n\n db.exec('drop table kv')\n\n // lol\n const options: ServiceOptions = {\n driver: this._driver,\n readerMap: __tlReaderMap,\n writerMap: __tlWriterMap,\n // eslint-disable-next-line dot-notation\n log: this._driver['_log'],\n }\n\n if (obj.self) {\n new CurrentUserService(this, options).store({\n userId: obj.self.userId,\n isBot: obj.self.isBot,\n isPremium: false,\n usernames: [],\n })\n }\n\n if (obj.pts) {\n const svc = new UpdatesStateService(this, options)\n svc.setPts(obj.pts)\n if (obj.qts) svc.setQts(obj.qts)\n if (obj.date) svc.setDate(obj.date)\n if (obj.seq) svc.setSeq(obj.seq)\n\n // also fetch channel states. they were moved to kv from a separate table\n const channels = db.prepare('select * from pts').all() as any[]\n\n for (const channel of channels) {\n svc.setChannelPts(channel.channel_id, channel.pts)\n }\n }\n db.exec('drop table pts')\n\n if (obj.def_dc) {\n new DefaultDcsService(this, options).store(obj.def_dc)\n }\n })\n /* eslint-enable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any */\n /* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-floating-promises */\n /* eslint-enable @typescript-eslint/no-unsafe-argument */\n }\n\n private _set!: ISqliteStatement\n set(key: string, value: Uint8Array): void {\n this._driver._writeLater(this._set, [key, value])\n }\n\n private _get!: ISqliteStatement\n get(key: string): Uint8Array | null {\n const res = this._get.get(key)\n if (!res) return null\n\n return (res as KeyValueDto).value\n }\n\n private _del!: ISqliteStatement\n delete(key: string): void {\n this._del.run(key)\n }\n\n private _delAll!: ISqliteStatement\n deleteAll(): void {\n this._delAll.run()\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js';
2
+ import { BaseSqliteStorageDriver } from '../driver.js';
3
+ export declare class SqlitePeersRepository implements IPeersRepository {
4
+ readonly _driver: BaseSqliteStorageDriver;
5
+ constructor(_driver: BaseSqliteStorageDriver);
6
+ private _store;
7
+ store(peer: IPeersRepository.PeerInfo): void;
8
+ private _getById;
9
+ getById(id: number): IPeersRepository.PeerInfo | null;
10
+ private _getByUsername;
11
+ getByUsername(username: string): IPeersRepository.PeerInfo | null;
12
+ private _getByPhone;
13
+ getByPhone(phone: string): IPeersRepository.PeerInfo | null;
14
+ private _delAll;
15
+ deleteAll(): void;
16
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqlitePeersRepository = void 0;
4
+ function mapPeerDto(dto) {
5
+ return {
6
+ id: dto.id,
7
+ accessHash: dto.hash,
8
+ usernames: JSON.parse(dto.usernames),
9
+ updated: dto.updated,
10
+ phone: dto.phone || undefined,
11
+ complete: dto.complete,
12
+ };
13
+ }
14
+ class SqlitePeersRepository {
15
+ constructor(_driver) {
16
+ this._driver = _driver;
17
+ _driver.registerMigration('peers', 1, (db) => {
18
+ db.exec(`
19
+ create table peers (
20
+ id integer primary key,
21
+ hash text not null,
22
+ usernames json not null,
23
+ updated integer not null,
24
+ phone text,
25
+ complete blob
26
+ );
27
+ create index idx_peers_usernames on peers (usernames);
28
+ create index idx_peers_phone on peers (phone);
29
+ `);
30
+ });
31
+ _driver.onLoad((db) => {
32
+ this._store = db.prepare('insert or replace into peers (id, hash, usernames, updated, phone, complete) values (?, ?, ?, ?, ?, ?)');
33
+ this._getById = db.prepare('select * from peers where id = ?');
34
+ this._getByUsername = db.prepare('select * from peers where exists (select 1 from json_each(usernames) where value = ?)');
35
+ this._getByPhone = db.prepare('select * from peers where phone = ?');
36
+ this._delAll = db.prepare('delete from peers');
37
+ });
38
+ _driver.registerLegacyMigration('peers', (db) => {
39
+ // not too important information, just drop the table
40
+ db.exec('drop table entities');
41
+ });
42
+ }
43
+ store(peer) {
44
+ this._driver._writeLater(this._store, [
45
+ peer.id,
46
+ peer.accessHash,
47
+ // add commas to make it easier to search with LIKE
48
+ JSON.stringify(peer.usernames),
49
+ peer.updated,
50
+ peer.phone,
51
+ peer.complete,
52
+ ]);
53
+ }
54
+ getById(id) {
55
+ const row = this._getById.get(id);
56
+ if (!row)
57
+ return null;
58
+ return mapPeerDto(row);
59
+ }
60
+ getByUsername(username) {
61
+ const row = this._getByUsername.get(username);
62
+ if (!row)
63
+ return null;
64
+ return mapPeerDto(row);
65
+ }
66
+ getByPhone(phone) {
67
+ const row = this._getByPhone.get(phone);
68
+ if (!row)
69
+ return null;
70
+ return mapPeerDto(row);
71
+ }
72
+ deleteAll() {
73
+ this._delAll.run();
74
+ }
75
+ }
76
+ exports.SqlitePeersRepository = SqlitePeersRepository;
77
+ //# sourceMappingURL=peers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peers.js","sourceRoot":"","sources":["../../../../../src/storage/sqlite/repository/peers.ts"],"names":[],"mappings":";;;AAcA,SAAS,UAAU,CAAC,GAAY;IAC5B,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAa;QAChD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS;QAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACzB,CAAA;AACL,CAAC;AAED,MAAa,qBAAqB;IAC9B,YAAqB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QACjD,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YACzC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;aAWP,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CACpB,wGAAwG,CAC3G,CAAA;YAED,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAA;YAC9D,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,OAAO,CAC5B,uFAAuF,CAC1F,CAAA;YACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;YAEpE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YAC5C,qDAAqD;YACrD,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;IACN,CAAC;IAGD,KAAK,CAAC,IAA+B;QACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE;YAClC,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,UAAU;YACf,mDAAmD;YACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,QAAQ;SAChB,CAAC,CAAA;IACN,CAAC;IAGD,OAAO,CAAC,EAAU;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,UAAU,CAAC,GAAc,CAAC,CAAA;IACrC,CAAC;IAGD,aAAa,CAAC,QAAgB;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,UAAU,CAAC,GAAc,CAAC,CAAA;IACrC,CAAC;IAGD,UAAU,CAAC,KAAa;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,UAAU,CAAC,GAAc,CAAC,CAAA;IACrC,CAAC;IAGD,SAAS;QACL,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IACtB,CAAC;CACJ;AA5ED,sDA4EC","sourcesContent":["import { IPeersRepository } from '../../../highlevel/storage/repository/peers.js'\nimport { BaseSqliteStorageDriver } from '../driver.js'\nimport { ISqliteStatement } from '../types.js'\n\ninterface PeerDto {\n id: number\n hash: string\n usernames: string\n updated: number\n phone: string | null\n // eslint-disable-next-line no-restricted-globals\n complete: Buffer\n}\n\nfunction mapPeerDto(dto: PeerDto): IPeersRepository.PeerInfo {\n return {\n id: dto.id,\n accessHash: dto.hash,\n usernames: JSON.parse(dto.usernames) as string[],\n updated: dto.updated,\n phone: dto.phone || undefined,\n complete: dto.complete,\n }\n}\n\nexport class SqlitePeersRepository implements IPeersRepository {\n constructor(readonly _driver: BaseSqliteStorageDriver) {\n _driver.registerMigration('peers', 1, (db) => {\n db.exec(`\n create table peers (\n id integer primary key,\n hash text not null,\n usernames json not null,\n updated integer not null,\n phone text,\n complete blob\n );\n create index idx_peers_usernames on peers (usernames);\n create index idx_peers_phone on peers (phone);\n `)\n })\n _driver.onLoad((db) => {\n this._store = db.prepare(\n 'insert or replace into peers (id, hash, usernames, updated, phone, complete) values (?, ?, ?, ?, ?, ?)',\n )\n\n this._getById = db.prepare('select * from peers where id = ?')\n this._getByUsername = db.prepare(\n 'select * from peers where exists (select 1 from json_each(usernames) where value = ?)',\n )\n this._getByPhone = db.prepare('select * from peers where phone = ?')\n\n this._delAll = db.prepare('delete from peers')\n })\n _driver.registerLegacyMigration('peers', (db) => {\n // not too important information, just drop the table\n db.exec('drop table entities')\n })\n }\n\n private _store!: ISqliteStatement\n store(peer: IPeersRepository.PeerInfo): void {\n this._driver._writeLater(this._store, [\n peer.id,\n peer.accessHash,\n // add commas to make it easier to search with LIKE\n JSON.stringify(peer.usernames),\n peer.updated,\n peer.phone,\n peer.complete,\n ])\n }\n\n private _getById!: ISqliteStatement\n getById(id: number): IPeersRepository.PeerInfo | null {\n const row = this._getById.get(id)\n if (!row) return null\n\n return mapPeerDto(row as PeerDto)\n }\n\n private _getByUsername!: ISqliteStatement\n getByUsername(username: string): IPeersRepository.PeerInfo | null {\n const row = this._getByUsername.get(username)\n if (!row) return null\n\n return mapPeerDto(row as PeerDto)\n }\n\n private _getByPhone!: ISqliteStatement\n getByPhone(phone: string): IPeersRepository.PeerInfo | null {\n const row = this._getByPhone.get(phone)\n if (!row) return null\n\n return mapPeerDto(row as PeerDto)\n }\n\n private _delAll!: ISqliteStatement\n deleteAll(): void {\n this._delAll.run()\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { IReferenceMessagesRepository } from '@mtcute/core';
2
+ import { BaseSqliteStorageDriver } from '../driver.js';
3
+ export declare class SqliteRefMessagesRepository implements IReferenceMessagesRepository {
4
+ readonly _driver: BaseSqliteStorageDriver;
5
+ constructor(_driver: BaseSqliteStorageDriver);
6
+ private _store;
7
+ store(peerId: number, chatId: number, msgId: number): void;
8
+ private _getByPeer;
9
+ getByPeer(peerId: number): [number, number] | null;
10
+ private _del;
11
+ delete(chatId: number, msgIds: number[]): void;
12
+ private _delByPeer;
13
+ deleteByPeer(peerId: number): void;
14
+ private _delAll;
15
+ deleteAll(): void;
16
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SqliteRefMessagesRepository = void 0;
4
+ class SqliteRefMessagesRepository {
5
+ constructor(_driver) {
6
+ this._driver = _driver;
7
+ _driver.registerMigration('ref_messages', 1, (db) => {
8
+ db.exec(`
9
+ create table if not exists message_refs (
10
+ peer_id integer not null,
11
+ chat_id integer not null,
12
+ msg_id integer not null
13
+ );
14
+ create index if not exists idx_message_refs_peer on message_refs (peer_id);
15
+ create index if not exists idx_message_refs on message_refs (chat_id, msg_id);
16
+ `);
17
+ });
18
+ _driver.onLoad(() => {
19
+ this._store = this._driver.db.prepare('insert or replace into message_refs (peer_id, chat_id, msg_id) values (?, ?, ?)');
20
+ this._getByPeer = this._driver.db.prepare('select chat_id, msg_id from message_refs where peer_id = ?');
21
+ this._del = this._driver.db.prepare('delete from message_refs where chat_id = ? and msg_id = ?');
22
+ this._delByPeer = this._driver.db.prepare('delete from message_refs where peer_id = ?');
23
+ this._delAll = this._driver.db.prepare('delete from message_refs');
24
+ });
25
+ }
26
+ store(peerId, chatId, msgId) {
27
+ this._store.run(peerId, chatId, msgId);
28
+ }
29
+ getByPeer(peerId) {
30
+ const res = this._getByPeer.get(peerId);
31
+ if (!res)
32
+ return null;
33
+ const res_ = res;
34
+ return [res_.chat_id, res_.msg_id];
35
+ }
36
+ delete(chatId, msgIds) {
37
+ for (const msgId of msgIds) {
38
+ this._driver._writeLater(this._del, [chatId, msgId]);
39
+ }
40
+ }
41
+ deleteByPeer(peerId) {
42
+ this._delByPeer.run(peerId);
43
+ }
44
+ deleteAll() {
45
+ this._delAll.run();
46
+ }
47
+ }
48
+ exports.SqliteRefMessagesRepository = SqliteRefMessagesRepository;
49
+ //# sourceMappingURL=ref-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-messages.js","sourceRoot":"","sources":["../../../../../src/storage/sqlite/repository/ref-messages.ts"],"names":[],"mappings":";;;AAWA,MAAa,2BAA2B;IACpC,YAAqB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QACjD,OAAO,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YAChD,EAAE,CAAC,IAAI,CAAC;;;;;;;;aAQP,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CACjC,iFAAiF,CACpF,CAAA;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAA;YAEvG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAA;YAChG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAA;YACvF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;IACN,CAAC;IAGD,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QAC/C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAGD,SAAS,CAAC,MAAc;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,IAAI,GAAG,GAA0B,CAAA;QAEvC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAGD,MAAM,CAAC,MAAc,EAAE,MAAgB;QACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;SACvD;IACL,CAAC;IAGD,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,CAAC;IAGD,SAAS;QACL,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IACtB,CAAC;CACJ;AAzDD,kEAyDC","sourcesContent":["import { IReferenceMessagesRepository } from '@mtcute/core'\n\nimport { BaseSqliteStorageDriver } from '../driver.js'\nimport { ISqliteStatement } from '../types.js'\n\ninterface ReferenceMessageDto {\n peer_id: number\n chat_id: number\n msg_id: number\n}\n\nexport class SqliteRefMessagesRepository implements IReferenceMessagesRepository {\n constructor(readonly _driver: BaseSqliteStorageDriver) {\n _driver.registerMigration('ref_messages', 1, (db) => {\n db.exec(`\n create table if not exists message_refs (\n peer_id integer not null,\n chat_id integer not null,\n msg_id integer not null\n );\n create index if not exists idx_message_refs_peer on message_refs (peer_id);\n create index if not exists idx_message_refs on message_refs (chat_id, msg_id);\n `)\n })\n _driver.onLoad(() => {\n this._store = this._driver.db.prepare(\n 'insert or replace into message_refs (peer_id, chat_id, msg_id) values (?, ?, ?)',\n )\n\n this._getByPeer = this._driver.db.prepare('select chat_id, msg_id from message_refs where peer_id = ?')\n\n this._del = this._driver.db.prepare('delete from message_refs where chat_id = ? and msg_id = ?')\n this._delByPeer = this._driver.db.prepare('delete from message_refs where peer_id = ?')\n this._delAll = this._driver.db.prepare('delete from message_refs')\n })\n }\n\n private _store!: ISqliteStatement\n store(peerId: number, chatId: number, msgId: number): void {\n this._store.run(peerId, chatId, msgId)\n }\n\n private _getByPeer!: ISqliteStatement\n getByPeer(peerId: number): [number, number] | null {\n const res = this._getByPeer.get(peerId)\n if (!res) return null\n\n const res_ = res as ReferenceMessageDto\n\n return [res_.chat_id, res_.msg_id]\n }\n\n private _del!: ISqliteStatement\n delete(chatId: number, msgIds: number[]): void {\n for (const msgId of msgIds) {\n this._driver._writeLater(this._del, [chatId, msgId])\n }\n }\n\n private _delByPeer!: ISqliteStatement\n deleteByPeer(peerId: number): void {\n this._delByPeer.run(peerId)\n }\n\n private _delAll!: ISqliteStatement\n deleteAll(): void {\n this._delAll.run()\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * An abstract interface for a SQLite database.
3
+ *
4
+ * Roughly based on `better-sqlite3`'s `Database` class,
5
+ * (which can be used as-is), but only with the methods
6
+ * that are used by mtcute.
7
+ */
8
+ export interface ISqliteDatabase {
9
+ transaction<F extends (...args: any[]) => any>(fn: F): F;
10
+ prepare<BindParameters extends unknown[]>(sql: string): ISqliteStatement<BindParameters>;
11
+ exec(sql: string): void;
12
+ close(): void;
13
+ }
14
+ export interface ISqliteStatement<BindParameters extends unknown[] = unknown[]> {
15
+ run(...params: BindParameters): void;
16
+ get(...params: BindParameters): unknown;
17
+ all(...params: BindParameters): unknown[];
18
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/storage/sqlite/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * An abstract interface for a SQLite database.\n *\n * Roughly based on `better-sqlite3`'s `Database` class,\n * (which can be used as-is), but only with the methods\n * that are used by mtcute.\n */\nexport interface ISqliteDatabase {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n transaction<F extends (...args: any[]) => any>(fn: F): F\n\n prepare<BindParameters extends unknown[]>(sql: string): ISqliteStatement<BindParameters>\n\n exec(sql: string): void\n close(): void\n}\n\nexport interface ISqliteStatement<BindParameters extends unknown[] = unknown[]> {\n run(...params: BindParameters): void\n get(...params: BindParameters): unknown\n all(...params: BindParameters): unknown[]\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StorageManager = void 0;
4
+ const platform_js_1 = require("../platform.js");
4
5
  const index_js_1 = require("../utils/index.js");
5
6
  const auth_keys_js_1 = require("./service/auth-keys.js");
6
7
  const default_dcs_js_1 = require("./service/default-dcs.js");
@@ -23,7 +24,7 @@ class StorageManager {
23
24
  this._load = (0, index_js_1.asyncResettable)(async () => {
24
25
  this.driver.setup?.(this.log);
25
26
  if (this.options.cleanup ?? true) {
26
- this._cleanupRestore = (0, index_js_1.beforeExit)(() => {
27
+ this._cleanupRestore = (0, platform_js_1.getPlatform)().beforeExit(() => {
27
28
  this._destroy().catch((err) => this.log.error('cleanup error: %s', err));
28
29
  });
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/storage/storage.ts"],"names":[],"mappings":";;;AAEA,gDAA+D;AAG/D,yDAAwD;AAExD,6DAA4D;AAC5D,+DAA8D;AAgC9D,MAAa,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,kCAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACnE,UAAK,GAAG,IAAI,oCAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACtE,SAAI,GAAG,IAAI,8BAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAIrF,UAAK,GAAG,IAAA,0BAAe,EAAC,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,IAAA,qBAAU,EAAC,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;AA/DD,wCA+DC","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"]}
@@ -2,13 +2,13 @@
2
2
  // all available libraries either suck or are extremely large for the use case, so i made my own~
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.parseAsn1 = exports.parsePemContents = void 0;
5
- const tl_runtime_1 = require("@mtcute/tl-runtime");
5
+ const platform_js_1 = require("../../platform.js");
6
6
  /**
7
7
  * Parses a single PEM block to buffer.
8
8
  * In fact just strips begin/end tags and parses the rest as Base64
9
9
  */
10
10
  function parsePemContents(pem) {
11
- return (0, tl_runtime_1.base64DecodeToBuffer)(pem.replace(/^-----(BEGIN|END)( RSA)? PUBLIC KEY-----$|\n/gm, ''));
11
+ return (0, platform_js_1.getPlatform)().base64Decode(pem.replace(/^-----(BEGIN|END)( RSA)? PUBLIC KEY-----$|\n/gm, ''));
12
12
  }
13
13
  exports.parsePemContents = parsePemContents;
14
14
  const ELOOPN = 102;
@@ -52,7 +52,7 @@ function parseAsn1(data) {
52
52
  if (0x80 & asn1.length) {
53
53
  asn1.lengthSize = 0x7f & asn1.length;
54
54
  // I think that buf->hex->int solves the problem of Endianness... not sure
55
- asn1.length = parseInt((0, tl_runtime_1.hexEncode)(buf.subarray(index, index + asn1.lengthSize)), 16);
55
+ asn1.length = parseInt((0, platform_js_1.getPlatform)().hexEncode(buf.subarray(index, index + asn1.lengthSize)), 16);
56
56
  index += asn1.lengthSize;
57
57
  }
58
58
  // 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":";AAAA,iGAAiG;;;AAEjG,mDAAoE;AAEpE;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,GAAW;IACxC,OAAO,IAAA,iCAAoB,EAAC,GAAG,CAAC,OAAO,CAAC,gDAAgD,EAAE,EAAE,CAAC,CAAC,CAAA;AAClG,CAAC;AAFD,4CAEC;AAaD,MAAM,MAAM,GAAG,GAAG,CAAA;AAClB,MAAM,KAAK,GAAG,iBAAiB,MAAM,uCAAuC,CAAA;AAC5E,MAAM,MAAM,GAAG,EAAE,CAAA;AACjB,MAAM,KAAK,GAAG,uBAAuB,MAAM,0CAA0C,CAAA;AAErF,mEAAmE;AACnE,uGAAuG;AACvG,sBAAsB;AACtB,wEAAwE;AACxE,6DAA6D;AAC7D,MAAM,MAAM,GAAyB;IACjC,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;CACd,CAAA;AACD,MAAM,MAAM,GAAyB;IACjC,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACd,CAAA;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,IAAgB;IACtC,SAAS,cAAc,CAAC,GAAe,EAAE,KAAe,EAAE,KAAK,GAAG,KAAK;QACnE,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;SACzB;QAED,IAAI,KAAK,GAAG,CAAC,CAAA,CAAC,qEAAqE;QACnF,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACxE,IAAI,KAAK,CAAA;QACT,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,IAAI,WAAW,GAAG,CAAC,CAAA;QAEnB,2DAA2D;QAC3D,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;YACpC,0EAA0E;YAC1E,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAA,sBAAS,EAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnF,KAAK,IAAI,IAAI,CAAC,UAAU,CAAA;SAC3B;QAED,iFAAiF;QACjF,8EAA8E;QAC9E,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;YACnE,6CAA6C;YAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjB,KAAK,IAAI,CAAC,CAAA;gBACV,MAAM,GAAG,CAAC,CAAC,CAAA;aACd;SACJ;QACD,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAElC,SAAS,aAAa,CAAC,KAAK,GAAG,KAAK;YAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;YAElB,OAAO,KAAK,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;gBAChE,KAAK,IAAI,CAAC,CAAA;gBACV,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;gBACjB,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;gBAC9E,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;gBACjB,iEAAiE;gBACjE,uEAAuE;gBACvE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAA;gBAE5C,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE;oBAC3C,MAAM,IAAI,KAAK,CACX,oCAAoC,KAAK,CAAC,MAAM,OAAO;wBACnD,yCAAyC,IAAI,CAAC,MAAM,GAAG,KAAK,MAAM,IAAI,CAAC,MAAM,MAAM,KAAK,GAAG,CAClG,CAAA;iBACJ;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAC5B;YACD,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;aACpC;YACD,IAAI,KAAK,IAAI,MAAM,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;aACzB;YAED,OAAO,IAAI,CAAC,KAAK,CAAA;YAEjB,OAAO,IAAI,CAAA;QACf,CAAC;QAED,kDAAkD;QAClD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,aAAa,CAAC,KAAK,CAAC,CAAA;SAC9B;QAED,wCAAwC;QACxC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,CAAA;QAErD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,IAAI,CAAA;SACd;QAED,+DAA+D;QAC/D,wCAAwC;QACxC,IAAI;YACA,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;SAC7B;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;YAE3C,OAAO,IAAI,CAAA;SACd;IACL,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;IAEvB,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;KAC/E;IAED,OAAO,IAAI,CAAA;AACf,CAAC;AA/FD,8BA+FC","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,yDAAoD;AA0CpD,MAAsB,kBAAkB;IAGpC,WAAW,CAAC,EAAc;QACtB,OAAO,IAAA,kCAAe,EAAC,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;AAbD,gDAaC","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,yDAAoD;AA0CpD,MAAsB,kBAAkB;IAGpC,WAAW,CAAC,EAAc;QACtB,OAAO,IAAA,kCAAe,EAAC,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;AAbD,gDAaC","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;
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.defaultCryptoProviderFactory = void 0;
18
17
  __exportStar(require("./abstract.js"), exports);
19
18
  __exportStar(require("./factorization.js"), exports);
20
19
  __exportStar(require("./keys.js"), exports);
@@ -22,6 +21,4 @@ __exportStar(require("./miller-rabin.js"), exports);
22
21
  __exportStar(require("./mtproto.js"), exports);
23
22
  __exportStar(require("./password.js"), exports);
24
23
  __exportStar(require("./utils.js"), exports);
25
- const crypto_js_1 = require("../platform/crypto.js");
26
- exports.defaultCryptoProviderFactory = crypto_js_1._defaultCryptoProviderFactory;
27
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/crypto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,qDAAkC;AAClC,4CAAyB;AACzB,oDAAiC;AACjC,+CAA4B;AAC5B,gDAA6B;AAC7B,6CAA0B;AAE1B,qDAAqE;AAGxD,QAAA,4BAA4B,GAA0B,yCAA6B,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,gDAA6B;AAC7B,qDAAkC;AAClC,4CAAyB;AACzB,oDAAiC;AACjC,+CAA4B;AAC5B,gDAA6B;AAC7B,6CAA0B","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"]}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findKeyByFingerprints = exports.addPublicKey = exports.parsePublicKey = void 0;
4
4
  const rsa_keys_js_1 = require("@mtcute/tl/binary/rsa-keys.js");
5
5
  const tl_runtime_1 = require("@mtcute/tl-runtime");
6
+ const platform_js_1 = require("../../platform.js");
6
7
  const asn1_parser_js_1 = require("../binary/asn1-parser.js");
7
8
  /**
8
9
  * Parse PEM-encoded RSA public key information into modulus and exponent
@@ -22,12 +23,13 @@ function parsePublicKey(crypto, key, old = false) {
22
23
  // they are actually smaller, about 270 bytes, but idc :D
23
24
  writer.bytes(modulus);
24
25
  writer.bytes(exponent);
26
+ const platform = (0, platform_js_1.getPlatform)();
25
27
  const data = writer.result();
26
28
  const sha = crypto.sha1(data);
27
- const fp = (0, tl_runtime_1.hexEncode)(sha.slice(-8).reverse());
29
+ const fp = platform.hexEncode(sha.slice(-8).reverse());
28
30
  return {
29
- modulus: (0, tl_runtime_1.hexEncode)(modulus),
30
- exponent: (0, tl_runtime_1.hexEncode)(exponent),
31
+ modulus: platform.hexEncode(modulus),
32
+ exponent: platform.hexEncode(exponent),
31
33
  fingerprint: fp,
32
34
  old,
33
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/utils/crypto/keys.ts"],"names":[],"mappings":";;;AAEA,+DAA0F;AAC1F,mDAA8D;AAE9D,6DAAsE;AAGtE;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC5E,MAAM,IAAI,GAAG,IAAA,0BAAS,EAAC,IAAA,iCAAgB,EAAC,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,2BAAc,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,IAAA,sBAAS,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IAE7C,OAAO;QACH,OAAO,EAAE,IAAA,sBAAS,EAAC,OAAO,CAAC;QAC3B,QAAQ,EAAE,IAAA,sBAAS,EAAC,QAAQ,CAAC;QAC7B,WAAW,EAAE,EAAE;QACf,GAAG;KACN,CAAA;AACL,CAAC;AArBD,wCAqBC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/C,8BAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;AAC1C,CAAC;AAHD,oCAGC;AAED;;;;;GAKG;AACH,SAAgB,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,8BAAS,EAAE;YACjB,IAAI,8BAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;gBAAE,SAAQ;YAE5C,OAAO,8BAAS,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;AAdD,sDAcC","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,+DAA0F;AAC1F,mDAAmD;AAEnD,mDAA+C;AAC/C,6DAAsE;AAGtE;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC5E,MAAM,IAAI,GAAG,IAAA,0BAAS,EAAC,IAAA,iCAAgB,EAAC,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,2BAAc,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,IAAA,yBAAW,GAAE,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;AAvBD,wCAuBC;AAED;;;;;;GAMG;AACH,SAAgB,YAAY,CAAC,MAAuB,EAAE,GAAW,EAAE,GAAG,GAAG,KAAK;IAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/C,8BAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;AAC1C,CAAC;AAHD,oCAGC;AAED;;;;;GAKG;AACH,SAAgB,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,8BAAS,EAAE;YACjB,IAAI,8BAAS,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ;gBAAE,SAAQ;YAE5C,OAAO,8BAAS,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;AAdD,sDAcC","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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.computeSrpParams = exports.computeNewPasswordHash = exports.computePasswordHash = void 0;
4
- const tl_runtime_1 = require("@mtcute/tl-runtime");
4
+ const platform_js_1 = require("../../platform.js");
5
5
  const errors_js_1 = require("../../types/errors.js");
6
6
  const bigint_utils_js_1 = require("../bigint-utils.js");
7
7
  const buffer_utils_js_1 = require("../buffer-utils.js");
@@ -36,7 +36,7 @@ async function computeNewPasswordHash(crypto, algo, password) {
36
36
  salt1.set(algo.salt1);
37
37
  crypto.randomFill(salt1.subarray(algo.salt1.length));
38
38
  algo.salt1 = salt1;
39
- const _x = await computePasswordHash(crypto, (0, tl_runtime_1.utf8EncodeToBuffer)(password), algo.salt1, algo.salt2);
39
+ const _x = await computePasswordHash(crypto, (0, platform_js_1.getPlatform)().utf8Encode(password), algo.salt1, algo.salt2);
40
40
  const g = BigInt(algo.g);
41
41
  const p = (0, bigint_utils_js_1.bufferToBigInt)(algo.p);
42
42
  const x = (0, bigint_utils_js_1.bufferToBigInt)(_x);
@@ -74,7 +74,7 @@ async function computeSrpParams(crypto, request, password) {
74
74
  const H = (data) => crypto.sha256(data);
75
75
  const _k = crypto.sha256((0, buffer_utils_js_1.concatBuffers)([algo.p, _g]));
76
76
  const _u = crypto.sha256((0, buffer_utils_js_1.concatBuffers)([_gA, request.srpB]));
77
- const _x = await computePasswordHash(crypto, (0, tl_runtime_1.utf8EncodeToBuffer)(password), algo.salt1, algo.salt2);
77
+ const _x = await computePasswordHash(crypto, (0, platform_js_1.getPlatform)().utf8Encode(password), algo.salt1, algo.salt2);
78
78
  const k = (0, bigint_utils_js_1.bufferToBigInt)(_k);
79
79
  const u = (0, bigint_utils_js_1.bufferToBigInt)(_u);
80
80
  const x = (0, bigint_utils_js_1.bufferToBigInt)(_x);