@mtcute/core 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1122) hide show
  1. package/README.md +26 -3
  2. package/cjs/highlevel/base.d.ts +3 -1
  3. package/cjs/highlevel/base.js +18 -0
  4. package/cjs/highlevel/base.js.map +1 -1
  5. package/cjs/highlevel/client.d.ts +23 -10
  6. package/cjs/highlevel/client.js +26 -19
  7. package/cjs/highlevel/client.js.map +1 -1
  8. package/cjs/highlevel/client.types.d.ts +14 -0
  9. package/cjs/highlevel/client.types.js.map +1 -1
  10. package/cjs/highlevel/index.d.ts +0 -2
  11. package/cjs/highlevel/index.js +0 -2
  12. package/cjs/highlevel/index.js.map +1 -1
  13. package/cjs/highlevel/methods/_imports.js.map +1 -1
  14. package/cjs/highlevel/methods/_init.js +4 -29
  15. package/cjs/highlevel/methods/_init.js.map +1 -1
  16. package/cjs/highlevel/methods/bots/get-callback-answer.js +2 -2
  17. package/cjs/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  18. package/cjs/highlevel/methods/dialogs/create-folder.js +1 -1
  19. package/cjs/highlevel/methods/dialogs/create-folder.js.map +1 -1
  20. package/cjs/highlevel/methods/dialogs/edit-folder.js +1 -1
  21. package/cjs/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  22. package/cjs/highlevel/methods/dialogs/find-folder.js +1 -1
  23. package/cjs/highlevel/methods/dialogs/find-folder.js.map +1 -1
  24. package/cjs/highlevel/methods/dialogs/get-folders.d.ts +1 -1
  25. package/cjs/highlevel/methods/dialogs/get-folders.js +1 -1
  26. package/cjs/highlevel/methods/dialogs/get-folders.js.map +1 -1
  27. package/cjs/highlevel/methods/files/download-file.d.ts +1 -10
  28. package/cjs/highlevel/methods/files/download-file.js +1 -32
  29. package/cjs/highlevel/methods/files/download-file.js.map +1 -1
  30. package/cjs/highlevel/methods/files/download-iterable.js +2 -1
  31. package/cjs/highlevel/methods/files/download-iterable.js.map +1 -1
  32. package/cjs/highlevel/methods/files/download-node-stream.js +4 -0
  33. package/cjs/highlevel/methods/files/download-node-stream.js.map +1 -0
  34. package/cjs/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  35. package/cjs/highlevel/methods/files/normalize-input-media.js +2 -1
  36. package/cjs/highlevel/methods/files/normalize-input-media.js.map +1 -1
  37. package/cjs/highlevel/methods/files/upload-file.d.ts +0 -3
  38. package/cjs/highlevel/methods/files/upload-file.js +17 -13
  39. package/cjs/highlevel/methods/files/upload-file.js.map +1 -1
  40. package/cjs/highlevel/methods/messages/find-in-update.js +23 -8
  41. package/cjs/highlevel/methods/messages/find-in-update.js.map +1 -1
  42. package/cjs/highlevel/methods/messages/send-media-group.d.ts +1 -1
  43. package/cjs/highlevel/methods/messages/send-media-group.js.map +1 -1
  44. package/cjs/highlevel/methods/messages/send-media.d.ts +2 -2
  45. package/cjs/highlevel/methods/messages/send-media.js +5 -4
  46. package/cjs/highlevel/methods/messages/send-media.js.map +1 -1
  47. package/cjs/highlevel/methods/messages/send-text.d.ts +1 -1
  48. package/cjs/highlevel/methods/messages/send-text.js +7 -6
  49. package/cjs/highlevel/methods/messages/send-text.js.map +1 -1
  50. package/cjs/highlevel/methods/misc/with-params.d.ts +10 -0
  51. package/cjs/highlevel/methods/misc/with-params.js +32 -0
  52. package/cjs/highlevel/methods/misc/with-params.js.map +1 -0
  53. package/cjs/highlevel/methods.d.ts +13 -1
  54. package/cjs/highlevel/methods.js +4 -6
  55. package/cjs/highlevel/methods.js.map +1 -1
  56. package/cjs/highlevel/types/bots/command-scope/index.d.ts +10 -0
  57. package/cjs/highlevel/types/bots/command-scope/index.js +29 -0
  58. package/cjs/highlevel/types/bots/command-scope/index.js.map +1 -0
  59. package/cjs/highlevel/types/bots/command-scope/inner.d.ts +54 -0
  60. package/cjs/highlevel/types/bots/command-scope/inner.js +76 -0
  61. package/cjs/highlevel/types/bots/command-scope/inner.js.map +1 -0
  62. package/cjs/highlevel/types/bots/index.d.ts +4 -4
  63. package/cjs/highlevel/types/bots/index.js +4 -4
  64. package/cjs/highlevel/types/bots/index.js.map +1 -1
  65. package/cjs/highlevel/types/bots/inline-message/factories.d.ts +43 -0
  66. package/cjs/highlevel/types/bots/inline-message/factories.js +175 -0
  67. package/cjs/highlevel/types/bots/inline-message/factories.js.map +1 -0
  68. package/cjs/highlevel/types/bots/inline-message/index.d.ts +3 -0
  69. package/cjs/highlevel/types/bots/inline-message/index.js +33 -0
  70. package/cjs/highlevel/types/bots/inline-message/index.js.map +1 -0
  71. package/{esm/highlevel/types/bots/input/input-inline-message.d.ts → cjs/highlevel/types/bots/inline-message/types.d.ts} +2 -45
  72. package/cjs/highlevel/types/bots/inline-message/types.js +3 -0
  73. package/cjs/highlevel/types/bots/inline-message/types.js.map +1 -0
  74. package/cjs/highlevel/types/bots/inline-result/factories.d.ts +94 -0
  75. package/cjs/highlevel/types/bots/inline-result/factories.js +486 -0
  76. package/cjs/highlevel/types/bots/inline-result/factories.js.map +1 -0
  77. package/cjs/highlevel/types/bots/inline-result/index.d.ts +3 -0
  78. package/cjs/highlevel/types/bots/inline-result/index.js +33 -0
  79. package/cjs/highlevel/types/bots/inline-result/index.js.map +1 -0
  80. package/{esm/highlevel/types/bots/input/input-inline-result.d.ts → cjs/highlevel/types/bots/inline-result/types.d.ts} +1 -95
  81. package/cjs/highlevel/types/bots/inline-result/types.js +3 -0
  82. package/cjs/highlevel/types/bots/inline-result/types.js.map +1 -0
  83. package/cjs/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
  84. package/cjs/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
  85. package/cjs/highlevel/types/bots/keyboards/builder.js.map +1 -0
  86. package/cjs/highlevel/types/bots/keyboards/factories.d.ts +195 -0
  87. package/cjs/highlevel/types/bots/keyboards/factories.js +366 -0
  88. package/cjs/highlevel/types/bots/keyboards/factories.js.map +1 -0
  89. package/cjs/highlevel/types/bots/keyboards/index.d.ts +14 -0
  90. package/cjs/highlevel/types/bots/keyboards/index.js +33 -0
  91. package/cjs/highlevel/types/bots/keyboards/index.js.map +1 -0
  92. package/cjs/highlevel/types/bots/keyboards/types.d.ts +34 -0
  93. package/cjs/highlevel/types/bots/keyboards/types.js +3 -0
  94. package/cjs/highlevel/types/bots/keyboards/types.js.map +1 -0
  95. package/cjs/highlevel/types/media/document.js +3 -2
  96. package/cjs/highlevel/types/media/document.js.map +1 -1
  97. package/cjs/highlevel/types/media/index.d.ts +1 -1
  98. package/cjs/highlevel/types/media/index.js +1 -1
  99. package/cjs/highlevel/types/media/index.js.map +1 -1
  100. package/cjs/highlevel/types/media/input-media/factories.d.ts +141 -0
  101. package/cjs/highlevel/types/media/input-media/factories.js +250 -0
  102. package/cjs/highlevel/types/media/input-media/factories.js.map +1 -0
  103. package/cjs/highlevel/types/media/input-media/index.d.ts +3 -0
  104. package/cjs/highlevel/types/media/input-media/index.js +33 -0
  105. package/cjs/highlevel/types/media/input-media/index.js.map +1 -0
  106. package/cjs/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
  107. package/cjs/highlevel/types/media/input-media/types.js +3 -0
  108. package/cjs/highlevel/types/media/input-media/types.js.map +1 -0
  109. package/cjs/highlevel/types/media/thumbnail.js +5 -4
  110. package/cjs/highlevel/types/media/thumbnail.js.map +1 -1
  111. package/cjs/highlevel/types/messages/message.d.ts +1 -1
  112. package/cjs/highlevel/types/messages/message.js +3 -3
  113. package/cjs/highlevel/types/messages/message.js.map +1 -1
  114. package/cjs/highlevel/types/misc/index.d.ts +1 -1
  115. package/cjs/highlevel/types/misc/index.js +1 -1
  116. package/cjs/highlevel/types/misc/index.js.map +1 -1
  117. package/cjs/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
  118. package/cjs/highlevel/types/misc/input-privacy-rule/allow.js +36 -0
  119. package/cjs/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
  120. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
  121. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js +31 -0
  122. package/cjs/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
  123. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
  124. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js +32 -0
  125. package/cjs/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
  126. package/cjs/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
  127. package/cjs/highlevel/types/misc/input-privacy-rule/index.js +33 -0
  128. package/cjs/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
  129. package/cjs/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
  130. package/cjs/highlevel/types/misc/input-privacy-rule/types.js +3 -0
  131. package/cjs/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
  132. package/cjs/highlevel/types/peers/chat-photo.js +3 -2
  133. package/cjs/highlevel/types/peers/chat-photo.js.map +1 -1
  134. package/cjs/highlevel/types/updates/callback-query.js +2 -2
  135. package/cjs/highlevel/types/updates/callback-query.js.map +1 -1
  136. package/cjs/highlevel/types/updates/user-status-update.js +1 -1
  137. package/cjs/highlevel/types/updates/user-status-update.js.map +1 -1
  138. package/cjs/highlevel/updates/manager.d.ts +5 -3
  139. package/cjs/highlevel/updates/manager.js +81 -67
  140. package/cjs/highlevel/updates/manager.js.map +1 -1
  141. package/cjs/highlevel/utils/convert-file-id.js +7 -6
  142. package/cjs/highlevel/utils/convert-file-id.js.map +1 -1
  143. package/cjs/highlevel/utils/file-utils.js +8 -4
  144. package/cjs/highlevel/utils/file-utils.js.map +1 -1
  145. package/cjs/highlevel/utils/inline-utils.js +3 -2
  146. package/cjs/highlevel/utils/inline-utils.js.map +1 -1
  147. package/cjs/highlevel/utils/inspectable.d.ts +1 -1
  148. package/cjs/highlevel/utils/inspectable.js +3 -2
  149. package/cjs/highlevel/utils/inspectable.js.map +1 -1
  150. package/cjs/highlevel/utils/memoize.d.ts +1 -1
  151. package/cjs/highlevel/utils/memoize.js +1 -0
  152. package/cjs/highlevel/utils/memoize.js.map +1 -1
  153. package/cjs/highlevel/utils/stream-utils.d.ts +0 -2
  154. package/cjs/highlevel/utils/stream-utils.js +1 -28
  155. package/cjs/highlevel/utils/stream-utils.js.map +1 -1
  156. package/cjs/highlevel/utils/string-session.js +3 -2
  157. package/cjs/highlevel/utils/string-session.js.map +1 -1
  158. package/cjs/highlevel/worker/index.d.ts +3 -0
  159. package/cjs/highlevel/{types/bots/input → worker}/index.js +3 -2
  160. package/cjs/highlevel/worker/index.js.map +1 -0
  161. package/cjs/highlevel/worker/port.d.ts +6 -3
  162. package/cjs/highlevel/worker/port.js +8 -2
  163. package/cjs/highlevel/worker/port.js.map +1 -1
  164. package/cjs/highlevel/worker/protocol.d.ts +5 -1
  165. package/cjs/highlevel/worker/protocol.js.map +1 -1
  166. package/cjs/highlevel/worker/worker.d.ts +11 -4
  167. package/cjs/highlevel/worker/worker.js +53 -49
  168. package/cjs/highlevel/worker/worker.js.map +1 -1
  169. package/cjs/network/client.d.ts +4 -4
  170. package/cjs/network/client.js +3 -1
  171. package/cjs/network/client.js.map +1 -1
  172. package/cjs/network/multi-session-connection.d.ts +1 -0
  173. package/cjs/network/multi-session-connection.js +6 -0
  174. package/cjs/network/multi-session-connection.js.map +1 -1
  175. package/cjs/network/network-manager.d.ts +5 -1
  176. package/cjs/network/network-manager.js +24 -15
  177. package/cjs/network/network-manager.js.map +1 -1
  178. package/cjs/network/persistent-connection.d.ts +3 -0
  179. package/cjs/network/persistent-connection.js +23 -1
  180. package/cjs/network/persistent-connection.js.map +1 -1
  181. package/cjs/network/session-connection.d.ts +2 -0
  182. package/cjs/network/session-connection.js +18 -4
  183. package/cjs/network/session-connection.js.map +1 -1
  184. package/cjs/network/transports/index.d.ts +0 -3
  185. package/cjs/network/transports/index.js +0 -4
  186. package/cjs/network/transports/index.js.map +1 -1
  187. package/cjs/platform.d.ts +18 -0
  188. package/cjs/platform.js +36 -0
  189. package/cjs/platform.js.map +1 -0
  190. package/cjs/storage/index.d.ts +1 -2
  191. package/cjs/storage/index.js +1 -2
  192. package/cjs/storage/index.js.map +1 -1
  193. package/{esm/storage/providers → cjs/storage}/memory/driver.d.ts +1 -1
  194. package/cjs/storage/memory/driver.js.map +1 -0
  195. package/{esm/storage/providers → cjs/storage}/memory/index.d.ts +2 -2
  196. package/cjs/storage/memory/index.js.map +1 -0
  197. package/cjs/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
  198. package/cjs/storage/memory/repository/auth-keys.js.map +1 -0
  199. package/{esm/storage/providers → cjs/storage}/memory/repository/kv.d.ts +1 -1
  200. package/cjs/storage/memory/repository/kv.js.map +1 -0
  201. package/{esm/storage/providers → cjs/storage}/memory/repository/peers.d.ts +1 -1
  202. package/cjs/storage/memory/repository/peers.js.map +1 -0
  203. package/{esm/storage/providers → cjs/storage}/memory/repository/ref-messages.d.ts +1 -1
  204. package/cjs/storage/memory/repository/ref-messages.js.map +1 -0
  205. package/cjs/storage/storage.js +2 -1
  206. package/cjs/storage/storage.js.map +1 -1
  207. package/cjs/utils/binary/asn1-parser.js +3 -3
  208. package/cjs/utils/binary/asn1-parser.js.map +1 -1
  209. package/cjs/utils/crypto/abstract.d.ts +0 -1
  210. package/cjs/utils/crypto/abstract.js.map +1 -1
  211. package/cjs/utils/crypto/index.d.ts +0 -2
  212. package/cjs/utils/crypto/index.js +0 -3
  213. package/cjs/utils/crypto/index.js.map +1 -1
  214. package/cjs/utils/crypto/keys.js +5 -3
  215. package/cjs/utils/crypto/keys.js.map +1 -1
  216. package/cjs/utils/crypto/password.js +3 -3
  217. package/cjs/utils/crypto/password.js.map +1 -1
  218. package/cjs/utils/dcs.d.ts +4 -0
  219. package/cjs/utils/dcs.js +0 -4
  220. package/cjs/utils/dcs.js.map +1 -1
  221. package/cjs/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
  222. package/cjs/utils/error-reporting.js.map +1 -0
  223. package/cjs/utils/index.d.ts +4 -1
  224. package/cjs/utils/index.js +6 -1
  225. package/cjs/utils/index.js.map +1 -1
  226. package/cjs/utils/links/common.js +1 -1
  227. package/cjs/utils/links/common.js.map +1 -1
  228. package/cjs/utils/logger.d.ts +1 -0
  229. package/cjs/utils/logger.js +9 -22
  230. package/cjs/utils/logger.js.map +1 -1
  231. package/esm/highlevel/base.d.ts +3 -1
  232. package/esm/highlevel/base.js +18 -0
  233. package/esm/highlevel/base.js.map +1 -1
  234. package/esm/highlevel/client.d.ts +23 -10
  235. package/esm/highlevel/client.js +12 -19
  236. package/esm/highlevel/client.js.map +1 -1
  237. package/esm/highlevel/client.types.d.ts +14 -0
  238. package/esm/highlevel/client.types.js.map +1 -1
  239. package/esm/highlevel/index.d.ts +0 -2
  240. package/esm/highlevel/index.js +0 -2
  241. package/esm/highlevel/index.js.map +1 -1
  242. package/esm/highlevel/methods/_imports.js.map +1 -1
  243. package/esm/highlevel/methods/_init.js +4 -29
  244. package/esm/highlevel/methods/_init.js.map +1 -1
  245. package/esm/highlevel/methods/bots/get-callback-answer.js +2 -2
  246. package/esm/highlevel/methods/bots/get-callback-answer.js.map +1 -1
  247. package/esm/highlevel/methods/dialogs/create-folder.js +1 -1
  248. package/esm/highlevel/methods/dialogs/create-folder.js.map +1 -1
  249. package/esm/highlevel/methods/dialogs/edit-folder.js +1 -1
  250. package/esm/highlevel/methods/dialogs/edit-folder.js.map +1 -1
  251. package/esm/highlevel/methods/dialogs/find-folder.js +1 -1
  252. package/esm/highlevel/methods/dialogs/find-folder.js.map +1 -1
  253. package/esm/highlevel/methods/dialogs/get-folders.d.ts +1 -1
  254. package/esm/highlevel/methods/dialogs/get-folders.js +1 -1
  255. package/esm/highlevel/methods/dialogs/get-folders.js.map +1 -1
  256. package/esm/highlevel/methods/files/download-file.d.ts +1 -10
  257. package/esm/highlevel/methods/files/download-file.js +2 -30
  258. package/esm/highlevel/methods/files/download-file.js.map +1 -1
  259. package/esm/highlevel/methods/files/download-iterable.js +2 -1
  260. package/esm/highlevel/methods/files/download-iterable.js.map +1 -1
  261. package/esm/highlevel/methods/files/download-node-stream.js +3 -0
  262. package/esm/highlevel/methods/files/download-node-stream.js.map +1 -0
  263. package/esm/highlevel/methods/files/normalize-input-media.d.ts +1 -1
  264. package/esm/highlevel/methods/files/normalize-input-media.js +2 -1
  265. package/esm/highlevel/methods/files/normalize-input-media.js.map +1 -1
  266. package/esm/highlevel/methods/files/upload-file.d.ts +0 -3
  267. package/esm/highlevel/methods/files/upload-file.js +17 -13
  268. package/esm/highlevel/methods/files/upload-file.js.map +1 -1
  269. package/esm/highlevel/methods/messages/find-in-update.js +23 -8
  270. package/esm/highlevel/methods/messages/find-in-update.js.map +1 -1
  271. package/esm/highlevel/methods/messages/send-media-group.d.ts +1 -1
  272. package/esm/highlevel/methods/messages/send-media-group.js.map +1 -1
  273. package/esm/highlevel/methods/messages/send-media.d.ts +2 -2
  274. package/esm/highlevel/methods/messages/send-media.js +4 -3
  275. package/esm/highlevel/methods/messages/send-media.js.map +1 -1
  276. package/esm/highlevel/methods/messages/send-text.d.ts +1 -1
  277. package/esm/highlevel/methods/messages/send-text.js +4 -3
  278. package/esm/highlevel/methods/messages/send-text.js.map +1 -1
  279. package/esm/highlevel/methods/misc/with-params.d.ts +10 -0
  280. package/esm/highlevel/methods/misc/with-params.js +28 -0
  281. package/esm/highlevel/methods/misc/with-params.js.map +1 -0
  282. package/esm/highlevel/methods.d.ts +13 -1
  283. package/esm/highlevel/methods.js +0 -1
  284. package/esm/highlevel/methods.js.map +1 -1
  285. package/esm/highlevel/types/auth/sent-code.js +4 -3
  286. package/esm/highlevel/types/bots/command-scope/index.d.ts +10 -0
  287. package/esm/highlevel/types/bots/command-scope/index.js +11 -0
  288. package/esm/highlevel/types/bots/command-scope/index.js.map +1 -0
  289. package/esm/highlevel/types/bots/command-scope/inner.d.ts +54 -0
  290. package/esm/highlevel/types/bots/command-scope/inner.js +69 -0
  291. package/esm/highlevel/types/bots/command-scope/inner.js.map +1 -0
  292. package/esm/highlevel/types/bots/game-high-score.js +5 -4
  293. package/esm/highlevel/types/bots/index.d.ts +4 -4
  294. package/esm/highlevel/types/bots/index.js +4 -4
  295. package/esm/highlevel/types/bots/index.js.map +1 -1
  296. package/esm/highlevel/types/bots/inline-message/factories.d.ts +43 -0
  297. package/esm/highlevel/types/bots/inline-message/factories.js +163 -0
  298. package/esm/highlevel/types/bots/inline-message/factories.js.map +1 -0
  299. package/esm/highlevel/types/bots/inline-message/index.d.ts +3 -0
  300. package/esm/highlevel/types/bots/inline-message/index.js +4 -0
  301. package/esm/highlevel/types/bots/inline-message/index.js.map +1 -0
  302. package/{cjs/highlevel/types/bots/input/input-inline-message.d.ts → esm/highlevel/types/bots/inline-message/types.d.ts} +2 -45
  303. package/esm/highlevel/types/bots/inline-message/types.js +2 -0
  304. package/esm/highlevel/types/bots/inline-message/types.js.map +1 -0
  305. package/esm/highlevel/types/bots/inline-result/factories.d.ts +94 -0
  306. package/esm/highlevel/types/bots/inline-result/factories.js +470 -0
  307. package/esm/highlevel/types/bots/inline-result/factories.js.map +1 -0
  308. package/esm/highlevel/types/bots/inline-result/index.d.ts +3 -0
  309. package/esm/highlevel/types/bots/inline-result/index.js +4 -0
  310. package/esm/highlevel/types/bots/inline-result/index.js.map +1 -0
  311. package/{cjs/highlevel/types/bots/input/input-inline-result.d.ts → esm/highlevel/types/bots/inline-result/types.d.ts} +1 -95
  312. package/esm/highlevel/types/bots/inline-result/types.js +2 -0
  313. package/esm/highlevel/types/bots/inline-result/types.js.map +1 -0
  314. package/esm/highlevel/types/bots/{keyboard-builder.d.ts → keyboards/builder.d.ts} +1 -1
  315. package/esm/highlevel/types/bots/{keyboard-builder.js → keyboards/builder.js} +1 -1
  316. package/esm/highlevel/types/bots/keyboards/builder.js.map +1 -0
  317. package/esm/highlevel/types/bots/keyboards/factories.d.ts +195 -0
  318. package/esm/highlevel/types/bots/keyboards/factories.js +341 -0
  319. package/esm/highlevel/types/bots/keyboards/factories.js.map +1 -0
  320. package/esm/highlevel/types/bots/keyboards/index.d.ts +14 -0
  321. package/esm/highlevel/types/bots/keyboards/index.js +15 -0
  322. package/esm/highlevel/types/bots/keyboards/index.js.map +1 -0
  323. package/esm/highlevel/types/bots/keyboards/types.d.ts +34 -0
  324. package/esm/highlevel/types/bots/keyboards/types.js +2 -0
  325. package/esm/highlevel/types/bots/keyboards/types.js.map +1 -0
  326. package/esm/highlevel/types/files/file-location.js +4 -3
  327. package/esm/highlevel/types/files/web-document.js +4 -3
  328. package/esm/highlevel/types/media/audio.js +5 -4
  329. package/esm/highlevel/types/media/contact.js +4 -3
  330. package/esm/highlevel/types/media/dice.js +4 -3
  331. package/esm/highlevel/types/media/document.js +8 -6
  332. package/esm/highlevel/types/media/document.js.map +1 -1
  333. package/esm/highlevel/types/media/game.js +5 -4
  334. package/esm/highlevel/types/media/index.d.ts +1 -1
  335. package/esm/highlevel/types/media/index.js +1 -1
  336. package/esm/highlevel/types/media/index.js.map +1 -1
  337. package/esm/highlevel/types/media/input-media/factories.d.ts +141 -0
  338. package/esm/highlevel/types/media/input-media/factories.js +228 -0
  339. package/esm/highlevel/types/media/input-media/factories.js.map +1 -0
  340. package/esm/highlevel/types/media/input-media/index.d.ts +3 -0
  341. package/esm/highlevel/types/media/input-media/index.js +4 -0
  342. package/esm/highlevel/types/media/input-media/index.js.map +1 -0
  343. package/esm/highlevel/types/media/{input-media.d.ts → input-media/types.d.ts} +5 -145
  344. package/esm/highlevel/types/media/input-media/types.js +2 -0
  345. package/esm/highlevel/types/media/input-media/types.js.map +1 -0
  346. package/esm/highlevel/types/media/invoice.js +9 -7
  347. package/esm/highlevel/types/media/location.js +7 -5
  348. package/esm/highlevel/types/media/photo.js +5 -4
  349. package/esm/highlevel/types/media/poll.js +5 -4
  350. package/esm/highlevel/types/media/sticker.js +5 -4
  351. package/esm/highlevel/types/media/story.js +4 -3
  352. package/esm/highlevel/types/media/thumbnail.js +10 -8
  353. package/esm/highlevel/types/media/thumbnail.js.map +1 -1
  354. package/esm/highlevel/types/media/venue.js +5 -4
  355. package/esm/highlevel/types/media/video.js +5 -4
  356. package/esm/highlevel/types/media/voice.js +5 -4
  357. package/esm/highlevel/types/media/web-page.js +5 -4
  358. package/esm/highlevel/types/messages/dialog.js +5 -4
  359. package/esm/highlevel/types/messages/draft-message.js +5 -4
  360. package/esm/highlevel/types/messages/message-entity.js +5 -4
  361. package/esm/highlevel/types/messages/message-forward.js +5 -4
  362. package/esm/highlevel/types/messages/message-reactions.js +5 -4
  363. package/esm/highlevel/types/messages/message-replies.js +5 -4
  364. package/esm/highlevel/types/messages/message.d.ts +1 -1
  365. package/esm/highlevel/types/messages/message.js +6 -5
  366. package/esm/highlevel/types/messages/message.js.map +1 -1
  367. package/esm/highlevel/types/messages/replied-message.js +5 -4
  368. package/esm/highlevel/types/misc/index.d.ts +1 -1
  369. package/esm/highlevel/types/misc/index.js +1 -1
  370. package/esm/highlevel/types/misc/index.js.map +1 -1
  371. package/esm/highlevel/types/misc/input-privacy-rule/allow.d.ts +22 -0
  372. package/esm/highlevel/types/misc/input-privacy-rule/allow.js +31 -0
  373. package/esm/highlevel/types/misc/input-privacy-rule/allow.js.map +1 -0
  374. package/esm/highlevel/types/misc/input-privacy-rule/bundle.d.ts +3 -0
  375. package/esm/highlevel/types/misc/input-privacy-rule/bundle.js +4 -0
  376. package/esm/highlevel/types/misc/input-privacy-rule/bundle.js.map +1 -0
  377. package/esm/highlevel/types/misc/input-privacy-rule/disallow.d.ts +20 -0
  378. package/esm/highlevel/types/misc/input-privacy-rule/disallow.js +27 -0
  379. package/esm/highlevel/types/misc/input-privacy-rule/disallow.js.map +1 -0
  380. package/esm/highlevel/types/misc/input-privacy-rule/index.d.ts +3 -0
  381. package/esm/highlevel/types/misc/input-privacy-rule/index.js +4 -0
  382. package/esm/highlevel/types/misc/input-privacy-rule/index.js.map +1 -0
  383. package/esm/highlevel/types/misc/input-privacy-rule/types.d.ts +11 -0
  384. package/esm/highlevel/types/misc/input-privacy-rule/types.js +2 -0
  385. package/esm/highlevel/types/misc/input-privacy-rule/types.js.map +1 -0
  386. package/esm/highlevel/types/misc/sticker-set.js +5 -4
  387. package/esm/highlevel/types/misc/takeout-session.js +4 -3
  388. package/esm/highlevel/types/peers/chat-colors.js +4 -3
  389. package/esm/highlevel/types/peers/chat-event/index.js +5 -4
  390. package/esm/highlevel/types/peers/chat-invite-link-member.js +5 -4
  391. package/esm/highlevel/types/peers/chat-invite-link.js +5 -4
  392. package/esm/highlevel/types/peers/chat-location.js +5 -4
  393. package/esm/highlevel/types/peers/chat-member.js +5 -4
  394. package/esm/highlevel/types/peers/chat-permissions.js +4 -3
  395. package/esm/highlevel/types/peers/chat-photo.js +12 -9
  396. package/esm/highlevel/types/peers/chat-photo.js.map +1 -1
  397. package/esm/highlevel/types/peers/chat-preview.js +5 -4
  398. package/esm/highlevel/types/peers/chat.js +5 -4
  399. package/esm/highlevel/types/peers/forum-topic.js +5 -4
  400. package/esm/highlevel/types/peers/user.js +5 -4
  401. package/esm/highlevel/types/premium/boost-slot.js +5 -4
  402. package/esm/highlevel/types/premium/boost-stats.js +4 -3
  403. package/esm/highlevel/types/premium/boost.js +5 -4
  404. package/esm/highlevel/types/reactions/emoji-status.js +4 -3
  405. package/esm/highlevel/types/reactions/peer-reaction.js +5 -4
  406. package/esm/highlevel/types/reactions/reaction-count.js +4 -3
  407. package/esm/highlevel/types/stories/all-stories.js +5 -4
  408. package/esm/highlevel/types/stories/interactive/channel-post.js +5 -4
  409. package/esm/highlevel/types/stories/interactive/location.js +5 -4
  410. package/esm/highlevel/types/stories/interactive/reaction.js +4 -3
  411. package/esm/highlevel/types/stories/interactive/venue.js +5 -4
  412. package/esm/highlevel/types/stories/peer-stories.js +5 -4
  413. package/esm/highlevel/types/stories/stealth-mode.js +4 -3
  414. package/esm/highlevel/types/stories/story-interactions.js +5 -4
  415. package/esm/highlevel/types/stories/story-viewer.js +9 -7
  416. package/esm/highlevel/types/stories/story.js +5 -4
  417. package/esm/highlevel/types/updates/bot-chat-join-request.js +5 -4
  418. package/esm/highlevel/types/updates/bot-reaction.js +9 -7
  419. package/esm/highlevel/types/updates/bot-stopped.js +5 -4
  420. package/esm/highlevel/types/updates/callback-query.js +11 -9
  421. package/esm/highlevel/types/updates/callback-query.js.map +1 -1
  422. package/esm/highlevel/types/updates/chat-join-request.js +5 -4
  423. package/esm/highlevel/types/updates/chat-member-update.js +5 -4
  424. package/esm/highlevel/types/updates/chosen-inline-result.js +5 -4
  425. package/esm/highlevel/types/updates/delete-message-update.js +4 -3
  426. package/esm/highlevel/types/updates/delete-story-update.js +5 -4
  427. package/esm/highlevel/types/updates/history-read-update.js +4 -3
  428. package/esm/highlevel/types/updates/inline-query.js +5 -4
  429. package/esm/highlevel/types/updates/poll-update.js +5 -4
  430. package/esm/highlevel/types/updates/poll-vote.js +5 -4
  431. package/esm/highlevel/types/updates/pre-checkout-query.js +5 -4
  432. package/esm/highlevel/types/updates/story-update.js +5 -4
  433. package/esm/highlevel/types/updates/user-status-update.js +5 -4
  434. package/esm/highlevel/types/updates/user-status-update.js.map +1 -1
  435. package/esm/highlevel/types/updates/user-typing-update.js +4 -3
  436. package/esm/highlevel/updates/manager.d.ts +5 -3
  437. package/esm/highlevel/updates/manager.js +81 -67
  438. package/esm/highlevel/updates/manager.js.map +1 -1
  439. package/esm/highlevel/utils/convert-file-id.js +7 -6
  440. package/esm/highlevel/utils/convert-file-id.js.map +1 -1
  441. package/esm/highlevel/utils/file-utils.js +8 -4
  442. package/esm/highlevel/utils/file-utils.js.map +1 -1
  443. package/esm/highlevel/utils/inline-utils.js +4 -3
  444. package/esm/highlevel/utils/inline-utils.js.map +1 -1
  445. package/esm/highlevel/utils/inspectable.d.ts +1 -1
  446. package/esm/highlevel/utils/inspectable.js +3 -2
  447. package/esm/highlevel/utils/inspectable.js.map +1 -1
  448. package/esm/highlevel/utils/memoize.d.ts +1 -1
  449. package/esm/highlevel/utils/memoize.js +1 -0
  450. package/esm/highlevel/utils/memoize.js.map +1 -1
  451. package/esm/highlevel/utils/stream-utils.d.ts +0 -2
  452. package/esm/highlevel/utils/stream-utils.js +0 -26
  453. package/esm/highlevel/utils/stream-utils.js.map +1 -1
  454. package/esm/highlevel/utils/string-session.js +4 -3
  455. package/esm/highlevel/utils/string-session.js.map +1 -1
  456. package/esm/highlevel/worker/index.d.ts +3 -0
  457. package/esm/highlevel/worker/index.js +4 -0
  458. package/esm/highlevel/worker/index.js.map +1 -0
  459. package/esm/highlevel/worker/port.d.ts +6 -3
  460. package/esm/highlevel/worker/port.js +8 -2
  461. package/esm/highlevel/worker/port.js.map +1 -1
  462. package/esm/highlevel/worker/protocol.d.ts +5 -1
  463. package/esm/highlevel/worker/protocol.js.map +1 -1
  464. package/esm/highlevel/worker/worker.d.ts +11 -4
  465. package/esm/highlevel/worker/worker.js +51 -47
  466. package/esm/highlevel/worker/worker.js.map +1 -1
  467. package/esm/network/client.d.ts +4 -4
  468. package/esm/network/client.js +4 -2
  469. package/esm/network/client.js.map +1 -1
  470. package/esm/network/multi-session-connection.d.ts +1 -0
  471. package/esm/network/multi-session-connection.js +6 -0
  472. package/esm/network/multi-session-connection.js.map +1 -1
  473. package/esm/network/network-manager.d.ts +5 -1
  474. package/esm/network/network-manager.js +24 -15
  475. package/esm/network/network-manager.js.map +1 -1
  476. package/esm/network/persistent-connection.d.ts +3 -0
  477. package/esm/network/persistent-connection.js +23 -1
  478. package/esm/network/persistent-connection.js.map +1 -1
  479. package/esm/network/session-connection.d.ts +2 -0
  480. package/esm/network/session-connection.js +18 -4
  481. package/esm/network/session-connection.js.map +1 -1
  482. package/esm/network/transports/index.d.ts +0 -3
  483. package/esm/network/transports/index.js +0 -3
  484. package/esm/network/transports/index.js.map +1 -1
  485. package/esm/platform.d.ts +18 -0
  486. package/esm/platform.js +31 -0
  487. package/esm/platform.js.map +1 -0
  488. package/esm/storage/index.d.ts +1 -2
  489. package/esm/storage/index.js +1 -2
  490. package/esm/storage/index.js.map +1 -1
  491. package/{cjs/storage/providers → esm/storage}/memory/driver.d.ts +1 -1
  492. package/esm/storage/memory/driver.js.map +1 -0
  493. package/{cjs/storage/providers → esm/storage}/memory/index.d.ts +2 -2
  494. package/esm/storage/memory/index.js.map +1 -0
  495. package/esm/storage/{providers/memory → memory}/repository/auth-keys.d.ts +1 -1
  496. package/esm/storage/memory/repository/auth-keys.js.map +1 -0
  497. package/{cjs/storage/providers → esm/storage}/memory/repository/kv.d.ts +1 -1
  498. package/esm/storage/memory/repository/kv.js.map +1 -0
  499. package/{cjs/storage/providers → esm/storage}/memory/repository/peers.d.ts +1 -1
  500. package/esm/storage/memory/repository/peers.js.map +1 -0
  501. package/{cjs/storage/providers → esm/storage}/memory/repository/ref-messages.d.ts +1 -1
  502. package/esm/storage/memory/repository/ref-messages.js.map +1 -0
  503. package/esm/storage/storage.js +3 -2
  504. package/esm/storage/storage.js.map +1 -1
  505. package/esm/utils/binary/asn1-parser.js +3 -3
  506. package/esm/utils/binary/asn1-parser.js.map +1 -1
  507. package/esm/utils/crypto/abstract.d.ts +0 -1
  508. package/esm/utils/crypto/abstract.js.map +1 -1
  509. package/esm/utils/crypto/index.d.ts +0 -2
  510. package/esm/utils/crypto/index.js +0 -2
  511. package/esm/utils/crypto/index.js.map +1 -1
  512. package/esm/utils/crypto/keys.js +6 -4
  513. package/esm/utils/crypto/keys.js.map +1 -1
  514. package/esm/utils/crypto/password.js +3 -3
  515. package/esm/utils/crypto/password.js.map +1 -1
  516. package/esm/utils/dcs.d.ts +4 -0
  517. package/esm/utils/dcs.js +0 -4
  518. package/esm/utils/dcs.js.map +1 -1
  519. package/esm/utils/{platform/error-reporting.d.ts → error-reporting.d.ts} +1 -1
  520. package/esm/utils/error-reporting.js.map +1 -0
  521. package/esm/utils/index.d.ts +4 -1
  522. package/esm/utils/index.js +6 -1
  523. package/esm/utils/index.js.map +1 -1
  524. package/esm/utils/links/common.js +1 -1
  525. package/esm/utils/links/common.js.map +1 -1
  526. package/esm/utils/logger.d.ts +1 -0
  527. package/esm/utils/logger.js +9 -22
  528. package/esm/utils/logger.js.map +1 -1
  529. package/package.json +24 -52
  530. package/cjs/highlevel/base.test.js +0 -14
  531. package/cjs/highlevel/base.test.js.map +0 -1
  532. package/cjs/highlevel/methods/files/_platform.js +0 -33
  533. package/cjs/highlevel/methods/files/_platform.js.map +0 -1
  534. package/cjs/highlevel/methods/files/_platform.web.d.ts +0 -1
  535. package/cjs/highlevel/methods/files/_platform.web.js +0 -26
  536. package/cjs/highlevel/methods/files/_platform.web.js.map +0 -1
  537. package/cjs/highlevel/methods/files/download-file.web.d.ts +0 -1
  538. package/cjs/highlevel/methods/files/download-file.web.js +0 -9
  539. package/cjs/highlevel/methods/files/download-file.web.js.map +0 -1
  540. package/cjs/highlevel/methods/messages/send-text.test.d.ts +0 -1
  541. package/cjs/highlevel/methods/messages/send-text.test.js +0 -140
  542. package/cjs/highlevel/methods/messages/send-text.test.js.map +0 -1
  543. package/cjs/highlevel/methods/users/get-users.test.d.ts +0 -1
  544. package/cjs/highlevel/methods/users/get-users.test.js +0 -33
  545. package/cjs/highlevel/methods/users/get-users.test.js.map +0 -1
  546. package/cjs/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
  547. package/cjs/highlevel/methods/users/resolve-peer.test.js +0 -307
  548. package/cjs/highlevel/methods/users/resolve-peer.test.js.map +0 -1
  549. package/cjs/highlevel/types/bots/command-scope.d.ts +0 -63
  550. package/cjs/highlevel/types/bots/command-scope.js +0 -87
  551. package/cjs/highlevel/types/bots/command-scope.js.map +0 -1
  552. package/cjs/highlevel/types/bots/input/index.d.ts +0 -2
  553. package/cjs/highlevel/types/bots/input/index.js.map +0 -1
  554. package/cjs/highlevel/types/bots/input/input-inline-message.js +0 -179
  555. package/cjs/highlevel/types/bots/input/input-inline-message.js.map +0 -1
  556. package/cjs/highlevel/types/bots/input/input-inline-result.js +0 -490
  557. package/cjs/highlevel/types/bots/input/input-inline-result.js.map +0 -1
  558. package/cjs/highlevel/types/bots/keyboard-builder.js.map +0 -1
  559. package/cjs/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
  560. package/cjs/highlevel/types/bots/keyboard-builder.test.js +0 -162
  561. package/cjs/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
  562. package/cjs/highlevel/types/bots/keyboards.d.ts +0 -239
  563. package/cjs/highlevel/types/bots/keyboards.js +0 -380
  564. package/cjs/highlevel/types/bots/keyboards.js.map +0 -1
  565. package/cjs/highlevel/types/bots/keyboards.test.d.ts +0 -1
  566. package/cjs/highlevel/types/bots/keyboards.test.js +0 -146
  567. package/cjs/highlevel/types/bots/keyboards.test.js.map +0 -1
  568. package/cjs/highlevel/types/media/input-media.js +0 -254
  569. package/cjs/highlevel/types/media/input-media.js.map +0 -1
  570. package/cjs/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
  571. package/cjs/highlevel/types/misc/input-privacy-rule.js +0 -85
  572. package/cjs/highlevel/types/misc/input-privacy-rule.js.map +0 -1
  573. package/cjs/highlevel/types/peers/peers-index.test.d.ts +0 -1
  574. package/cjs/highlevel/types/peers/peers-index.test.js +0 -71
  575. package/cjs/highlevel/types/peers/peers-index.test.js.map +0 -1
  576. package/cjs/highlevel/types/peers/user.test.d.ts +0 -1
  577. package/cjs/highlevel/types/peers/user.test.js +0 -176
  578. package/cjs/highlevel/types/peers/user.test.js.map +0 -1
  579. package/cjs/highlevel/utils/file-type.test.d.ts +0 -1
  580. package/cjs/highlevel/utils/file-type.test.js +0 -64
  581. package/cjs/highlevel/utils/file-type.test.js.map +0 -1
  582. package/cjs/highlevel/utils/file-utils.test.d.ts +0 -1
  583. package/cjs/highlevel/utils/file-utils.test.js +0 -126
  584. package/cjs/highlevel/utils/file-utils.test.js.map +0 -1
  585. package/cjs/highlevel/utils/inline-utils.test.d.ts +0 -1
  586. package/cjs/highlevel/utils/inline-utils.test.js +0 -47
  587. package/cjs/highlevel/utils/inline-utils.test.js.map +0 -1
  588. package/cjs/highlevel/utils/inspectable.test.d.ts +0 -1
  589. package/cjs/highlevel/utils/inspectable.test.js +0 -97
  590. package/cjs/highlevel/utils/inspectable.test.js.map +0 -1
  591. package/cjs/highlevel/utils/memoize.test.d.ts +0 -1
  592. package/cjs/highlevel/utils/memoize.test.js +0 -60
  593. package/cjs/highlevel/utils/memoize.test.js.map +0 -1
  594. package/cjs/highlevel/utils/peer-utils.test.d.ts +0 -1
  595. package/cjs/highlevel/utils/peer-utils.test.js +0 -109
  596. package/cjs/highlevel/utils/peer-utils.test.js.map +0 -1
  597. package/cjs/highlevel/utils/platform/storage.d.ts +0 -1
  598. package/cjs/highlevel/utils/platform/storage.js +0 -10
  599. package/cjs/highlevel/utils/platform/storage.js.map +0 -1
  600. package/cjs/highlevel/utils/platform/storage.web.d.ts +0 -1
  601. package/cjs/highlevel/utils/platform/storage.web.js +0 -14
  602. package/cjs/highlevel/utils/platform/storage.web.js.map +0 -1
  603. package/cjs/highlevel/utils/query-batcher.test.d.ts +0 -1
  604. package/cjs/highlevel/utils/query-batcher.test.js +0 -502
  605. package/cjs/highlevel/utils/query-batcher.test.js.map +0 -1
  606. package/cjs/highlevel/utils/stream-utils.test.d.ts +0 -1
  607. package/cjs/highlevel/utils/stream-utils.test.js +0 -98
  608. package/cjs/highlevel/utils/stream-utils.test.js.map +0 -1
  609. package/cjs/highlevel/utils/string-session.test.d.ts +0 -1
  610. package/cjs/highlevel/utils/string-session.test.js +0 -198
  611. package/cjs/highlevel/utils/string-session.test.js.map +0 -1
  612. package/cjs/highlevel/utils/voice-utils.test.d.ts +0 -1
  613. package/cjs/highlevel/utils/voice-utils.test.js +0 -28
  614. package/cjs/highlevel/utils/voice-utils.test.js.map +0 -1
  615. package/cjs/highlevel/worker/platform/connect.d.ts +0 -2
  616. package/cjs/highlevel/worker/platform/connect.js +0 -19
  617. package/cjs/highlevel/worker/platform/connect.js.map +0 -1
  618. package/cjs/highlevel/worker/platform/connect.web.d.ts +0 -2
  619. package/cjs/highlevel/worker/platform/connect.web.js +0 -51
  620. package/cjs/highlevel/worker/platform/connect.web.js.map +0 -1
  621. package/cjs/highlevel/worker/platform/register.d.ts +0 -2
  622. package/cjs/highlevel/worker/platform/register.js +0 -20
  623. package/cjs/highlevel/worker/platform/register.js.map +0 -1
  624. package/cjs/highlevel/worker/platform/register.web.d.ts +0 -2
  625. package/cjs/highlevel/worker/platform/register.web.js +0 -64
  626. package/cjs/highlevel/worker/platform/register.web.js.map +0 -1
  627. package/cjs/network/auth-key.test.d.ts +0 -1
  628. package/cjs/network/auth-key.test.js +0 -111
  629. package/cjs/network/auth-key.test.js.map +0 -1
  630. package/cjs/network/config-manager.test.d.ts +0 -1
  631. package/cjs/network/config-manager.test.js +0 -174
  632. package/cjs/network/config-manager.test.js.map +0 -1
  633. package/cjs/network/persistent-connection.test.d.ts +0 -1
  634. package/cjs/network/persistent-connection.test.js +0 -157
  635. package/cjs/network/persistent-connection.test.js.map +0 -1
  636. package/cjs/network/transports/intermediate.test.d.ts +0 -1
  637. package/cjs/network/transports/intermediate.test.js +0 -84
  638. package/cjs/network/transports/intermediate.test.js.map +0 -1
  639. package/cjs/network/transports/obfuscated.test.d.ts +0 -1
  640. package/cjs/network/transports/obfuscated.test.js +0 -131
  641. package/cjs/network/transports/obfuscated.test.js.map +0 -1
  642. package/cjs/network/transports/tcp.d.ts +0 -32
  643. package/cjs/network/transports/tcp.js +0 -130
  644. package/cjs/network/transports/tcp.js.map +0 -1
  645. package/cjs/network/transports/tcp.test.d.ts +0 -1
  646. package/cjs/network/transports/tcp.test.js +0 -103
  647. package/cjs/network/transports/tcp.test.js.map +0 -1
  648. package/cjs/network/transports/websocket.d.ts +0 -46
  649. package/cjs/network/transports/websocket.js +0 -124
  650. package/cjs/network/transports/websocket.js.map +0 -1
  651. package/cjs/network/transports/websocket.test.d.ts +0 -1
  652. package/cjs/network/transports/websocket.test.js +0 -91
  653. package/cjs/network/transports/websocket.test.js.map +0 -1
  654. package/cjs/storage/providers/idb/driver.d.ts +0 -18
  655. package/cjs/storage/providers/idb/driver.js +0 -138
  656. package/cjs/storage/providers/idb/driver.js.map +0 -1
  657. package/cjs/storage/providers/idb/idb.test.d.ts +0 -1
  658. package/cjs/storage/providers/idb/idb.test.js +0 -29
  659. package/cjs/storage/providers/idb/idb.test.js.map +0 -1
  660. package/cjs/storage/providers/idb/index.d.ts +0 -22
  661. package/cjs/storage/providers/idb/index.js +0 -28
  662. package/cjs/storage/providers/idb/index.js.map +0 -1
  663. package/cjs/storage/providers/idb/repository/auth-keys.d.ts +0 -14
  664. package/cjs/storage/providers/idb/repository/auth-keys.js +0 -70
  665. package/cjs/storage/providers/idb/repository/auth-keys.js.map +0 -1
  666. package/cjs/storage/providers/idb/repository/kv.d.ts +0 -11
  667. package/cjs/storage/providers/idb/repository/kv.js +0 -34
  668. package/cjs/storage/providers/idb/repository/kv.js.map +0 -1
  669. package/cjs/storage/providers/idb/repository/peers.d.ts +0 -12
  670. package/cjs/storage/providers/idb/repository/peers.js +0 -38
  671. package/cjs/storage/providers/idb/repository/peers.js.map +0 -1
  672. package/cjs/storage/providers/idb/repository/ref-messages.d.ts +0 -12
  673. package/cjs/storage/providers/idb/repository/ref-messages.js +0 -57
  674. package/cjs/storage/providers/idb/repository/ref-messages.js.map +0 -1
  675. package/cjs/storage/providers/idb/utils.d.ts +0 -3
  676. package/cjs/storage/providers/idb/utils.js +0 -27
  677. package/cjs/storage/providers/idb/utils.js.map +0 -1
  678. package/cjs/storage/providers/memory/driver.js.map +0 -1
  679. package/cjs/storage/providers/memory/index.js.map +0 -1
  680. package/cjs/storage/providers/memory/memory.test.d.ts +0 -1
  681. package/cjs/storage/providers/memory/memory.test.js +0 -13
  682. package/cjs/storage/providers/memory/memory.test.js.map +0 -1
  683. package/cjs/storage/providers/memory/repository/auth-keys.js.map +0 -1
  684. package/cjs/storage/providers/memory/repository/kv.js.map +0 -1
  685. package/cjs/storage/providers/memory/repository/peers.js.map +0 -1
  686. package/cjs/storage/providers/memory/repository/ref-messages.js.map +0 -1
  687. package/cjs/storage/service/auth-keys.test.d.ts +0 -1
  688. package/cjs/storage/service/auth-keys.test.js +0 -22
  689. package/cjs/storage/service/auth-keys.test.js.map +0 -1
  690. package/cjs/storage/service/updates.test.d.ts +0 -1
  691. package/cjs/storage/service/updates.test.js +0 -60
  692. package/cjs/storage/service/updates.test.js.map +0 -1
  693. package/cjs/storage/service/utils.test-utils.d.ts +0 -2
  694. package/cjs/storage/service/utils.test-utils.js +0 -19
  695. package/cjs/storage/service/utils.test-utils.js.map +0 -1
  696. package/cjs/utils/async-lock.test.d.ts +0 -1
  697. package/cjs/utils/async-lock.test.js +0 -25
  698. package/cjs/utils/async-lock.test.js.map +0 -1
  699. package/cjs/utils/bigint-utils.test.d.ts +0 -1
  700. package/cjs/utils/bigint-utils.test.js +0 -150
  701. package/cjs/utils/bigint-utils.test.js.map +0 -1
  702. package/cjs/utils/buffer-utils.test.d.ts +0 -1
  703. package/cjs/utils/buffer-utils.test.js +0 -69
  704. package/cjs/utils/buffer-utils.test.js.map +0 -1
  705. package/cjs/utils/condition-variable.test.d.ts +0 -1
  706. package/cjs/utils/condition-variable.test.js +0 -27
  707. package/cjs/utils/condition-variable.test.js.map +0 -1
  708. package/cjs/utils/controllable-promise.test.d.ts +0 -1
  709. package/cjs/utils/controllable-promise.test.js +0 -17
  710. package/cjs/utils/controllable-promise.test.js.map +0 -1
  711. package/cjs/utils/crypto/factorization.test.d.ts +0 -1
  712. package/cjs/utils/crypto/factorization.test.js +0 -19
  713. package/cjs/utils/crypto/factorization.test.js.map +0 -1
  714. package/cjs/utils/crypto/keys.test.d.ts +0 -1
  715. package/cjs/utils/crypto/keys.test.js +0 -40
  716. package/cjs/utils/crypto/keys.test.js.map +0 -1
  717. package/cjs/utils/crypto/miller-rabin.test.d.ts +0 -1
  718. package/cjs/utils/crypto/miller-rabin.test.js +0 -60
  719. package/cjs/utils/crypto/miller-rabin.test.js.map +0 -1
  720. package/cjs/utils/crypto/mtproto.test.d.ts +0 -1
  721. package/cjs/utils/crypto/mtproto.test.js +0 -50
  722. package/cjs/utils/crypto/mtproto.test.js.map +0 -1
  723. package/cjs/utils/crypto/node.d.ts +0 -21
  724. package/cjs/utils/crypto/node.js +0 -74
  725. package/cjs/utils/crypto/node.js.map +0 -1
  726. package/cjs/utils/crypto/node.test.d.ts +0 -1
  727. package/cjs/utils/crypto/node.test.js +0 -14
  728. package/cjs/utils/crypto/node.test.js.map +0 -1
  729. package/cjs/utils/crypto/password.test.d.ts +0 -1
  730. package/cjs/utils/crypto/password.test.js +0 -95
  731. package/cjs/utils/crypto/password.test.js.map +0 -1
  732. package/cjs/utils/crypto/utils.test.d.ts +0 -1
  733. package/cjs/utils/crypto/utils.test.js +0 -49
  734. package/cjs/utils/crypto/utils.test.js.map +0 -1
  735. package/cjs/utils/crypto/wasm.d.ts +0 -22
  736. package/cjs/utils/crypto/wasm.js +0 -41
  737. package/cjs/utils/crypto/wasm.js.map +0 -1
  738. package/cjs/utils/crypto/web.d.ts +0 -11
  739. package/cjs/utils/crypto/web.js +0 -40
  740. package/cjs/utils/crypto/web.js.map +0 -1
  741. package/cjs/utils/crypto/web.test.d.ts +0 -1
  742. package/cjs/utils/crypto/web.test.js +0 -17
  743. package/cjs/utils/crypto/web.test.js.map +0 -1
  744. package/cjs/utils/deque.test.d.ts +0 -1
  745. package/cjs/utils/deque.test.js +0 -128
  746. package/cjs/utils/deque.test.js.map +0 -1
  747. package/cjs/utils/function-utils.test.d.ts +0 -1
  748. package/cjs/utils/function-utils.test.js +0 -23
  749. package/cjs/utils/function-utils.test.js.map +0 -1
  750. package/cjs/utils/linked-list.test.d.ts +0 -1
  751. package/cjs/utils/linked-list.test.js +0 -36
  752. package/cjs/utils/linked-list.test.js.map +0 -1
  753. package/cjs/utils/links/bots.test.d.ts +0 -1
  754. package/cjs/utils/links/bots.test.js +0 -152
  755. package/cjs/utils/links/bots.test.js.map +0 -1
  756. package/cjs/utils/links/chat.test.d.ts +0 -1
  757. package/cjs/utils/links/chat.test.js +0 -84
  758. package/cjs/utils/links/chat.test.js.map +0 -1
  759. package/cjs/utils/links/misc.test.d.ts +0 -1
  760. package/cjs/utils/links/misc.test.js +0 -153
  761. package/cjs/utils/links/misc.test.js.map +0 -1
  762. package/cjs/utils/links/proxy.test.d.ts +0 -1
  763. package/cjs/utils/links/proxy.test.js +0 -74
  764. package/cjs/utils/links/proxy.test.js.map +0 -1
  765. package/cjs/utils/links/user.test.d.ts +0 -1
  766. package/cjs/utils/links/user.test.js +0 -63
  767. package/cjs/utils/links/user.test.js.map +0 -1
  768. package/cjs/utils/logger.test.d.ts +0 -1
  769. package/cjs/utils/logger.test.js +0 -139
  770. package/cjs/utils/logger.test.js.map +0 -1
  771. package/cjs/utils/long-utils.test.d.ts +0 -1
  772. package/cjs/utils/long-utils.test.js +0 -158
  773. package/cjs/utils/long-utils.test.js.map +0 -1
  774. package/cjs/utils/lru-map.test.d.ts +0 -1
  775. package/cjs/utils/lru-map.test.js +0 -96
  776. package/cjs/utils/lru-map.test.js.map +0 -1
  777. package/cjs/utils/lru-set.test.d.ts +0 -1
  778. package/cjs/utils/lru-set.test.js +0 -77
  779. package/cjs/utils/lru-set.test.js.map +0 -1
  780. package/cjs/utils/peer-utils.test.d.ts +0 -1
  781. package/cjs/utils/peer-utils.test.js +0 -110
  782. package/cjs/utils/peer-utils.test.js.map +0 -1
  783. package/cjs/utils/platform/crypto.d.ts +0 -1
  784. package/cjs/utils/platform/crypto.js +0 -8
  785. package/cjs/utils/platform/crypto.js.map +0 -1
  786. package/cjs/utils/platform/crypto.web.d.ts +0 -1
  787. package/cjs/utils/platform/crypto.web.js +0 -14
  788. package/cjs/utils/platform/crypto.web.js.map +0 -1
  789. package/cjs/utils/platform/error-reporting.js.map +0 -1
  790. package/cjs/utils/platform/exit-hook.d.ts +0 -1
  791. package/cjs/utils/platform/exit-hook.js +0 -45
  792. package/cjs/utils/platform/exit-hook.js.map +0 -1
  793. package/cjs/utils/platform/exit-hook.web.d.ts +0 -1
  794. package/cjs/utils/platform/exit-hook.web.js +0 -21
  795. package/cjs/utils/platform/exit-hook.web.js.map +0 -1
  796. package/cjs/utils/platform/logging.d.ts +0 -1
  797. package/cjs/utils/platform/logging.js +0 -34
  798. package/cjs/utils/platform/logging.js.map +0 -1
  799. package/cjs/utils/platform/logging.web.d.ts +0 -1
  800. package/cjs/utils/platform/logging.web.js +0 -35
  801. package/cjs/utils/platform/logging.web.js.map +0 -1
  802. package/cjs/utils/platform/transport.d.ts +0 -1
  803. package/cjs/utils/platform/transport.js +0 -8
  804. package/cjs/utils/platform/transport.js.map +0 -1
  805. package/cjs/utils/platform/transport.web.d.ts +0 -1
  806. package/cjs/utils/platform/transport.web.js +0 -15
  807. package/cjs/utils/platform/transport.web.js.map +0 -1
  808. package/cjs/utils/sorted-array.test.d.ts +0 -1
  809. package/cjs/utils/sorted-array.test.js +0 -66
  810. package/cjs/utils/sorted-array.test.js.map +0 -1
  811. package/cjs/utils/tl-json.test.d.ts +0 -1
  812. package/cjs/utils/tl-json.test.js +0 -83
  813. package/cjs/utils/tl-json.test.js.map +0 -1
  814. package/cjs/utils/type-assertions.test.d.ts +0 -1
  815. package/cjs/utils/type-assertions.test.js +0 -67
  816. package/cjs/utils/type-assertions.test.js.map +0 -1
  817. package/esm/highlevel/base.test.d.ts +0 -1
  818. package/esm/highlevel/base.test.js +0 -12
  819. package/esm/highlevel/base.test.js.map +0 -1
  820. package/esm/highlevel/methods/files/_platform.d.ts +0 -1
  821. package/esm/highlevel/methods/files/_platform.js +0 -26
  822. package/esm/highlevel/methods/files/_platform.js.map +0 -1
  823. package/esm/highlevel/methods/files/_platform.web.d.ts +0 -1
  824. package/esm/highlevel/methods/files/_platform.web.js +0 -19
  825. package/esm/highlevel/methods/files/_platform.web.js.map +0 -1
  826. package/esm/highlevel/methods/files/download-file.web.d.ts +0 -1
  827. package/esm/highlevel/methods/files/download-file.web.js +0 -5
  828. package/esm/highlevel/methods/files/download-file.web.js.map +0 -1
  829. package/esm/highlevel/methods/messages/send-text.test.d.ts +0 -1
  830. package/esm/highlevel/methods/messages/send-text.test.js +0 -135
  831. package/esm/highlevel/methods/messages/send-text.test.js.map +0 -1
  832. package/esm/highlevel/methods/users/get-users.test.d.ts +0 -1
  833. package/esm/highlevel/methods/users/get-users.test.js +0 -28
  834. package/esm/highlevel/methods/users/get-users.test.js.map +0 -1
  835. package/esm/highlevel/methods/users/resolve-peer.test.d.ts +0 -1
  836. package/esm/highlevel/methods/users/resolve-peer.test.js +0 -302
  837. package/esm/highlevel/methods/users/resolve-peer.test.js.map +0 -1
  838. package/esm/highlevel/types/bots/command-scope.d.ts +0 -63
  839. package/esm/highlevel/types/bots/command-scope.js +0 -84
  840. package/esm/highlevel/types/bots/command-scope.js.map +0 -1
  841. package/esm/highlevel/types/bots/input/index.d.ts +0 -2
  842. package/esm/highlevel/types/bots/input/index.js +0 -3
  843. package/esm/highlevel/types/bots/input/index.js.map +0 -1
  844. package/esm/highlevel/types/bots/input/input-inline-message.js +0 -176
  845. package/esm/highlevel/types/bots/input/input-inline-message.js.map +0 -1
  846. package/esm/highlevel/types/bots/input/input-inline-result.js +0 -487
  847. package/esm/highlevel/types/bots/input/input-inline-result.js.map +0 -1
  848. package/esm/highlevel/types/bots/keyboard-builder.js.map +0 -1
  849. package/esm/highlevel/types/bots/keyboard-builder.test.d.ts +0 -1
  850. package/esm/highlevel/types/bots/keyboard-builder.test.js +0 -160
  851. package/esm/highlevel/types/bots/keyboard-builder.test.js.map +0 -1
  852. package/esm/highlevel/types/bots/keyboards.d.ts +0 -239
  853. package/esm/highlevel/types/bots/keyboards.js +0 -377
  854. package/esm/highlevel/types/bots/keyboards.js.map +0 -1
  855. package/esm/highlevel/types/bots/keyboards.test.d.ts +0 -1
  856. package/esm/highlevel/types/bots/keyboards.test.js +0 -144
  857. package/esm/highlevel/types/bots/keyboards.test.js.map +0 -1
  858. package/esm/highlevel/types/media/input-media.js +0 -251
  859. package/esm/highlevel/types/media/input-media.js.map +0 -1
  860. package/esm/highlevel/types/misc/input-privacy-rule.d.ts +0 -63
  861. package/esm/highlevel/types/misc/input-privacy-rule.js +0 -82
  862. package/esm/highlevel/types/misc/input-privacy-rule.js.map +0 -1
  863. package/esm/highlevel/types/peers/peers-index.test.d.ts +0 -1
  864. package/esm/highlevel/types/peers/peers-index.test.js +0 -69
  865. package/esm/highlevel/types/peers/peers-index.test.js.map +0 -1
  866. package/esm/highlevel/types/peers/user.test.d.ts +0 -1
  867. package/esm/highlevel/types/peers/user.test.js +0 -171
  868. package/esm/highlevel/types/peers/user.test.js.map +0 -1
  869. package/esm/highlevel/utils/file-type.test.d.ts +0 -1
  870. package/esm/highlevel/utils/file-type.test.js +0 -62
  871. package/esm/highlevel/utils/file-type.test.js.map +0 -1
  872. package/esm/highlevel/utils/file-utils.test.d.ts +0 -1
  873. package/esm/highlevel/utils/file-utils.test.js +0 -124
  874. package/esm/highlevel/utils/file-utils.test.js.map +0 -1
  875. package/esm/highlevel/utils/inline-utils.test.d.ts +0 -1
  876. package/esm/highlevel/utils/inline-utils.test.js +0 -42
  877. package/esm/highlevel/utils/inline-utils.test.js.map +0 -1
  878. package/esm/highlevel/utils/inspectable.test.d.ts +0 -1
  879. package/esm/highlevel/utils/inspectable.test.js +0 -95
  880. package/esm/highlevel/utils/inspectable.test.js.map +0 -1
  881. package/esm/highlevel/utils/memoize.test.d.ts +0 -1
  882. package/esm/highlevel/utils/memoize.test.js +0 -58
  883. package/esm/highlevel/utils/memoize.test.js.map +0 -1
  884. package/esm/highlevel/utils/peer-utils.test.d.ts +0 -1
  885. package/esm/highlevel/utils/peer-utils.test.js +0 -107
  886. package/esm/highlevel/utils/peer-utils.test.js.map +0 -1
  887. package/esm/highlevel/utils/platform/storage.d.ts +0 -1
  888. package/esm/highlevel/utils/platform/storage.js +0 -6
  889. package/esm/highlevel/utils/platform/storage.js.map +0 -1
  890. package/esm/highlevel/utils/platform/storage.web.d.ts +0 -1
  891. package/esm/highlevel/utils/platform/storage.web.js +0 -10
  892. package/esm/highlevel/utils/platform/storage.web.js.map +0 -1
  893. package/esm/highlevel/utils/query-batcher.test.d.ts +0 -1
  894. package/esm/highlevel/utils/query-batcher.test.js +0 -500
  895. package/esm/highlevel/utils/query-batcher.test.js.map +0 -1
  896. package/esm/highlevel/utils/stream-utils.test.d.ts +0 -1
  897. package/esm/highlevel/utils/stream-utils.test.js +0 -96
  898. package/esm/highlevel/utils/stream-utils.test.js.map +0 -1
  899. package/esm/highlevel/utils/string-session.test.d.ts +0 -1
  900. package/esm/highlevel/utils/string-session.test.js +0 -196
  901. package/esm/highlevel/utils/string-session.test.js.map +0 -1
  902. package/esm/highlevel/utils/voice-utils.test.d.ts +0 -1
  903. package/esm/highlevel/utils/voice-utils.test.js +0 -26
  904. package/esm/highlevel/utils/voice-utils.test.js.map +0 -1
  905. package/esm/highlevel/worker/platform/connect.d.ts +0 -2
  906. package/esm/highlevel/worker/platform/connect.js +0 -15
  907. package/esm/highlevel/worker/platform/connect.js.map +0 -1
  908. package/esm/highlevel/worker/platform/connect.web.d.ts +0 -2
  909. package/esm/highlevel/worker/platform/connect.web.js +0 -47
  910. package/esm/highlevel/worker/platform/connect.web.js.map +0 -1
  911. package/esm/highlevel/worker/platform/register.d.ts +0 -2
  912. package/esm/highlevel/worker/platform/register.js +0 -16
  913. package/esm/highlevel/worker/platform/register.js.map +0 -1
  914. package/esm/highlevel/worker/platform/register.web.d.ts +0 -2
  915. package/esm/highlevel/worker/platform/register.web.js +0 -60
  916. package/esm/highlevel/worker/platform/register.web.js.map +0 -1
  917. package/esm/network/auth-key.test.d.ts +0 -1
  918. package/esm/network/auth-key.test.js +0 -106
  919. package/esm/network/auth-key.test.js.map +0 -1
  920. package/esm/network/config-manager.test.d.ts +0 -1
  921. package/esm/network/config-manager.test.js +0 -172
  922. package/esm/network/config-manager.test.js.map +0 -1
  923. package/esm/network/persistent-connection.test.d.ts +0 -1
  924. package/esm/network/persistent-connection.test.js +0 -155
  925. package/esm/network/persistent-connection.test.js.map +0 -1
  926. package/esm/network/transports/intermediate.test.d.ts +0 -1
  927. package/esm/network/transports/intermediate.test.js +0 -82
  928. package/esm/network/transports/intermediate.test.js.map +0 -1
  929. package/esm/network/transports/obfuscated.test.d.ts +0 -1
  930. package/esm/network/transports/obfuscated.test.js +0 -129
  931. package/esm/network/transports/obfuscated.test.js.map +0 -1
  932. package/esm/network/transports/tcp.d.ts +0 -32
  933. package/esm/network/transports/tcp.js +0 -122
  934. package/esm/network/transports/tcp.js.map +0 -1
  935. package/esm/network/transports/tcp.test.d.ts +0 -1
  936. package/esm/network/transports/tcp.test.js +0 -101
  937. package/esm/network/transports/tcp.test.js.map +0 -1
  938. package/esm/network/transports/websocket.d.ts +0 -46
  939. package/esm/network/transports/websocket.js +0 -116
  940. package/esm/network/transports/websocket.js.map +0 -1
  941. package/esm/network/transports/websocket.test.d.ts +0 -1
  942. package/esm/network/transports/websocket.test.js +0 -89
  943. package/esm/network/transports/websocket.test.js.map +0 -1
  944. package/esm/storage/providers/idb/driver.d.ts +0 -18
  945. package/esm/storage/providers/idb/driver.js +0 -134
  946. package/esm/storage/providers/idb/driver.js.map +0 -1
  947. package/esm/storage/providers/idb/idb.test.d.ts +0 -1
  948. package/esm/storage/providers/idb/idb.test.js +0 -27
  949. package/esm/storage/providers/idb/idb.test.js.map +0 -1
  950. package/esm/storage/providers/idb/index.d.ts +0 -22
  951. package/esm/storage/providers/idb/index.js +0 -23
  952. package/esm/storage/providers/idb/index.js.map +0 -1
  953. package/esm/storage/providers/idb/repository/auth-keys.d.ts +0 -14
  954. package/esm/storage/providers/idb/repository/auth-keys.js +0 -66
  955. package/esm/storage/providers/idb/repository/auth-keys.js.map +0 -1
  956. package/esm/storage/providers/idb/repository/kv.d.ts +0 -11
  957. package/esm/storage/providers/idb/repository/kv.js +0 -30
  958. package/esm/storage/providers/idb/repository/kv.js.map +0 -1
  959. package/esm/storage/providers/idb/repository/peers.d.ts +0 -12
  960. package/esm/storage/providers/idb/repository/peers.js +0 -34
  961. package/esm/storage/providers/idb/repository/peers.js.map +0 -1
  962. package/esm/storage/providers/idb/repository/ref-messages.d.ts +0 -12
  963. package/esm/storage/providers/idb/repository/ref-messages.js +0 -53
  964. package/esm/storage/providers/idb/repository/ref-messages.js.map +0 -1
  965. package/esm/storage/providers/idb/utils.d.ts +0 -3
  966. package/esm/storage/providers/idb/utils.js +0 -21
  967. package/esm/storage/providers/idb/utils.js.map +0 -1
  968. package/esm/storage/providers/memory/driver.js.map +0 -1
  969. package/esm/storage/providers/memory/index.js.map +0 -1
  970. package/esm/storage/providers/memory/memory.test.d.ts +0 -1
  971. package/esm/storage/providers/memory/memory.test.js +0 -11
  972. package/esm/storage/providers/memory/memory.test.js.map +0 -1
  973. package/esm/storage/providers/memory/repository/auth-keys.js.map +0 -1
  974. package/esm/storage/providers/memory/repository/kv.js.map +0 -1
  975. package/esm/storage/providers/memory/repository/peers.js.map +0 -1
  976. package/esm/storage/providers/memory/repository/ref-messages.js.map +0 -1
  977. package/esm/storage/service/auth-keys.test.d.ts +0 -1
  978. package/esm/storage/service/auth-keys.test.js +0 -20
  979. package/esm/storage/service/auth-keys.test.js.map +0 -1
  980. package/esm/storage/service/updates.test.d.ts +0 -1
  981. package/esm/storage/service/updates.test.js +0 -58
  982. package/esm/storage/service/updates.test.js.map +0 -1
  983. package/esm/storage/service/utils.test-utils.d.ts +0 -2
  984. package/esm/storage/service/utils.test-utils.js +0 -15
  985. package/esm/storage/service/utils.test-utils.js.map +0 -1
  986. package/esm/utils/async-lock.test.d.ts +0 -1
  987. package/esm/utils/async-lock.test.js +0 -23
  988. package/esm/utils/async-lock.test.js.map +0 -1
  989. package/esm/utils/bigint-utils.test.d.ts +0 -1
  990. package/esm/utils/bigint-utils.test.js +0 -148
  991. package/esm/utils/bigint-utils.test.js.map +0 -1
  992. package/esm/utils/buffer-utils.test.d.ts +0 -1
  993. package/esm/utils/buffer-utils.test.js +0 -67
  994. package/esm/utils/buffer-utils.test.js.map +0 -1
  995. package/esm/utils/condition-variable.test.d.ts +0 -1
  996. package/esm/utils/condition-variable.test.js +0 -25
  997. package/esm/utils/condition-variable.test.js.map +0 -1
  998. package/esm/utils/controllable-promise.test.d.ts +0 -1
  999. package/esm/utils/controllable-promise.test.js +0 -15
  1000. package/esm/utils/controllable-promise.test.js.map +0 -1
  1001. package/esm/utils/crypto/factorization.test.d.ts +0 -1
  1002. package/esm/utils/crypto/factorization.test.js +0 -17
  1003. package/esm/utils/crypto/factorization.test.js.map +0 -1
  1004. package/esm/utils/crypto/keys.test.d.ts +0 -1
  1005. package/esm/utils/crypto/keys.test.js +0 -38
  1006. package/esm/utils/crypto/keys.test.js.map +0 -1
  1007. package/esm/utils/crypto/miller-rabin.test.d.ts +0 -1
  1008. package/esm/utils/crypto/miller-rabin.test.js +0 -58
  1009. package/esm/utils/crypto/miller-rabin.test.js.map +0 -1
  1010. package/esm/utils/crypto/mtproto.test.d.ts +0 -1
  1011. package/esm/utils/crypto/mtproto.test.js +0 -48
  1012. package/esm/utils/crypto/mtproto.test.js.map +0 -1
  1013. package/esm/utils/crypto/node.d.ts +0 -21
  1014. package/esm/utils/crypto/node.js +0 -69
  1015. package/esm/utils/crypto/node.js.map +0 -1
  1016. package/esm/utils/crypto/node.test.d.ts +0 -1
  1017. package/esm/utils/crypto/node.test.js +0 -12
  1018. package/esm/utils/crypto/node.test.js.map +0 -1
  1019. package/esm/utils/crypto/password.test.d.ts +0 -1
  1020. package/esm/utils/crypto/password.test.js +0 -90
  1021. package/esm/utils/crypto/password.test.js.map +0 -1
  1022. package/esm/utils/crypto/utils.test.d.ts +0 -1
  1023. package/esm/utils/crypto/utils.test.js +0 -47
  1024. package/esm/utils/crypto/utils.test.js.map +0 -1
  1025. package/esm/utils/crypto/wasm.d.ts +0 -22
  1026. package/esm/utils/crypto/wasm.js +0 -37
  1027. package/esm/utils/crypto/wasm.js.map +0 -1
  1028. package/esm/utils/crypto/web.d.ts +0 -11
  1029. package/esm/utils/crypto/web.js +0 -36
  1030. package/esm/utils/crypto/web.js.map +0 -1
  1031. package/esm/utils/crypto/web.test.d.ts +0 -1
  1032. package/esm/utils/crypto/web.test.js +0 -15
  1033. package/esm/utils/crypto/web.test.js.map +0 -1
  1034. package/esm/utils/deque.test.d.ts +0 -1
  1035. package/esm/utils/deque.test.js +0 -126
  1036. package/esm/utils/deque.test.js.map +0 -1
  1037. package/esm/utils/function-utils.test.d.ts +0 -1
  1038. package/esm/utils/function-utils.test.js +0 -21
  1039. package/esm/utils/function-utils.test.js.map +0 -1
  1040. package/esm/utils/linked-list.test.d.ts +0 -1
  1041. package/esm/utils/linked-list.test.js +0 -34
  1042. package/esm/utils/linked-list.test.js.map +0 -1
  1043. package/esm/utils/links/bots.test.d.ts +0 -1
  1044. package/esm/utils/links/bots.test.js +0 -150
  1045. package/esm/utils/links/bots.test.js.map +0 -1
  1046. package/esm/utils/links/chat.test.d.ts +0 -1
  1047. package/esm/utils/links/chat.test.js +0 -82
  1048. package/esm/utils/links/chat.test.js.map +0 -1
  1049. package/esm/utils/links/misc.test.d.ts +0 -1
  1050. package/esm/utils/links/misc.test.js +0 -151
  1051. package/esm/utils/links/misc.test.js.map +0 -1
  1052. package/esm/utils/links/proxy.test.d.ts +0 -1
  1053. package/esm/utils/links/proxy.test.js +0 -72
  1054. package/esm/utils/links/proxy.test.js.map +0 -1
  1055. package/esm/utils/links/user.test.d.ts +0 -1
  1056. package/esm/utils/links/user.test.js +0 -61
  1057. package/esm/utils/links/user.test.js.map +0 -1
  1058. package/esm/utils/logger.test.d.ts +0 -1
  1059. package/esm/utils/logger.test.js +0 -134
  1060. package/esm/utils/logger.test.js.map +0 -1
  1061. package/esm/utils/long-utils.test.d.ts +0 -1
  1062. package/esm/utils/long-utils.test.js +0 -153
  1063. package/esm/utils/long-utils.test.js.map +0 -1
  1064. package/esm/utils/lru-map.test.d.ts +0 -1
  1065. package/esm/utils/lru-map.test.js +0 -94
  1066. package/esm/utils/lru-map.test.js.map +0 -1
  1067. package/esm/utils/lru-set.test.d.ts +0 -1
  1068. package/esm/utils/lru-set.test.js +0 -72
  1069. package/esm/utils/lru-set.test.js.map +0 -1
  1070. package/esm/utils/peer-utils.test.d.ts +0 -1
  1071. package/esm/utils/peer-utils.test.js +0 -105
  1072. package/esm/utils/peer-utils.test.js.map +0 -1
  1073. package/esm/utils/platform/crypto.d.ts +0 -1
  1074. package/esm/utils/platform/crypto.js +0 -4
  1075. package/esm/utils/platform/crypto.js.map +0 -1
  1076. package/esm/utils/platform/crypto.web.d.ts +0 -1
  1077. package/esm/utils/platform/crypto.web.js +0 -10
  1078. package/esm/utils/platform/crypto.web.js.map +0 -1
  1079. package/esm/utils/platform/error-reporting.js.map +0 -1
  1080. package/esm/utils/platform/exit-hook.d.ts +0 -1
  1081. package/esm/utils/platform/exit-hook.js +0 -41
  1082. package/esm/utils/platform/exit-hook.js.map +0 -1
  1083. package/esm/utils/platform/exit-hook.web.d.ts +0 -1
  1084. package/esm/utils/platform/exit-hook.web.js +0 -17
  1085. package/esm/utils/platform/exit-hook.web.js.map +0 -1
  1086. package/esm/utils/platform/logging.d.ts +0 -1
  1087. package/esm/utils/platform/logging.js +0 -31
  1088. package/esm/utils/platform/logging.js.map +0 -1
  1089. package/esm/utils/platform/logging.web.d.ts +0 -1
  1090. package/esm/utils/platform/logging.web.js +0 -31
  1091. package/esm/utils/platform/logging.web.js.map +0 -1
  1092. package/esm/utils/platform/transport.d.ts +0 -1
  1093. package/esm/utils/platform/transport.js +0 -4
  1094. package/esm/utils/platform/transport.js.map +0 -1
  1095. package/esm/utils/platform/transport.web.d.ts +0 -1
  1096. package/esm/utils/platform/transport.web.js +0 -12
  1097. package/esm/utils/platform/transport.web.js.map +0 -1
  1098. package/esm/utils/sorted-array.test.d.ts +0 -1
  1099. package/esm/utils/sorted-array.test.js +0 -64
  1100. package/esm/utils/sorted-array.test.js.map +0 -1
  1101. package/esm/utils/tl-json.test.d.ts +0 -1
  1102. package/esm/utils/tl-json.test.js +0 -81
  1103. package/esm/utils/tl-json.test.js.map +0 -1
  1104. package/esm/utils/type-assertions.test.d.ts +0 -1
  1105. package/esm/utils/type-assertions.test.js +0 -65
  1106. package/esm/utils/type-assertions.test.js.map +0 -1
  1107. /package/cjs/highlevel/{base.test.d.ts → methods/files/download-node-stream.d.ts} +0 -0
  1108. /package/cjs/storage/{providers/memory → memory}/driver.js +0 -0
  1109. /package/cjs/storage/{providers/memory → memory}/index.js +0 -0
  1110. /package/cjs/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
  1111. /package/cjs/storage/{providers/memory → memory}/repository/kv.js +0 -0
  1112. /package/cjs/storage/{providers/memory → memory}/repository/peers.js +0 -0
  1113. /package/cjs/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
  1114. /package/cjs/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
  1115. /package/{cjs/highlevel/methods/files/_platform.d.ts → esm/highlevel/methods/files/download-node-stream.d.ts} +0 -0
  1116. /package/esm/storage/{providers/memory → memory}/driver.js +0 -0
  1117. /package/esm/storage/{providers/memory → memory}/index.js +0 -0
  1118. /package/esm/storage/{providers/memory → memory}/repository/auth-keys.js +0 -0
  1119. /package/esm/storage/{providers/memory → memory}/repository/kv.js +0 -0
  1120. /package/esm/storage/{providers/memory → memory}/repository/peers.js +0 -0
  1121. /package/esm/storage/{providers/memory → memory}/repository/ref-messages.js +0 -0
  1122. /package/esm/utils/{platform/error-reporting.js → error-reporting.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-key.test.js","sourceRoot":"","sources":["../../../src/network/auth-key.test.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\nimport { describe, expect, it, vi } from 'vitest'\n\nimport { defaultTestCryptoProvider } from '@mtcute/test'\nimport {\n hexDecode,\n hexDecodeToBuffer,\n hexEncode,\n TlBinaryReader,\n TlReaderMap,\n utf8Decode,\n utf8EncodeToBuffer,\n} from '@mtcute/tl-runtime'\n\nimport { LogManager } from '../utils/index.js'\nimport { AuthKey } from './auth-key.js'\n\nconst authKey = new Uint8Array(256)\n\nfor (let i = 0; i < 256; i += 32) {\n hexDecode(authKey.subarray(i, i + 32), '98cb29c6ffa89e79da695a54f572e6cb101e81c688b63a4bf73c3622dec230e0')\n}\n\ndescribe('AuthKey', () => {\n async function create() {\n const logger = new LogManager()\n const readerMap: TlReaderMap = {}\n const crypto = await defaultTestCryptoProvider()\n\n const key = new AuthKey(crypto, logger, readerMap)\n key.setup(authKey)\n\n return key\n }\n\n const msgId = Long.fromBits(0xbeef1234, 0x1234beef, true)\n const seqNo = 777\n const serverSalt = Long.fromBits(0xdeadbeef, 0xbeefdead)\n const sessionId = Long.fromBits(0xfeedbeef, 0xbeeffeed)\n\n function writeMessage(body: Uint8Array) {\n const buf = new Uint8Array(16 + body.length)\n const dv = new DataView(buf.buffer)\n\n dv.setInt32(0, msgId.low, true)\n dv.setInt32(4, msgId.high, true)\n dv.setInt32(8, seqNo, true)\n dv.setInt32(12, body.length, true)\n buf.set(body, 16)\n\n return buf\n }\n\n it('should calculate derivatives', async () => {\n const key = await create()\n\n expect(hexEncode(key.key)).toEqual(hexEncode(authKey))\n expect(hexEncode(key.clientSalt)).toEqual('f73c3622dec230e098cb29c6ffa89e79da695a54f572e6cb101e81c688b63a4b')\n expect(hexEncode(key.serverSalt)).toEqual('98cb29c6ffa89e79da695a54f572e6cb101e81c688b63a4bf73c3622dec230e0')\n expect(hexEncode(key.id)).toEqual('40fa5bb7cb56a895')\n })\n\n it('should encrypt a message', async () => {\n const message = writeMessage(utf8EncodeToBuffer('hello, world!!!!'))\n\n const key = await create()\n const msg = key.encryptMessage(message, serverSalt, sessionId)\n\n expect(hexEncode(msg)).toEqual(\n '40fa5bb7cb56a895f6f5a88914892aadf87c68031cc953ba29d68e118021f329' +\n 'be386a620d49f3ad3a50c60dcef3733f214e8cefa3e403c11d193637d4971dc1' +\n '5db7f74b26fd16cb0e8fee30bf7e3f68858fe82927e2cd06',\n )\n })\n\n describe('decrypt', () => {\n async function decrypt(message: Uint8Array) {\n const key = await create()\n\n return new Promise<[Long, number, TlBinaryReader]>((resolve, reject) => {\n // in this method, errors are not thrown but rather logged\n vi.spyOn(key.log, 'warn').mockImplementation((msg, ...fmt) =>\n reject(`${msg} : ${fmt.map((it) => JSON.stringify(it)).join(' ')}`),\n )\n\n key.decryptMessage(message, sessionId, (...args) => resolve(args))\n })\n }\n\n it('should decrypt a message', async () => {\n const message = hexDecodeToBuffer(\n '40fa5bb7cb56a8950c394b884f1529efc42fea22d972fea650a714ce6d2d1bdb' +\n '3d98ff5929b8768c401771a69795f36a7e720dcafac2efbccd0ba368e8a7f48b' +\n '07362cac1a32ffcabe188b51a36cc4d54e1d0633cf9eaf35',\n )\n\n const [decMsgId, decSeqNo, data] = await decrypt(message)\n\n expect(decMsgId).toEqual(msgId)\n expect(decSeqNo).toEqual(seqNo)\n expect(utf8Decode(data.raw(16))).toEqual('hello, world!!!!')\n })\n\n it('should decrypt a message with padding', async () => {\n const message = hexDecodeToBuffer(\n '40fa5bb7cb56a8950c394b884f1529efc42fea22d972fea650a714ce6d2d1bdb' +\n '3d98ff5929b8768c401771a69795f36a7e720dcafac2efbccd0ba368e8a7f48b' +\n '07362cac1a32ffcabe188b51a36cc4d54e1d0633cf9eaf35' +\n 'deadbeef', // some padding (e.g. from padded transport),\n )\n\n const [decMsgId, decSeqNo, data] = await decrypt(message)\n\n expect(decMsgId).toEqual(msgId)\n expect(decSeqNo).toEqual(seqNo)\n expect(utf8Decode(data.raw(16))).toEqual('hello, world!!!!')\n })\n\n it('should ignore messages with invalid message key', async () => {\n const message = hexDecodeToBuffer(\n '40fa5bb7cb56a8950000000000000000000000000000000050a714ce6d2d1bdb' +\n '3d98ff5929b8768c401771a69795f36a7e720dcafac2efbccd0ba368e8a7f48b' +\n '07362cac1a32ffcabe188b51a36cc4d54e1d0633cf9eaf35',\n )\n\n await expect(() => decrypt(message)).rejects.toThrow('message with invalid messageKey')\n })\n\n it('should ignore messages with invalid session_id', async () => {\n const message = hexDecodeToBuffer(\n '40fa5bb7cb56a895a986a7e97f4e90aa2769b5e702c6e86f5e1e82c6ff0c6829' +\n '2521a2ba9704fa37fb341d895cf32662c6cf47ba31cbf27c30d5c03f6c2930f4' +\n '30fd8858b836b73fe32d4a95b8ebcdbc9ca8908f7964c40a',\n )\n\n await expect(() => decrypt(message)).rejects.toThrow('message with invalid sessionId')\n })\n\n it('should ignore messages with invalid length', async () => {\n const messageTooLong = hexDecodeToBuffer(\n '40fa5bb7cb56a8950d19412233dd5d24be697c73274e08fbe515cf65e0c5f70c' +\n 'ad75fd2badc18c9f999f287351144eeb1cfcaa9bea33ef5058999ad96a498306' +\n '08d2859425685a55b21fab413bfabc42ec5da283853b28c0',\n )\n const messageUnaligned = hexDecodeToBuffer(\n '40fa5bb7cb56a8957b4e4bec561eee4a5a1025bc8a35d3d0c79a3685d2b90ff0' +\n '5f638e9c42c9fd9448b0ce8e7d49e7ea1ce458e47b825b5c7fd8ddf5b4fded46' +\n '2a4bcc02f3ff2e89de6764d6d219f575e457fdcf8c163cdf',\n )\n\n await expect(() => decrypt(messageTooLong)).rejects.toThrow('message with invalid length: %d > %d')\n await expect(() => decrypt(messageUnaligned)).rejects.toThrow(\n 'message with invalid length: %d is not a multiple of 4',\n )\n })\n\n it('should ignore messages with invalid padding', async () => {\n const message = hexDecodeToBuffer(\n '40fa5bb7cb56a895133671d1c637a9836e2c64b4d1a0521d8a25a6416fd4dc9e' +\n '79f9478fb837703cc9efa0a19d12143c2a26e57cb4bc64d7bc972dd8f19c53c590cc258162f44afc',\n )\n\n await expect(() => decrypt(message)).rejects.toThrow('message with invalid padding size')\n })\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,172 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { createStub } from '@mtcute/test';
3
- import { ConfigManager } from './config-manager.js';
4
- describe('ConfigManager', () => {
5
- const config = createStub('config', {
6
- expires: 300,
7
- });
8
- const getConfig = vi.fn();
9
- beforeEach(() => {
10
- vi.useFakeTimers();
11
- vi.setSystemTime(0);
12
- getConfig.mockClear().mockImplementation(() => Promise.resolve(config));
13
- });
14
- afterEach(() => void vi.useRealTimers());
15
- it('should fetch initial config', async () => {
16
- const cm = new ConfigManager(getConfig);
17
- const fetchedConfig = await cm.get();
18
- expect(getConfig).toHaveBeenCalledTimes(1);
19
- expect(fetchedConfig).toEqual(config);
20
- expect(cm.getNow()).toEqual(config);
21
- });
22
- it('should automatically update config', async () => {
23
- const cm = new ConfigManager(getConfig);
24
- await cm.update();
25
- getConfig.mockImplementation(() => Promise.resolve({
26
- ...config,
27
- expires: 600,
28
- }));
29
- await vi.advanceTimersByTimeAsync(301000);
30
- expect(getConfig).toHaveBeenCalledTimes(2);
31
- });
32
- it('should correctly determine stale config', () => {
33
- const cm = new ConfigManager(getConfig);
34
- expect(cm.isStale).toBe(true);
35
- cm.setData(config);
36
- expect(cm.isStale).toBe(false);
37
- vi.setSystemTime(300000);
38
- expect(cm.isStale).toBe(true);
39
- });
40
- it('should not update config if not stale', async () => {
41
- const cm = new ConfigManager(getConfig);
42
- await cm.update();
43
- getConfig.mockClear();
44
- await cm.update();
45
- expect(getConfig).not.toHaveBeenCalled();
46
- });
47
- it('should not update config twice', async () => {
48
- const cm = new ConfigManager(getConfig);
49
- await cm.update();
50
- getConfig.mockImplementation(() => Promise.resolve({
51
- ...config,
52
- expires: 600,
53
- }));
54
- getConfig.mockClear();
55
- await vi.advanceTimersByTimeAsync(301000);
56
- await Promise.all([cm.update(), cm.update()]);
57
- expect(getConfig).toHaveBeenCalledOnce();
58
- });
59
- it('should call listeners on config update', async () => {
60
- const cm = new ConfigManager(getConfig);
61
- const listener = vi.fn();
62
- cm.onReload(listener);
63
- await cm.update();
64
- vi.setSystemTime(300000);
65
- cm.onReload(listener);
66
- await cm.update();
67
- expect(listener).toHaveBeenCalledOnce();
68
- expect(listener).toHaveBeenCalledWith(config);
69
- });
70
- it('should correctly destroy', async () => {
71
- const cm = new ConfigManager(getConfig);
72
- await cm.update();
73
- cm.destroy();
74
- getConfig.mockClear();
75
- await vi.advanceTimersByTimeAsync(301000);
76
- expect(getConfig).not.toHaveBeenCalled();
77
- });
78
- describe('findOption', () => {
79
- const useDcOptions = (options) => {
80
- getConfig.mockImplementation(() => Promise.resolve({
81
- ...config,
82
- dcOptions: options,
83
- }));
84
- };
85
- const findOption = async (params) => {
86
- const cm = new ConfigManager(getConfig);
87
- await cm.update();
88
- return cm.findOption(params);
89
- };
90
- it('should find option by dc id', async () => {
91
- useDcOptions([
92
- createStub('dcOption', { id: 1, ipAddress: '1.1.1.1' }),
93
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.2' }),
94
- ]);
95
- expect(await findOption({ dcId: 1 })).toMatchObject({
96
- id: 1,
97
- ipAddress: '1.1.1.1',
98
- });
99
- expect(await findOption({ dcId: 2 })).toMatchObject({
100
- id: 2,
101
- ipAddress: '2.2.2.2',
102
- });
103
- });
104
- it('should ignore tcpoOnly options', async () => {
105
- useDcOptions([
106
- createStub('dcOption', { id: 1, ipAddress: '1.1.1.1', tcpoOnly: true }),
107
- createStub('dcOption', { id: 1, ipAddress: '1.1.1.2' }),
108
- ]);
109
- expect(await findOption({ dcId: 1 })).toMatchObject({
110
- id: 1,
111
- ipAddress: '1.1.1.2',
112
- });
113
- });
114
- it('should respect allowMedia flag', async () => {
115
- useDcOptions([
116
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.2', mediaOnly: true }),
117
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),
118
- ]);
119
- expect(await findOption({ dcId: 2 })).toMatchObject({
120
- id: 2,
121
- ipAddress: '2.2.2.3',
122
- });
123
- expect(await findOption({ dcId: 2, allowMedia: true })).toMatchObject({
124
- id: 2,
125
- ipAddress: '2.2.2.2',
126
- });
127
- });
128
- it('should respect preferMedia flag', async () => {
129
- useDcOptions([
130
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),
131
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.2', mediaOnly: true }),
132
- ]);
133
- expect(await findOption({ dcId: 2 })).toMatchObject({
134
- id: 2,
135
- ipAddress: '2.2.2.3',
136
- });
137
- expect(await findOption({ dcId: 2, allowMedia: true, preferMedia: true })).toMatchObject({
138
- id: 2,
139
- ipAddress: '2.2.2.2',
140
- });
141
- });
142
- it('should respect allowIpv6 flag', async () => {
143
- useDcOptions([
144
- createStub('dcOption', { id: 2, ipAddress: '::1', ipv6: true }),
145
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),
146
- ]);
147
- expect(await findOption({ dcId: 2 })).toMatchObject({
148
- id: 2,
149
- ipAddress: '2.2.2.3',
150
- });
151
- expect(await findOption({ dcId: 2, allowIpv6: true })).toMatchObject({
152
- id: 2,
153
- ipAddress: '::1',
154
- });
155
- });
156
- it('should respect preferIpv6 flag', async () => {
157
- useDcOptions([
158
- createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),
159
- createStub('dcOption', { id: 2, ipAddress: '::1', ipv6: true }),
160
- ]);
161
- expect(await findOption({ dcId: 2 })).toMatchObject({
162
- id: 2,
163
- ipAddress: '2.2.2.3',
164
- });
165
- expect(await findOption({ dcId: 2, allowIpv6: true, preferIpv6: true })).toMatchObject({
166
- id: 2,
167
- ipAddress: '::1',
168
- });
169
- });
170
- });
171
- });
172
- //# sourceMappingURL=config-manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-manager.test.js","sourceRoot":"","sources":["../../../src/network/config-manager.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport { createStub } from '@mtcute/test'\nimport { tl } from '@mtcute/tl'\n\nimport { ConfigManager } from './config-manager.js'\n\ndescribe('ConfigManager', () => {\n const config = createStub('config', {\n expires: 300,\n })\n const getConfig = vi.fn()\n\n beforeEach(() => {\n vi.useFakeTimers()\n vi.setSystemTime(0)\n getConfig.mockClear().mockImplementation(() => Promise.resolve(config))\n })\n afterEach(() => void vi.useRealTimers())\n\n it('should fetch initial config', async () => {\n const cm = new ConfigManager(getConfig)\n\n const fetchedConfig = await cm.get()\n\n expect(getConfig).toHaveBeenCalledTimes(1)\n expect(fetchedConfig).toEqual(config)\n expect(cm.getNow()).toEqual(config)\n })\n\n it('should automatically update config', async () => {\n const cm = new ConfigManager(getConfig)\n await cm.update()\n\n getConfig.mockImplementation(() =>\n Promise.resolve({\n ...config,\n expires: 600,\n }),\n )\n\n await vi.advanceTimersByTimeAsync(301_000)\n\n expect(getConfig).toHaveBeenCalledTimes(2)\n })\n\n it('should correctly determine stale config', () => {\n const cm = new ConfigManager(getConfig)\n expect(cm.isStale).toBe(true)\n\n cm.setData(config)\n expect(cm.isStale).toBe(false)\n\n vi.setSystemTime(300_000)\n expect(cm.isStale).toBe(true)\n })\n\n it('should not update config if not stale', async () => {\n const cm = new ConfigManager(getConfig)\n await cm.update()\n\n getConfig.mockClear()\n await cm.update()\n\n expect(getConfig).not.toHaveBeenCalled()\n })\n\n it('should not update config twice', async () => {\n const cm = new ConfigManager(getConfig)\n await cm.update()\n\n getConfig.mockImplementation(() =>\n Promise.resolve({\n ...config,\n expires: 600,\n }),\n )\n getConfig.mockClear()\n await vi.advanceTimersByTimeAsync(301_000)\n await Promise.all([cm.update(), cm.update()])\n\n expect(getConfig).toHaveBeenCalledOnce()\n })\n\n it('should call listeners on config update', async () => {\n const cm = new ConfigManager(getConfig)\n const listener = vi.fn()\n cm.onReload(listener)\n await cm.update()\n\n vi.setSystemTime(300_000)\n cm.onReload(listener)\n await cm.update()\n\n expect(listener).toHaveBeenCalledOnce()\n expect(listener).toHaveBeenCalledWith(config)\n })\n\n it('should correctly destroy', async () => {\n const cm = new ConfigManager(getConfig)\n await cm.update()\n\n cm.destroy()\n\n getConfig.mockClear()\n await vi.advanceTimersByTimeAsync(301_000)\n\n expect(getConfig).not.toHaveBeenCalled()\n })\n\n describe('findOption', () => {\n const useDcOptions = (options: tl.RawDcOption[]) => {\n getConfig.mockImplementation(() =>\n Promise.resolve({\n ...config,\n dcOptions: options,\n }),\n )\n }\n\n const findOption = async (params: Parameters<ConfigManager['findOption']>[0]) => {\n const cm = new ConfigManager(getConfig)\n await cm.update()\n\n return cm.findOption(params)\n }\n\n it('should find option by dc id', async () => {\n useDcOptions([\n createStub('dcOption', { id: 1, ipAddress: '1.1.1.1' }),\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.2' }),\n ])\n\n expect(await findOption({ dcId: 1 })).toMatchObject({\n id: 1,\n ipAddress: '1.1.1.1',\n })\n expect(await findOption({ dcId: 2 })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.2',\n })\n })\n\n it('should ignore tcpoOnly options', async () => {\n useDcOptions([\n createStub('dcOption', { id: 1, ipAddress: '1.1.1.1', tcpoOnly: true }),\n createStub('dcOption', { id: 1, ipAddress: '1.1.1.2' }),\n ])\n\n expect(await findOption({ dcId: 1 })).toMatchObject({\n id: 1,\n ipAddress: '1.1.1.2',\n })\n })\n\n it('should respect allowMedia flag', async () => {\n useDcOptions([\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.2', mediaOnly: true }),\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),\n ])\n\n expect(await findOption({ dcId: 2 })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.3',\n })\n\n expect(await findOption({ dcId: 2, allowMedia: true })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.2',\n })\n })\n\n it('should respect preferMedia flag', async () => {\n useDcOptions([\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.2', mediaOnly: true }),\n ])\n\n expect(await findOption({ dcId: 2 })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.3',\n })\n\n expect(await findOption({ dcId: 2, allowMedia: true, preferMedia: true })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.2',\n })\n })\n\n it('should respect allowIpv6 flag', async () => {\n useDcOptions([\n createStub('dcOption', { id: 2, ipAddress: '::1', ipv6: true }),\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),\n ])\n\n expect(await findOption({ dcId: 2 })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.3',\n })\n\n expect(await findOption({ dcId: 2, allowIpv6: true })).toMatchObject({\n id: 2,\n ipAddress: '::1',\n })\n })\n\n it('should respect preferIpv6 flag', async () => {\n useDcOptions([\n createStub('dcOption', { id: 2, ipAddress: '2.2.2.3' }),\n createStub('dcOption', { id: 2, ipAddress: '::1', ipv6: true }),\n ])\n\n expect(await findOption({ dcId: 2 })).toMatchObject({\n id: 2,\n ipAddress: '2.2.2.3',\n })\n\n expect(await findOption({ dcId: 2, allowIpv6: true, preferIpv6: true })).toMatchObject({\n id: 2,\n ipAddress: '::1',\n })\n })\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,155 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { createStub, defaultTestCryptoProvider, StubTelegramTransport } from '@mtcute/test';
3
- import { LogManager } from '../utils/index.js';
4
- import { PersistentConnection } from './persistent-connection.js';
5
- import { defaultReconnectionStrategy } from './reconnection.js';
6
- class FakePersistentConnection extends PersistentConnection {
7
- constructor(params) {
8
- const log = new LogManager();
9
- log.level = 0;
10
- super(params, log);
11
- }
12
- onConnected() {
13
- this.onConnectionUsable();
14
- }
15
- onError() { }
16
- onMessage() { }
17
- }
18
- describe('PersistentConnection', () => {
19
- beforeEach(() => void vi.useFakeTimers());
20
- afterEach(() => void vi.useRealTimers());
21
- const create = async (params) => {
22
- return new FakePersistentConnection({
23
- crypto: await defaultTestCryptoProvider(),
24
- transportFactory: () => new StubTelegramTransport({}),
25
- dc: createStub('dcOption'),
26
- testMode: false,
27
- reconnectionStrategy: defaultReconnectionStrategy,
28
- ...params,
29
- });
30
- };
31
- it('should set up listeners on transport', async () => {
32
- const transportFactory = vi.fn().mockImplementation(() => {
33
- const transport = new StubTelegramTransport({});
34
- vi.spyOn(transport, 'on');
35
- return transport;
36
- });
37
- await create({ transportFactory });
38
- const transport = transportFactory.mock.results[0].value;
39
- expect(transport.on).toHaveBeenCalledWith('ready', expect.any(Function));
40
- expect(transport.on).toHaveBeenCalledWith('message', expect.any(Function));
41
- expect(transport.on).toHaveBeenCalledWith('error', expect.any(Function));
42
- expect(transport.on).toHaveBeenCalledWith('close', expect.any(Function));
43
- });
44
- it('should properly reset old transport', async () => {
45
- const transportFactory = vi.fn().mockImplementation(() => {
46
- const transport = new StubTelegramTransport({});
47
- vi.spyOn(transport, 'close');
48
- return transport;
49
- });
50
- const pc = await create({ transportFactory });
51
- const transport = transportFactory.mock.results[0].value;
52
- pc.changeTransport(transportFactory);
53
- expect(transport.close).toHaveBeenCalledOnce();
54
- });
55
- it('should buffer unsent packages', async () => {
56
- const transportFactory = vi.fn().mockImplementation(() => {
57
- const transport = new StubTelegramTransport({});
58
- const transportConnect = transport.connect;
59
- vi.spyOn(transport, 'connect').mockImplementation((dc, test) => {
60
- setTimeout(() => {
61
- transportConnect.call(transport, dc, test);
62
- }, 100);
63
- });
64
- vi.spyOn(transport, 'send');
65
- return transport;
66
- });
67
- const pc = await create({ transportFactory });
68
- const transport = transportFactory.mock.results[0].value;
69
- const data1 = new Uint8Array([1, 2, 3]);
70
- const data2 = new Uint8Array([4, 5, 6]);
71
- await pc.send(data1);
72
- await pc.send(data2);
73
- expect(transport.send).toHaveBeenCalledTimes(0);
74
- await vi.advanceTimersByTimeAsync(150);
75
- expect(transport.send).toHaveBeenCalledTimes(2);
76
- expect(transport.send).toHaveBeenCalledWith(data1);
77
- expect(transport.send).toHaveBeenCalledWith(data2);
78
- });
79
- it('should reconnect on close', async () => {
80
- const reconnectionStrategy = vi.fn().mockImplementation(() => 1000);
81
- const transportFactory = vi.fn().mockImplementation(() => new StubTelegramTransport({}));
82
- const pc = await create({
83
- reconnectionStrategy,
84
- transportFactory,
85
- });
86
- const transport = transportFactory.mock.results[0].value;
87
- pc.connect();
88
- await vi.waitFor(() => expect(pc.isConnected).toBe(true));
89
- transport.close();
90
- expect(reconnectionStrategy).toHaveBeenCalledOnce();
91
- expect(pc.isConnected).toBe(false);
92
- await vi.advanceTimersByTimeAsync(1000);
93
- expect(pc.isConnected).toBe(true);
94
- });
95
- describe('inactivity timeout', () => {
96
- it('should disconnect on inactivity (passed in constructor)', async () => {
97
- const pc = await create({
98
- inactivityTimeout: 1000,
99
- });
100
- pc.connect();
101
- await vi.waitFor(() => expect(pc.isConnected).toBe(true));
102
- vi.advanceTimersByTime(1000);
103
- await vi.waitFor(() => expect(pc.isConnected).toBe(false));
104
- });
105
- it('should disconnect on inactivity (set up with setInactivityTimeout)', async () => {
106
- const pc = await create();
107
- pc.connect();
108
- pc.setInactivityTimeout(1000);
109
- await vi.waitFor(() => expect(pc.isConnected).toBe(true));
110
- vi.advanceTimersByTime(1000);
111
- await vi.waitFor(() => expect(pc.isConnected).toBe(false));
112
- });
113
- it('should not disconnect on inactivity if disabled', async () => {
114
- const pc = await create({
115
- inactivityTimeout: 1000,
116
- });
117
- pc.connect();
118
- pc.setInactivityTimeout(undefined);
119
- await vi.waitFor(() => expect(pc.isConnected).toBe(true));
120
- vi.advanceTimersByTime(1000);
121
- await vi.waitFor(() => expect(pc.isConnected).toBe(true));
122
- });
123
- it('should reconnect after inactivity before sending', async () => {
124
- const transportFactory = vi.fn().mockImplementation(() => {
125
- const transport = new StubTelegramTransport({});
126
- vi.spyOn(transport, 'connect');
127
- vi.spyOn(transport, 'send');
128
- return transport;
129
- });
130
- const pc = await create({
131
- inactivityTimeout: 1000,
132
- transportFactory,
133
- });
134
- const transport = transportFactory.mock.results[0].value;
135
- pc.connect();
136
- vi.advanceTimersByTime(1000);
137
- await vi.waitFor(() => expect(pc.isConnected).toBe(false));
138
- vi.mocked(transport.connect).mockClear();
139
- await pc.send(new Uint8Array([1, 2, 3]));
140
- expect(transport.connect).toHaveBeenCalledOnce();
141
- expect(transport.send).toHaveBeenCalledOnce();
142
- });
143
- it('should propagate errors', async () => {
144
- const transportFactory = vi.fn().mockImplementation(() => new StubTelegramTransport({}));
145
- const pc = await create({ transportFactory });
146
- const transport = transportFactory.mock.results[0].value;
147
- pc.connect();
148
- await vi.waitFor(() => expect(pc.isConnected).toBe(true));
149
- const onErrorSpy = vi.spyOn(pc, 'onError');
150
- transport.emit('error', new Error('test error'));
151
- expect(onErrorSpy).toHaveBeenCalledOnce();
152
- });
153
- });
154
- });
155
- //# sourceMappingURL=persistent-connection.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistent-connection.test.js","sourceRoot":"","sources":["../../../src/network/persistent-connection.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'\n\nimport { createStub, defaultTestCryptoProvider, StubTelegramTransport } from '@mtcute/test'\n\nimport { LogManager } from '../utils/index.js'\nimport { PersistentConnection, PersistentConnectionParams } from './persistent-connection.js'\nimport { defaultReconnectionStrategy } from './reconnection.js'\n\nclass FakePersistentConnection extends PersistentConnection {\n constructor(params: PersistentConnectionParams) {\n const log = new LogManager()\n log.level = 0\n super(params, log)\n }\n\n onConnected() {\n this.onConnectionUsable()\n }\n onError() {}\n onMessage() {}\n}\n\ndescribe('PersistentConnection', () => {\n beforeEach(() => void vi.useFakeTimers())\n afterEach(() => void vi.useRealTimers())\n\n const create = async (params?: Partial<PersistentConnectionParams>) => {\n return new FakePersistentConnection({\n crypto: await defaultTestCryptoProvider(),\n transportFactory: () => new StubTelegramTransport({}),\n dc: createStub('dcOption'),\n testMode: false,\n reconnectionStrategy: defaultReconnectionStrategy,\n ...params,\n })\n }\n\n it('should set up listeners on transport', async () => {\n const transportFactory = vi.fn().mockImplementation(() => {\n const transport = new StubTelegramTransport({})\n\n vi.spyOn(transport, 'on')\n\n return transport\n })\n await create({ transportFactory })\n\n const transport = transportFactory.mock.results[0].value as StubTelegramTransport\n\n expect(transport.on).toHaveBeenCalledWith('ready', expect.any(Function))\n expect(transport.on).toHaveBeenCalledWith('message', expect.any(Function))\n expect(transport.on).toHaveBeenCalledWith('error', expect.any(Function))\n expect(transport.on).toHaveBeenCalledWith('close', expect.any(Function))\n })\n\n it('should properly reset old transport', async () => {\n const transportFactory = vi.fn().mockImplementation(() => {\n const transport = new StubTelegramTransport({})\n\n vi.spyOn(transport, 'close')\n\n return transport\n })\n const pc = await create({ transportFactory })\n\n const transport = transportFactory.mock.results[0].value as StubTelegramTransport\n\n pc.changeTransport(transportFactory)\n\n expect(transport.close).toHaveBeenCalledOnce()\n })\n\n it('should buffer unsent packages', async () => {\n const transportFactory = vi.fn().mockImplementation(() => {\n const transport = new StubTelegramTransport({})\n\n const transportConnect = transport.connect\n vi.spyOn(transport, 'connect').mockImplementation((dc, test) => {\n setTimeout(() => {\n transportConnect.call(transport, dc, test)\n }, 100)\n })\n vi.spyOn(transport, 'send')\n\n return transport\n })\n const pc = await create({ transportFactory })\n\n const transport = transportFactory.mock.results[0].value as StubTelegramTransport\n\n const data1 = new Uint8Array([1, 2, 3])\n const data2 = new Uint8Array([4, 5, 6])\n\n await pc.send(data1)\n await pc.send(data2)\n\n expect(transport.send).toHaveBeenCalledTimes(0)\n\n await vi.advanceTimersByTimeAsync(150)\n\n expect(transport.send).toHaveBeenCalledTimes(2)\n expect(transport.send).toHaveBeenCalledWith(data1)\n expect(transport.send).toHaveBeenCalledWith(data2)\n })\n\n it('should reconnect on close', async () => {\n const reconnectionStrategy = vi.fn().mockImplementation(() => 1000)\n const transportFactory = vi.fn().mockImplementation(() => new StubTelegramTransport({}))\n\n const pc = await create({\n reconnectionStrategy,\n transportFactory,\n })\n\n const transport = transportFactory.mock.results[0].value as StubTelegramTransport\n\n pc.connect()\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(true))\n\n transport.close()\n\n expect(reconnectionStrategy).toHaveBeenCalledOnce()\n expect(pc.isConnected).toBe(false)\n\n await vi.advanceTimersByTimeAsync(1000)\n\n expect(pc.isConnected).toBe(true)\n })\n\n describe('inactivity timeout', () => {\n it('should disconnect on inactivity (passed in constructor)', async () => {\n const pc = await create({\n inactivityTimeout: 1000,\n })\n\n pc.connect()\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(true))\n\n vi.advanceTimersByTime(1000)\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(false))\n })\n\n it('should disconnect on inactivity (set up with setInactivityTimeout)', async () => {\n const pc = await create()\n\n pc.connect()\n pc.setInactivityTimeout(1000)\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(true))\n\n vi.advanceTimersByTime(1000)\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(false))\n })\n\n it('should not disconnect on inactivity if disabled', async () => {\n const pc = await create({\n inactivityTimeout: 1000,\n })\n\n pc.connect()\n pc.setInactivityTimeout(undefined)\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(true))\n\n vi.advanceTimersByTime(1000)\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(true))\n })\n\n it('should reconnect after inactivity before sending', async () => {\n const transportFactory = vi.fn().mockImplementation(() => {\n const transport = new StubTelegramTransport({})\n\n vi.spyOn(transport, 'connect')\n vi.spyOn(transport, 'send')\n\n return transport\n })\n\n const pc = await create({\n inactivityTimeout: 1000,\n transportFactory,\n })\n const transport = transportFactory.mock.results[0].value as StubTelegramTransport\n\n pc.connect()\n\n vi.advanceTimersByTime(1000)\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(false))\n\n vi.mocked(transport.connect).mockClear()\n\n await pc.send(new Uint8Array([1, 2, 3]))\n\n expect(transport.connect).toHaveBeenCalledOnce()\n expect(transport.send).toHaveBeenCalledOnce()\n })\n\n it('should propagate errors', async () => {\n const transportFactory = vi.fn().mockImplementation(() => new StubTelegramTransport({}))\n\n const pc = await create({ transportFactory })\n const transport = transportFactory.mock.results[0].value as StubTelegramTransport\n\n pc.connect()\n\n await vi.waitFor(() => expect(pc.isConnected).toBe(true))\n\n const onErrorSpy = vi.spyOn(pc, 'onError')\n\n transport.emit('error', new Error('test error'))\n\n expect(onErrorSpy).toHaveBeenCalledOnce()\n })\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,82 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { defaultTestCryptoProvider, useFakeMathRandom } from '@mtcute/test';
3
- import { hexDecodeToBuffer, hexEncode } from '@mtcute/tl-runtime';
4
- import { IntermediatePacketCodec, PaddedIntermediatePacketCodec, TransportError } from '../../index.js';
5
- describe('IntermediatePacketCodec', () => {
6
- it('should return correct tag', () => {
7
- expect(hexEncode(new IntermediatePacketCodec().tag())).eq('eeeeeeee');
8
- });
9
- it('should correctly parse immediate framing', () => new Promise((done) => {
10
- const codec = new IntermediatePacketCodec();
11
- codec.on('packet', (data) => {
12
- expect([...data]).eql([5, 1, 2, 3, 4]);
13
- done();
14
- });
15
- codec.feed(hexDecodeToBuffer('050000000501020304'));
16
- }));
17
- it('should correctly parse incomplete framing', () => new Promise((done) => {
18
- const codec = new IntermediatePacketCodec();
19
- codec.on('packet', (data) => {
20
- expect([...data]).eql([5, 1, 2, 3, 4]);
21
- done();
22
- });
23
- codec.feed(hexDecodeToBuffer('050000000501'));
24
- codec.feed(hexDecodeToBuffer('020304'));
25
- }));
26
- it('should correctly parse multiple streamed packets', () => new Promise((done) => {
27
- const codec = new IntermediatePacketCodec();
28
- let number = 0;
29
- codec.on('packet', (data) => {
30
- if (number === 0) {
31
- expect([...data]).eql([5, 1, 2, 3, 4]);
32
- number = 1;
33
- }
34
- else {
35
- expect([...data]).eql([3, 1, 2, 3, 1]);
36
- done();
37
- }
38
- });
39
- codec.feed(hexDecodeToBuffer('050000000501'));
40
- codec.feed(hexDecodeToBuffer('020304050000'));
41
- codec.feed(hexDecodeToBuffer('000301020301'));
42
- }));
43
- it('should correctly parse transport errors', () => new Promise((done) => {
44
- const codec = new IntermediatePacketCodec();
45
- codec.on('error', (err) => {
46
- expect(err).to.have.instanceOf(TransportError);
47
- expect(err.code).eq(404);
48
- done();
49
- });
50
- codec.feed(hexDecodeToBuffer('040000006cfeffff'));
51
- }));
52
- it('should reset when called reset()', () => new Promise((done) => {
53
- const codec = new IntermediatePacketCodec();
54
- codec.on('packet', (data) => {
55
- expect([...data]).eql([1, 2, 3, 4, 5]);
56
- done();
57
- });
58
- codec.feed(hexDecodeToBuffer('ff0000001234567812345678'));
59
- codec.reset();
60
- codec.feed(hexDecodeToBuffer('050000000102030405'));
61
- }));
62
- it('should correctly frame packets', () => {
63
- const data = hexDecodeToBuffer('6cfeffff');
64
- expect(hexEncode(new IntermediatePacketCodec().encode(data))).toEqual('040000006cfeffff');
65
- });
66
- });
67
- describe('PaddedIntermediatePacketCodec', () => {
68
- useFakeMathRandom();
69
- const create = async () => {
70
- const codec = new PaddedIntermediatePacketCodec();
71
- codec.setup(await defaultTestCryptoProvider());
72
- return codec;
73
- };
74
- it('should return correct tag', async () => {
75
- expect(hexEncode((await create()).tag())).eq('dddddddd');
76
- });
77
- it('should correctly frame packets', async () => {
78
- const data = hexDecodeToBuffer('6cfeffff');
79
- expect(hexEncode((await create()).encode(data))).toEqual('0a0000006cfeffff29afd26df40f');
80
- });
81
- });
82
- //# sourceMappingURL=intermediate.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intermediate.test.js","sourceRoot":"","sources":["../../../../src/network/transports/intermediate.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport { defaultTestCryptoProvider, useFakeMathRandom } from '@mtcute/test'\nimport { hexDecodeToBuffer, hexEncode } from '@mtcute/tl-runtime'\n\nimport { IntermediatePacketCodec, PaddedIntermediatePacketCodec, TransportError } from '../../index.js'\n\ndescribe('IntermediatePacketCodec', () => {\n it('should return correct tag', () => {\n expect(hexEncode(new IntermediatePacketCodec().tag())).eq('eeeeeeee')\n })\n\n it('should correctly parse immediate framing', () =>\n new Promise<void>((done) => {\n const codec = new IntermediatePacketCodec()\n codec.on('packet', (data: Uint8Array) => {\n expect([...data]).eql([5, 1, 2, 3, 4])\n done()\n })\n codec.feed(hexDecodeToBuffer('050000000501020304'))\n }))\n\n it('should correctly parse incomplete framing', () =>\n new Promise<void>((done) => {\n const codec = new IntermediatePacketCodec()\n codec.on('packet', (data: Uint8Array) => {\n expect([...data]).eql([5, 1, 2, 3, 4])\n done()\n })\n codec.feed(hexDecodeToBuffer('050000000501'))\n codec.feed(hexDecodeToBuffer('020304'))\n }))\n\n it('should correctly parse multiple streamed packets', () =>\n new Promise<void>((done) => {\n const codec = new IntermediatePacketCodec()\n\n let number = 0\n\n codec.on('packet', (data: Uint8Array) => {\n if (number === 0) {\n expect([...data]).eql([5, 1, 2, 3, 4])\n number = 1\n } else {\n expect([...data]).eql([3, 1, 2, 3, 1])\n done()\n }\n })\n codec.feed(hexDecodeToBuffer('050000000501'))\n codec.feed(hexDecodeToBuffer('020304050000'))\n codec.feed(hexDecodeToBuffer('000301020301'))\n }))\n\n it('should correctly parse transport errors', () =>\n new Promise<void>((done) => {\n const codec = new IntermediatePacketCodec()\n\n codec.on('error', (err: TransportError) => {\n expect(err).to.have.instanceOf(TransportError)\n expect(err.code).eq(404)\n done()\n })\n\n codec.feed(hexDecodeToBuffer('040000006cfeffff'))\n }))\n\n it('should reset when called reset()', () =>\n new Promise<void>((done) => {\n const codec = new IntermediatePacketCodec()\n\n codec.on('packet', (data: Uint8Array) => {\n expect([...data]).eql([1, 2, 3, 4, 5])\n done()\n })\n\n codec.feed(hexDecodeToBuffer('ff0000001234567812345678'))\n codec.reset()\n codec.feed(hexDecodeToBuffer('050000000102030405'))\n }))\n\n it('should correctly frame packets', () => {\n const data = hexDecodeToBuffer('6cfeffff')\n\n expect(hexEncode(new IntermediatePacketCodec().encode(data))).toEqual('040000006cfeffff')\n })\n})\n\ndescribe('PaddedIntermediatePacketCodec', () => {\n useFakeMathRandom()\n\n const create = async () => {\n const codec = new PaddedIntermediatePacketCodec()\n codec.setup!(await defaultTestCryptoProvider())\n\n return codec\n }\n\n it('should return correct tag', async () => {\n expect(hexEncode((await create()).tag())).eq('dddddddd')\n })\n\n it('should correctly frame packets', async () => {\n const data = hexDecodeToBuffer('6cfeffff')\n\n expect(hexEncode((await create()).encode(data))).toEqual('0a0000006cfeffff29afd26df40f')\n })\n})\n"]}
@@ -1 +0,0 @@
1
- export {};