@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.
Files changed (69) hide show
  1. package/client.cjs +7 -0
  2. package/client.js +8 -1
  3. package/highlevel/client.d.cts +61 -4
  4. package/highlevel/client.d.ts +61 -4
  5. package/highlevel/methods/files/normalize-input-media.cjs +13 -4
  6. package/highlevel/methods/files/normalize-input-media.js +13 -4
  7. package/highlevel/methods/messages/search-posts-global.cjs +48 -0
  8. package/highlevel/methods/messages/search-posts-global.d.cts +27 -0
  9. package/highlevel/methods/messages/search-posts-global.d.ts +27 -0
  10. package/highlevel/methods/messages/search-posts-global.js +43 -0
  11. package/highlevel/methods/premium/buy-resale-gift.cjs +3 -2
  12. package/highlevel/methods/premium/buy-resale-gift.d.cts +2 -0
  13. package/highlevel/methods/premium/buy-resale-gift.d.ts +2 -0
  14. package/highlevel/methods/premium/buy-resale-gift.js +3 -2
  15. package/highlevel/methods/premium/get-resale-star-gifts.cjs +5 -1
  16. package/highlevel/methods/premium/get-resale-star-gifts.d.cts +7 -1
  17. package/highlevel/methods/premium/get-resale-star-gifts.d.ts +7 -1
  18. package/highlevel/methods/premium/get-resale-star-gifts.js +6 -2
  19. package/highlevel/methods/premium/set-gift-resale-price.cjs +11 -1
  20. package/highlevel/methods/premium/set-gift-resale-price.d.cts +5 -2
  21. package/highlevel/methods/premium/set-gift-resale-price.d.ts +5 -2
  22. package/highlevel/methods/premium/set-gift-resale-price.js +11 -1
  23. package/highlevel/methods/stories/send-story.cjs +3 -2
  24. package/highlevel/methods/stories/send-story.d.cts +4 -0
  25. package/highlevel/methods/stories/send-story.d.ts +4 -0
  26. package/highlevel/methods/stories/send-story.js +3 -2
  27. package/highlevel/methods.d.cts +3 -0
  28. package/highlevel/methods.d.ts +3 -0
  29. package/highlevel/types/messages/message-action.cjs +2 -1
  30. package/highlevel/types/messages/message-action.d.cts +2 -0
  31. package/highlevel/types/messages/message-action.d.ts +2 -0
  32. package/highlevel/types/messages/message-action.js +2 -1
  33. package/highlevel/types/peers/chat.cjs +5 -1
  34. package/highlevel/types/peers/chat.d.cts +5 -1
  35. package/highlevel/types/peers/chat.d.ts +5 -1
  36. package/highlevel/types/peers/chat.js +5 -1
  37. package/highlevel/types/peers/full-chat.cjs +4 -0
  38. package/highlevel/types/peers/full-chat.d.cts +2 -0
  39. package/highlevel/types/peers/full-chat.d.ts +2 -0
  40. package/highlevel/types/peers/full-chat.js +4 -0
  41. package/highlevel/types/peers/full-user.cjs +14 -1
  42. package/highlevel/types/peers/full-user.d.cts +9 -0
  43. package/highlevel/types/peers/full-user.d.ts +9 -0
  44. package/highlevel/types/peers/full-user.js +14 -1
  45. package/highlevel/types/premium/stars-gift-unique.cjs +8 -1
  46. package/highlevel/types/premium/stars-gift-unique.d.cts +2 -0
  47. package/highlevel/types/premium/stars-gift-unique.d.ts +2 -0
  48. package/highlevel/types/premium/stars-gift-unique.js +8 -1
  49. package/highlevel/types/stories/story.cjs +6 -0
  50. package/highlevel/types/stories/story.d.cts +4 -0
  51. package/highlevel/types/stories/story.d.ts +4 -0
  52. package/highlevel/types/stories/story.js +6 -0
  53. package/methods.cjs +3 -0
  54. package/methods.js +4 -1
  55. package/network/mtproto-session.cjs +1 -0
  56. package/network/mtproto-session.d.cts +1 -0
  57. package/network/mtproto-session.d.ts +1 -0
  58. package/network/mtproto-session.js +1 -0
  59. package/network/network-manager.cjs +1 -1
  60. package/network/network-manager.js +1 -1
  61. package/network/session-connection.cjs +27 -10
  62. package/network/session-connection.d.cts +1 -0
  63. package/network/session-connection.d.ts +1 -0
  64. package/network/session-connection.js +27 -10
  65. package/package.json +2 -2
  66. package/utils/binary/compat.cjs +30 -0
  67. package/utils/binary/compat.js +30 -0
  68. package/utils/binary/serialization.d.cts +3 -3
  69. 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
@@ -225,7 +225,7 @@ class NetworkManager {
225
225
  _: "initConnection",
226
226
  deviceModel,
227
227
  systemVersion: "1.0",
228
- appVersion: "0.25.6",
228
+ appVersion: "0.25.8",
229
229
  systemLangCode: "en",
230
230
  langPack: "",
231
231
  // "langPacks are for official apps only"
@@ -218,7 +218,7 @@ class NetworkManager {
218
218
  _: "initConnection",
219
219
  deviceModel,
220
220
  systemVersion: "1.0",
221
- appVersion: "0.25.6",
221
+ appVersion: "0.25.8",
222
222
  systemLangCode: "en",
223
223
  langPack: "",
224
224
  // "langPacks are for official apps only"
@@ -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.pendingMessages.keys()) {
99
- const pending = this._session.pendingMessages.get(msgId);
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
- if (!msg.acked) {
1377
- msg.getState = getStateTime;
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);
@@ -90,6 +90,7 @@ export declare class SessionConnection extends PersistentConnection {
90
90
  private _cancelRpc;
91
91
  protected _onInactivityTimeout(): void;
92
92
  flushWhenIdle(): void;
93
+ private _handleGetStateTimeout;
93
94
  private _flush;
94
95
  private _doFlush;
95
96
  }
@@ -90,6 +90,7 @@ export declare class SessionConnection extends PersistentConnection {
90
90
  private _cancelRpc;
91
91
  protected _onInactivityTimeout(): void;
92
92
  flushWhenIdle(): void;
93
+ private _handleGetStateTimeout;
93
94
  private _flush;
94
95
  private _doFlush;
95
96
  }
@@ -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.pendingMessages.keys()) {
92
- const pending = this._session.pendingMessages.get(msgId);
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
- if (!msg.acked) {
1370
- msg.getState = getStateTime;
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.6",
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": "^210.0.0",
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"
@@ -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
  }
@@ -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} */