Commit graph

516 commits

Author SHA1 Message Date
6a2c5d90b7
fix: error on extra fields in TelegramClient#call + related fixes 2023-07-24 00:12:17 +03:00
6221a8716f
fix: handle vectors of primitives in rpc_result 2023-07-20 22:07:07 +03:00
d3338f6614
fix: build fixes + updated to 160 schema 2023-07-20 17:51:24 +03:00
d88bc0ea60
chore: code quality improvements
improved eslint config, fixed linter issues, added husky
2023-06-05 00:30:48 +00:00
0471310382
chore: better dependencies management
updated and pinned dependencies
added validation for external deps conflicts
removed tl-reference
2023-06-04 17:00:33 +00:00
c591f96b81
fix: local floodwait handler fix
im actually retarded lmao
2023-06-04 16:04:46 +00:00
teidesu
8df099fcb8 feat: updated to layer 150 2022-12-07 14:13:24 +03:00
teidesu
7d10e65ecc fix: properly handle peers without access hash 2022-10-30 20:25:49 +03:00
teidesu
89fd8e8ef0 feat(tl): updated schema to 147 2022-10-30 18:49:55 +03:00
teidesu
416b3d9ef9 refactor: exported string session parsing/serialization to a module 2022-10-09 20:49:39 +03:00
teidesu
8adb79511f feat(tl): updated layer to 146 2022-09-28 00:42:21 +03:00
teidesu
d0ea4ed5ca refactor: changed stylizing of the name (MTCute -> mtcute) 2022-09-14 16:18:56 +03:00
teidesu
77bfef98d1 feat: updated to 145 layer 2022-09-12 13:54:33 +03:00
teidesu
ea299cacca docs: improve documentation 2022-08-29 16:22:57 +03:00
teidesu
7b7fdc7092 docs: removed typedoc-plugin-coverage
it works like shit
2022-08-28 17:56:56 +03:00
teidesu
390b65f796 build(docs): api reference generation improvements
- added readme in each package
- updated typedoc, fixed related issues
- use @link instead of @see
- moved configs to typedoc.js, improved exclusion of unneeded stuff
- custom plugin for typedoc for cross-package references
- preparing to move documentation to separate repository
2022-08-24 23:37:26 +03:00
teidesu
b34a90ec30 build: updated layer to 144 2022-08-12 16:17:35 +03:00
teidesu
537b7d0462 feat(core): support overwriting existing session with session strings 2022-07-31 08:01:40 +03:00
teidesu
2a97616d80 fix(codegen): fixed typings codegen, added a test 2022-07-23 05:03:38 +03:00
teidesu
a3aca20099 build: updated name in package.json files 2022-07-18 23:32:11 +03:00
teidesu
715f4f8a68 fix(core): write buffers to log as trimmed base64 2022-07-10 01:11:24 +03:00
teidesu
e68c9f4bb5 refactor: prettier-ed code, rearranged imports, fixed tests 2022-06-30 16:32:56 +03:00
teidesu
fdcd9e0c5b fix(core): fixed orphan timer when multiple usable events are emitted 2022-06-30 15:56:58 +03:00
teidesu
1a60b39214 build: added script for bumping version with dependencies 2022-06-29 22:00:34 +03:00
teidesu
967c10b25c fix(core): never use ipv6 dc when not using ipv6 2022-06-28 23:13:56 +03:00
teidesu
2c3529870a feat(client): updated to layer 143
also fixed some minor bugs
2022-06-18 22:47:31 +03:00
teidesu
a864eacfd4 feat(core): added keylen and algo in pbkdf2 (attempt 2, i am retarded) 2022-06-12 19:29:38 +03:00
teidesu
e98b8f8855 feat(core): added keylen and algo in pbkdf2 2022-06-12 19:26:24 +03:00
teidesu
ae07583161 feat(core): added mtproto v1 message key derivation 2022-06-11 18:51:47 +03:00
teidesu
e0d1102408 fix(tl): bumped minor version 2022-06-05 23:05:15 +03:00
teidesu
fa8ed6da10 fix(core): ignore duplicate messages 2022-05-18 13:04:40 +03:00
teidesu
e1dab9a195 build: fixed deps 2022-05-14 21:37:48 +03:00
teidesu
9034810ccd tl: updated to layer 142 2022-05-14 20:30:36 +03:00
teidesu
96300a795e fix(core): removed unnecessary import 2022-05-11 13:17:39 +03:00
teidesu
a7e866f3eb refactor: assertNever util, use it in most places
haven't used it in some just yet because not everything is implemented (particularly, newer attachment types, typings, admin events, etc.)
2022-05-06 13:50:30 +03:00
teidesu
ffafb3e5db build: improved publish script, fixed imports/exports, added note about private repo 2022-05-06 13:23:29 +03:00
teidesu
a1ea1315df tl: updated to layer 140 2022-04-28 17:23:44 +03:00
teidesu
2289cc690d build: migrated to pnpm, updated and cleaned up deps 2022-04-28 16:58:09 +03:00
teidesu
9493759572 build: updated to layer 139
didn't add any new layers' features, only bumped layer
2022-04-01 22:17:10 +03:00
teidesu
ec736f8590 some changes
i've been wanting to name a commit like this for my entire life, lol. seriously though, a lot has changed:
 - extracted TL-related stuff to `@mtcute/tl-utils` and `@mtcute/tl-runtime`, rewrote codegen in TS
 - updated to layer 134, moved to int64 identifiers
 - rewritten networking (mtproto), rewritten updates handling
 - *lots* of refactoring

 still a very early version though, there are a lot of improvements to be made, but at least it runs, lol

 also tl-reference will not be updated anytime soon because i want to rewrite it
