@mtcute/core 0.31.0 → 0.32.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 (148) hide show
  1. package/client.cjs +12 -0
  2. package/client.js +12 -0
  3. package/highlevel/client.d.cts +74 -9
  4. package/highlevel/client.d.ts +74 -9
  5. package/highlevel/methods/chats/build-peers-index.cjs +45 -0
  6. package/highlevel/methods/chats/build-peers-index.d.cts +13 -0
  7. package/highlevel/methods/chats/build-peers-index.d.ts +13 -0
  8. package/highlevel/methods/chats/build-peers-index.js +40 -0
  9. package/highlevel/methods/ephemeral/delete-all-welcome-messages.cjs +17 -0
  10. package/highlevel/methods/ephemeral/delete-all-welcome-messages.d.cts +8 -0
  11. package/highlevel/methods/ephemeral/delete-all-welcome-messages.d.ts +8 -0
  12. package/highlevel/methods/ephemeral/delete-all-welcome-messages.js +12 -0
  13. package/highlevel/methods/ephemeral/delete-ephemeral-message.cjs +1 -1
  14. package/highlevel/methods/ephemeral/delete-ephemeral-message.d.cts +2 -2
  15. package/highlevel/methods/ephemeral/delete-ephemeral-message.d.ts +2 -2
  16. package/highlevel/methods/ephemeral/delete-ephemeral-message.js +1 -1
  17. package/highlevel/methods/ephemeral/delete-welcome-message.cjs +18 -0
  18. package/highlevel/methods/ephemeral/delete-welcome-message.d.cts +9 -0
  19. package/highlevel/methods/ephemeral/delete-welcome-message.d.ts +9 -0
  20. package/highlevel/methods/ephemeral/delete-welcome-message.js +13 -0
  21. package/highlevel/methods/ephemeral/edit-ephemeral-message.cjs +11 -3
  22. package/highlevel/methods/ephemeral/edit-ephemeral-message.d.cts +16 -2
  23. package/highlevel/methods/ephemeral/edit-ephemeral-message.d.ts +16 -2
  24. package/highlevel/methods/ephemeral/edit-ephemeral-message.js +11 -3
  25. package/highlevel/methods/ephemeral/get-welcome-messages.cjs +29 -0
  26. package/highlevel/methods/ephemeral/get-welcome-messages.d.cts +8 -0
  27. package/highlevel/methods/ephemeral/get-welcome-messages.d.ts +8 -0
  28. package/highlevel/methods/ephemeral/get-welcome-messages.js +24 -0
  29. package/highlevel/methods/ephemeral/send-ephemeral-message.cjs +13 -3
  30. package/highlevel/methods/ephemeral/send-ephemeral-message.d.cts +20 -2
  31. package/highlevel/methods/ephemeral/send-ephemeral-message.d.ts +20 -2
  32. package/highlevel/methods/ephemeral/send-ephemeral-message.js +13 -3
  33. package/highlevel/methods/files/download-iterable.cjs +3 -0
  34. package/highlevel/methods/files/download-iterable.js +3 -0
  35. package/highlevel/methods/files/normalize-input-media.cjs +25 -4
  36. package/highlevel/methods/files/normalize-input-media.js +25 -4
  37. package/highlevel/methods/forums/edit-forum-topic.cjs +1 -1
  38. package/highlevel/methods/forums/edit-forum-topic.js +1 -1
  39. package/highlevel/methods/forums/toggle-forum-topic-closed.cjs +1 -1
  40. package/highlevel/methods/forums/toggle-forum-topic-closed.js +1 -1
  41. package/highlevel/methods/forums/toggle-general-topic-hidden.cjs +1 -1
  42. package/highlevel/methods/forums/toggle-general-topic-hidden.js +1 -1
  43. package/highlevel/methods/gifts/buy-resale-gift.cjs +5 -2
  44. package/highlevel/methods/gifts/buy-resale-gift.d.cts +11 -1
  45. package/highlevel/methods/gifts/buy-resale-gift.d.ts +11 -1
  46. package/highlevel/methods/gifts/buy-resale-gift.js +5 -2
  47. package/highlevel/methods/messages/forward-messages.cjs +1 -0
  48. package/highlevel/methods/messages/forward-messages.d.cts +2 -0
  49. package/highlevel/methods/messages/forward-messages.d.ts +2 -0
  50. package/highlevel/methods/messages/forward-messages.js +1 -0
  51. package/highlevel/methods/messages/normalize-rich-message.cjs +3 -0
  52. package/highlevel/methods/messages/normalize-rich-message.js +3 -0
  53. package/highlevel/methods/messages/send-text.cjs +2 -33
  54. package/highlevel/methods/messages/send-text.js +2 -33
  55. package/highlevel/methods/messages/send-typing.d.cts +3 -3
  56. package/highlevel/methods/messages/send-typing.d.ts +3 -3
  57. package/highlevel/methods/messages/set-typing.cjs +1 -1
  58. package/highlevel/methods/messages/set-typing.d.cts +2 -2
  59. package/highlevel/methods/messages/set-typing.d.ts +2 -2
  60. package/highlevel/methods/messages/set-typing.js +1 -1
  61. package/highlevel/methods.d.cts +3 -0
  62. package/highlevel/methods.d.ts +3 -0
  63. package/highlevel/types/bots/keyboards/builder.cjs +5 -5
  64. package/highlevel/types/bots/keyboards/builder.d.cts +8 -9
  65. package/highlevel/types/bots/keyboards/builder.d.ts +8 -9
  66. package/highlevel/types/bots/keyboards/builder.js +5 -5
  67. package/highlevel/types/bots/keyboards/factories.cjs +51 -103
  68. package/highlevel/types/bots/keyboards/factories.d.cts +58 -89
  69. package/highlevel/types/bots/keyboards/factories.d.ts +58 -89
  70. package/highlevel/types/bots/keyboards/factories.js +51 -103
  71. package/highlevel/types/bots/keyboards/index.d.cts +3 -3
  72. package/highlevel/types/bots/keyboards/index.d.ts +3 -3
  73. package/highlevel/types/bots/keyboards/normalize.cjs +131 -0
  74. package/highlevel/types/bots/keyboards/normalize.d.cts +10 -0
  75. package/highlevel/types/bots/keyboards/normalize.d.ts +10 -0
  76. package/highlevel/types/bots/keyboards/normalize.js +126 -0
  77. package/highlevel/types/bots/keyboards/types.d.cts +160 -4
  78. package/highlevel/types/bots/keyboards/types.d.ts +160 -4
  79. package/highlevel/types/messages/dialog.cjs +8 -1
  80. package/highlevel/types/messages/dialog.d.cts +3 -0
  81. package/highlevel/types/messages/dialog.d.ts +3 -0
  82. package/highlevel/types/messages/dialog.js +8 -1
  83. package/highlevel/types/messages/dialog.test.d.cts +1 -0
  84. package/highlevel/types/messages/dialog.test.d.ts +1 -0
  85. package/highlevel/types/messages/ephemeral-message.cjs +35 -3
  86. package/highlevel/types/messages/ephemeral-message.d.cts +22 -2
  87. package/highlevel/types/messages/ephemeral-message.d.ts +22 -2
  88. package/highlevel/types/messages/ephemeral-message.js +35 -3
  89. package/highlevel/types/messages/message-action.cjs +8 -1
  90. package/highlevel/types/messages/message-action.d.cts +11 -1
  91. package/highlevel/types/messages/message-action.d.ts +11 -1
  92. package/highlevel/types/messages/message-action.js +8 -1
  93. package/highlevel/types/messages/message.cjs +7 -2
  94. package/highlevel/types/messages/message.d.cts +2 -2
  95. package/highlevel/types/messages/message.d.ts +2 -2
  96. package/highlevel/types/messages/message.js +8 -3
  97. package/highlevel/types/messages/rich/inner.cjs +37 -0
  98. package/highlevel/types/messages/rich/inner.d.cts +19 -0
  99. package/highlevel/types/messages/rich/inner.d.ts +19 -0
  100. package/highlevel/types/messages/rich/inner.js +37 -0
  101. package/highlevel/types/peers/full-chat.cjs +4 -0
  102. package/highlevel/types/peers/full-chat.d.cts +2 -0
  103. package/highlevel/types/peers/full-chat.d.ts +2 -0
  104. package/highlevel/types/peers/full-chat.js +4 -0
  105. package/highlevel/types/peers/typing-status.d.cts +4 -1
  106. package/highlevel/types/peers/typing-status.d.ts +4 -1
  107. package/highlevel/types/updates/ephemeral-callback-query.cjs +10 -2
  108. package/highlevel/types/updates/ephemeral-callback-query.d.cts +8 -2
  109. package/highlevel/types/updates/ephemeral-callback-query.d.ts +8 -2
  110. package/highlevel/types/updates/ephemeral-callback-query.js +10 -2
  111. package/highlevel/types/updates/user-typing-update.cjs +18 -0
  112. package/highlevel/types/updates/user-typing-update.d.cts +9 -0
  113. package/highlevel/types/updates/user-typing-update.d.ts +9 -0
  114. package/highlevel/types/updates/user-typing-update.js +18 -0
  115. package/highlevel/updates/manager.cjs +40 -28
  116. package/highlevel/updates/manager.js +40 -28
  117. package/highlevel/utils/walk-page-blocks.cjs +5 -0
  118. package/highlevel/utils/walk-page-blocks.js +5 -0
  119. package/methods.cjs +6 -0
  120. package/methods.js +6 -0
  121. package/network/mtproto-session.cjs +9 -2
  122. package/network/mtproto-session.d.cts +3 -1
  123. package/network/mtproto-session.d.ts +3 -1
  124. package/network/mtproto-session.js +9 -2
  125. package/network/network-manager.cjs +1 -1
  126. package/network/network-manager.js +1 -1
  127. package/network/session-connection.cjs +12 -6
  128. package/network/session-connection.js +12 -6
  129. package/network/session-connection.test.d.cts +1 -0
  130. package/network/session-connection.test.d.ts +1 -0
  131. package/package.json +3 -3
  132. package/tl/api-schema.json +1 -1
  133. package/tl/binary/reader.cjs +136 -93
  134. package/tl/binary/reader.js +136 -93
  135. package/tl/binary/writer.cjs +318 -207
  136. package/tl/binary/writer.js +318 -207
  137. package/tl/compat/reader.cjs +82 -0
  138. package/tl/compat/reader.js +82 -0
  139. package/tl/index.d.cts +377 -718
  140. package/tl/index.d.ts +377 -718
  141. package/tl/inner-tl.cjs +23 -7
  142. package/tl/inner-tl.js +23 -7
  143. package/tl/rpc-error.test.d.cts +1 -0
  144. package/tl/rpc-error.test.d.ts +1 -0
  145. package/utils/binary/compat.cjs +175 -29
  146. package/utils/binary/compat.js +175 -29
  147. package/utils/links/bots.cjs +9 -4
  148. package/utils/links/bots.js +9 -4
