@mtcute/core 0.1.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 (502) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +26 -0
  3. package/cjs/base-client.d.ts +297 -0
  4. package/cjs/base-client.js +324 -0
  5. package/cjs/base-client.js.map +1 -0
  6. package/cjs/index.d.ts +10 -0
  7. package/cjs/index.js +30 -0
  8. package/cjs/index.js.map +1 -0
  9. package/cjs/network/auth-key.d.ts +21 -0
  10. package/cjs/network/auth-key.js +101 -0
  11. package/cjs/network/auth-key.js.map +1 -0
  12. package/cjs/network/authorization.d.ts +9 -0
  13. package/cjs/network/authorization.js +332 -0
  14. package/cjs/network/authorization.js.map +1 -0
  15. package/cjs/network/config-manager.d.ts +33 -0
  16. package/cjs/network/config-manager.js +93 -0
  17. package/cjs/network/config-manager.js.map +1 -0
  18. package/cjs/network/index.d.ts +4 -0
  19. package/cjs/network/index.js +20 -0
  20. package/cjs/network/index.js.map +1 -0
  21. package/cjs/network/mtproto-session.d.ts +116 -0
  22. package/cjs/network/mtproto-session.js +209 -0
  23. package/cjs/network/mtproto-session.js.map +1 -0
  24. package/cjs/network/multi-session-connection.d.ts +33 -0
  25. package/cjs/network/multi-session-connection.js +243 -0
  26. package/cjs/network/multi-session-connection.js.map +1 -0
  27. package/cjs/network/network-manager.d.ts +190 -0
  28. package/cjs/network/network-manager.js +547 -0
  29. package/cjs/network/network-manager.js.map +1 -0
  30. package/cjs/network/persistent-connection.d.ts +51 -0
  31. package/cjs/network/persistent-connection.js +173 -0
  32. package/cjs/network/persistent-connection.js.map +1 -0
  33. package/cjs/network/reconnection.d.ts +11 -0
  34. package/cjs/network/reconnection.js +18 -0
  35. package/cjs/network/reconnection.js.map +1 -0
  36. package/cjs/network/session-connection.d.ts +72 -0
  37. package/cjs/network/session-connection.js +1363 -0
  38. package/cjs/network/session-connection.js.map +1 -0
  39. package/cjs/network/transports/abstract.d.ts +99 -0
  40. package/cjs/network/transports/abstract.js +38 -0
  41. package/cjs/network/transports/abstract.js.map +1 -0
  42. package/cjs/network/transports/index.d.ts +8 -0
  43. package/cjs/network/transports/index.js +26 -0
  44. package/cjs/network/transports/index.js.map +1 -0
  45. package/cjs/network/transports/intermediate.d.ts +20 -0
  46. package/cjs/network/transports/intermediate.js +67 -0
  47. package/cjs/network/transports/intermediate.js.map +1 -0
  48. package/cjs/network/transports/obfuscated.d.ts +18 -0
  49. package/cjs/network/transports/obfuscated.js +83 -0
  50. package/cjs/network/transports/obfuscated.js.map +1 -0
  51. package/cjs/network/transports/streamed.d.ts +24 -0
  52. package/cjs/network/transports/streamed.js +32 -0
  53. package/cjs/network/transports/streamed.js.map +1 -0
  54. package/cjs/network/transports/tcp.d.ts +33 -0
  55. package/cjs/network/transports/tcp.js +130 -0
  56. package/cjs/network/transports/tcp.js.map +1 -0
  57. package/cjs/network/transports/websocket.d.ts +47 -0
  58. package/cjs/network/transports/websocket.js +124 -0
  59. package/cjs/network/transports/websocket.js.map +1 -0
  60. package/cjs/network/transports/wrapped.d.ts +11 -0
  61. package/cjs/network/transports/wrapped.js +26 -0
  62. package/cjs/network/transports/wrapped.js.map +1 -0
  63. package/cjs/package.json +3 -0
  64. package/cjs/storage/abstract.d.ts +174 -0
  65. package/cjs/storage/abstract.js +3 -0
  66. package/cjs/storage/abstract.js.map +1 -0
  67. package/cjs/storage/index.d.ts +5 -0
  68. package/cjs/storage/index.js +22 -0
  69. package/cjs/storage/index.js.map +1 -0
  70. package/cjs/storage/json-file.d.ts +31 -0
  71. package/cjs/storage/json-file.js +90 -0
  72. package/cjs/storage/json-file.js.map +1 -0
  73. package/cjs/storage/json.d.ts +9 -0
  74. package/cjs/storage/json.js +65 -0
  75. package/cjs/storage/json.js.map +1 -0
  76. package/cjs/storage/localstorage.d.ts +7 -0
  77. package/cjs/storage/localstorage.js +25 -0
  78. package/cjs/storage/localstorage.js.map +1 -0
  79. package/cjs/storage/memory.d.ts +98 -0
  80. package/cjs/storage/memory.js +299 -0
  81. package/cjs/storage/memory.js.map +1 -0
  82. package/cjs/types/errors.d.ts +53 -0
  83. package/cjs/types/errors.js +58 -0
  84. package/cjs/types/errors.js.map +1 -0
  85. package/cjs/types/index.d.ts +3 -0
  86. package/cjs/types/index.js +20 -0
  87. package/cjs/types/index.js.map +1 -0
  88. package/cjs/types/peers.d.ts +4 -0
  89. package/cjs/types/peers.js +3 -0
  90. package/cjs/types/peers.js.map +1 -0
  91. package/cjs/types/utils.d.ts +6 -0
  92. package/cjs/types/utils.js +9 -0
  93. package/cjs/types/utils.js.map +1 -0
  94. package/cjs/utils/async-lock.d.ts +10 -0
  95. package/cjs/utils/async-lock.js +43 -0
  96. package/cjs/utils/async-lock.js.map +1 -0
  97. package/cjs/utils/bigint-utils.d.ts +40 -0
  98. package/cjs/utils/bigint-utils.js +104 -0
  99. package/cjs/utils/bigint-utils.js.map +1 -0
  100. package/cjs/utils/binary/asn1-parser.d.ts +17 -0
  101. package/cjs/utils/binary/asn1-parser.js +121 -0
  102. package/cjs/utils/binary/asn1-parser.js.map +1 -0
  103. package/cjs/utils/buffer-utils.d.ts +21 -0
  104. package/cjs/utils/buffer-utils.js +63 -0
  105. package/cjs/utils/buffer-utils.js.map +1 -0
  106. package/cjs/utils/condition-variable.d.ts +9 -0
  107. package/cjs/utils/condition-variable.js +28 -0
  108. package/cjs/utils/condition-variable.js.map +1 -0
  109. package/cjs/utils/controllable-promise.d.ts +16 -0
  110. package/cjs/utils/controllable-promise.js +25 -0
  111. package/cjs/utils/controllable-promise.js.map +1 -0
  112. package/cjs/utils/crypto/abstract.d.ts +23 -0
  113. package/cjs/utils/crypto/abstract.js +19 -0
  114. package/cjs/utils/crypto/abstract.js.map +1 -0
  115. package/cjs/utils/crypto/common.d.ts +12 -0
  116. package/cjs/utils/crypto/common.js +54 -0
  117. package/cjs/utils/crypto/common.js.map +1 -0
  118. package/cjs/utils/crypto/factorization.d.ts +5 -0
  119. package/cjs/utils/crypto/factorization.js +69 -0
  120. package/cjs/utils/crypto/factorization.js.map +1 -0
  121. package/cjs/utils/crypto/index.d.ts +5 -0
  122. package/cjs/utils/crypto/index.js +23 -0
  123. package/cjs/utils/crypto/index.js.map +1 -0
  124. package/cjs/utils/crypto/keys.d.ts +27 -0
  125. package/cjs/utils/crypto/keys.js +70 -0
  126. package/cjs/utils/crypto/keys.js.map +1 -0
  127. package/cjs/utils/crypto/miller-rabin.d.ts +2 -0
  128. package/cjs/utils/crypto/miller-rabin.js +44 -0
  129. package/cjs/utils/crypto/miller-rabin.js.map +1 -0
  130. package/cjs/utils/crypto/mtproto.d.ts +31 -0
  131. package/cjs/utils/crypto/mtproto.js +66 -0
  132. package/cjs/utils/crypto/mtproto.js.map +1 -0
  133. package/cjs/utils/crypto/node-crypto.d.ts +10 -0
  134. package/cjs/utils/crypto/node-crypto.js +46 -0
  135. package/cjs/utils/crypto/node-crypto.js.map +1 -0
  136. package/cjs/utils/crypto/password.d.ts +29 -0
  137. package/cjs/utils/crypto/password.js +106 -0
  138. package/cjs/utils/crypto/password.js.map +1 -0
  139. package/cjs/utils/crypto/subtle.d.ts +12 -0
  140. package/cjs/utils/crypto/subtle.js +86 -0
  141. package/cjs/utils/crypto/subtle.js.map +1 -0
  142. package/cjs/utils/crypto/utils.d.ts +14 -0
  143. package/cjs/utils/crypto/utils.js +30 -0
  144. package/cjs/utils/crypto/utils.js.map +1 -0
  145. package/cjs/utils/default-dcs.d.ts +7 -0
  146. package/cjs/utils/default-dcs.js +76 -0
  147. package/cjs/utils/default-dcs.js.map +1 -0
  148. package/cjs/utils/deque.d.ts +29 -0
  149. package/cjs/utils/deque.js +210 -0
  150. package/cjs/utils/deque.js.map +1 -0
  151. package/cjs/utils/early-timer.d.ts +42 -0
  152. package/cjs/utils/early-timer.js +79 -0
  153. package/cjs/utils/early-timer.js.map +1 -0
  154. package/cjs/utils/flood-control.d.ts +14 -0
  155. package/cjs/utils/flood-control.js +65 -0
  156. package/cjs/utils/flood-control.js.map +1 -0
  157. package/cjs/utils/function-utils.d.ts +13 -0
  158. package/cjs/utils/function-utils.js +30 -0
  159. package/cjs/utils/function-utils.js.map +1 -0
  160. package/cjs/utils/index.d.ts +24 -0
  161. package/cjs/utils/index.js +41 -0
  162. package/cjs/utils/index.js.map +1 -0
  163. package/cjs/utils/linked-list.d.ts +21 -0
  164. package/cjs/utils/linked-list.js +73 -0
  165. package/cjs/utils/linked-list.js.map +1 -0
  166. package/cjs/utils/links/bots.d.ts +71 -0
  167. package/cjs/utils/links/bots.js +259 -0
  168. package/cjs/utils/links/bots.js.map +1 -0
  169. package/cjs/utils/links/bundle.d.ts +7 -0
  170. package/cjs/utils/links/bundle.js +24 -0
  171. package/cjs/utils/links/bundle.js.map +1 -0
  172. package/cjs/utils/links/calls.d.ts +16 -0
  173. package/cjs/utils/links/calls.js +59 -0
  174. package/cjs/utils/links/calls.js.map +1 -0
  175. package/cjs/utils/links/chat.d.ts +46 -0
  176. package/cjs/utils/links/chat.js +160 -0
  177. package/cjs/utils/links/chat.js.map +1 -0
  178. package/cjs/utils/links/common.d.ts +31 -0
  179. package/cjs/utils/links/common.js +60 -0
  180. package/cjs/utils/links/common.js.map +1 -0
  181. package/cjs/utils/links/index.d.ts +2 -0
  182. package/cjs/utils/links/index.js +29 -0
  183. package/cjs/utils/links/index.js.map +1 -0
  184. package/cjs/utils/links/misc.d.ts +19 -0
  185. package/cjs/utils/links/misc.js +77 -0
  186. package/cjs/utils/links/misc.js.map +1 -0
  187. package/cjs/utils/links/proxy.d.ts +17 -0
  188. package/cjs/utils/links/proxy.js +61 -0
  189. package/cjs/utils/links/proxy.js.map +1 -0
  190. package/cjs/utils/links/stickers.d.ts +9 -0
  191. package/cjs/utils/links/stickers.js +28 -0
  192. package/cjs/utils/links/stickers.js.map +1 -0
  193. package/cjs/utils/links/user.d.ts +27 -0
  194. package/cjs/utils/links/user.js +81 -0
  195. package/cjs/utils/links/user.js.map +1 -0
  196. package/cjs/utils/logger.d.ts +54 -0
  197. package/cjs/utils/logger.js +158 -0
  198. package/cjs/utils/logger.js.map +1 -0
  199. package/cjs/utils/long-utils.d.ts +75 -0
  200. package/cjs/utils/long-utils.js +161 -0
  201. package/cjs/utils/long-utils.js.map +1 -0
  202. package/cjs/utils/lru-map.d.ts +21 -0
  203. package/cjs/utils/lru-map.js +107 -0
  204. package/cjs/utils/lru-map.js.map +1 -0
  205. package/cjs/utils/lru-set.d.ts +22 -0
  206. package/cjs/utils/lru-set.js +48 -0
  207. package/cjs/utils/lru-set.js.map +1 -0
  208. package/cjs/utils/misc-utils.d.ts +7 -0
  209. package/cjs/utils/misc-utils.js +15 -0
  210. package/cjs/utils/misc-utils.js.map +1 -0
  211. package/cjs/utils/peer-utils.d.ts +35 -0
  212. package/cjs/utils/peer-utils.js +188 -0
  213. package/cjs/utils/peer-utils.js.map +1 -0
  214. package/cjs/utils/platform/crypto.d.ts +1 -0
  215. package/cjs/utils/platform/crypto.js +8 -0
  216. package/cjs/utils/platform/crypto.js.map +1 -0
  217. package/cjs/utils/platform/crypto.web.d.ts +1 -0
  218. package/cjs/utils/platform/crypto.web.js +14 -0
  219. package/cjs/utils/platform/crypto.web.js.map +1 -0
  220. package/cjs/utils/platform/error-reporting.d.ts +3 -0
  221. package/cjs/utils/platform/error-reporting.js +22 -0
  222. package/cjs/utils/platform/error-reporting.js.map +1 -0
  223. package/cjs/utils/platform/logging.d.ts +1 -0
  224. package/cjs/utils/platform/logging.js +35 -0
  225. package/cjs/utils/platform/logging.js.map +1 -0
  226. package/cjs/utils/platform/logging.web.d.ts +1 -0
  227. package/cjs/utils/platform/logging.web.js +35 -0
  228. package/cjs/utils/platform/logging.web.js.map +1 -0
  229. package/cjs/utils/platform/random.d.ts +1 -0
  230. package/cjs/utils/platform/random.js +7 -0
  231. package/cjs/utils/platform/random.js.map +1 -0
  232. package/cjs/utils/platform/random.web.d.ts +1 -0
  233. package/cjs/utils/platform/random.web.js +10 -0
  234. package/cjs/utils/platform/random.web.js.map +1 -0
  235. package/cjs/utils/platform/transport.d.ts +1 -0
  236. package/cjs/utils/platform/transport.js +8 -0
  237. package/cjs/utils/platform/transport.js.map +1 -0
  238. package/cjs/utils/platform/transport.web.d.ts +1 -0
  239. package/cjs/utils/platform/transport.web.js +15 -0
  240. package/cjs/utils/platform/transport.web.js.map +1 -0
  241. package/cjs/utils/sorted-array.d.ts +17 -0
  242. package/cjs/utils/sorted-array.js +83 -0
  243. package/cjs/utils/sorted-array.js.map +1 -0
  244. package/cjs/utils/string-session.d.ts +11 -0
  245. package/cjs/utils/string-session.js +73 -0
  246. package/cjs/utils/string-session.js.map +1 -0
  247. package/cjs/utils/tl-json.d.ts +13 -0
  248. package/cjs/utils/tl-json.js +62 -0
  249. package/cjs/utils/tl-json.js.map +1 -0
  250. package/cjs/utils/type-assertions.d.ts +37 -0
  251. package/cjs/utils/type-assertions.js +70 -0
  252. package/cjs/utils/type-assertions.js.map +1 -0
  253. package/esm/base-client.d.ts +297 -0
  254. package/esm/base-client.js +317 -0
  255. package/esm/base-client.js.map +1 -0
  256. package/esm/index.d.ts +10 -0
  257. package/esm/index.js +11 -0
  258. package/esm/index.js.map +1 -0
  259. package/esm/network/auth-key.d.ts +21 -0
  260. package/esm/network/auth-key.js +97 -0
  261. package/esm/network/auth-key.js.map +1 -0
  262. package/esm/network/authorization.d.ts +9 -0
  263. package/esm/network/authorization.js +325 -0
  264. package/esm/network/authorization.js.map +1 -0
  265. package/esm/network/config-manager.d.ts +33 -0
  266. package/esm/network/config-manager.js +89 -0
  267. package/esm/network/config-manager.js.map +1 -0
  268. package/esm/network/index.d.ts +4 -0
  269. package/esm/network/index.js +4 -0
  270. package/esm/network/index.js.map +1 -0
  271. package/esm/network/mtproto-session.d.ts +116 -0
  272. package/esm/network/mtproto-session.js +202 -0
  273. package/esm/network/mtproto-session.js.map +1 -0
  274. package/esm/network/multi-session-connection.d.ts +33 -0
  275. package/esm/network/multi-session-connection.js +236 -0
  276. package/esm/network/multi-session-connection.js.map +1 -0
  277. package/esm/network/network-manager.d.ts +190 -0
  278. package/esm/network/network-manager.js +542 -0
  279. package/esm/network/network-manager.js.map +1 -0
  280. package/esm/network/persistent-connection.d.ts +51 -0
  281. package/esm/network/persistent-connection.js +166 -0
  282. package/esm/network/persistent-connection.js.map +1 -0
  283. package/esm/network/reconnection.d.ts +11 -0
  284. package/esm/network/reconnection.js +14 -0
  285. package/esm/network/reconnection.js.map +1 -0
  286. package/esm/network/session-connection.d.ts +72 -0
  287. package/esm/network/session-connection.js +1356 -0
  288. package/esm/network/session-connection.js.map +1 -0
  289. package/esm/network/transports/abstract.d.ts +99 -0
  290. package/esm/network/transports/abstract.js +34 -0
  291. package/esm/network/transports/abstract.js.map +1 -0
  292. package/esm/network/transports/index.d.ts +8 -0
  293. package/esm/network/transports/index.js +9 -0
  294. package/esm/network/transports/index.js.map +1 -0
  295. package/esm/network/transports/intermediate.d.ts +20 -0
  296. package/esm/network/transports/intermediate.js +62 -0
  297. package/esm/network/transports/intermediate.js.map +1 -0
  298. package/esm/network/transports/obfuscated.d.ts +18 -0
  299. package/esm/network/transports/obfuscated.js +79 -0
  300. package/esm/network/transports/obfuscated.js.map +1 -0
  301. package/esm/network/transports/streamed.d.ts +24 -0
  302. package/esm/network/transports/streamed.js +25 -0
  303. package/esm/network/transports/streamed.js.map +1 -0
  304. package/esm/network/transports/tcp.d.ts +33 -0
  305. package/esm/network/transports/tcp.js +122 -0
  306. package/esm/network/transports/tcp.js.map +1 -0
  307. package/esm/network/transports/websocket.d.ts +47 -0
  308. package/esm/network/transports/websocket.js +116 -0
  309. package/esm/network/transports/websocket.js.map +1 -0
  310. package/esm/network/transports/wrapped.d.ts +11 -0
  311. package/esm/network/transports/wrapped.js +19 -0
  312. package/esm/network/transports/wrapped.js.map +1 -0
  313. package/esm/storage/abstract.d.ts +174 -0
  314. package/esm/storage/abstract.js +2 -0
  315. package/esm/storage/abstract.js.map +1 -0
  316. package/esm/storage/index.d.ts +5 -0
  317. package/esm/storage/index.js +6 -0
  318. package/esm/storage/index.js.map +1 -0
  319. package/esm/storage/json-file.d.ts +31 -0
  320. package/esm/storage/json-file.js +63 -0
  321. package/esm/storage/json-file.js.map +1 -0
  322. package/esm/storage/json.d.ts +9 -0
  323. package/esm/storage/json.js +61 -0
  324. package/esm/storage/json.js.map +1 -0
  325. package/esm/storage/localstorage.d.ts +7 -0
  326. package/esm/storage/localstorage.js +21 -0
  327. package/esm/storage/localstorage.js.map +1 -0
  328. package/esm/storage/memory.d.ts +98 -0
  329. package/esm/storage/memory.js +295 -0
  330. package/esm/storage/memory.js.map +1 -0
  331. package/esm/types/errors.d.ts +53 -0
  332. package/esm/types/errors.js +49 -0
  333. package/esm/types/errors.js.map +1 -0
  334. package/esm/types/index.d.ts +3 -0
  335. package/esm/types/index.js +4 -0
  336. package/esm/types/index.js.map +1 -0
  337. package/esm/types/peers.d.ts +4 -0
  338. package/esm/types/peers.js +2 -0
  339. package/esm/types/peers.js.map +1 -0
  340. package/esm/types/utils.d.ts +6 -0
  341. package/esm/types/utils.js +5 -0
  342. package/esm/types/utils.js.map +1 -0
  343. package/esm/utils/async-lock.d.ts +10 -0
  344. package/esm/utils/async-lock.js +39 -0
  345. package/esm/utils/async-lock.js.map +1 -0
  346. package/esm/utils/bigint-utils.d.ts +40 -0
  347. package/esm/utils/bigint-utils.js +92 -0
  348. package/esm/utils/bigint-utils.js.map +1 -0
  349. package/esm/utils/binary/asn1-parser.d.ts +17 -0
  350. package/esm/utils/binary/asn1-parser.js +116 -0
  351. package/esm/utils/binary/asn1-parser.js.map +1 -0
  352. package/esm/utils/buffer-utils.d.ts +21 -0
  353. package/esm/utils/buffer-utils.js +55 -0
  354. package/esm/utils/buffer-utils.js.map +1 -0
  355. package/esm/utils/condition-variable.d.ts +9 -0
  356. package/esm/utils/condition-variable.js +24 -0
  357. package/esm/utils/condition-variable.js.map +1 -0
  358. package/esm/utils/controllable-promise.d.ts +16 -0
  359. package/esm/utils/controllable-promise.js +20 -0
  360. package/esm/utils/controllable-promise.js.map +1 -0
  361. package/esm/utils/crypto/abstract.d.ts +23 -0
  362. package/esm/utils/crypto/abstract.js +15 -0
  363. package/esm/utils/crypto/abstract.js.map +1 -0
  364. package/esm/utils/crypto/common.d.ts +12 -0
  365. package/esm/utils/crypto/common.js +50 -0
  366. package/esm/utils/crypto/common.js.map +1 -0
  367. package/esm/utils/crypto/factorization.d.ts +5 -0
  368. package/esm/utils/crypto/factorization.js +62 -0
  369. package/esm/utils/crypto/factorization.js.map +1 -0
  370. package/esm/utils/crypto/index.d.ts +5 -0
  371. package/esm/utils/crypto/index.js +6 -0
  372. package/esm/utils/crypto/index.js.map +1 -0
  373. package/esm/utils/crypto/keys.d.ts +27 -0
  374. package/esm/utils/crypto/keys.js +64 -0
  375. package/esm/utils/crypto/keys.js.map +1 -0
  376. package/esm/utils/crypto/miller-rabin.d.ts +2 -0
  377. package/esm/utils/crypto/miller-rabin.js +37 -0
  378. package/esm/utils/crypto/miller-rabin.js.map +1 -0
  379. package/esm/utils/crypto/mtproto.d.ts +31 -0
  380. package/esm/utils/crypto/mtproto.js +60 -0
  381. package/esm/utils/crypto/mtproto.js.map +1 -0
  382. package/esm/utils/crypto/node-crypto.d.ts +10 -0
  383. package/esm/utils/crypto/node-crypto.js +42 -0
  384. package/esm/utils/crypto/node-crypto.js.map +1 -0
  385. package/esm/utils/crypto/password.d.ts +29 -0
  386. package/esm/utils/crypto/password.js +97 -0
  387. package/esm/utils/crypto/password.js.map +1 -0
  388. package/esm/utils/crypto/subtle.d.ts +12 -0
  389. package/esm/utils/crypto/subtle.js +59 -0
  390. package/esm/utils/crypto/subtle.js.map +1 -0
  391. package/esm/utils/crypto/utils.d.ts +14 -0
  392. package/esm/utils/crypto/utils.js +25 -0
  393. package/esm/utils/crypto/utils.js.map +1 -0
  394. package/esm/utils/default-dcs.d.ts +7 -0
  395. package/esm/utils/default-dcs.js +73 -0
  396. package/esm/utils/default-dcs.js.map +1 -0
  397. package/esm/utils/deque.d.ts +29 -0
  398. package/esm/utils/deque.js +206 -0
  399. package/esm/utils/deque.js.map +1 -0
  400. package/esm/utils/early-timer.d.ts +42 -0
  401. package/esm/utils/early-timer.js +75 -0
  402. package/esm/utils/early-timer.js.map +1 -0
  403. package/esm/utils/flood-control.d.ts +14 -0
  404. package/esm/utils/flood-control.js +61 -0
  405. package/esm/utils/flood-control.js.map +1 -0
  406. package/esm/utils/function-utils.d.ts +13 -0
  407. package/esm/utils/function-utils.js +26 -0
  408. package/esm/utils/function-utils.js.map +1 -0
  409. package/esm/utils/index.d.ts +24 -0
  410. package/esm/utils/index.js +25 -0
  411. package/esm/utils/index.js.map +1 -0
  412. package/esm/utils/linked-list.d.ts +21 -0
  413. package/esm/utils/linked-list.js +69 -0
  414. package/esm/utils/linked-list.js.map +1 -0
  415. package/esm/utils/links/bots.d.ts +71 -0
  416. package/esm/utils/links/bots.js +256 -0
  417. package/esm/utils/links/bots.js.map +1 -0
  418. package/esm/utils/links/bundle.d.ts +7 -0
  419. package/esm/utils/links/bundle.js +8 -0
  420. package/esm/utils/links/bundle.js.map +1 -0
  421. package/esm/utils/links/calls.d.ts +16 -0
  422. package/esm/utils/links/calls.js +56 -0
  423. package/esm/utils/links/calls.js.map +1 -0
  424. package/esm/utils/links/chat.d.ts +46 -0
  425. package/esm/utils/links/chat.js +157 -0
  426. package/esm/utils/links/chat.js.map +1 -0
  427. package/esm/utils/links/common.d.ts +31 -0
  428. package/esm/utils/links/common.js +56 -0
  429. package/esm/utils/links/common.js.map +1 -0
  430. package/esm/utils/links/index.d.ts +2 -0
  431. package/esm/utils/links/index.js +3 -0
  432. package/esm/utils/links/index.js.map +1 -0
  433. package/esm/utils/links/misc.d.ts +19 -0
  434. package/esm/utils/links/misc.js +74 -0
  435. package/esm/utils/links/misc.js.map +1 -0
  436. package/esm/utils/links/proxy.d.ts +17 -0
  437. package/esm/utils/links/proxy.js +58 -0
  438. package/esm/utils/links/proxy.js.map +1 -0
  439. package/esm/utils/links/stickers.d.ts +9 -0
  440. package/esm/utils/links/stickers.js +25 -0
  441. package/esm/utils/links/stickers.js.map +1 -0
  442. package/esm/utils/links/user.d.ts +27 -0
  443. package/esm/utils/links/user.js +78 -0
  444. package/esm/utils/links/user.js.map +1 -0
  445. package/esm/utils/logger.d.ts +54 -0
  446. package/esm/utils/logger.js +154 -0
  447. package/esm/utils/logger.js.map +1 -0
  448. package/esm/utils/long-utils.d.ts +75 -0
  449. package/esm/utils/long-utils.js +148 -0
  450. package/esm/utils/long-utils.js.map +1 -0
  451. package/esm/utils/lru-map.d.ts +21 -0
  452. package/esm/utils/lru-map.js +103 -0
  453. package/esm/utils/lru-map.js.map +1 -0
  454. package/esm/utils/lru-set.d.ts +22 -0
  455. package/esm/utils/lru-set.js +44 -0
  456. package/esm/utils/lru-set.js.map +1 -0
  457. package/esm/utils/misc-utils.d.ts +7 -0
  458. package/esm/utils/misc-utils.js +10 -0
  459. package/esm/utils/misc-utils.js.map +1 -0
  460. package/esm/utils/peer-utils.d.ts +35 -0
  461. package/esm/utils/peer-utils.js +179 -0
  462. package/esm/utils/peer-utils.js.map +1 -0
  463. package/esm/utils/platform/crypto.d.ts +1 -0
  464. package/esm/utils/platform/crypto.js +4 -0
  465. package/esm/utils/platform/crypto.js.map +1 -0
  466. package/esm/utils/platform/crypto.web.d.ts +1 -0
  467. package/esm/utils/platform/crypto.web.js +10 -0
  468. package/esm/utils/platform/crypto.web.js.map +1 -0
  469. package/esm/utils/platform/error-reporting.d.ts +3 -0
  470. package/esm/utils/platform/error-reporting.js +18 -0
  471. package/esm/utils/platform/error-reporting.js.map +1 -0
  472. package/esm/utils/platform/logging.d.ts +1 -0
  473. package/esm/utils/platform/logging.js +32 -0
  474. package/esm/utils/platform/logging.js.map +1 -0
  475. package/esm/utils/platform/logging.web.d.ts +1 -0
  476. package/esm/utils/platform/logging.web.js +31 -0
  477. package/esm/utils/platform/logging.web.js.map +1 -0
  478. package/esm/utils/platform/random.d.ts +1 -0
  479. package/esm/utils/platform/random.js +4 -0
  480. package/esm/utils/platform/random.js.map +1 -0
  481. package/esm/utils/platform/random.web.d.ts +1 -0
  482. package/esm/utils/platform/random.web.js +6 -0
  483. package/esm/utils/platform/random.web.js.map +1 -0
  484. package/esm/utils/platform/transport.d.ts +1 -0
  485. package/esm/utils/platform/transport.js +4 -0
  486. package/esm/utils/platform/transport.js.map +1 -0
  487. package/esm/utils/platform/transport.web.d.ts +1 -0
  488. package/esm/utils/platform/transport.web.js +12 -0
  489. package/esm/utils/platform/transport.web.js.map +1 -0
  490. package/esm/utils/sorted-array.d.ts +17 -0
  491. package/esm/utils/sorted-array.js +79 -0
  492. package/esm/utils/sorted-array.js.map +1 -0
  493. package/esm/utils/string-session.d.ts +11 -0
  494. package/esm/utils/string-session.js +68 -0
  495. package/esm/utils/string-session.js.map +1 -0
  496. package/esm/utils/tl-json.d.ts +13 -0
  497. package/esm/utils/tl-json.js +57 -0
  498. package/esm/utils/tl-json.js.map +1 -0
  499. package/esm/utils/type-assertions.d.ts +37 -0
  500. package/esm/utils/type-assertions.js +61 -0
  501. package/esm/utils/type-assertions.js.map +1 -0
  502. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../../src/utils/links/misc.ts"],"names":[],"mappings":"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","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * Share links\n *\n * Used to share a prepared message and URL into a chosen chat's text field.\n */\nexport const share = deeplinkBuilder<{ url: string; text?: string }>({\n internalBuild: ({ url, text }) => ['msg_url', { url, text }],\n internalParse: (path, query) => {\n if (path !== 'msg_url') return null\n\n const url = query.get('url')\n if (!url) return null\n\n const text = query.get('text')\n\n return { url, text: text || undefined }\n },\n externalBuild: ({ url, text }) => ['share', { url, text }],\n externalParse: (path, query) => {\n if (path !== 'share') return null\n\n const url = query.get('url')\n if (!url) return null\n\n const text = query.get('text')\n\n return { url, text: text || undefined }\n },\n})\n\n/**\n * Boost links\n *\n * Used by users to boost channels, granting them the ability to post stories.\n */\nexport const boost = deeplinkBuilder<{ username: string } | { channelId: number }>({\n internalBuild: (params) => {\n if ('username' in params) {\n return ['boost', { domain: params.username }]\n }\n\n return ['boost', { channel: params.channelId }]\n },\n internalParse: (path, query) => {\n if (path !== 'boost') return null\n\n const username = query.get('domain')\n\n if (username) {\n return { username }\n }\n\n const channelId = Number(query.get('channel'))\n\n if (!isNaN(channelId)) {\n return { channelId: Number(channelId) }\n }\n\n return null\n },\n externalBuild: (params) => {\n if ('username' in params) {\n return [params.username, { boost: true }]\n }\n\n return [`c/${params.channelId}`, { boost: true }]\n },\n externalParse: (path, query) => {\n if (!query.has('boost')) return null\n\n if (path.startsWith('c/')) {\n const channelId = Number(path.slice(2))\n if (isNaN(channelId)) return null\n\n return { channelId }\n }\n\n if (path.includes('/')) return null\n\n return { username: path }\n },\n})\n"]}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * MTProxy links