2021-11-23 00:03:59 +03:00
teidesu
a834fbfa8d refactor(core): moved to PollardRhoBrent for PQ factorization (thanks @mytecor!)
also removed leemon from deps since it's no longer used
2021-09-23 23:11:43 +03:00
teidesu
49eda8f0e3 fix(core): fix bare types and mt_message writing 2021-08-19 23:09:44 +03:00
teidesu
9b5ca0cb2a refactor: improved logging, moved to custom logger instead of debug 2021-08-14 12:57:26 +03:00
teidesu
64aae43572 fix(core): support caching peers from array results 2021-08-14 12:37:22 +03:00
teidesu
4b22ee5b25 rename back to mtcute
idk lol
2021-08-05 20:38:24 +03:00
teidesu
b7751f0a57 fix: various fixes, improved updates handing 2021-08-05 20:14:19 +03:00
teidesu
42d7a2286c fix(core): do not save storage after caching peers 2021-08-05 14:23:18 +03:00
teidesu
a3cf0c526a fix(client): reworked updates, added support for qts 2021-08-04 12:58:57 +03:00
teidesu
a8d3543e64 build: preparing for publish, moved to strict typescript, fixed some stuff 2021-07-30 17:40:50 +03:00
teidesu
1cf9929e3f fix(core): fixed test servers, fixed tests, slight refactor 2021-07-27 15:32:18 +03:00
teidesu
2f1c8548a0 build: renamed to mtqt 2021-07-25 21:03:40 +03:00
teidesu
7f112f51a2 fix(core): updated for newer mtproto schema 2021-07-25 15:44:55 +03:00
teidesu
f3e7de5c8c feat(core): override layer number 2021-07-24 17:00:20 +03:00
teidesu
3b523598ad build: changed license to lgplv3 2021-07-19 03:57:47 +03:00
teidesu
627fdbed2f refactor(dispatcher): big refactor, moved updates parsing to client, separated raw updates from parsed, moved Conversation to client package 2021-07-17 17:26:31 +03:00
teidesu
8fb099cfeb fix(core): proper browser support
not much really, fixed exports for webpack, fixed binary mode for websocket
2021-07-16 04:31:04 +03:00
teidesu
6d8c7fee78 refactor: less obscure transport names 2021-07-14 21:08:13 +03:00
teidesu
c2130dec9f build(tl): updated to layer 131 2021-07-06 18:02:26 +03:00
teidesu
66c4b0e0b0 fix: updated tl version in the rest of the packages
webstorm for some fucking reason decided not to save some package.json files lol
2021-06-26 23:13:40 +03:00
teidesu
c8dae335e8 feat: vacuum storage to reduce its size 2021-06-20 18:18:06 +03:00
teidesu
b45cc0df69 feat: rate limiting 2021-06-20 17:54:28 +03:00
teidesu
b4716f321b tests(core): added fuzz tests for auth_key 2021-06-16 18:21:54 +03:00
teidesu
5849ce0e1b fix(core): better handling for additional connections 2021-06-16 18:21:17 +03:00
teidesu
77022e29c9 tests(core): added e2e and fuzzing tests 2021-06-15 03:12:22 +03:00
teidesu
0a45f5e71a fix(core): check for correct padding 2021-06-15 03:11:52 +03:00
teidesu
9928a9156a fix(client): redundant resends 2021-06-15 03:11:11 +03:00
teidesu
bcce752dfd build: preparing for publish x4
at this point i'm too tired to describe what happened
2021-06-08 00:37:13 +03:00
teidesu
8cbd6e14c8 build: prepare to publish x3
various package json fixes, improved node meta-package
2021-06-07 18:32:29 +03:00
teidesu
280c9f51aa build: preparing to publish (part 2)
fixed imports, package.json files, improved package generation for certain packages, and more (i'm too lazy to describe all the magic that i've done)
2021-06-06 19:23:43 +03:00
teidesu
ae2dbcf03f build: fixed scripts, eslintignore, fixed linter warnings and re-formatted with prettier 2021-06-06 15:20:41 +03:00
teidesu
2cd443d6d1 feat(client): string sessions 2021-06-05 20:25:08 +03:00
teidesu
68ea4080df feat(core): handle AUTH_KEY_UNREGISTERED error 2021-06-05 18:56:43 +03:00
teidesu
a0294b9a64 feat(dispatcher): fsm and scenes 2021-05-27 01:02:31 +03:00
teidesu
60162c88bc fix(client): avoid redundant help.getConfig call 2021-05-24 23:03:29 +03:00
teidesu
2bd94782e9 feat: mtproxy support
also some refactor in core transports
2021-05-24 20:29:18 +03:00
teidesu
a2013acaf6 refactor: moved urlsafe base64 functions to core and exported them 2021-05-23 20:33:10 +03:00
teidesu
1b3f02f5f4 refactor: use Buffer.isBuffer 2021-05-23 13:42:38 +03:00
teidesu
1c4d9c1ab3 feat(core): change transport at runtime 2021-05-23 13:35:03 +03:00
teidesu
a46c6e8894 feat: support http(s) proxies 2021-05-23 01:56:59 +03:00
teidesu
3ecef3bde4 feat(core): exported debounce function, implemented and exported throttle function. 2021-05-22 16:52:35 +03:00
teidesu
c228085bfe feat(client): improved min peers and short updates handling 2021-05-22 14:41:11 +03:00
teidesu
19d675e0fb feat(core): utf string length calculation optimization
only has effect on in-browser use when the Buffer is polyfilled, since with BrowserBuffer we had to write it twice.
2021-05-21 23:24:52 +03:00
teidesu
ee369a1c83 feat(core): int64 write optimization
this optimization gives about 10x performance boost on systems that support BigInt, and about 2x on those that don't
2021-05-21 22:15:25 +03:00
teidesu
c3fce178b6 feat: only update changed updates state (i.e. dont save pts if it hasnt changed) 2021-05-21 00:24:54 +03:00
teidesu
2660120e8f feat(core): support seq in updates 2021-05-19 21:21:12 +03:00
teidesu
910361ccab feat(core): implemented and exported lru map 2021-05-19 20:30:23 +03:00
teidesu
82fb3d7e44 refactor: moved async lock to core and exported it 2021-05-16 23:05:53 +03:00
teidesu
e6e28399b0 refactor: prefer switches over ifs when possible 2021-05-16 14:32:36 +03:00
teidesu
b4f731d831 feat(core): support rpc timeouts (for real) 2021-05-16 12:50:09 +03:00
teidesu
4852fe0301 feat(core): support rpc timeouts 2021-05-16 02:52:13 +03:00
teidesu
97ba7652ff refactor: use constructor check instead of instanceof where possible
this might just have introduced a bunch of errors, but ill test later
2021-05-15 21:17:49 +03:00
teidesu
9be7b0d6c9 refactor: prefer switches to else-if chains 2021-05-12 17:58:45 +03:00
teidesu
977527b78a fix(core): handle concurrent saving for the file
this is very hacky, but idk how to make it better.
2021-05-10 14:28:39 +03:00
teidesu
cae7f90c57 fix(core): payload size limit 2021-05-09 19:34:25 +03:00
teidesu
192c0f773e feat(client): control 2fa password 2021-05-09 14:35:47 +03:00
teidesu
169d95d6ed fix(core): lowercase usernames index 2021-05-07 12:41:06 +03:00
teidesu
90e1e018f5 feat(core): functions to (de-)serialize TL JSON 2021-05-06 15:20:23 +03:00
teidesu
d841188149 fix(core): only switch dc for primary connection 2021-05-05 18:24:16 +03:00
teidesu
fd92121b14 fix(core): do not rename in case of an error while writing 2021-05-04 14:13:06 +03:00
teidesu
23dcc4c1e5 feat: support for chosen inline query results 2021-05-04 14:07:40 +03:00
teidesu
8bd81adacc feat: node native addon for faster aes ige 2021-05-01 21:22:20 +03:00
teidesu
f4c0c1bd31 fix(core): properly handle resending of pending rpc calls 2021-05-01 21:19:07 +03:00
teidesu
8b5060d2cd feat: file-id package to parse, serialize and manipulate tdlib-compatible file ids 2021-04-29 22:30:36 +03:00
teidesu
1da905ab3d feat(core): export BinaryReader and BinaryWriter 2021-04-29 22:29:59 +03:00
teidesu
5fee1d0660 fix(client): better storage handling
i suppose?? i mean, it's definitely better than randomly losing updates state and entities, but this might be much slower?
2021-04-26 23:26:29 +03:00
teidesu
39236c94c2 feat(client): contacts related methods 2021-04-25 17:10:37 +03:00
teidesu
77ab185493 fix(core): properly handle WORKER_BUSY_TOO_LONG_RETRY error 2021-04-24 20:13:36 +03:00
teidesu
fa7669f65e fix(core): support min entities from replies and updates difference 2021-04-24 18:25:15 +03:00
teidesu
63471115ae feat(core): safe file write, and also cleanup function using exit-hook package 2021-04-24 17:20:01 +03:00
teidesu
87481c9a32 rewrite(client): improved updates handling, added support for min entities 2021-04-18 16:23:25 +03:00
teidesu
0b361d0b8d refactor(core): moved storage load&save to methods to allow overriding logic in subclasses 2021-04-17 18:56:51 +03:00
teidesu
69270a66a2 feat(core): websocket transport
untested in browser (yet). also had to slightly refactor stuff
2021-04-15 19:45:01 +03:00
teidesu
9e681cb13f fix(core): continuous aes ctr 2021-04-15 19:39:41 +03:00
teidesu
afa679cef4 fix(core): hopefully fixed issue with json file session randomly disappearing when using debugger 2021-04-15 12:18:50 +03:00
teidesu
c286570500 refactor: made all packages private and changed main to typescript file 2021-04-14 22:53:10 +03:00
teidesu
cd8ec8309f Initial commit 2021-04-08 12:19:38 +03:00