@@ -12,6 +12,7 @@ const Long = require("long");
12
12
  const peersIndex = require("../../highlevel/types/peers/peers-index.cjs");
13
13
  const reader = require("../../tl/binary/reader.cjs");
14
14
  const reader$1 = require("../../tl/compat/reader.cjs");
15
+ const errors = require("../../types/errors.cjs");
15
16
  const innerTl = require("../../tl/inner-tl.cjs");
16
17
  function replaceType(obj, type) {
17
18
  return Object.assign(obj, { _: type });
@@ -172,6 +173,8 @@ function mapCompatPageBlock(obj) {
172
173
  _: "pageBlockOrderedList",
173
174
  items: obj.items.map(mapCompatPageListOrderedItem)
174
175
  };
176
+ case "pageBlockBlockquote_layer228":
177
+ return replaceType(obj, "pageBlockBlockquote");
175
178
  case "pageBlockList":
176
179
  return {
177
180
  ...obj,
@@ -226,6 +229,7 @@ function mapCompatMessageAction(obj) {
226
229
  case "messageActionStarGiftUnique_layer202":
227
230
  case "messageActionStarGiftUnique_layer214":
228
231
  case "messageActionStarGiftUnique_layer221":
232
+ case "messageActionStarGiftUnique_layer228":
229
233
  return {
230
234
  ...obj,
231
235
  _: "messageActionStarGiftUnique",
@@ -308,7 +312,8 @@ function mapCompatMessage(obj) {
308
312
  ...obj,
309
313
  _: "message",
310
314
  media: obj.media ? mapCompatMessageMedia(obj.media) : void 0,
311
- replyTo: obj.replyTo ? mapMessageReplyHeader(obj.replyTo) : void 0
315
+ replyTo: obj.replyTo ? mapMessageReplyHeader(obj.replyTo) : void 0,
316
+ replyMarkup: obj.replyMarkup ? mapCompatReplyMarkup(obj.replyMarkup) : void 0
312
317
  };
313
318
  case "messageService_layer204":
314
319
  return {
@@ -322,43 +327,162 @@ function mapCompatMessage(obj) {
322
327
  }
323
328
  }
324
329
  function mapCompatKeyboardButton(obj) {
330
+ const style = "style" in obj ? obj.style : void 0;
325
331
  switch (obj._) {
326
332
  case "keyboardButton_layer221":
327
- return replaceType(obj, "keyboardButton");
328
- case "keyboardButtonUrl_layer221":
329
- return replaceType(obj, "keyboardButtonUrl");
330
- case "keyboardButtonCallback_layer221":
331
- return replaceType(obj, "keyboardButtonCallback");
333
+ case "keyboardButton_layer228":
334
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeDefault" } };
332
335
  case "keyboardButtonRequestPhone_layer221":
333
- return replaceType(obj, "keyboardButtonRequestPhone");
336
+ case "keyboardButtonRequestPhone_layer228":
337
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeRequestPhone" } };
334
338
  case "keyboardButtonRequestGeoLocation_layer221":
335
- return replaceType(obj, "keyboardButtonRequestGeoLocation");
336
- case "keyboardButtonSwitchInline_layer221":
337
- return replaceType(obj, "keyboardButtonSwitchInline");
338
- case "keyboardButtonGame_layer221":
339
- return replaceType(obj, "keyboardButtonGame");
340
- case "keyboardButtonBuy_layer221":
341
- return replaceType(obj, "keyboardButtonBuy");
342
- case "keyboardButtonUrlAuth_layer221":
343
- return replaceType(obj, "keyboardButtonUrlAuth");
344
- case "inputKeyboardButtonUrlAuth_layer221":
345
- return replaceType(obj, "inputKeyboardButtonUrlAuth");
339
+ case "keyboardButtonRequestGeoLocation_layer228":
340
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeRequestGeoLocation" } };
346
341
  case "keyboardButtonRequestPoll_layer221":
347
- return replaceType(obj, "keyboardButtonRequestPoll");
348
- case "inputKeyboardButtonUserProfile_layer221":
349
- return replaceType(obj, "inputKeyboardButtonUserProfile");
350
- case "keyboardButtonUserProfile_layer221":
351
- return replaceType(obj, "keyboardButtonUserProfile");
352
- case "keyboardButtonWebView_layer221":
353
- return replaceType(obj, "keyboardButtonWebView");
342
+ case "keyboardButtonRequestPoll_layer228":
343
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeRequestPoll", quiz: obj.quiz } };
354
344
  case "keyboardButtonSimpleWebView_layer221":
355
- return replaceType(obj, "keyboardButtonSimpleWebView");
345
+ case "keyboardButtonSimpleWebView_layer228":
346
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeSimpleWebView", url: obj.url } };
356
347
  case "keyboardButtonRequestPeer_layer221":
357
- return replaceType(obj, "keyboardButtonRequestPeer");
348
+ case "keyboardButtonRequestPeer_layer228":
349
+ return {
350
+ _: "keyboardButton",
351
+ style,
352
+ text: obj.text,
353
+ type: {
354
+ _: "buttonTypeRequestPeer",
355
+ buttonId: obj.buttonId,
356
+ peerType: obj.peerType,
357
+ maxQuantity: obj.maxQuantity
358
+ }
359
+ };
358
360
  case "inputKeyboardButtonRequestPeer_layer221":
359
- return replaceType(obj, "inputKeyboardButtonRequestPeer");
361
+ case "inputKeyboardButtonRequestPeer_layer228":
362
+ return {
363
+ _: "keyboardButton",
364
+ style,
365
+ text: obj.text,
366
+ type: {
367
+ _: "inputButtonTypeRequestPeer",
368
+ nameRequested: obj.nameRequested,
369
+ usernameRequested: obj.usernameRequested,
370
+ photoRequested: obj.photoRequested,
371
+ buttonId: obj.buttonId,
372
+ peerType: obj.peerType,
373
+ maxQuantity: obj.maxQuantity
374
+ }
375
+ };
376
+ case "keyboardButtonUrl_layer221":
377
+ case "keyboardButtonUrl_layer228":
378
+ return { _: "keyboardInlineButton", style, text: obj.text, type: { _: "inlineButtonTypeUrl", url: obj.url } };
379
+ case "keyboardButtonCallback_layer221":
380
+ case "keyboardButtonCallback_layer228":
381
+ return {
382
+ _: "keyboardInlineButton",
383
+ style,
384
+ text: obj.text,
385
+ type: { _: "inlineButtonTypeCallback", requiresPassword: obj.requiresPassword, data: obj.data }
386
+ };
387
+ case "keyboardButtonGame_layer221":
388
+ case "keyboardButtonGame_layer228":
389
+ return { _: "keyboardInlineButton", style, text: obj.text, type: { _: "inlineButtonTypeGame" } };
390
+ case "keyboardButtonBuy_layer221":
391
+ case "keyboardButtonBuy_layer228":
392
+ return { _: "keyboardInlineButton", style, text: obj.text, type: { _: "inlineButtonTypeBuy" } };
393
+ case "keyboardButtonWebView_layer221":
394
+ case "keyboardButtonWebView_layer228":
395
+ return {
396
+ _: "keyboardInlineButton",
397
+ style,
398
+ text: obj.text,
399
+ type: { _: "inlineButtonTypeWebView", url: obj.url }
400
+ };
360
401
  case "keyboardButtonCopy_layer221":
361
- return replaceType(obj, "keyboardButtonCopy");
402
+ case "keyboardButtonCopy_layer228":
403
+ return {
404
+ _: "keyboardInlineButton",
405
+ style,
406
+ text: obj.text,
407
+ type: { _: "inlineButtonTypeCopy", copyText: obj.copyText }
408
+ };
409
+ case "keyboardButtonUserProfile_layer221":
410
+ case "keyboardButtonUserProfile_layer228":
411
+ return {
412
+ _: "keyboardInlineButton",
413
+ style,
414
+ text: obj.text,
415
+ type: { _: "inlineButtonTypeUserProfile", userId: obj.userId }
416
+ };
417
+ case "inputKeyboardButtonUserProfile_layer221":
418
+ case "inputKeyboardButtonUserProfile_layer228":
419
+ return {
420
+ _: "keyboardInlineButton",
421
+ style,
422
+ text: obj.text,
423
+ type: { _: "inputInlineButtonTypeUserProfile", userId: obj.userId }
424
+ };
425
+ case "keyboardButtonSwitchInline_layer221":
426
+ case "keyboardButtonSwitchInline_layer228":
427
+ return {
428
+ _: "keyboardInlineButton",
429
+ style,
430
+ text: obj.text,
431
+ type: {
432
+ _: "inlineButtonTypeSwitchInline",
433
+ samePeer: obj.samePeer,
434
+ query: obj.query,
435
+ peerTypes: obj.peerTypes
436
+ }
437
+ };
438
+ case "keyboardButtonUrlAuth_layer221":
439
+ case "keyboardButtonUrlAuth_layer228":
440
+ return {
441
+ _: "keyboardInlineButton",
442
+ style,
443
+ text: obj.text,
444
+ type: {
445
+ _: "inlineButtonTypeUrlAuth",
446
+ fwdText: obj.fwdText,
447
+ url: obj.url,
448
+ buttonId: obj.buttonId
449
+ }
450
+ };
451
+ case "inputKeyboardButtonUrlAuth_layer221":
452
+ case "inputKeyboardButtonUrlAuth_layer228":
453
+ return {
454
+ _: "keyboardInlineButton",
455
+ style,
456
+ text: obj.text,
457
+ type: {
458
+ _: "inputInlineButtonTypeUrlAuth",
459
+ requestWriteAccess: obj.requestWriteAccess,
460
+ fwdText: obj.fwdText,
461
+ url: obj.url,
462
+ bot: obj.bot
463
+ }
464
+ };
465
+ default:
466
+ return obj;
467
+ }
468
+ }
469
+ function toInlineButton(btn) {
470
+ const mapped = btn;
471
+ if (mapped._ !== "keyboardInlineButton") {
472
+ throw new errors.MtTypeAssertionError("mapCompatReplyMarkup (@ rows[*].buttons[*])", "keyboardInlineButton", mapped._);
473
+ }
474
+ return mapped;
475
+ }
476
+ function mapCompatReplyMarkup(obj) {
477
+ switch (obj._) {
478
+ case "replyInlineMarkup_layer228":
479
+ return {
480
+ _: "replyInlineMarkup",
481
+ rows: obj.rows.map((row) => ({
482
+ _: "keyboardInlineButtonRow",
483
+ buttons: row.buttons.map(toInlineButton)
484
+ }))
485
+ };
362
486
  default:
363
487
  return obj;
364
488
  }
@@ -406,6 +530,7 @@ function mapCompatObject(obj) {
406
530
  case "messageActionStarGift_layer216":
407
531
  case "messageActionStarGift_layer218":
408
532
  case "messageActionStarGiftUnique_layer221":
533
+ case "messageActionStarGiftUnique_layer228":
409
534
  return mapCompatMessageAction(obj);
410
535
  case "userFull_layer199":
411
536
  return replaceType(dropFields(obj, ["premiumGifts"]), "userFull");
@@ -506,25 +631,46 @@ function mapCompatObject(obj) {
506
631
  case "poll_layer224":
507
632
  return mapCompatPoll(obj);
508
633
  case "keyboardButton_layer221":
634
+ case "keyboardButton_layer228":
509
635
  case "keyboardButtonUrl_layer221":
636
+ case "keyboardButtonUrl_layer228":
510
637
  case "keyboardButtonCallback_layer221":
638
+ case "keyboardButtonCallback_layer228":
511
639
  case "keyboardButtonRequestPhone_layer221":
640
+ case "keyboardButtonRequestPhone_layer228":
512
641
  case "keyboardButtonRequestGeoLocation_layer221":
642
+ case "keyboardButtonRequestGeoLocation_layer228":
513
643
  case "keyboardButtonSwitchInline_layer221":
644
+ case "keyboardButtonSwitchInline_layer228":
514
645
  case "keyboardButtonGame_layer221":
646
+ case "keyboardButtonGame_layer228":
515
647
  case "keyboardButtonBuy_layer221":
648
+ case "keyboardButtonBuy_layer228":
516
649
  case "keyboardButtonUrlAuth_layer221":
650
+ case "keyboardButtonUrlAuth_layer228":
517
651
  case "inputKeyboardButtonUrlAuth_layer221":
652
+ case "inputKeyboardButtonUrlAuth_layer228":
518
653
  case "keyboardButtonRequestPoll_layer221":
654
+ case "keyboardButtonRequestPoll_layer228":
519
655
  case "inputKeyboardButtonUserProfile_layer221":
656
+ case "inputKeyboardButtonUserProfile_layer228":
520
657
  case "keyboardButtonUserProfile_layer221":
658
+ case "keyboardButtonUserProfile_layer228":
521
659
  case "keyboardButtonWebView_layer221":
660
+ case "keyboardButtonWebView_layer228":
522
661
  case "keyboardButtonSimpleWebView_layer221":
662
+ case "keyboardButtonSimpleWebView_layer228":
523
663
  case "keyboardButtonRequestPeer_layer221":
664
+ case "keyboardButtonRequestPeer_layer228":
524
665
  case "inputKeyboardButtonRequestPeer_layer221":
666
+ case "inputKeyboardButtonRequestPeer_layer228":
525
667
  case "keyboardButtonCopy_layer221":
668
+ case "keyboardButtonCopy_layer228":
526
669
  return mapCompatKeyboardButton(obj);
670
+ case "replyInlineMarkup_layer228":
671
+ return mapCompatReplyMarkup(obj);
527
672
  case "pageBlockOrderedList_layer225":
673
+ case "pageBlockBlockquote_layer228":
528
674
  return mapCompatPageBlock(obj);
529
675
  case "pageListOrderedItemBlocks_layer225":
530
676
  return mapCompatPageListOrderedItem(obj);
@@ -5,6 +5,7 @@ import Long from "long";
5
5
  import { PeersIndex } from "../../highlevel/types/peers/peers-index.js";
6
6
  import { __tlReaderMap } from "../../tl/binary/reader.js";
7
7
  import { __tlReaderMapCompat } from "../../tl/compat/reader.js";
8
+ import { MtTypeAssertionError } from "../../types/errors.js";
8
9
  import { isAnyUser, isAnyChat } from "../../tl/inner-tl.js";
9
10
  function replaceType(obj, type) {
10
11
  return Object.assign(obj, { _: type });
@@ -165,6 +166,8 @@ function mapCompatPageBlock(obj) {
165
166
  _: "pageBlockOrderedList",
166
167
  items: obj.items.map(mapCompatPageListOrderedItem)
167
168
  };
169
+ case "pageBlockBlockquote_layer228":
170
+ return replaceType(obj, "pageBlockBlockquote");
168
171
  case "pageBlockList":
169
172
  return {
170
173
  ...obj,
@@ -219,6 +222,7 @@ function mapCompatMessageAction(obj) {
219
222
  case "messageActionStarGiftUnique_layer202":
220
223
  case "messageActionStarGiftUnique_layer214":
221
224
  case "messageActionStarGiftUnique_layer221":
225
+ case "messageActionStarGiftUnique_layer228":
222
226
  return {
223
227
  ...obj,
224
228
  _: "messageActionStarGiftUnique",
@@ -301,7 +305,8 @@ function mapCompatMessage(obj) {
301
305
  ...obj,
302
306
  _: "message",
303
307
  media: obj.media ? mapCompatMessageMedia(obj.media) : void 0,
304
- replyTo: obj.replyTo ? mapMessageReplyHeader(obj.replyTo) : void 0
308
+ replyTo: obj.replyTo ? mapMessageReplyHeader(obj.replyTo) : void 0,
309
+ replyMarkup: obj.replyMarkup ? mapCompatReplyMarkup(obj.replyMarkup) : void 0
305
310
  };
306
311
  case "messageService_layer204":
307
312
  return {
@@ -315,43 +320,162 @@ function mapCompatMessage(obj) {
315
320
  }
316
321
  }
317
322
  function mapCompatKeyboardButton(obj) {
323
+ const style = "style" in obj ? obj.style : void 0;
318
324
  switch (obj._) {
319
325
  case "keyboardButton_layer221":
320
- return replaceType(obj, "keyboardButton");
321
- case "keyboardButtonUrl_layer221":
322
- return replaceType(obj, "keyboardButtonUrl");
323
- case "keyboardButtonCallback_layer221":
324
- return replaceType(obj, "keyboardButtonCallback");
326
+ case "keyboardButton_layer228":
327
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeDefault" } };
325
328
  case "keyboardButtonRequestPhone_layer221":
326
- return replaceType(obj, "keyboardButtonRequestPhone");
329
+ case "keyboardButtonRequestPhone_layer228":
330
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeRequestPhone" } };
327
331
  case "keyboardButtonRequestGeoLocation_layer221":
328
- return replaceType(obj, "keyboardButtonRequestGeoLocation");
329
- case "keyboardButtonSwitchInline_layer221":
330
- return replaceType(obj, "keyboardButtonSwitchInline");
331
- case "keyboardButtonGame_layer221":
332
- return replaceType(obj, "keyboardButtonGame");
333
- case "keyboardButtonBuy_layer221":
334
- return replaceType(obj, "keyboardButtonBuy");
335
- case "keyboardButtonUrlAuth_layer221":
336
- return replaceType(obj, "keyboardButtonUrlAuth");
337
- case "inputKeyboardButtonUrlAuth_layer221":
338
- return replaceType(obj, "inputKeyboardButtonUrlAuth");
332
+ case "keyboardButtonRequestGeoLocation_layer228":
333
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeRequestGeoLocation" } };
339
334
  case "keyboardButtonRequestPoll_layer221":
340
- return replaceType(obj, "keyboardButtonRequestPoll");
341
- case "inputKeyboardButtonUserProfile_layer221":
342
- return replaceType(obj, "inputKeyboardButtonUserProfile");
343
- case "keyboardButtonUserProfile_layer221":
344
- return replaceType(obj, "keyboardButtonUserProfile");
345
- case "keyboardButtonWebView_layer221":
346
- return replaceType(obj, "keyboardButtonWebView");
335
+ case "keyboardButtonRequestPoll_layer228":
336
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeRequestPoll", quiz: obj.quiz } };
347
337
  case "keyboardButtonSimpleWebView_layer221":
348
- return replaceType(obj, "keyboardButtonSimpleWebView");
338
+ case "keyboardButtonSimpleWebView_layer228":
339
+ return { _: "keyboardButton", style, text: obj.text, type: { _: "buttonTypeSimpleWebView", url: obj.url } };
349
340
  case "keyboardButtonRequestPeer_layer221":
350
- return replaceType(obj, "keyboardButtonRequestPeer");
341
+ case "keyboardButtonRequestPeer_layer228":
342
+ return {
343
+ _: "keyboardButton",
344
+ style,
345
+ text: obj.text,
346
+ type: {
347
+ _: "buttonTypeRequestPeer",
348
+ buttonId: obj.buttonId,
349
+ peerType: obj.peerType,
350
+ maxQuantity: obj.maxQuantity
351
+ }
352
+ };
351
353
  case "inputKeyboardButtonRequestPeer_layer221":
352
- return replaceType(obj, "inputKeyboardButtonRequestPeer");
354
+ case "inputKeyboardButtonRequestPeer_layer228":
355
+ return {
356
+ _: "keyboardButton",
357
+ style,
358
+ text: obj.text,
359
+ type: {
360
+ _: "inputButtonTypeRequestPeer",
361
+ nameRequested: obj.nameRequested,
362
+ usernameRequested: obj.usernameRequested,
363
+ photoRequested: obj.photoRequested,
364
+ buttonId: obj.buttonId,
365
+ peerType: obj.peerType,
366
+ maxQuantity: obj.maxQuantity
367
+ }
368
+ };
369
+ case "keyboardButtonUrl_layer221":
370
+ case "keyboardButtonUrl_layer228":
371
+ return { _: "keyboardInlineButton", style, text: obj.text, type: { _: "inlineButtonTypeUrl", url: obj.url } };
372
+ case "keyboardButtonCallback_layer221":
373
+ case "keyboardButtonCallback_layer228":
374
+ return {
375
+ _: "keyboardInlineButton",
376
+ style,
377
+ text: obj.text,
378
+ type: { _: "inlineButtonTypeCallback", requiresPassword: obj.requiresPassword, data: obj.data }
379
+ };
380
+ case "keyboardButtonGame_layer221":
381
+ case "keyboardButtonGame_layer228":
382
+ return { _: "keyboardInlineButton", style, text: obj.text, type: { _: "inlineButtonTypeGame" } };
383
+ case "keyboardButtonBuy_layer221":
384
+ case "keyboardButtonBuy_layer228":
385
+ return { _: "keyboardInlineButton", style, text: obj.text, type: { _: "inlineButtonTypeBuy" } };
386
+ case "keyboardButtonWebView_layer221":
387
+ case "keyboardButtonWebView_layer228":
388
+ return {
389
+ _: "keyboardInlineButton",
390
+ style,
391
+ text: obj.text,
392
+ type: { _: "inlineButtonTypeWebView", url: obj.url }
393
+ };
353
394
  case "keyboardButtonCopy_layer221":
354
- return replaceType(obj, "keyboardButtonCopy");
395
+ case "keyboardButtonCopy_layer228":
396
+ return {
397
+ _: "keyboardInlineButton",
398
+ style,
399
+ text: obj.text,
400
+ type: { _: "inlineButtonTypeCopy", copyText: obj.copyText }
401
+ };
402
+ case "keyboardButtonUserProfile_layer221":
403
+ case "keyboardButtonUserProfile_layer228":
404
+ return {
405
+ _: "keyboardInlineButton",
406
+ style,
407
+ text: obj.text,
408
+ type: { _: "inlineButtonTypeUserProfile", userId: obj.userId }
409
+ };
410
+ case "inputKeyboardButtonUserProfile_layer221":
411
+ case "inputKeyboardButtonUserProfile_layer228":
412
+ return {
413
+ _: "keyboardInlineButton",
414
+ style,
415
+ text: obj.text,
416
+ type: { _: "inputInlineButtonTypeUserProfile", userId: obj.userId }
417
+ };
418
+ case "keyboardButtonSwitchInline_layer221":
419
+ case "keyboardButtonSwitchInline_layer228":
420
+ return {
421
+ _: "keyboardInlineButton",
422
+ style,
423
+ text: obj.text,
424
+ type: {
425
+ _: "inlineButtonTypeSwitchInline",
426
+ samePeer: obj.samePeer,
427
+ query: obj.query,
428
+ peerTypes: obj.peerTypes
429
+ }
430
+ };
431
+ case "keyboardButtonUrlAuth_layer221":
432
+ case "keyboardButtonUrlAuth_layer228":
433
+ return {
434
+ _: "keyboardInlineButton",
435
+ style,
436
+ text: obj.text,
437
+ type: {
438
+ _: "inlineButtonTypeUrlAuth",
439
+ fwdText: obj.fwdText,
440
+ url: obj.url,
441
+ buttonId: obj.buttonId
442
+ }
443
+ };
444
+ case "inputKeyboardButtonUrlAuth_layer221":
445
+ case "inputKeyboardButtonUrlAuth_layer228":
446
+ return {
447
+ _: "keyboardInlineButton",
448
+ style,
449
+ text: obj.text,
450
+ type: {
451
+ _: "inputInlineButtonTypeUrlAuth",
452
+ requestWriteAccess: obj.requestWriteAccess,
453
+ fwdText: obj.fwdText,
454
+ url: obj.url,
455
+ bot: obj.bot
456
+ }
457
+ };
458
+ default:
459
+ return obj;
460
+ }
461
+ }
462
+ function toInlineButton(btn) {
463
+ const mapped = btn;
464
+ if (mapped._ !== "keyboardInlineButton") {
465
+ throw new MtTypeAssertionError("mapCompatReplyMarkup (@ rows[*].buttons[*])", "keyboardInlineButton", mapped._);
466
+ }
467
+ return mapped;
468
+ }
469
+ function mapCompatReplyMarkup(obj) {
470
+ switch (obj._) {
471
+ case "replyInlineMarkup_layer228":
472
+ return {
473
+ _: "replyInlineMarkup",
474
+ rows: obj.rows.map((row) => ({
475
+ _: "keyboardInlineButtonRow",
476
+ buttons: row.buttons.map(toInlineButton)
477
+ }))
478
+ };
355
479
  default:
356
480
  return obj;
357
481
  }
@@ -399,6 +523,7 @@ function mapCompatObject(obj) {
399
523
  case "messageActionStarGift_layer216":
400
524
  case "messageActionStarGift_layer218":
401
525
  case "messageActionStarGiftUnique_layer221":
526
+ case "messageActionStarGiftUnique_layer228":
402
527
  return mapCompatMessageAction(obj);
403
528
  case "userFull_layer199":
404
529
  return replaceType(dropFields(obj, ["premiumGifts"]), "userFull");
@@ -499,25 +624,46 @@ function mapCompatObject(obj) {
499
624
  case "poll_layer224":
500
625
  return mapCompatPoll(obj);
501
626
  case "keyboardButton_layer221":
627
+ case "keyboardButton_layer228":
502
628
  case "keyboardButtonUrl_layer221":
629
+ case "keyboardButtonUrl_layer228":
503
630
  case "keyboardButtonCallback_layer221":
631
+ case "keyboardButtonCallback_layer228":
504
632
  case "keyboardButtonRequestPhone_layer221":
633
+ case "keyboardButtonRequestPhone_layer228":
505
634
  case "keyboardButtonRequestGeoLocation_layer221":
635
+ case "keyboardButtonRequestGeoLocation_layer228":
506
636
  case "keyboardButtonSwitchInline_layer221":
637
+ case "keyboardButtonSwitchInline_layer228":
507
638
  case "keyboardButtonGame_layer221":
639
+ case "keyboardButtonGame_layer228":
508
640
  case "keyboardButtonBuy_layer221":
641
+ case "keyboardButtonBuy_layer228":
509
642
  case "keyboardButtonUrlAuth_layer221":
643
+ case "keyboardButtonUrlAuth_layer228":
510
644
  case "inputKeyboardButtonUrlAuth_layer221":
645
+ case "inputKeyboardButtonUrlAuth_layer228":
511
646
  case "keyboardButtonRequestPoll_layer221":
647
+ case "keyboardButtonRequestPoll_layer228":
512
648
  case "inputKeyboardButtonUserProfile_layer221":
649
+ case "inputKeyboardButtonUserProfile_layer228":
513
650
  case "keyboardButtonUserProfile_layer221":
651
+ case "keyboardButtonUserProfile_layer228":
514
652
  case "keyboardButtonWebView_layer221":
653
+ case "keyboardButtonWebView_layer228":
515
654
  case "keyboardButtonSimpleWebView_layer221":
655
+ case "keyboardButtonSimpleWebView_layer228":
516
656
  case "keyboardButtonRequestPeer_layer221":
657
+ case "keyboardButtonRequestPeer_layer228":
517
658
  case "inputKeyboardButtonRequestPeer_layer221":
659
+ case "inputKeyboardButtonRequestPeer_layer228":
518
660
  case "keyboardButtonCopy_layer221":
661
+ case "keyboardButtonCopy_layer228":
519
662
  return mapCompatKeyboardButton(obj);
663
+ case "replyInlineMarkup_layer228":
664
+ return mapCompatReplyMarkup(obj);
520
665
  case "pageBlockOrderedList_layer225":
666
+ case "pageBlockBlockquote_layer228":
521
667
  return mapCompatPageBlock(obj);
522
668
  case "pageListOrderedItemBlocks_layer225":
523
669
  return mapCompatPageListOrderedItem(obj);
@@ -61,12 +61,13 @@ function normalizeBotAdmin(rights) {
61
61
  case "deleteStories":
62
62
  return "delete_stories";
63
63
  case "manageDirectMessages":
64
- return "manage_chat";
65
- // idk?
64
+ return "manage_direct_messages";
66
65
  case "manageRanks":
66
+ return "manage_tags";
67
+ case "manageLinkedPeers":
67
68
  return "manage_chat";
68
69
  // idk?
69
- case "manageLinkedPeers":
70
+ case "manageWelcomeMessages":
70
71
  return "manage_chat";
71
72
  // idk?
72
73
  default:
@@ -77,7 +78,7 @@ function normalizeBotAdmin(rights) {
77
78
  }
78
79
  function parseBotAdmin(rights) {
79
80
  if (!rights) return;
80
- return rights.split("+").map((it) => {
81
+ return rights.split(/[+ ]/).map((it) => {
81
82
  switch (it) {
82
83
  case "change_info":
83
84
  return "changeInfo";
@@ -109,6 +110,10 @@ function parseBotAdmin(rights) {
109
110
  return "editStories";
110
111
  case "delete_stories":
111
112
  return "deleteStories";
113
+ case "manage_direct_messages":
114
+ return "manageDirectMessages";
115
+ case "manage_tags":
116
+ return "manageRanks";
112
117
  default:
113
118
  return null;
114
119
  }
@@ -54,12 +54,13 @@ function normalizeBotAdmin(rights) {
54
54
  case "deleteStories":
55
55
  return "delete_stories";
56
56
  case "manageDirectMessages":
57
- return "manage_chat";
58
- // idk?
57
+ return "manage_direct_messages";
59
58
  case "manageRanks":
59
+ return "manage_tags";
60
+ case "manageLinkedPeers":
60
61
  return "manage_chat";
61
62
  // idk?
62
- case "manageLinkedPeers":
63
+ case "manageWelcomeMessages":
63
64
  return "manage_chat";
64
65
  // idk?
65
66
  default:
@@ -70,7 +71,7 @@ function normalizeBotAdmin(rights) {
70
71
  }
71
72
  function parseBotAdmin(rights) {
72
73
  if (!rights) return;
73
- return rights.split("+").map((it) => {
74
+ return rights.split(/[+ ]/).map((it) => {
74
75
  switch (it) {
75
76
  case "change_info":
76
77
  return "changeInfo";
@@ -102,6 +103,10 @@ function parseBotAdmin(rights) {
102
103
  return "editStories";
103
104
  case "delete_stories":
104
105
  return "deleteStories";
106
+ case "manage_direct_messages":
107
+ return "manageDirectMessages";
108
+ case "manage_tags":
109
+ return "manageRanks";
105
110
  default:
106
111
  return null;
107
112
  }