3
+ */
4
+ export declare const mtproxy: import("./common.js").Deeplink<{
5
+ server: string;
6
+ port: number;
7
+ secret: string;
8
+ }>;
9
+ /**
10
+ * Socks5 proxy links
11
+ */
12
+ export declare const socks5: import("./common.js").Deeplink<{
13
+ server: string;
14
+ port: number;
15
+ user?: string | undefined;
16
+ pass?: string | undefined;
17
+ }>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.socks5 = exports.mtproxy = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ /**
6
+ * MTProxy links
7
+ */
8
+ exports.mtproxy = (0, common_js_1.deeplinkBuilder)({
9
+ internalBuild: (params) => ['proxy', params],
10
+ externalBuild: (params) => ['proxy', params],
11
+ internalParse: (path, query) => {
12
+ if (path !== 'proxy')
13
+ return null;
14
+ const server = query.get('server');
15
+ const port = Number(query.get('port'));
16
+ const secret = query.get('secret');
17
+ if (!server || isNaN(port) || !secret)
18
+ return null;
19
+ return { server, port, secret };
20
+ },
21
+ externalParse: (path, query) => {
22
+ if (path !== 'proxy')
23
+ return null;
24
+ const server = query.get('server');
25
+ const port = Number(query.get('port'));
26
+ const secret = query.get('secret');
27
+ if (!server || isNaN(port) || !secret)
28
+ return null;
29
+ return { server, port, secret };
30
+ },
31
+ });
32
+ /**
33
+ * Socks5 proxy links
34
+ */
35
+ exports.socks5 = (0, common_js_1.deeplinkBuilder)({
36
+ internalBuild: (params) => ['socks', params],
37
+ externalBuild: (params) => ['socks', params],
38
+ internalParse: (path, query) => {
39
+ if (path !== 'socks')
40
+ return null;
41
+ const server = query.get('server');
42
+ const port = Number(query.get('port'));
43
+ const user = query.get('user');
44
+ const pass = query.get('pass');
45
+ if (!server || isNaN(port))
46
+ return null;
47
+ return { server, port, user: user || undefined, pass: pass || undefined };
48
+ },
49
+ externalParse: (path, query) => {
50
+ if (path !== 'socks')
51
+ return null;
52
+ const server = query.get('server');
53
+ const port = Number(query.get('port'));
54
+ const user = query.get('user');
55
+ const pass = query.get('pass');
56
+ if (!server || isNaN(port))
57
+ return null;
58
+ return { server, port, user: user || undefined, pass: pass || undefined };
59
+ },
60
+ });
61
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../../src/utils/links/proxy.ts"],"names":[],"mappings":"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","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * MTProxy links\n */\nexport const mtproxy = deeplinkBuilder<{\n server: string\n port: number\n secret: string\n}>({\n internalBuild: (params) => ['proxy', params],\n externalBuild: (params) => ['proxy', params],\n internalParse: (path, query) => {\n if (path !== 'proxy') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const secret = query.get('secret')\n\n if (!server || isNaN(port) || !secret) return null\n\n return { server, port, secret }\n },\n externalParse: (path, query) => {\n if (path !== 'proxy') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const secret = query.get('secret')\n\n if (!server || isNaN(port) || !secret) return null\n\n return { server, port, secret }\n },\n})\n\n/**\n * Socks5 proxy links\n */\nexport const socks5 = deeplinkBuilder<{\n server: string\n port: number\n user?: string\n pass?: string\n}>({\n internalBuild: (params) => ['socks', params],\n externalBuild: (params) => ['socks', params],\n internalParse: (path, query) => {\n if (path !== 'socks') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const user = query.get('user')\n const pass = query.get('pass')\n\n if (!server || isNaN(port)) return null\n\n return { server, port, user: user || undefined, pass: pass || undefined }\n },\n externalParse: (path, query) => {\n if (path !== 'socks') return null\n\n const server = query.get('server')\n const port = Number(query.get('port'))\n const user = query.get('user')\n const pass = query.get('pass')\n\n if (!server || isNaN(port)) return null\n\n return { server, port, user: user || undefined, pass: pass || undefined }\n },\n})\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Sticker set links
3
+ *
4
+ * Used to import stickersets or custom emoji stickersets
5
+ */
6
+ export declare const stickerset: import("./common.js").Deeplink<{
7
+ slug: string;
8
+ emoji?: boolean | undefined;
9
+ }>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stickerset = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ /**
6
+ * Sticker set links
7
+ *
8
+ * Used to import stickersets or custom emoji stickersets
9
+ */
10
+ exports.stickerset = (0, common_js_1.deeplinkBuilder)({
11
+ internalBuild: ({ slug, emoji }) => [emoji ? 'addemoji' : 'addstickers', { set: slug }],
12
+ internalParse: (path, query) => {
13
+ if (path !== 'addstickers' && path !== 'addemoji')
14
+ return null;
15
+ const slug = query.get('set');
16
+ if (!slug)
17
+ return null;
18
+ return { slug, emoji: path === 'addemoji' };
19
+ },
20
+ externalBuild: ({ slug, emoji }) => [`${emoji ? 'addemoji' : 'addstickers'}/${slug}`, null],
21
+ externalParse: (path) => {
22
+ const [prefix, slug] = path.split('/');
23
+ if (prefix !== 'addstickers' && prefix !== 'addemoji')
24
+ return null;
25
+ return { slug, emoji: prefix === 'addemoji' };
26
+ },
27
+ });
28
+ //# sourceMappingURL=stickers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stickers.js","sourceRoot":"","sources":["../../../../src/utils/links/stickers.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAE7C;;;;GAIG;AACU,QAAA,UAAU,GAAG,IAAA,2BAAe,EAGtC;IACC,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvF,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAE9D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAA;IAC/C,CAAC;IACD,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;IAC3F,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QAElE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,EAAE,CAAA;IACjD,CAAC;CACJ,CAAC,CAAA","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * Sticker set links\n *\n * Used to import stickersets or custom emoji stickersets\n */\nexport const stickerset = deeplinkBuilder<{\n slug: string\n emoji?: boolean\n}>({\n internalBuild: ({ slug, emoji }) => [emoji ? 'addemoji' : 'addstickers', { set: slug }],\n internalParse: (path, query) => {\n if (path !== 'addstickers' && path !== 'addemoji') return null\n\n const slug = query.get('set')\n if (!slug) return null\n\n return { slug, emoji: path === 'addemoji' }\n },\n externalBuild: ({ slug, emoji }) => [`${emoji ? 'addemoji' : 'addstickers'}/${slug}`, null],\n externalParse: (path) => {\n const [prefix, slug] = path.split('/')\n if (prefix !== 'addstickers' && prefix !== 'addemoji') return null\n\n return { slug, emoji: prefix === 'addemoji' }\n },\n})\n"]}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Public username links
3
+ *
4
+ * Used to link to public users, groups and channels
5
+ */
6
+ export declare const publicUsername: import("./common.js").Deeplink<{
7
+ username: string;
8
+ }>;
9
+ /**
10
+ * Temporary profile links
11
+ *
12
+ * Used to link to user profiles, generated using contacts.exportContactToken.
13
+ * These links can be generated even for profiles that don't have a username,
14
+ * and they have an expiration date, specified by the expires field of the exportedContactToken
15
+ * constructor returned by contacts.exportContactToken.
16
+ */
17
+ export declare const temporaryProfile: import("./common.js").Deeplink<{
18
+ token: string;
19
+ }>;
20
+ /**
21
+ * Phone number links
22
+ *
23
+ * Used to link to public and private users by their phone number.
24
+ */
25
+ export declare const phoneNumber: import("./common.js").Deeplink<{
26
+ phone: string;
27
+ }>;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.phoneNumber = exports.temporaryProfile = exports.publicUsername = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ /**
6
+ * Public username links
7
+ *
8
+ * Used to link to public users, groups and channels
9
+ */
10
+ exports.publicUsername = (0, common_js_1.deeplinkBuilder)({
11
+ internalBuild: ({ username }) => ['resolve', { domain: username }],
12
+ internalParse: (path, query) => {
13
+ if (path !== 'resolve')
14
+ return null;
15
+ const domain = query.get('domain');
16
+ if (!domain)
17
+ return null;
18
+ // might be some more precise deeplink
19
+ if ([...query.keys()].length > 1)
20
+ return null;
21
+ return { username: domain };
22
+ },
23
+ externalBuild: ({ username }) => [username, null],
24
+ externalParse: (path, query) => {
25
+ if (path.length <= 1 || path.includes('/') || path[0] === '+')
26
+ return null;
27
+ if ([...query.keys()].length > 0)
28
+ return null;
29
+ return { username: path };
30
+ },
31
+ });
32
+ /**
33
+ * Temporary profile links
34
+ *
35
+ * Used to link to user profiles, generated using contacts.exportContactToken.
36
+ * These links can be generated even for profiles that don't have a username,
37
+ * and they have an expiration date, specified by the expires field of the exportedContactToken
38
+ * constructor returned by contacts.exportContactToken.
39
+ */
40
+ exports.temporaryProfile = (0, common_js_1.deeplinkBuilder)({
41
+ internalBuild: ({ token }) => ['contact', { token }],
42
+ internalParse: (path, query) => {
43
+ if (path !== 'contact')
44
+ return null;
45
+ const token = query.get('token');
46
+ if (!token)
47
+ return null;
48
+ return { token };
49
+ },
50
+ externalBuild: ({ token }) => [`contact/${token}`, null],
51
+ externalParse: (path) => {
52
+ const [prefix, token] = path.split('/');
53
+ if (prefix !== 'contact')
54
+ return null;
55
+ return { token };
56
+ },
57
+ });
58
+ /**
59
+ * Phone number links
60
+ *
61
+ * Used to link to public and private users by their phone number.
62
+ */
63
+ exports.phoneNumber = (0, common_js_1.deeplinkBuilder)({
64
+ internalBuild: ({ phone }) => ['resolve', { phone }],
65
+ internalParse: (path, query) => {
66
+ if (path !== 'resolve')
67
+ return null;
68
+ const phone = query.get('phone');
69
+ if (!phone)
70
+ return null;
71
+ return { phone };
72
+ },
73
+ externalBuild: ({ phone }) => [`+${phone}`, null],
74
+ externalParse: (path) => {
75
+ const m = path.match(/^\+(\d+)$/);
76
+ if (!m)
77
+ return null;
78
+ return { phone: m[1] };
79
+ },
80
+ });
81
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../src/utils/links/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { deeplinkBuilder } from './common.js'\n\n/**\n * Public username links\n *\n * Used to link to public users, groups and channels\n */\nexport const publicUsername = deeplinkBuilder<{ username: string }>({\n internalBuild: ({ username }) => ['resolve', { domain: username }],\n internalParse: (path, query) => {\n if (path !== 'resolve') return null\n\n const domain = query.get('domain')\n if (!domain) return null\n\n // might be some more precise deeplink\n if ([...query.keys()].length > 1) return null\n\n return { username: domain }\n },\n externalBuild: ({ username }) => [username, null],\n externalParse: (path, query) => {\n if (path.length <= 1 || path.includes('/') || path[0] === '+') return null\n\n if ([...query.keys()].length > 0) return null\n\n return { username: path }\n },\n})\n\n/**\n * Temporary profile links\n *\n * Used to link to user profiles, generated using contacts.exportContactToken.\n * These links can be generated even for profiles that don't have a username,\n * and they have an expiration date, specified by the expires field of the exportedContactToken\n * constructor returned by contacts.exportContactToken.\n */\nexport const temporaryProfile = deeplinkBuilder<{ token: string }>({\n internalBuild: ({ token }) => ['contact', { token }],\n internalParse: (path, query) => {\n if (path !== 'contact') return null\n\n const token = query.get('token')\n if (!token) return null\n\n return { token }\n },\n externalBuild: ({ token }) => [`contact/${token}`, null],\n externalParse: (path) => {\n const [prefix, token] = path.split('/')\n if (prefix !== 'contact') return null\n\n return { token }\n },\n})\n\n/**\n * Phone number links\n *\n * Used to link to public and private users by their phone number.\n */\nexport const phoneNumber = deeplinkBuilder<{ phone: string }>({\n internalBuild: ({ phone }) => ['resolve', { phone }],\n internalParse: (path, query) => {\n if (path !== 'resolve') return null\n\n const phone = query.get('phone')\n if (!phone) return null\n\n return { phone }\n },\n externalBuild: ({ phone }) => [`+${phone}`, null],\n externalParse: (path) => {\n const m = path.match(/^\\+(\\d+)$/)\n if (!m) return null\n\n return { phone: m[1] }\n },\n})\n"]}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Logger created by {@link LogManager}
3
+ */
4
+ export declare class Logger {
5
+ readonly mgr: LogManager;
6
+ readonly tag: string;
7
+ readonly parent: Logger;
8
+ private color;
9
+ prefix: string;
10
+ constructor(mgr: LogManager, tag: string, parent?: Logger);
11
+ getPrefix(): string;
12
+ log(level: number, fmt: string, ...args: unknown[]): void;
13
+ readonly error: (fmt: string, ...args: unknown[]) => void;
14
+ readonly warn: (fmt: string, ...args: unknown[]) => void;
15
+ readonly info: (fmt: string, ...args: unknown[]) => void;
16
+ readonly debug: (fmt: string, ...args: unknown[]) => void;
17
+ readonly verbose: (fmt: string, ...args: unknown[]) => void;
18
+ /**
19
+ * Create a {@link Logger} with the given tag
20
+ * from the same {@link LogManager} as the current
21
+ * Logger.
22
+ *
23
+ * @param tag Logger tag
24
+ */
25
+ create(tag: string): Logger;
26
+ }
27
+ /**
28
+ * Log manager. A logger that allows managing child loggers
29
+ */
30
+ export declare class LogManager extends Logger {
31
+ static OFF: number;
32
+ static ERROR: number;
33
+ static WARN: number;
34
+ static INFO: number;
35
+ static DEBUG: number;
36
+ static VERBOSE: number;
37
+ constructor(tag?: string);
38
+ private _filter;
39
+ level: number;
40
+ handler: (color: number, level: number, tag: string, fmt: string, args: unknown[]) => void;
41
+ disable(): void;
42
+ /**
43
+ * Create a {@link Logger} with the given tag
44
+ *
45
+ * @param tag Logger tag
46
+ */
47
+ create(tag: string): Logger;
48
+ /**
49
+ * Filter logging by tags.
50
+ *
51
+ * @param cb
52
+ */
53
+ filter(cb: ((tag: string) => boolean) | null): void;
54
+ }
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogManager = exports.Logger = void 0;
4
+ const tl_runtime_1 = require("@mtcute/tl-runtime");
5
+ const logging_js_1 = require("./platform/logging.js");
6
+ let defaultLogLevel = 3;
7
+ if (typeof process !== 'undefined') {
8
+ const envLogLevel = parseInt(process.env.MTCUTE_LOG_LEVEL ?? '');
9
+ if (!isNaN(envLogLevel)) {
10
+ defaultLogLevel = envLogLevel;
11
+ }
12
+ }
13
+ else if (typeof localStorage !== 'undefined') {
14
+ const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL);
15
+ if (!isNaN(localLogLevel)) {
16
+ defaultLogLevel = localLogLevel;
17
+ }
18
+ }
19
+ const FORMATTER_RE = /%[a-zA-Z]/g;
20
+ /**
21
+ * Logger created by {@link LogManager}
22
+ */
23
+ class Logger {
24
+ constructor(mgr, tag, parent = mgr) {
25
+ this.mgr = mgr;
26
+ this.tag = tag;
27
+ this.parent = parent;
28
+ this.prefix = '';
29
+ this.error = this.log.bind(this, LogManager.ERROR);
30
+ this.warn = this.log.bind(this, LogManager.WARN);
31
+ this.info = this.log.bind(this, LogManager.INFO);
32
+ this.debug = this.log.bind(this, LogManager.DEBUG);
33
+ this.verbose = this.log.bind(this, LogManager.VERBOSE);
34
+ let hash = 0;
35
+ for (let i = 0; i < tag.length; i++) {
36
+ hash = (hash << 5) - hash + tag.charCodeAt(i);
37
+ hash |= 0; // convert to 32bit int
38
+ }
39
+ this.color = Math.abs(hash) % 6;
40
+ }
41
+ getPrefix() {
42
+ let s = '';
43
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
44
+ let obj = this;
45
+ while (obj) {
46
+ if (obj.prefix)
47
+ s = obj.prefix + s;
48
+ obj = obj.parent;
49
+ }
50
+ return s;
51
+ }
52
+ log(level, fmt, ...args) {
53
+ if (level > this.mgr.level)
54
+ return;
55
+ // eslint-disable-next-line dot-notation
56
+ if (!this.mgr['_filter'](this.tag))
57
+ return;
58
+ // custom formatters
59
+ if (fmt.includes('%h') ||
60
+ fmt.includes('%b') ||
61
+ fmt.includes('%j') ||
62
+ fmt.includes('%J') ||
63
+ fmt.includes('%l')) {
64
+ let idx = 0;
65
+ fmt = fmt.replace(FORMATTER_RE, (m) => {
66
+ if (m === '%h' || m === '%b' || m === '%j' || m === '%J' || m === '%l') {
67
+ let val = args[idx];
68
+ args.splice(idx, 1);
69
+ if (m === '%h') {
70
+ if (ArrayBuffer.isView(val))
71
+ return (0, tl_runtime_1.hexEncode)(val);
72
+ if (typeof val === 'number')
73
+ return val.toString(16);
74
+ return String(val);
75
+ }
76
+ if (m === '%b')
77
+ return String(Boolean(val));
78
+ if (m === '%j' || m === '%J') {
79
+ if (m === '%J') {
80
+ val = [...val];
81
+ }
82
+ return JSON.stringify(val, (k, v) => {
83
+ if (ArrayBuffer.isView(v) ||
84
+ (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data))) {
85
+ // eslint-disable-next-line
86
+ let str = v.data ? Buffer.from(v.data).toString('hex') : (0, tl_runtime_1.hexEncode)(v);
87
+ if (str.length > 300) {
88
+ str = str.slice(0, 300) + '...';
89
+ }
90
+ return str;
91
+ }
92
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
93
+ return v;
94
+ });
95
+ }
96
+ if (m === '%l')
97
+ return String(val);
98
+ }
99
+ idx++;
100
+ return m;
101
+ });
102
+ }
103
+ this.mgr.handler(this.color, level, this.tag, this.getPrefix() + fmt, args);
104
+ }
105
+ /**
106
+ * Create a {@link Logger} with the given tag
107
+ * from the same {@link LogManager} as the current
108
+ * Logger.
109
+ *
110
+ * @param tag Logger tag
111
+ */
112
+ create(tag) {
113
+ return new Logger(this.mgr, tag, this);
114
+ }
115
+ }
116
+ exports.Logger = Logger;
117
+ const defaultFilter = () => true;
118
+ /**
119
+ * Log manager. A logger that allows managing child loggers
120
+ */
121
+ class LogManager extends Logger {
122
+ constructor(tag = 'base') {
123
+ // workaround because we cant pass this to super
124
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument
125
+ super(null, tag);
126
+ this._filter = defaultFilter;
127
+ this.level = defaultLogLevel;
128
+ this.handler = logging_js_1._defaultLoggingHandler;
129
+ this.mgr = this;
130
+ }
131
+ disable() {
132
+ this.level = 0;
133
+ }
134
+ /**
135
+ * Create a {@link Logger} with the given tag
136
+ *
137
+ * @param tag Logger tag
138
+ */
139
+ create(tag) {
140
+ return new Logger(this, tag);
141
+ }
142
+ /**
143
+ * Filter logging by tags.
144
+ *
145
+ * @param cb
146
+ */
147
+ filter(cb) {
148
+ this._filter = cb ?? defaultFilter;
149
+ }
150
+ }
151
+ LogManager.OFF = 0;
152
+ LogManager.ERROR = 1;
153
+ LogManager.WARN = 2;
154
+ LogManager.INFO = 3;
155
+ LogManager.DEBUG = 4;
156
+ LogManager.VERBOSE = 5;
157
+ exports.LogManager = LogManager;
158
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { hexEncode } from '@mtcute/tl-runtime'\n\nimport { _defaultLoggingHandler } from './platform/logging.js'\n\nlet defaultLogLevel = 3\n\nif (typeof process !== 'undefined') {\n const envLogLevel = parseInt(process.env.MTCUTE_LOG_LEVEL ?? '')\n\n if (!isNaN(envLogLevel)) {\n defaultLogLevel = envLogLevel\n }\n} else if (typeof localStorage !== 'undefined') {\n const localLogLevel = parseInt(localStorage.MTCUTE_LOG_LEVEL as string)\n\n if (!isNaN(localLogLevel)) {\n defaultLogLevel = localLogLevel\n }\n}\n\nconst FORMATTER_RE = /%[a-zA-Z]/g\n\n/**\n * Logger created by {@link LogManager}\n */\nexport class Logger {\n private color: number\n\n prefix = ''\n\n constructor(\n readonly mgr: LogManager,\n readonly tag: string,\n readonly parent: Logger = mgr,\n ) {\n let hash = 0\n\n for (let i = 0; i < tag.length; i++) {\n hash = (hash << 5) - hash + tag.charCodeAt(i)\n hash |= 0 // convert to 32bit int\n }\n\n this.color = Math.abs(hash) % 6\n }\n\n getPrefix(): string {\n let s = ''\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let obj: Logger | undefined = this\n\n while (obj) {\n if (obj.prefix) s = obj.prefix + s\n obj = obj.parent\n }\n\n return s\n }\n\n log(level: number, fmt: string, ...args: unknown[]): void {\n if (level > this.mgr.level) return\n // eslint-disable-next-line dot-notation\n if (!this.mgr['_filter'](this.tag)) return\n\n // custom formatters\n if (\n fmt.includes('%h') ||\n fmt.includes('%b') ||\n fmt.includes('%j') ||\n fmt.includes('%J') ||\n fmt.includes('%l')\n ) {\n let idx = 0\n fmt = fmt.replace(FORMATTER_RE, (m) => {\n if (m === '%h' || m === '%b' || m === '%j' || m === '%J' || m === '%l') {\n let val = args[idx]\n\n args.splice(idx, 1)\n\n if (m === '%h') {\n if (ArrayBuffer.isView(val)) return hexEncode(val as Uint8Array)\n if (typeof val === 'number') return val.toString(16)\n\n return String(val)\n }\n if (m === '%b') return String(Boolean(val))\n\n if (m === '%j' || m === '%J') {\n if (m === '%J') {\n val = [...(val as IterableIterator<unknown>)]\n }\n\n return JSON.stringify(val, (k, v) => {\n if (\n ArrayBuffer.isView(v) ||\n (typeof v === 'object' && v.type === 'Buffer' && Array.isArray(v.data))\n ) {\n // eslint-disable-next-line\n let str = v.data ? Buffer.from(v.data as number[]).toString('hex') : hexEncode(v)\n\n if (str.length > 300) {\n str = str.slice(0, 300) + '...'\n }\n\n return str\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return v\n })\n }\n if (m === '%l') return String(val)\n }\n\n idx++\n\n return m\n })\n }\n\n this.mgr.handler(this.color, level, this.tag, this.getPrefix() + fmt, args)\n }\n\n readonly error = this.log.bind(this, LogManager.ERROR)\n readonly warn = this.log.bind(this, LogManager.WARN)\n readonly info = this.log.bind(this, LogManager.INFO)\n readonly debug = this.log.bind(this, LogManager.DEBUG)\n readonly verbose = this.log.bind(this, LogManager.VERBOSE)\n\n /**\n * Create a {@link Logger} with the given tag\n * from the same {@link LogManager} as the current\n * Logger.\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this.mgr, tag, this)\n }\n}\n\nconst defaultFilter = () => true\n\n/**\n * Log manager. A logger that allows managing child loggers\n */\nexport class LogManager extends Logger {\n static OFF = 0\n static ERROR = 1\n static WARN = 2\n static INFO = 3\n static DEBUG = 4\n static VERBOSE = 5\n\n constructor(tag = 'base') {\n // workaround because we cant pass this to super\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument\n super(null as any, tag)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ;(this as any).mgr = this\n }\n\n private _filter: (tag: string) => boolean = defaultFilter\n\n level = defaultLogLevel\n handler = _defaultLoggingHandler\n\n disable(): void {\n this.level = 0\n }\n\n /**\n * Create a {@link Logger} with the given tag\n *\n * @param tag Logger tag\n */\n create(tag: string): Logger {\n return new Logger(this, tag)\n }\n\n /**\n * Filter logging by tags.\n *\n * @param cb\n */\n filter(cb: ((tag: string) => boolean) | null): void {\n this._filter = cb ?? defaultFilter\n }\n}\n"]}
@@ -0,0 +1,75 @@
1
+ import Long from 'long';
2
+ /**
3
+ * Get a random Long
4
+ *
5
+ * @param unsigned Whether the number should be unsigned
6
+ */
7
+ export declare function randomLong(unsigned?: boolean): Long;
8
+ /**
9
+ * Read a Long from a buffer
10
+ *
11
+ * @param buf Buffer to read from
12
+ * @param unsigned Whether the number should be unsigned
13
+ * @param le Whether the number is little-endian
14
+ */
15
+ export declare function longFromBuffer(buf: Uint8Array, unsigned?: boolean, le?: boolean): Long;
16
+ /**
17
+ * Remove a Long from an array
18
+ *
19
+ * @param arr Array to remove from
20
+ * @param val Value to remove
21
+ */
22
+ export declare function removeFromLongArray(arr: Long[], val: Long): boolean;
23
+ /**
24
+ * Serialize a Long (int64) to its fast string representation:
25
+ * `$high|$low`.
26
+ *
27
+ * This method is about 500* times faster than using `Long.toString()`,
28
+ * and very useful when the string will only ever be used internally
29
+ * (e.g. for keying a map)
30
+ *
31
+ * _\* benchmark result, YMMV_
32
+ *
33
+ * @param val
34
+ */
35
+ export declare function longToFastString(val: Long): string;
36
+ /**
37
+ * Parse a Long (int64) from its fast string representation:
38
+ * `$high|$low`.
39
+ *
40
+ * This method is about 2 times faster than using Long.fromString.
41
+ *
42
+ * @param val
43
+ * @param unsigned
44
+ */
45
+ export declare function longFromFastString(val: string, unsigned?: boolean): Long;
46
+ /**
47
+ * Map with Longs as key.
48
+ *
49
+ * Uses fast string representation internally.
50
+ */
51
+ export declare class LongMap<V> {
52
+ private _map;
53
+ set(key: Long, value: V): void;
54
+ has(key: Long): boolean;
55
+ get(key: Long): V | undefined;
56
+ delete(key: Long): void;
57
+ keys(unsigned?: boolean): IterableIterator<Long>;
58
+ values(): IterableIterator<V>;
59
+ clear(): void;
60
+ size(): number;
61
+ }
62
+ /**
63
+ * Set for Longs.
64
+ *
65
+ * Uses fast string representation internally
66
+ */
67
+ export declare class LongSet {
68
+ private _set;
69
+ get size(): number;
70
+ add(val: Long): void;
71
+ delete(val: Long): void;
72
+ has(val: Long): boolean;
73
+ clear(): void;
74
+ toArray(): Long[];
75
+ }