@mtcute/core 0.13.2 → 0.13.3
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.
- package/cjs/highlevel/client.d.ts +15 -1
- package/cjs/highlevel/client.js.map +1 -1
- package/cjs/highlevel/methods/auth/log-out.d.ts +8 -1
- package/cjs/highlevel/methods/auth/log-out.js +4 -2
- package/cjs/highlevel/methods/auth/log-out.js.map +1 -1
- package/cjs/highlevel/methods/auth/send-code.d.ts +5 -0
- package/cjs/highlevel/methods/auth/send-code.js +5 -1
- package/cjs/highlevel/methods/auth/send-code.js.map +1 -1
- package/cjs/highlevel/methods/auth/start.d.ts +5 -0
- package/cjs/highlevel/methods/auth/start.js +81 -53
- package/cjs/highlevel/methods/auth/start.js.map +1 -1
- package/cjs/highlevel/methods/chats/open-chat.d.ts +4 -3
- package/cjs/highlevel/methods/chats/open-chat.js +4 -3
- package/cjs/highlevel/methods/chats/open-chat.js.map +1 -1
- package/cjs/highlevel/methods.d.ts +1 -0
- package/cjs/highlevel/methods.js.map +1 -1
- package/cjs/highlevel/updates/manager.d.ts +1 -0
- package/cjs/highlevel/updates/manager.js +38 -10
- package/cjs/highlevel/updates/manager.js.map +1 -1
- package/cjs/highlevel/updates/types.d.ts +36 -1
- package/cjs/highlevel/updates/types.js.map +1 -1
- package/cjs/network/client.js +1 -1
- package/cjs/network/client.js.map +1 -1
- package/cjs/network/network-manager.js +2 -1
- package/cjs/network/network-manager.js.map +1 -1
- package/esm/highlevel/client.d.ts +15 -1
- package/esm/highlevel/client.js.map +1 -1
- package/esm/highlevel/methods/auth/log-out.d.ts +8 -1
- package/esm/highlevel/methods/auth/log-out.js +4 -2
- package/esm/highlevel/methods/auth/log-out.js.map +1 -1
- package/esm/highlevel/methods/auth/send-code.d.ts +5 -0
- package/esm/highlevel/methods/auth/send-code.js +5 -1
- package/esm/highlevel/methods/auth/send-code.js.map +1 -1
- package/esm/highlevel/methods/auth/start.d.ts +5 -0
- package/esm/highlevel/methods/auth/start.js +82 -54
- package/esm/highlevel/methods/auth/start.js.map +1 -1
- package/esm/highlevel/methods/chats/open-chat.d.ts +4 -3
- package/esm/highlevel/methods/chats/open-chat.js +4 -3
- package/esm/highlevel/methods/chats/open-chat.js.map +1 -1
- package/esm/highlevel/methods.d.ts +1 -0
- package/esm/highlevel/methods.js.map +1 -1
- package/esm/highlevel/updates/manager.d.ts +1 -0
- package/esm/highlevel/updates/manager.js +38 -10
- package/esm/highlevel/updates/manager.js.map +1 -1
- package/esm/highlevel/updates/types.d.ts +36 -1
- package/esm/highlevel/updates/types.js.map +1 -1
- package/esm/network/client.js +1 -1
- package/esm/network/client.js.map +1 -1
- package/esm/network/network-manager.js +2 -1
- package/esm/network/network-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -103,6 +103,8 @@ class UpdatesManager {
|
|
|
103
103
|
log;
|
|
104
104
|
_handler = () => { };
|
|
105
105
|
_onCatchingUp = () => { };
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
107
|
+
_channelPtsLimit;
|
|
106
108
|
auth; // todo: do we need a local copy?
|
|
107
109
|
keepAliveInterval;
|
|
108
110
|
constructor(client, params = {}) {
|
|
@@ -119,6 +121,18 @@ class UpdatesManager {
|
|
|
119
121
|
this.log = client.log.create('updates');
|
|
120
122
|
this.catchUpOnStart = params.catchUp ?? false;
|
|
121
123
|
this.noDispatchEnabled = !params.disableNoDispatch;
|
|
124
|
+
if (params.channelPtsLimit) {
|
|
125
|
+
if (typeof params.channelPtsLimit === 'function') {
|
|
126
|
+
this._channelPtsLimit = params.channelPtsLimit;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
const limit = params.channelPtsLimit;
|
|
130
|
+
this._channelPtsLimit = () => limit;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this._channelPtsLimit = () => (this.auth?.isBot ? 100000 : 100);
|
|
135
|
+
}
|
|
122
136
|
}
|
|
123
137
|
setHandler(handler) {
|
|
124
138
|
this._handler = handler;
|
|
@@ -338,6 +352,12 @@ class UpdatesManager {
|
|
|
338
352
|
log.debug('loaded initial state: pts=%d, qts=%d, date=%d, seq=%d', this.pts, this.qts, this.date, this.seq);
|
|
339
353
|
}
|
|
340
354
|
catch (e) {
|
|
355
|
+
if (tl_1.tl.RpcError.is(e, 'AUTH_KEY_UNREGISTERED')) {
|
|
356
|
+
// we are logged out, stop updates loop
|
|
357
|
+
lock.release();
|
|
358
|
+
this.stopLoop();
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
341
361
|
if (this.client.isConnected) {
|
|
342
362
|
log.error('failed to fetch updates state: %s', e);
|
|
343
363
|
}
|
|
@@ -669,7 +689,7 @@ class UpdatesManager {
|
|
|
669
689
|
const channel = (0, index_js_1.toInputChannel)(channelPeer);
|
|
670
690
|
// to make TS happy
|
|
671
691
|
let pts = _pts;
|
|
672
|
-
let limit = this.
|
|
692
|
+
let limit = this._channelPtsLimit(channelId);
|
|
673
693
|
if (pts <= 0) {
|
|
674
694
|
pts = 1;
|
|
675
695
|
limit = 1;
|
|
@@ -684,8 +704,11 @@ class UpdatesManager {
|
|
|
684
704
|
limit,
|
|
685
705
|
filter: { _: 'channelMessagesFilterEmpty' },
|
|
686
706
|
});
|
|
687
|
-
if (diff.timeout)
|
|
688
|
-
lastTimeout =
|
|
707
|
+
if (diff.timeout) {
|
|
708
|
+
lastTimeout = this.params.overrideOpenChatTimeout ?
|
|
709
|
+
this.params.overrideOpenChatTimeout(diff) :
|
|
710
|
+
diff.timeout;
|
|
711
|
+
}
|
|
689
712
|
if (diff._ === 'updates.channelDifferenceEmpty') {
|
|
690
713
|
log.debug('getChannelDifference (cid = %d) returned channelDifferenceEmpty', channelId);
|
|
691
714
|
break;
|
|
@@ -695,13 +718,18 @@ class UpdatesManager {
|
|
|
695
718
|
if (diff.dialog._ === 'dialog') {
|
|
696
719
|
pts = diff.dialog.pts;
|
|
697
720
|
}
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
721
|
+
if (this.params.onChannelTooLong) {
|
|
722
|
+
this.params.onChannelTooLong(channelId, diff);
|
|
723
|
+
}
|
|
724
|
+
else {
|
|
725
|
+
log.warn('getChannelDifference (cid = %d) returned channelDifferenceTooLong. new pts: %d, recent msgs: %d', channelId, pts, diff.messages.length);
|
|
726
|
+
diff.messages.forEach((message) => {
|
|
727
|
+
log.debug('processing message %d (%s) from TooLong diff for channel %d', message.id, message._, channelId);
|
|
728
|
+
if (message._ === 'messageEmpty')
|
|
729
|
+
return;
|
|
730
|
+
pendingUnorderedUpdates.pushBack((0, utils_js_2.toPendingUpdate)((0, utils_js_2.messageToUpdate)(message), peers, true));
|
|
731
|
+
});
|
|
732
|
+
}
|
|
705
733
|
break;
|
|
706
734
|
}
|
|
707
735
|
log.debug('getChannelDifference (cid = %d) returned %d messages, %d updates. new pts: %d, final: %b', channelId, diff.newMessages.length, diff.otherUpdates.length, diff.pts, diff.final);
|