@mtcute/core 0.25.6 → 0.25.8
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/client.cjs +7 -0
- package/client.js +8 -1
- package/highlevel/client.d.cts +61 -4
- package/highlevel/client.d.ts +61 -4
- package/highlevel/methods/files/normalize-input-media.cjs +13 -4
- package/highlevel/methods/files/normalize-input-media.js +13 -4
- package/highlevel/methods/messages/search-posts-global.cjs +48 -0
- package/highlevel/methods/messages/search-posts-global.d.cts +27 -0
- package/highlevel/methods/messages/search-posts-global.d.ts +27 -0
- package/highlevel/methods/messages/search-posts-global.js +43 -0
- package/highlevel/methods/premium/buy-resale-gift.cjs +3 -2
- package/highlevel/methods/premium/buy-resale-gift.d.cts +2 -0
- package/highlevel/methods/premium/buy-resale-gift.d.ts +2 -0
- package/highlevel/methods/premium/buy-resale-gift.js +3 -2
- package/highlevel/methods/premium/get-resale-star-gifts.cjs +5 -1
- package/highlevel/methods/premium/get-resale-star-gifts.d.cts +7 -1
- package/highlevel/methods/premium/get-resale-star-gifts.d.ts +7 -1
- package/highlevel/methods/premium/get-resale-star-gifts.js +6 -2
- package/highlevel/methods/premium/set-gift-resale-price.cjs +11 -1
- package/highlevel/methods/premium/set-gift-resale-price.d.cts +5 -2
- package/highlevel/methods/premium/set-gift-resale-price.d.ts +5 -2
- package/highlevel/methods/premium/set-gift-resale-price.js +11 -1
- package/highlevel/methods/stories/send-story.cjs +3 -2
- package/highlevel/methods/stories/send-story.d.cts +4 -0
- package/highlevel/methods/stories/send-story.d.ts +4 -0
- package/highlevel/methods/stories/send-story.js +3 -2
- package/highlevel/methods.d.cts +3 -0
- package/highlevel/methods.d.ts +3 -0
- package/highlevel/types/messages/message-action.cjs +2 -1
- package/highlevel/types/messages/message-action.d.cts +2 -0
- package/highlevel/types/messages/message-action.d.ts +2 -0
- package/highlevel/types/messages/message-action.js +2 -1
- package/highlevel/types/peers/chat.cjs +5 -1
- package/highlevel/types/peers/chat.d.cts +5 -1
- package/highlevel/types/peers/chat.d.ts +5 -1
- package/highlevel/types/peers/chat.js +5 -1
- package/highlevel/types/peers/full-chat.cjs +4 -0
- package/highlevel/types/peers/full-chat.d.cts +2 -0
- package/highlevel/types/peers/full-chat.d.ts +2 -0
- package/highlevel/types/peers/full-chat.js +4 -0
- package/highlevel/types/peers/full-user.cjs +14 -1
- package/highlevel/types/peers/full-user.d.cts +9 -0
- package/highlevel/types/peers/full-user.d.ts +9 -0
- package/highlevel/types/peers/full-user.js +14 -1
- package/highlevel/types/premium/stars-gift-unique.cjs +8 -1
- package/highlevel/types/premium/stars-gift-unique.d.cts +2 -0
- package/highlevel/types/premium/stars-gift-unique.d.ts +2 -0
- package/highlevel/types/premium/stars-gift-unique.js +8 -1
- package/highlevel/types/stories/story.cjs +6 -0
- package/highlevel/types/stories/story.d.cts +4 -0
- package/highlevel/types/stories/story.d.ts +4 -0
- package/highlevel/types/stories/story.js +6 -0
- package/methods.cjs +3 -0
- package/methods.js +4 -1
- package/network/mtproto-session.cjs +1 -0
- package/network/mtproto-session.d.cts +1 -0
- package/network/mtproto-session.d.ts +1 -0
- package/network/mtproto-session.js +1 -0
- package/network/network-manager.cjs +1 -1
- package/network/network-manager.js +1 -1
- package/network/session-connection.cjs +27 -10
- package/network/session-connection.d.cts +1 -0
- package/network/session-connection.d.ts +1 -0
- package/network/session-connection.js +27 -10
- package/package.json +2 -2
- package/utils/binary/compat.cjs +30 -0
- package/utils/binary/compat.js +30 -0
- package/utils/binary/serialization.d.cts +3 -3
- package/utils/binary/serialization.d.ts +3 -3
package/methods.cjs
CHANGED
|
@@ -161,6 +161,7 @@ const readReactions = require("./highlevel/methods/messages/read-reactions.cjs")
|
|
|
161
161
|
const searchGlobal = require("./highlevel/methods/messages/search-global.cjs");
|
|
162
162
|
const searchHashtag = require("./highlevel/methods/messages/search-hashtag.cjs");
|
|
163
163
|
const searchMessages = require("./highlevel/methods/messages/search-messages.cjs");
|
|
164
|
+
const searchPostsGlobal = require("./highlevel/methods/messages/search-posts-global.cjs");
|
|
164
165
|
const sendAnswer = require("./highlevel/methods/messages/send-answer.cjs");
|
|
165
166
|
const sendComment = require("./highlevel/methods/messages/send-comment.cjs");
|
|
166
167
|
const sendCopyGroup = require("./highlevel/methods/messages/send-copy-group.cjs");
|
|
@@ -437,6 +438,7 @@ exports.searchGlobal = searchGlobal.searchGlobal;
|
|
|
437
438
|
exports.iterSearchHashtag = searchHashtag.iterSearchHashtag;
|
|
438
439
|
exports.searchHashtag = searchHashtag.searchHashtag;
|
|
439
440
|
exports.searchMessages = searchMessages.searchMessages;
|
|
441
|
+
exports.searchPostsGlobal = searchPostsGlobal.searchPostsGlobal;
|
|
440
442
|
exports.answerMedia = sendAnswer.answerMedia;
|
|
441
443
|
exports.answerMediaGroup = sendAnswer.answerMediaGroup;
|
|
442
444
|
exports.answerText = sendAnswer.answerText;
|
|
@@ -488,6 +490,7 @@ exports.getBusinessChatLinks = getBusinessChatLinks.getBusinessChatLinks;
|
|
|
488
490
|
exports.getBusinessConnection = getBusinessConnection.getBusinessConnection;
|
|
489
491
|
exports.getMyBoostSlots = getMyBoostSlots.getMyBoostSlots;
|
|
490
492
|
exports.getResaleOptions = getResaleStarGifts.getResaleOptions;
|
|
493
|
+
exports.getStarGiftResaleOptions = getResaleStarGifts.getStarGiftResaleOptions;
|
|
491
494
|
exports.getSavedStarGiftsById = getSavedStarGiftsById.getSavedStarGiftsById;
|
|
492
495
|
exports.getSavedStarGifts = getSavedStarGifts.getSavedStarGifts;
|
|
493
496
|
exports.getStarGiftOptions = getStarGiftOptions.getStarGiftOptions;
|
package/methods.js
CHANGED
|
@@ -154,6 +154,7 @@ import { readReactions } from "./highlevel/methods/messages/read-reactions.js";
|
|
|
154
154
|
import { searchGlobal } from "./highlevel/methods/messages/search-global.js";
|
|
155
155
|
import { iterSearchHashtag, searchHashtag } from "./highlevel/methods/messages/search-hashtag.js";
|
|
156
156
|
import { searchMessages } from "./highlevel/methods/messages/search-messages.js";
|
|
157
|
+
import { searchPostsGlobal } from "./highlevel/methods/messages/search-posts-global.js";
|
|
157
158
|
import { answerMedia, answerMediaGroup, answerText } from "./highlevel/methods/messages/send-answer.js";
|
|
158
159
|
import { commentMedia, commentMediaGroup, commentText } from "./highlevel/methods/messages/send-comment.js";
|
|
159
160
|
import { sendCopyGroup } from "./highlevel/methods/messages/send-copy-group.js";
|
|
@@ -193,7 +194,7 @@ import { getBoosts } from "./highlevel/methods/premium/get-boosts.js";
|
|
|
193
194
|
import { getBusinessChatLinks } from "./highlevel/methods/premium/get-business-chat-links.js";
|
|
194
195
|
import { getBusinessConnection } from "./highlevel/methods/premium/get-business-connection.js";
|
|
195
196
|
import { getMyBoostSlots } from "./highlevel/methods/premium/get-my-boost-slots.js";
|
|
196
|
-
import { getResaleOptions } from "./highlevel/methods/premium/get-resale-star-gifts.js";
|
|
197
|
+
import { getResaleOptions, getStarGiftResaleOptions } from "./highlevel/methods/premium/get-resale-star-gifts.js";
|
|
197
198
|
import { getSavedStarGiftsById } from "./highlevel/methods/premium/get-saved-star-gifts-by-id.js";
|
|
198
199
|
import { getSavedStarGifts } from "./highlevel/methods/premium/get-saved-star-gifts.js";
|
|
199
200
|
import { getStarGiftOptions } from "./highlevel/methods/premium/get-star-gift-options.js";
|
|
@@ -407,6 +408,7 @@ export {
|
|
|
407
408
|
getScheduledMessages,
|
|
408
409
|
getSimilarChannels,
|
|
409
410
|
getStarGiftOptions,
|
|
411
|
+
getStarGiftResaleOptions,
|
|
410
412
|
getStarGiftWithdrawalUrl,
|
|
411
413
|
getStarsTransactions,
|
|
412
414
|
getStickerSet,
|
|
@@ -483,6 +485,7 @@ export {
|
|
|
483
485
|
searchGlobal,
|
|
484
486
|
searchHashtag,
|
|
485
487
|
searchMessages,
|
|
488
|
+
searchPostsGlobal,
|
|
486
489
|
sendCode,
|
|
487
490
|
sendCopy,
|
|
488
491
|
sendCopyGroup,
|
|
@@ -43,6 +43,7 @@ class MtprotoSession {
|
|
|
43
43
|
queuedResendReq = [];
|
|
44
44
|
queuedCancelReq = [];
|
|
45
45
|
getStateSchedule = new sortedArray.SortedArray([], (a, b) => a.getState - b.getState);
|
|
46
|
+
pendingGetStateTimeouts = new longUtils.LongMap();
|
|
46
47
|
chains = /* @__PURE__ */ new Map();
|
|
47
48
|
chainsPendingFails = /* @__PURE__ */ new Map();
|
|
48
49
|
// requests info
|
|
@@ -83,6 +83,7 @@ export declare class MtprotoSession {
|
|
|
83
83
|
queuedResendReq: Long[];
|
|
84
84
|
queuedCancelReq: Long[];
|
|
85
85
|
getStateSchedule: SortedArray<PendingRpc>;
|
|
86
|
+
pendingGetStateTimeouts: LongMap<timers.Timer>;
|
|
86
87
|
chains: Map<string | number, Long>;
|
|
87
88
|
chainsPendingFails: Map<string | number, SortedArray<PendingRpc>>;
|
|
88
89
|
pendingMessages: LongMap<PendingMessage>;
|
|
@@ -83,6 +83,7 @@ export declare class MtprotoSession {
|
|
|
83
83
|
queuedResendReq: Long[];
|
|
84
84
|
queuedCancelReq: Long[];
|
|
85
85
|
getStateSchedule: SortedArray<PendingRpc>;
|
|
86
|
+
pendingGetStateTimeouts: LongMap<timers.Timer>;
|
|
86
87
|
chains: Map<string | number, Long>;
|
|
87
88
|
chainsPendingFails: Map<string | number, SortedArray<PendingRpc>>;
|
|
88
89
|
pendingMessages: LongMap<PendingMessage>;
|
|
@@ -36,6 +36,7 @@ class MtprotoSession {
|
|
|
36
36
|
queuedResendReq = [];
|
|
37
37
|
queuedCancelReq = [];
|
|
38
38
|
getStateSchedule = new SortedArray([], (a, b) => a.getState - b.getState);
|
|
39
|
+
pendingGetStateTimeouts = new LongMap();
|
|
39
40
|
chains = /* @__PURE__ */ new Map();
|
|
40
41
|
chainsPendingFails = /* @__PURE__ */ new Map();
|
|
41
42
|
// requests info
|
|
@@ -19,6 +19,7 @@ const abstract = require("./transports/abstract.cjs");
|
|
|
19
19
|
const errors = require("../types/errors.cjs");
|
|
20
20
|
const TEMP_AUTH_KEY_EXPIRY = 86400;
|
|
21
21
|
const GET_STATE_INTERVAL = 1500;
|
|
22
|
+
const GET_STATE_TIMEOUT = 2e3;
|
|
22
23
|
const GZIP_PACKED_ID = 812830625;
|
|
23
24
|
const MSG_CONTAINER_ID = 1945237724;
|
|
24
25
|
const RPC_RESULT_ID = 4082920705;
|
|
@@ -95,11 +96,8 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
95
96
|
prom.reject(new errors.MtcuteError("Connection closed"));
|
|
96
97
|
utils.timers.clearTimeout(timeout);
|
|
97
98
|
});
|
|
98
|
-
for (const msgId of this._session.
|
|
99
|
-
|
|
100
|
-
if (pending._ === "state") {
|
|
101
|
-
this._onMessageFailed(msgId, "connection loss", true);
|
|
102
|
-
}
|
|
99
|
+
for (const msgId of this._session.pendingGetStateTimeouts.keys()) {
|
|
100
|
+
this._onMessageFailed(msgId, "connection loss", true);
|
|
103
101
|
}
|
|
104
102
|
this.onDisconnect.emit();
|
|
105
103
|
this.reset();
|
|
@@ -113,6 +111,10 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
113
111
|
this._flushTimer.reset();
|
|
114
112
|
this._salts.isFetching = false;
|
|
115
113
|
this._session.resetLastPing(true);
|
|
114
|
+
for (const timeout of this._session.pendingGetStateTimeouts.values()) {
|
|
115
|
+
utils.timers.clearTimeout(timeout);
|
|
116
|
+
}
|
|
117
|
+
this._session.pendingGetStateTimeouts.clear();
|
|
116
118
|
if (forever) {
|
|
117
119
|
utils.timers.clearTimeout(this._pfsUpdateTimeout);
|
|
118
120
|
this.onDisconnect.clear();
|
|
@@ -734,16 +736,22 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
734
736
|
this._session.queuedResendReq.splice(0, 0, ...msgInfo.msgIds);
|
|
735
737
|
this._flushTimer.emitWhenIdle();
|
|
736
738
|
break;
|
|
737
|
-
case "state":
|
|
739
|
+
case "state": {
|
|
738
740
|
this.log.debug(
|
|
739
741
|
"state request %l (size = %d) failed because of %s",
|
|
740
742
|
msgId,
|
|
741
743
|
msgInfo.msgIds.length,
|
|
742
744
|
reason
|
|
743
745
|
);
|
|
746
|
+
const timer = this._session.pendingGetStateTimeouts.get(msgId);
|
|
747
|
+
if (timer) {
|
|
748
|
+
utils.timers.clearTimeout(timer);
|
|
749
|
+
this._session.pendingGetStateTimeouts.delete(msgId);
|
|
750
|
+
}
|
|
744
751
|
this._session.queuedStateReq.splice(0, 0, ...msgInfo.msgIds);
|
|
745
752
|
this._flushTimer.emitWhenIdle();
|
|
746
753
|
break;
|
|
754
|
+
}
|
|
747
755
|
case "bind":
|
|
748
756
|
this.log.debug("temp key binding request %l failed because of %s, retrying", msgId, reason);
|
|
749
757
|
msgInfo.promise.reject(new Error(reason));
|
|
@@ -900,6 +908,7 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
900
908
|
return;
|
|
901
909
|
}
|
|
902
910
|
this._session.pendingMessages.delete(msg.reqMsgId);
|
|
911
|
+
this._session.pendingGetStateTimeouts.delete(msg.reqMsgId);
|
|
903
912
|
this._onMessagesInfo(info.msgIds, msg.info);
|
|
904
913
|
}
|
|
905
914
|
_onFutureSalts(msg) {
|
|
@@ -1094,6 +1103,14 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
1094
1103
|
flushWhenIdle() {
|
|
1095
1104
|
this._flushTimer.emitWhenIdle();
|
|
1096
1105
|
}
|
|
1106
|
+
_handleGetStateTimeout = (msgId) => {
|
|
1107
|
+
const pending = this._session.pendingGetStateTimeouts.get(msgId);
|
|
1108
|
+
if (!pending) {
|
|
1109
|
+
this.log.warn("get_state timed out for unknown msg_id %l", msgId);
|
|
1110
|
+
return;
|
|
1111
|
+
}
|
|
1112
|
+
this._onMessageFailed(msgId, "timeout");
|
|
1113
|
+
};
|
|
1097
1114
|
_flush() {
|
|
1098
1115
|
if (this._disconnectedManually || !this._session._authKey.ready || this._isPfsBindingPending || this._session.current429Timeout) {
|
|
1099
1116
|
this.log.debug(
|
|
@@ -1295,6 +1312,8 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
1295
1312
|
};
|
|
1296
1313
|
this._session.pendingMessages.set(getStateMsgId, getStatePending);
|
|
1297
1314
|
otherPendings.push(getStatePending);
|
|
1315
|
+
const timeout = utils.timers.setTimeout(this._handleGetStateTimeout, GET_STATE_TIMEOUT, getStateMsgId);
|
|
1316
|
+
this._session.pendingGetStateTimeouts.set(getStateMsgId, timeout);
|
|
1298
1317
|
}
|
|
1299
1318
|
if (resendRequest) {
|
|
1300
1319
|
resendMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, resendRequest));
|
|
@@ -1373,10 +1392,8 @@ class SessionConnection extends persistentConnection.PersistentConnection {
|
|
|
1373
1392
|
if (msg.getState) {
|
|
1374
1393
|
this._session.getStateSchedule.remove(msg);
|
|
1375
1394
|
}
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
this._session.getStateSchedule.insert(msg);
|
|
1379
|
-
}
|
|
1395
|
+
msg.getState = getStateTime;
|
|
1396
|
+
this._session.getStateSchedule.insert(msg);
|
|
1380
1397
|
if (rootMsgId === null) rootMsgId = msg.msgId;
|
|
1381
1398
|
writer.long(this._registerOutgoingMsgId(msg.msgId));
|
|
1382
1399
|
writer.uint(msg.seqNo);
|
|
@@ -12,6 +12,7 @@ import { TransportError } from "./transports/abstract.js";
|
|
|
12
12
|
import { MtcuteError, MtTimeoutError, MtArgumentError } from "../types/errors.js";
|
|
13
13
|
const TEMP_AUTH_KEY_EXPIRY = 86400;
|
|
14
14
|
const GET_STATE_INTERVAL = 1500;
|
|
15
|
+
const GET_STATE_TIMEOUT = 2e3;
|
|
15
16
|
const GZIP_PACKED_ID = 812830625;
|
|
16
17
|
const MSG_CONTAINER_ID = 1945237724;
|
|
17
18
|
const RPC_RESULT_ID = 4082920705;
|
|
@@ -88,11 +89,8 @@ class SessionConnection extends PersistentConnection {
|
|
|
88
89
|
prom.reject(new MtcuteError("Connection closed"));
|
|
89
90
|
timers.clearTimeout(timeout);
|
|
90
91
|
});
|
|
91
|
-
for (const msgId of this._session.
|
|
92
|
-
|
|
93
|
-
if (pending._ === "state") {
|
|
94
|
-
this._onMessageFailed(msgId, "connection loss", true);
|
|
95
|
-
}
|
|
92
|
+
for (const msgId of this._session.pendingGetStateTimeouts.keys()) {
|
|
93
|
+
this._onMessageFailed(msgId, "connection loss", true);
|
|
96
94
|
}
|
|
97
95
|
this.onDisconnect.emit();
|
|
98
96
|
this.reset();
|
|
@@ -106,6 +104,10 @@ class SessionConnection extends PersistentConnection {
|
|
|
106
104
|
this._flushTimer.reset();
|
|
107
105
|
this._salts.isFetching = false;
|
|
108
106
|
this._session.resetLastPing(true);
|
|
107
|
+
for (const timeout of this._session.pendingGetStateTimeouts.values()) {
|
|
108
|
+
timers.clearTimeout(timeout);
|
|
109
|
+
}
|
|
110
|
+
this._session.pendingGetStateTimeouts.clear();
|
|
109
111
|
if (forever) {
|
|
110
112
|
timers.clearTimeout(this._pfsUpdateTimeout);
|
|
111
113
|
this.onDisconnect.clear();
|
|
@@ -727,16 +729,22 @@ class SessionConnection extends PersistentConnection {
|
|
|
727
729
|
this._session.queuedResendReq.splice(0, 0, ...msgInfo.msgIds);
|
|
728
730
|
this._flushTimer.emitWhenIdle();
|
|
729
731
|
break;
|
|
730
|
-
case "state":
|
|
732
|
+
case "state": {
|
|
731
733
|
this.log.debug(
|
|
732
734
|
"state request %l (size = %d) failed because of %s",
|
|
733
735
|
msgId,
|
|
734
736
|
msgInfo.msgIds.length,
|
|
735
737
|
reason
|
|
736
738
|
);
|
|
739
|
+
const timer = this._session.pendingGetStateTimeouts.get(msgId);
|
|
740
|
+
if (timer) {
|
|
741
|
+
timers.clearTimeout(timer);
|
|
742
|
+
this._session.pendingGetStateTimeouts.delete(msgId);
|
|
743
|
+
}
|
|
737
744
|
this._session.queuedStateReq.splice(0, 0, ...msgInfo.msgIds);
|
|
738
745
|
this._flushTimer.emitWhenIdle();
|
|
739
746
|
break;
|
|
747
|
+
}
|
|
740
748
|
case "bind":
|
|
741
749
|
this.log.debug("temp key binding request %l failed because of %s, retrying", msgId, reason);
|
|
742
750
|
msgInfo.promise.reject(new Error(reason));
|
|
@@ -893,6 +901,7 @@ class SessionConnection extends PersistentConnection {
|
|
|
893
901
|
return;
|
|
894
902
|
}
|
|
895
903
|
this._session.pendingMessages.delete(msg.reqMsgId);
|
|
904
|
+
this._session.pendingGetStateTimeouts.delete(msg.reqMsgId);
|
|
896
905
|
this._onMessagesInfo(info.msgIds, msg.info);
|
|
897
906
|
}
|
|
898
907
|
_onFutureSalts(msg) {
|
|
@@ -1087,6 +1096,14 @@ class SessionConnection extends PersistentConnection {
|
|
|
1087
1096
|
flushWhenIdle() {
|
|
1088
1097
|
this._flushTimer.emitWhenIdle();
|
|
1089
1098
|
}
|
|
1099
|
+
_handleGetStateTimeout = (msgId) => {
|
|
1100
|
+
const pending = this._session.pendingGetStateTimeouts.get(msgId);
|
|
1101
|
+
if (!pending) {
|
|
1102
|
+
this.log.warn("get_state timed out for unknown msg_id %l", msgId);
|
|
1103
|
+
return;
|
|
1104
|
+
}
|
|
1105
|
+
this._onMessageFailed(msgId, "timeout");
|
|
1106
|
+
};
|
|
1090
1107
|
_flush() {
|
|
1091
1108
|
if (this._disconnectedManually || !this._session._authKey.ready || this._isPfsBindingPending || this._session.current429Timeout) {
|
|
1092
1109
|
this.log.debug(
|
|
@@ -1288,6 +1305,8 @@ class SessionConnection extends PersistentConnection {
|
|
|
1288
1305
|
};
|
|
1289
1306
|
this._session.pendingMessages.set(getStateMsgId, getStatePending);
|
|
1290
1307
|
otherPendings.push(getStatePending);
|
|
1308
|
+
const timeout = timers.setTimeout(this._handleGetStateTimeout, GET_STATE_TIMEOUT, getStateMsgId);
|
|
1309
|
+
this._session.pendingGetStateTimeouts.set(getStateMsgId, timeout);
|
|
1291
1310
|
}
|
|
1292
1311
|
if (resendRequest) {
|
|
1293
1312
|
resendMsgId = this._registerOutgoingMsgId(this._session.writeMessage(writer, resendRequest));
|
|
@@ -1366,10 +1385,8 @@ class SessionConnection extends PersistentConnection {
|
|
|
1366
1385
|
if (msg.getState) {
|
|
1367
1386
|
this._session.getStateSchedule.remove(msg);
|
|
1368
1387
|
}
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
this._session.getStateSchedule.insert(msg);
|
|
1372
|
-
}
|
|
1388
|
+
msg.getState = getStateTime;
|
|
1389
|
+
this._session.getStateSchedule.insert(msg);
|
|
1373
1390
|
if (rootMsgId === null) rootMsgId = msg.msgId;
|
|
1374
1391
|
writer.long(this._registerOutgoingMsgId(msg.msgId));
|
|
1375
1392
|
writer.uint(msg.seqNo);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mtcute/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.25.
|
|
4
|
+
"version": "0.25.8",
|
|
5
5
|
"description": "Type-safe library for MTProto (Telegram API)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {},
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"@fuman/net": "0.0.15",
|
|
11
11
|
"@fuman/utils": "0.0.15",
|
|
12
12
|
"@mtcute/file-id": "^0.24.3",
|
|
13
|
-
"@mtcute/tl": "^
|
|
13
|
+
"@mtcute/tl": "^211.0.0",
|
|
14
14
|
"@mtcute/tl-runtime": "^0.24.3",
|
|
15
15
|
"@types/events": "3.0.0",
|
|
16
16
|
"long": "5.2.3"
|
package/utils/binary/compat.cjs
CHANGED
|
@@ -33,6 +33,16 @@ function mapCompatStarGift(obj) {
|
|
|
33
33
|
case "starGiftUnique_layer202":
|
|
34
34
|
case "starGiftUnique_layer206":
|
|
35
35
|
return replaceType(obj, "starGiftUnique");
|
|
36
|
+
case "starGiftUnique_layer210":
|
|
37
|
+
return {
|
|
38
|
+
...obj,
|
|
39
|
+
_: "starGiftUnique",
|
|
40
|
+
resellAmount: obj.resellStars ? [{
|
|
41
|
+
_: "starsAmount",
|
|
42
|
+
amount: obj.resellStars,
|
|
43
|
+
nanos: 0
|
|
44
|
+
}] : void 0
|
|
45
|
+
};
|
|
36
46
|
case "starGift_layer202":
|
|
37
47
|
case "starGift_layer206":
|
|
38
48
|
case "starGift_layer209":
|
|
@@ -70,6 +80,17 @@ function mapCompatMessageAction(obj) {
|
|
|
70
80
|
_: "messageActionStarGiftUnique",
|
|
71
81
|
gift: mapCompatStarGift(obj.gift)
|
|
72
82
|
};
|
|
83
|
+
case "messageActionStarGiftUnique_layer210":
|
|
84
|
+
return {
|
|
85
|
+
...obj,
|
|
86
|
+
_: "messageActionStarGiftUnique",
|
|
87
|
+
gift: mapCompatStarGift(obj.gift),
|
|
88
|
+
resaleAmount: obj.resaleStars ? {
|
|
89
|
+
_: "starsAmount",
|
|
90
|
+
amount: obj.resaleStars,
|
|
91
|
+
nanos: 0
|
|
92
|
+
} : void 0
|
|
93
|
+
};
|
|
73
94
|
case "messageActionStarGift_layer197":
|
|
74
95
|
return {
|
|
75
96
|
...obj,
|
|
@@ -124,6 +145,7 @@ function mapCompatObject(obj) {
|
|
|
124
145
|
case "starGift_layer202":
|
|
125
146
|
case "starGift_layer206":
|
|
126
147
|
case "starGift_layer209":
|
|
148
|
+
case "starGiftUnique_layer210":
|
|
127
149
|
return mapCompatStarGift(obj);
|
|
128
150
|
case "emojiStatus_layer197":
|
|
129
151
|
return mapCompatEmojiStatus(obj);
|
|
@@ -136,11 +158,13 @@ function mapCompatObject(obj) {
|
|
|
136
158
|
case "messageActionStarGift_layer197":
|
|
137
159
|
case "messageActionStarGiftUnique_layer202":
|
|
138
160
|
case "messageActionPaidMessagesPrice_layer203":
|
|
161
|
+
case "messageActionStarGiftUnique_layer210":
|
|
139
162
|
return mapCompatMessageAction(obj);
|
|
140
163
|
case "userFull_layer199":
|
|
141
164
|
return replaceType(dropFields(obj, ["premiumGifts"]), "userFull");
|
|
142
165
|
case "userFull_layer200":
|
|
143
166
|
case "userFull_layer209":
|
|
167
|
+
case "userFull_layer210":
|
|
144
168
|
return replaceType(obj, "userFull");
|
|
145
169
|
case "user_layer199":
|
|
146
170
|
return {
|
|
@@ -163,6 +187,12 @@ function mapCompatObject(obj) {
|
|
|
163
187
|
return mapCompatMessage(obj);
|
|
164
188
|
case "messageReplyHeader_layer206":
|
|
165
189
|
return mapMessageReplyHeader(obj);
|
|
190
|
+
case "storyItem_layer210":
|
|
191
|
+
return {
|
|
192
|
+
...obj,
|
|
193
|
+
_: "storyItem",
|
|
194
|
+
media: mapCompatMessageMedia(obj.media)
|
|
195
|
+
};
|
|
166
196
|
default:
|
|
167
197
|
return obj;
|
|
168
198
|
}
|
package/utils/binary/compat.js
CHANGED
|
@@ -26,6 +26,16 @@ function mapCompatStarGift(obj) {
|
|
|
26
26
|
case "starGiftUnique_layer202":
|
|
27
27
|
case "starGiftUnique_layer206":
|
|
28
28
|
return replaceType(obj, "starGiftUnique");
|
|
29
|
+
case "starGiftUnique_layer210":
|
|
30
|
+
return {
|
|
31
|
+
...obj,
|
|
32
|
+
_: "starGiftUnique",
|
|
33
|
+
resellAmount: obj.resellStars ? [{
|
|
34
|
+
_: "starsAmount",
|
|
35
|
+
amount: obj.resellStars,
|
|
36
|
+
nanos: 0
|
|
37
|
+
}] : void 0
|
|
38
|
+
};
|
|
29
39
|
case "starGift_layer202":
|
|
30
40
|
case "starGift_layer206":
|
|
31
41
|
case "starGift_layer209":
|
|
@@ -63,6 +73,17 @@ function mapCompatMessageAction(obj) {
|
|
|
63
73
|
_: "messageActionStarGiftUnique",
|
|
64
74
|
gift: mapCompatStarGift(obj.gift)
|
|
65
75
|
};
|
|
76
|
+
case "messageActionStarGiftUnique_layer210":
|
|
77
|
+
return {
|
|
78
|
+
...obj,
|
|
79
|
+
_: "messageActionStarGiftUnique",
|
|
80
|
+
gift: mapCompatStarGift(obj.gift),
|
|
81
|
+
resaleAmount: obj.resaleStars ? {
|
|
82
|
+
_: "starsAmount",
|
|
83
|
+
amount: obj.resaleStars,
|
|
84
|
+
nanos: 0
|
|
85
|
+
} : void 0
|
|
86
|
+
};
|
|
66
87
|
case "messageActionStarGift_layer197":
|
|
67
88
|
return {
|
|
68
89
|
...obj,
|
|
@@ -117,6 +138,7 @@ function mapCompatObject(obj) {
|
|
|
117
138
|
case "starGift_layer202":
|
|
118
139
|
case "starGift_layer206":
|
|
119
140
|
case "starGift_layer209":
|
|
141
|
+
case "starGiftUnique_layer210":
|
|
120
142
|
return mapCompatStarGift(obj);
|
|
121
143
|
case "emojiStatus_layer197":
|
|
122
144
|
return mapCompatEmojiStatus(obj);
|
|
@@ -129,11 +151,13 @@ function mapCompatObject(obj) {
|
|
|
129
151
|
case "messageActionStarGift_layer197":
|
|
130
152
|
case "messageActionStarGiftUnique_layer202":
|
|
131
153
|
case "messageActionPaidMessagesPrice_layer203":
|
|
154
|
+
case "messageActionStarGiftUnique_layer210":
|
|
132
155
|
return mapCompatMessageAction(obj);
|
|
133
156
|
case "userFull_layer199":
|
|
134
157
|
return replaceType(dropFields(obj, ["premiumGifts"]), "userFull");
|
|
135
158
|
case "userFull_layer200":
|
|
136
159
|
case "userFull_layer209":
|
|
160
|
+
case "userFull_layer210":
|
|
137
161
|
return replaceType(obj, "userFull");
|
|
138
162
|
case "user_layer199":
|
|
139
163
|
return {
|
|
@@ -156,6 +180,12 @@ function mapCompatObject(obj) {
|
|
|
156
180
|
return mapCompatMessage(obj);
|
|
157
181
|
case "messageReplyHeader_layer206":
|
|
158
182
|
return mapMessageReplyHeader(obj);
|
|
183
|
+
case "storyItem_layer210":
|
|
184
|
+
return {
|
|
185
|
+
...obj,
|
|
186
|
+
_: "storyItem",
|
|
187
|
+
media: mapCompatMessageMedia(obj.media)
|
|
188
|
+
};
|
|
159
189
|
default:
|
|
160
190
|
return obj;
|
|
161
191
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { tl } from '@mtcute/tl';
|
|
1
|
+
import { mtp, tl } from '@mtcute/tl';
|
|
2
2
|
import { PeersIndex } from '../../highlevel/index.js';
|
|
3
3
|
/** Serialize a raw TL object to binary */
|
|
4
|
-
export declare function serializeObject(obj: tl.TlObject): Uint8Array;
|
|
4
|
+
export declare function serializeObject(obj: tl.TlObject | mtp.TlObject): Uint8Array;
|
|
5
5
|
/** Deserialize a binary TL object */
|
|
6
|
-
export declare function deserializeObject(data: Uint8Array): tl.TlObject;
|
|
6
|
+
export declare function deserializeObject(data: Uint8Array): tl.TlObject | mtp.TlObject;
|
|
7
7
|
/** Helper function to serialize a {@link PeersIndex} */
|
|
8
8
|
export declare function serializePeersIndex({ users, chats }: PeersIndex): Uint8Array;
|
|
9
9
|
/** Helper function to deserialize a {@link PeersIndex} */
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { tl } from '@mtcute/tl';
|
|
1
|
+
import { mtp, tl } from '@mtcute/tl';
|
|
2
2
|
import { PeersIndex } from '../../highlevel/index.js';
|
|
3
3
|
/** Serialize a raw TL object to binary */
|
|
4
|
-
export declare function serializeObject(obj: tl.TlObject): Uint8Array;
|
|
4
|
+
export declare function serializeObject(obj: tl.TlObject | mtp.TlObject): Uint8Array;
|
|
5
5
|
/** Deserialize a binary TL object */
|
|
6
|
-
export declare function deserializeObject(data: Uint8Array): tl.TlObject;
|
|
6
|
+
export declare function deserializeObject(data: Uint8Array): tl.TlObject | mtp.TlObject;
|
|
7
7
|
/** Helper function to serialize a {@link PeersIndex} */
|
|
8
8
|
export declare function serializePeersIndex({ users, chats }: PeersIndex): Uint8Array;
|
|
9
9
|
/** Helper function to deserialize a {@link PeersIndex} */
|