@mtcute/core 0.21.1 → 0.22.2

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 (143) hide show
  1. package/client.cjs +13 -8
  2. package/client.js +13 -8
  3. package/highlevel/client.d.cts +27 -49
  4. package/highlevel/client.d.ts +27 -49
  5. package/highlevel/methods/auth/sign-in-qr.cjs +4 -4
  6. package/highlevel/methods/files/download-iterable.cjs +25 -0
  7. package/highlevel/methods/files/download-iterable.js +25 -0
  8. package/highlevel/methods/files/upload-file.js +1 -1
  9. package/highlevel/methods/messages/forward-messages.cjs +2 -1
  10. package/highlevel/methods/messages/forward-messages.d.cts +6 -0
  11. package/highlevel/methods/messages/forward-messages.d.ts +6 -0
  12. package/highlevel/methods/messages/forward-messages.js +2 -1
  13. package/highlevel/methods/messages/get-web-page-preview.cjs +22 -0
  14. package/highlevel/methods/messages/get-web-page-preview.d.cts +9 -0
  15. package/highlevel/methods/messages/get-web-page-preview.d.ts +9 -0
  16. package/highlevel/methods/messages/get-web-page-preview.js +17 -0
  17. package/highlevel/methods/messages/send-common.d.cts +5 -0
  18. package/highlevel/methods/messages/send-common.d.ts +5 -0
  19. package/highlevel/methods/messages/send-media-group.cjs +2 -1
  20. package/highlevel/methods/messages/send-media-group.js +2 -1
  21. package/highlevel/methods/messages/send-media.cjs +2 -1
  22. package/highlevel/methods/messages/send-media.js +2 -1
  23. package/highlevel/methods/messages/send-text.cjs +2 -1
  24. package/highlevel/methods/messages/send-text.js +2 -1
  25. package/highlevel/methods/premium/pin-star-gift.cjs +24 -0
  26. package/highlevel/methods/premium/pin-star-gift.d.cts +13 -0
  27. package/highlevel/methods/premium/pin-star-gift.d.ts +13 -0
  28. package/highlevel/methods/premium/pin-star-gift.js +19 -0
  29. package/highlevel/methods/{premium/get-star-gifts.cjs → users/get-peer-settings.cjs} +10 -6
  30. package/highlevel/methods/users/get-peer-settings.d.cts +4 -0
  31. package/highlevel/methods/users/get-peer-settings.d.ts +4 -0
  32. package/highlevel/methods/users/get-peer-settings.js +14 -0
  33. package/highlevel/methods/users/resolve-peer.cjs +16 -31
  34. package/highlevel/methods/users/resolve-peer.js +7 -22
  35. package/highlevel/methods.d.cts +3 -2
  36. package/highlevel/methods.d.ts +3 -2
  37. package/highlevel/storage/repository/peers.d.cts +2 -3
  38. package/highlevel/storage/repository/peers.d.ts +2 -3
  39. package/highlevel/storage/service/peers.cjs +10 -4
  40. package/highlevel/storage/service/peers.d.cts +1 -0
  41. package/highlevel/storage/service/peers.d.ts +1 -0
  42. package/highlevel/storage/service/peers.js +10 -4
  43. package/highlevel/types/bots/keyboards/factories.cjs +4 -4
  44. package/highlevel/types/media/document.cjs +1 -1
  45. package/highlevel/types/media/document.js +1 -1
  46. package/highlevel/types/media/web-page.cjs +40 -3
  47. package/highlevel/types/media/web-page.d.cts +23 -1
  48. package/highlevel/types/media/web-page.d.ts +23 -1
  49. package/highlevel/types/media/web-page.js +41 -4
  50. package/highlevel/types/messages/message-media.cjs +1 -1
  51. package/highlevel/types/messages/message-media.d.cts +2 -2
  52. package/highlevel/types/messages/message-media.d.ts +2 -2
  53. package/highlevel/types/messages/message-media.js +2 -2
  54. package/highlevel/types/messages/message.cjs +4 -0
  55. package/highlevel/types/messages/message.d.cts +2 -0
  56. package/highlevel/types/messages/message.d.ts +2 -0
  57. package/highlevel/types/messages/message.js +4 -0
  58. package/highlevel/types/peers/chat-event/actions.cjs +5 -0
  59. package/highlevel/types/peers/chat-event/actions.js +5 -0
  60. package/highlevel/types/peers/chat.cjs +4 -2
  61. package/highlevel/types/peers/chat.d.cts +2 -2
  62. package/highlevel/types/peers/chat.d.ts +2 -2
  63. package/highlevel/types/peers/chat.js +4 -2
  64. package/highlevel/types/peers/full-chat.cjs +4 -0
  65. package/highlevel/types/peers/full-chat.d.cts +2 -0
  66. package/highlevel/types/peers/full-chat.d.ts +2 -0
  67. package/highlevel/types/peers/full-chat.js +4 -0
  68. package/highlevel/types/peers/index.d.cts +1 -0
  69. package/highlevel/types/peers/index.d.ts +1 -0
  70. package/highlevel/types/peers/peer-settings.cjs +101 -0
  71. package/highlevel/types/peers/peer-settings.d.cts +84 -0
  72. package/highlevel/types/peers/peer-settings.d.ts +84 -0
  73. package/highlevel/types/peers/peer-settings.js +96 -0
  74. package/highlevel/types/peers/user.cjs +4 -0
  75. package/highlevel/types/peers/user.d.cts +2 -0
  76. package/highlevel/types/peers/user.d.ts +2 -0
  77. package/highlevel/types/peers/user.js +4 -0
  78. package/highlevel/types/premium/saved-star-gift.cjs +4 -1
  79. package/highlevel/types/premium/saved-star-gift.d.cts +2 -3
  80. package/highlevel/types/premium/saved-star-gift.d.ts +2 -3
  81. package/highlevel/types/premium/saved-star-gift.js +5 -2
  82. package/highlevel/types/premium/stars-transaction.cjs +14 -0
  83. package/highlevel/types/premium/stars-transaction.d.cts +14 -0
  84. package/highlevel/types/premium/stars-transaction.d.ts +14 -0
  85. package/highlevel/types/premium/stars-transaction.js +14 -0
  86. package/highlevel/types/stories/story-viewer.cjs +1 -1
  87. package/highlevel/types/stories/story-viewer.js +1 -1
  88. package/highlevel/types/updates/history-read-update.cjs +1 -0
  89. package/highlevel/types/updates/history-read-update.js +1 -0
  90. package/highlevel/updates/manager.js +2 -2
  91. package/highlevel/utils/file-utils.js +1 -1
  92. package/highlevel/utils/inline-utils.cjs +5 -5
  93. package/highlevel/utils/inline-utils.js +1 -1
  94. package/highlevel/worker/storage.cjs +2 -0
  95. package/highlevel/worker/storage.d.cts +1 -0
  96. package/highlevel/worker/storage.d.ts +1 -0
  97. package/highlevel/worker/storage.js +2 -0
  98. package/index.cjs +3 -1
  99. package/index.js +5 -3
  100. package/methods.cjs +6 -4
  101. package/methods.js +6 -4
  102. package/network/authorization.js +2 -2
  103. package/network/network-manager.cjs +1 -1
  104. package/network/network-manager.js +1 -1
  105. package/network/persistent-connection.cjs +6 -4
  106. package/network/persistent-connection.js +6 -4
  107. package/network/session-connection.cjs +14 -7
  108. package/network/session-connection.d.cts +1 -1
  109. package/network/session-connection.d.ts +1 -1
  110. package/network/session-connection.js +15 -8
  111. package/package.json +4 -4
  112. package/storage/memory/repository/peers.cjs +2 -2
  113. package/storage/memory/repository/peers.d.cts +1 -1
  114. package/storage/memory/repository/peers.d.ts +1 -1
  115. package/storage/memory/repository/peers.js +2 -2
  116. package/storage/sqlite/repository/peers.cjs +3 -5
  117. package/storage/sqlite/repository/peers.d.cts +1 -2
  118. package/storage/sqlite/repository/peers.d.ts +1 -2
  119. package/storage/sqlite/repository/peers.js +3 -5
  120. package/utils/binary/asn1-parser.js +1 -1
  121. package/utils/binary/compat.cjs +150 -0
  122. package/utils/binary/compat.d.cts +13 -0
  123. package/utils/binary/compat.d.ts +13 -0
  124. package/utils/binary/compat.js +145 -0
  125. package/utils/binary/compat.test.d.cts +1 -0
  126. package/utils/binary/compat.test.d.ts +1 -0
  127. package/utils/binary/serialization.cjs +59 -0
  128. package/utils/binary/serialization.d.cts +10 -0
  129. package/utils/binary/serialization.d.ts +10 -0
  130. package/utils/binary/serialization.js +54 -0
  131. package/utils/index.d.cts +2 -0
  132. package/utils/index.d.ts +2 -0
  133. package/utils/long-utils.js +1 -1
  134. package/utils/peer-utils.js +1 -1
  135. package/utils.cjs +8 -0
  136. package/utils.js +8 -0
  137. package/highlevel/methods/premium/get-star-gifts.d.cts +0 -23
  138. package/highlevel/methods/premium/get-star-gifts.d.ts +0 -23
  139. package/highlevel/methods/premium/get-star-gifts.js +0 -10
  140. package/highlevel/methods/premium/iter-star-gifts.cjs +0 -29
  141. package/highlevel/methods/premium/iter-star-gifts.d.cts +0 -26
  142. package/highlevel/methods/premium/iter-star-gifts.d.ts +0 -26
  143. package/highlevel/methods/premium/iter-star-gifts.js +0 -24
@@ -0,0 +1,150 @@
1
+ if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
2
+ globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
3
+ console.warn("[@mtcute/core] CommonJS support is deprecated and will be removed in 0.25.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
4
+ console.warn("[@mtcute/core] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
5
+ }
6
+ "use strict";
7
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
+ const io = require("@fuman/io");
9
+ const utils = require("@fuman/utils");
10
+ const tl = require("@mtcute/tl");
11
+ const tlRuntime = require("@mtcute/tl-runtime");
12
+ const reader_js = require("@mtcute/tl/binary/reader.js");
13
+ const reader_js$1 = require("@mtcute/tl/compat/reader.js");
14
+ const peersIndex = require("../../highlevel/types/peers/peers-index.cjs");
15
+ function replaceType(obj, type) {
16
+ return Object.assign(obj, { _: type });
17
+ }
18
+ function dropFields(obj, fields) {
19
+ for (let i = 0; i < fields.length; i++) {
20
+ delete obj[fields[i]];
21
+ }
22
+ return obj;
23
+ }
24
+ function mapCompatStarGift(obj) {
25
+ switch (obj._) {
26
+ case "starGiftUnique_layer197":
27
+ return {
28
+ ...obj,
29
+ _: "starGiftUnique",
30
+ ownerId: obj.ownerId ? { _: "peerUser", userId: obj.ownerId } : void 0
31
+ };
32
+ case "starGiftUnique_layer198":
33
+ return replaceType(obj, "starGiftUnique");
34
+ default:
35
+ return obj;
36
+ }
37
+ }
38
+ function mapCompatEmojiStatus(obj) {
39
+ switch (obj._) {
40
+ case "emojiStatus_layer197":
41
+ return {
42
+ ...obj,
43
+ _: "emojiStatus",
44
+ documentId: obj.documentId
45
+ };
46
+ default:
47
+ return obj;
48
+ }
49
+ }
50
+ function mapCompatMessageMedia(obj) {
51
+ switch (obj._) {
52
+ case "messageMediaDocument_layer197":
53
+ return replaceType(obj, "messageMediaDocument");
54
+ default:
55
+ return obj;
56
+ }
57
+ }
58
+ function mapCompatMessageAction(obj) {
59
+ switch (obj._) {
60
+ case "messageActionStarGiftUnique_layer197":
61
+ return {
62
+ ...obj,
63
+ _: "messageActionStarGiftUnique",
64
+ gift: mapCompatStarGift(obj.gift)
65
+ };
66
+ case "messageActionStarGift_layer197":
67
+ return {
68
+ ...obj,
69
+ _: "messageActionStarGift",
70
+ gift: mapCompatStarGift(obj.gift)
71
+ };
72
+ default:
73
+ return obj;
74
+ }
75
+ }
76
+ function mapCompatObject(obj) {
77
+ switch (obj._) {
78
+ case "starGiftUnique_layer197":
79
+ case "starGiftUnique_layer198":
80
+ return mapCompatStarGift(obj);
81
+ case "emojiStatus_layer197":
82
+ return mapCompatEmojiStatus(obj);
83
+ case "messageMediaDocument_layer197":
84
+ return mapCompatMessageMedia(obj);
85
+ case "channelFull_layer197":
86
+ return replaceType(obj, "channelFull");
87
+ case "messageActionStarGiftUnique_layer197":
88
+ case "messageActionStarGift_layer197":
89
+ return mapCompatMessageAction(obj);
90
+ case "userFull_layer199":
91
+ return replaceType(dropFields(obj, ["premiumGifts"]), "userFull");
92
+ case "user_layer199":
93
+ return {
94
+ ...obj,
95
+ _: "user",
96
+ emojiStatus: obj.emojiStatus ? mapCompatEmojiStatus(obj.emojiStatus) : void 0
97
+ };
98
+ case "channel_layer199":
99
+ return {
100
+ ...obj,
101
+ _: "channel",
102
+ emojiStatus: obj.emojiStatus ? mapCompatEmojiStatus(obj.emojiStatus) : void 0
103
+ };
104
+ case "message_layer199":
105
+ return {
106
+ ...obj,
107
+ _: "message",
108
+ media: obj.media ? mapCompatMessageMedia(obj.media) : void 0
109
+ };
110
+ default:
111
+ return obj;
112
+ }
113
+ }
114
+ function wrapReader(reader) {
115
+ return (r) => mapCompatObject(reader(r));
116
+ }
117
+ function getCombinedReaderMap() {
118
+ const ret = {
119
+ ...reader_js.__tlReaderMap
120
+ };
121
+ for (const [id, reader] of utils.objectEntries(reader_js$1.__tlReaderMapCompat)) {
122
+ ret[id] = wrapReader(reader);
123
+ }
124
+ return ret;
125
+ }
126
+ const _combinedReaderMap = /* @__PURE__ */ getCombinedReaderMap();
127
+ function deserializeObjectWithCompat(data) {
128
+ return tlRuntime.TlBinaryReader.deserializeObject(_combinedReaderMap, data);
129
+ }
130
+ function deserializePeersIndexWithCompat(data) {
131
+ const res = new peersIndex.PeersIndex();
132
+ const bytes = io.Bytes.from(data);
133
+ const userCount = io.read.int32le(bytes);
134
+ for (let i = 0; i < userCount; i++) {
135
+ const len = io.read.int32le(bytes);
136
+ const obj = deserializeObjectWithCompat(io.read.exactly(bytes, len));
137
+ utils.assert(tl.tl.isAnyUser(obj));
138
+ res.users.set(obj.id, obj);
139
+ }
140
+ const chatCount = io.read.int32le(bytes);
141
+ for (let i = 0; i < chatCount; i++) {
142
+ const len = io.read.int32le(bytes);
143
+ const obj = deserializeObjectWithCompat(io.read.exactly(bytes, len));
144
+ utils.assert(tl.tl.isAnyChat(obj));
145
+ res.chats.set(obj.id, obj);
146
+ }
147
+ return res;
148
+ }
149
+ exports.deserializeObjectWithCompat = deserializeObjectWithCompat;
150
+ exports.deserializePeersIndexWithCompat = deserializePeersIndexWithCompat;
@@ -0,0 +1,13 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { PeersIndex } from '../../highlevel/types/peers/peers-index.js';
3
+ /**
4
+ * Deserialize a TL object previously serialized with {@link serializeObject},
5
+ * with backwards compatibility for older versions of the schema.
6
+ *
7
+ * > **Note**: only some types from some layers are supported for backward compatibility,
8
+ * > for the complete list please see [TYPES_FOR_COMPAT](https://github.com/mtcute/mtcute/blob/master/packages/tl/scripts/constants.ts)
9
+ * > or [compat.tl](https://github.com/mtcute/mtcute/blob/master/packages/tl/data/compat.tl)
10
+ */
11
+ export declare function deserializeObjectWithCompat(data: Uint8Array): tl.TlObject;
12
+ /** Helper function to deserialize a {@link PeersIndex} with backwards compatibility */
13
+ export declare function deserializePeersIndexWithCompat(data: Uint8Array): PeersIndex;
@@ -0,0 +1,13 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { PeersIndex } from '../../highlevel/types/peers/peers-index.js';
3
+ /**
4
+ * Deserialize a TL object previously serialized with {@link serializeObject},
5
+ * with backwards compatibility for older versions of the schema.
6
+ *
7
+ * > **Note**: only some types from some layers are supported for backward compatibility,
8
+ * > for the complete list please see [TYPES_FOR_COMPAT](https://github.com/mtcute/mtcute/blob/master/packages/tl/scripts/constants.ts)
9
+ * > or [compat.tl](https://github.com/mtcute/mtcute/blob/master/packages/tl/data/compat.tl)
10
+ */
11
+ export declare function deserializeObjectWithCompat(data: Uint8Array): tl.TlObject;
12
+ /** Helper function to deserialize a {@link PeersIndex} with backwards compatibility */
13
+ export declare function deserializePeersIndexWithCompat(data: Uint8Array): PeersIndex;
@@ -0,0 +1,145 @@
1
+ import { Bytes, read } from "@fuman/io";
2
+ import { assert, objectEntries } from "@fuman/utils";
3
+ import { tl } from "@mtcute/tl";
4
+ import { TlBinaryReader } from "@mtcute/tl-runtime";
5
+ import { __tlReaderMap } from "@mtcute/tl/binary/reader.js";
6
+ import { __tlReaderMapCompat } from "@mtcute/tl/compat/reader.js";
7
+ import { PeersIndex } from "../../highlevel/types/peers/peers-index.js";
8
+ function replaceType(obj, type) {
9
+ return Object.assign(obj, { _: type });
10
+ }
11
+ function dropFields(obj, fields) {
12
+ for (let i = 0; i < fields.length; i++) {
13
+ delete obj[fields[i]];
14
+ }
15
+ return obj;
16
+ }
17
+ function mapCompatStarGift(obj) {
18
+ switch (obj._) {
19
+ case "starGiftUnique_layer197":
20
+ return {
21
+ ...obj,
22
+ _: "starGiftUnique",
23
+ ownerId: obj.ownerId ? { _: "peerUser", userId: obj.ownerId } : void 0
24
+ };
25
+ case "starGiftUnique_layer198":
26
+ return replaceType(obj, "starGiftUnique");
27
+ default:
28
+ return obj;
29
+ }
30
+ }
31
+ function mapCompatEmojiStatus(obj) {
32
+ switch (obj._) {
33
+ case "emojiStatus_layer197":
34
+ return {
35
+ ...obj,
36
+ _: "emojiStatus",
37
+ documentId: obj.documentId
38
+ };
39
+ default:
40
+ return obj;
41
+ }
42
+ }
43
+ function mapCompatMessageMedia(obj) {
44
+ switch (obj._) {
45
+ case "messageMediaDocument_layer197":
46
+ return replaceType(obj, "messageMediaDocument");
47
+ default:
48
+ return obj;
49
+ }
50
+ }
51
+ function mapCompatMessageAction(obj) {
52
+ switch (obj._) {
53
+ case "messageActionStarGiftUnique_layer197":
54
+ return {
55
+ ...obj,
56
+ _: "messageActionStarGiftUnique",
57
+ gift: mapCompatStarGift(obj.gift)
58
+ };
59
+ case "messageActionStarGift_layer197":
60
+ return {
61
+ ...obj,
62
+ _: "messageActionStarGift",
63
+ gift: mapCompatStarGift(obj.gift)
64
+ };
65
+ default:
66
+ return obj;
67
+ }
68
+ }
69
+ function mapCompatObject(obj) {
70
+ switch (obj._) {
71
+ case "starGiftUnique_layer197":
72
+ case "starGiftUnique_layer198":
73
+ return mapCompatStarGift(obj);
74
+ case "emojiStatus_layer197":
75
+ return mapCompatEmojiStatus(obj);
76
+ case "messageMediaDocument_layer197":
77
+ return mapCompatMessageMedia(obj);
78
+ case "channelFull_layer197":
79
+ return replaceType(obj, "channelFull");
80
+ case "messageActionStarGiftUnique_layer197":
81
+ case "messageActionStarGift_layer197":
82
+ return mapCompatMessageAction(obj);
83
+ case "userFull_layer199":
84
+ return replaceType(dropFields(obj, ["premiumGifts"]), "userFull");
85
+ case "user_layer199":
86
+ return {
87
+ ...obj,
88
+ _: "user",
89
+ emojiStatus: obj.emojiStatus ? mapCompatEmojiStatus(obj.emojiStatus) : void 0
90
+ };
91
+ case "channel_layer199":
92
+ return {
93
+ ...obj,
94
+ _: "channel",
95
+ emojiStatus: obj.emojiStatus ? mapCompatEmojiStatus(obj.emojiStatus) : void 0
96
+ };
97
+ case "message_layer199":
98
+ return {
99
+ ...obj,
100
+ _: "message",
101
+ media: obj.media ? mapCompatMessageMedia(obj.media) : void 0
102
+ };
103
+ default:
104
+ return obj;
105
+ }
106
+ }
107
+ function wrapReader(reader) {
108
+ return (r) => mapCompatObject(reader(r));
109
+ }
110
+ function getCombinedReaderMap() {
111
+ const ret = {
112
+ ...__tlReaderMap
113
+ };
114
+ for (const [id, reader] of objectEntries(__tlReaderMapCompat)) {
115
+ ret[id] = wrapReader(reader);
116
+ }
117
+ return ret;
118
+ }
119
+ const _combinedReaderMap = /* @__PURE__ */ getCombinedReaderMap();
120
+ function deserializeObjectWithCompat(data) {
121
+ return TlBinaryReader.deserializeObject(_combinedReaderMap, data);
122
+ }
123
+ function deserializePeersIndexWithCompat(data) {
124
+ const res = new PeersIndex();
125
+ const bytes = Bytes.from(data);
126
+ const userCount = read.int32le(bytes);
127
+ for (let i = 0; i < userCount; i++) {
128
+ const len = read.int32le(bytes);
129
+ const obj = deserializeObjectWithCompat(read.exactly(bytes, len));
130
+ assert(tl.isAnyUser(obj));
131
+ res.users.set(obj.id, obj);
132
+ }
133
+ const chatCount = read.int32le(bytes);
134
+ for (let i = 0; i < chatCount; i++) {
135
+ const len = read.int32le(bytes);
136
+ const obj = deserializeObjectWithCompat(read.exactly(bytes, len));
137
+ assert(tl.isAnyChat(obj));
138
+ res.chats.set(obj.id, obj);
139
+ }
140
+ return res;
141
+ }
142
+ export {
143
+ deserializeObjectWithCompat,
144
+ deserializePeersIndexWithCompat
145
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,59 @@
1
+ if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
2
+ globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
3
+ console.warn("[@mtcute/core] CommonJS support is deprecated and will be removed in 0.25.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
4
+ console.warn("[@mtcute/core] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
5
+ }
6
+ "use strict";
7
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
+ const io = require("@fuman/io");
9
+ const utils = require("@fuman/utils");
10
+ const tl = require("@mtcute/tl");
11
+ const tlRuntime = require("@mtcute/tl-runtime");
12
+ const reader_js = require("@mtcute/tl/binary/reader.js");
13
+ const writer_js = require("@mtcute/tl/binary/writer.js");
14
+ const peersIndex = require("../../highlevel/types/peers/peers-index.cjs");
15
+ function serializeObject(obj) {
16
+ return tlRuntime.TlBinaryWriter.serializeObject(writer_js.__tlWriterMap, obj);
17
+ }
18
+ function deserializeObject(data) {
19
+ return tlRuntime.TlBinaryReader.deserializeObject(reader_js.__tlReaderMap, data);
20
+ }
21
+ function serializePeersIndex({ users, chats }) {
22
+ const bytes = io.Bytes.alloc();
23
+ io.write.int32le(bytes, users.size);
24
+ for (const user of users.values()) {
25
+ const data = serializeObject(user);
26
+ io.write.int32le(bytes, data.length);
27
+ io.write.bytes(bytes, data);
28
+ }
29
+ io.write.int32le(bytes, chats.size);
30
+ for (const chat of chats.values()) {
31
+ const data = serializeObject(chat);
32
+ io.write.int32le(bytes, data.length);
33
+ io.write.bytes(bytes, data);
34
+ }
35
+ return bytes.result();
36
+ }
37
+ function deserializePeersIndex(data) {
38
+ const res = new peersIndex.PeersIndex();
39
+ const bytes = io.Bytes.from(data);
40
+ const userCount = io.read.int32le(bytes);
41
+ for (let i = 0; i < userCount; i++) {
42
+ const len = io.read.int32le(bytes);
43
+ const obj = deserializeObject(io.read.exactly(bytes, len));
44
+ utils.assert(tl.tl.isAnyUser(obj));
45
+ res.users.set(obj.id, obj);
46
+ }
47
+ const chatCount = io.read.int32le(bytes);
48
+ for (let i = 0; i < chatCount; i++) {
49
+ const len = io.read.int32le(bytes);
50
+ const obj = deserializeObject(io.read.exactly(bytes, len));
51
+ utils.assert(tl.tl.isAnyChat(obj));
52
+ res.chats.set(obj.id, obj);
53
+ }
54
+ return res;
55
+ }
56
+ exports.deserializeObject = deserializeObject;
57
+ exports.deserializePeersIndex = deserializePeersIndex;
58
+ exports.serializeObject = serializeObject;
59
+ exports.serializePeersIndex = serializePeersIndex;
@@ -0,0 +1,10 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { PeersIndex } from '../../highlevel/index.js';
3
+ /** Serialize a raw TL object to binary */
4
+ export declare function serializeObject(obj: tl.TlObject): Uint8Array;
5
+ /** Deserialize a binary TL object */
6
+ export declare function deserializeObject(data: Uint8Array): tl.TlObject;
7
+ /** Helper function to serialize a {@link PeersIndex} */
8
+ export declare function serializePeersIndex({ users, chats }: PeersIndex): Uint8Array;
9
+ /** Helper function to deserialize a {@link PeersIndex} */
10
+ export declare function deserializePeersIndex(data: Uint8Array): PeersIndex;
@@ -0,0 +1,10 @@
1
+ import { tl } from '@mtcute/tl';
2
+ import { PeersIndex } from '../../highlevel/index.js';
3
+ /** Serialize a raw TL object to binary */
4
+ export declare function serializeObject(obj: tl.TlObject): Uint8Array;
5
+ /** Deserialize a binary TL object */
6
+ export declare function deserializeObject(data: Uint8Array): tl.TlObject;
7
+ /** Helper function to serialize a {@link PeersIndex} */
8
+ export declare function serializePeersIndex({ users, chats }: PeersIndex): Uint8Array;
9
+ /** Helper function to deserialize a {@link PeersIndex} */
10
+ export declare function deserializePeersIndex(data: Uint8Array): PeersIndex;
@@ -0,0 +1,54 @@
1
+ import { Bytes, write, read } from "@fuman/io";
2
+ import { assert } from "@fuman/utils";
3
+ import { tl } from "@mtcute/tl";
4
+ import { TlBinaryWriter, TlBinaryReader } from "@mtcute/tl-runtime";
5
+ import { __tlReaderMap } from "@mtcute/tl/binary/reader.js";
6
+ import { __tlWriterMap } from "@mtcute/tl/binary/writer.js";
7
+ import { PeersIndex } from "../../highlevel/types/peers/peers-index.js";
8
+ function serializeObject(obj) {
9
+ return TlBinaryWriter.serializeObject(__tlWriterMap, obj);
10
+ }
11
+ function deserializeObject(data) {
12
+ return TlBinaryReader.deserializeObject(__tlReaderMap, data);
13
+ }
14
+ function serializePeersIndex({ users, chats }) {
15
+ const bytes = Bytes.alloc();
16
+ write.int32le(bytes, users.size);
17
+ for (const user of users.values()) {
18
+ const data = serializeObject(user);
19
+ write.int32le(bytes, data.length);
20
+ write.bytes(bytes, data);
21
+ }
22
+ write.int32le(bytes, chats.size);
23
+ for (const chat of chats.values()) {
24
+ const data = serializeObject(chat);
25
+ write.int32le(bytes, data.length);
26
+ write.bytes(bytes, data);
27
+ }
28
+ return bytes.result();
29
+ }
30
+ function deserializePeersIndex(data) {
31
+ const res = new PeersIndex();
32
+ const bytes = Bytes.from(data);
33
+ const userCount = read.int32le(bytes);
34
+ for (let i = 0; i < userCount; i++) {
35
+ const len = read.int32le(bytes);
36
+ const obj = deserializeObject(read.exactly(bytes, len));
37
+ assert(tl.isAnyUser(obj));
38
+ res.users.set(obj.id, obj);
39
+ }
40
+ const chatCount = read.int32le(bytes);
41
+ for (let i = 0; i < chatCount; i++) {
42
+ const len = read.int32le(bytes);
43
+ const obj = deserializeObject(read.exactly(bytes, len));
44
+ assert(tl.isAnyChat(obj));
45
+ res.chats.set(obj.id, obj);
46
+ }
47
+ return res;
48
+ }
49
+ export {
50
+ deserializeObject,
51
+ deserializePeersIndex,
52
+ serializeObject,
53
+ serializePeersIndex
54
+ };
package/utils/index.d.cts CHANGED
@@ -4,6 +4,8 @@ export * from '../highlevel/utils/index.js';
4
4
  export * from '../storage/service/base.js';
5
5
  export * from '../storage/service/default-dcs.js';
6
6
  export * from './bigint-utils.js';
7
+ export * from './binary/compat.js';
8
+ export * from './binary/serialization.js';
7
9
  export * from './crypto/index.js';
8
10
  export * from './dcs.js';
9
11
  export * from './early-timer.js';
package/utils/index.d.ts CHANGED
@@ -4,6 +4,8 @@ export * from '../highlevel/utils/index.js';
4
4
  export * from '../storage/service/base.js';
5
5
  export * from '../storage/service/default-dcs.js';
6
6
  export * from './bigint-utils.js';
7
+ export * from './binary/compat.js';
8
+ export * from './binary/serialization.js';
7
9
  export * from './crypto/index.js';
8
10
  export * from './dcs.js';
9
11
  export * from './early-timer.js';
@@ -1,4 +1,4 @@
1
- import { CustomMap, CustomSet, typed } from "@fuman/utils";
1
+ import { typed, CustomMap, CustomSet } from "@fuman/utils";
2
2
  import Long from "long";
3
3
  import { getRandomInt } from "./misc-utils.js";
4
4
  function randomLong(unsigned = false) {
@@ -1,4 +1,4 @@
1
- import { MtUnsupportedError, MtArgumentError } from "../types/errors.js";
1
+ import { MtArgumentError, MtUnsupportedError } from "../types/errors.js";
2
2
  import { assertNever } from "../types/utils.js";
3
3
  const ZERO_CHANNEL_ID = -1e12;
4
4
  const ZERO_SECRET_CHAT_ID = -2e12;
package/utils.cjs CHANGED
@@ -10,6 +10,8 @@ const updates = require("./highlevel/storage/service/updates.cjs");
10
10
  const base = require("./storage/service/base.cjs");
11
11
  const defaultDcs = require("./storage/service/default-dcs.cjs");
12
12
  const bigintUtils = require("./utils/bigint-utils.cjs");
13
+ const compat = require("./utils/binary/compat.cjs");
14
+ const serialization = require("./utils/binary/serialization.cjs");
13
15
  const dcs = require("./utils/dcs.cjs");
14
16
  const earlyTimer = require("./utils/early-timer.cjs");
15
17
  const functionUtils = require("./utils/function-utils.cjs");
@@ -47,6 +49,12 @@ exports.DefaultDcsService = defaultDcs.DefaultDcsService;
47
49
  exports.randomBigInt = bigintUtils.randomBigInt;
48
50
  exports.randomBigIntBits = bigintUtils.randomBigIntBits;
49
51
  exports.randomBigIntInRange = bigintUtils.randomBigIntInRange;
52
+ exports.deserializeObjectWithCompat = compat.deserializeObjectWithCompat;
53
+ exports.deserializePeersIndexWithCompat = compat.deserializePeersIndexWithCompat;
54
+ exports.deserializeObject = serialization.deserializeObject;
55
+ exports.deserializePeersIndex = serialization.deserializePeersIndex;
56
+ exports.serializeObject = serialization.serializeObject;
57
+ exports.serializePeersIndex = serialization.serializePeersIndex;
50
58
  exports.defaultProductionDc = dcs.defaultProductionDc;
51
59
  exports.defaultProductionIpv6Dc = dcs.defaultProductionIpv6Dc;
52
60
  exports.defaultTestDc = dcs.defaultTestDc;
package/utils.js CHANGED
@@ -3,6 +3,8 @@ import { UpdatesStateService } from "./highlevel/storage/service/updates.js";
3
3
  import { BaseService } from "./storage/service/base.js";
4
4
  import { DefaultDcsService } from "./storage/service/default-dcs.js";
5
5
  import { randomBigInt, randomBigIntBits, randomBigIntInRange } from "./utils/bigint-utils.js";
6
+ import { deserializeObjectWithCompat, deserializePeersIndexWithCompat } from "./utils/binary/compat.js";
7
+ import { deserializeObject, deserializePeersIndex, serializeObject, serializePeersIndex } from "./utils/binary/serialization.js";
6
8
  import { defaultProductionDc, defaultProductionIpv6Dc, defaultTestDc, defaultTestIpv6Dc, parseBasicDcOption, serializeBasicDcOption } from "./utils/dcs.js";
7
9
  import { EarlyTimer } from "./utils/early-timer.js";
8
10
  import { asyncResettable, throttle } from "./utils/function-utils.js";
@@ -64,6 +66,10 @@ export {
64
66
  defaultProductionIpv6Dc,
65
67
  defaultTestDc,
66
68
  defaultTestIpv6Dc,
69
+ deserializeObject,
70
+ deserializeObjectWithCompat,
71
+ deserializePeersIndex,
72
+ deserializePeersIndexWithCompat,
67
73
  determinePartSize,
68
74
  encodeInlineMessageId,
69
75
  encodeWaveform,
@@ -119,6 +125,8 @@ export {
119
125
  removeFromLongArray,
120
126
  resolveMaybeDynamic,
121
127
  serializeBasicDcOption,
128
+ serializeObject,
129
+ serializePeersIndex,
122
130
  sleepWithAbort,
123
131
  streamToBuffer,
124
132
  strippedPhotoToJpg,
@@ -1,23 +0,0 @@
1
- import { ITelegramClient } from '../../client.types.js';
2
- import { SavedStarGift } from '../../types/index.js';
3
- import { InputPeerLike } from '../../types/peers/peer.js';
4
- import { ArrayPaginated } from '../../types/utils.js';
5
- /**
6
- * Get a list of gifts sent to a user.
7
- *
8
- * @param userId User whose gifts to fetch
9
- * @deprecated Use {@link getSavedStarGifts} instead
10
- * @returns Gifts sent to the user
11
- */
12
- export declare function getStarGifts(client: ITelegramClient, userId: InputPeerLike, params?: {
13
- /**
14
- * Offset for pagination.
15
- */
16
- offset?: string;
17
- /**
18
- * Maximum number of gifts to fetch.
19
- *
20
- * @default 100
21
- */
22
- limit?: number;
23
- }): Promise<ArrayPaginated<SavedStarGift, string>>;
@@ -1,23 +0,0 @@
1
- import { ITelegramClient } from '../../client.types.js';
2
- import { SavedStarGift } from '../../types/index.js';
3
- import { InputPeerLike } from '../../types/peers/peer.js';
4
- import { ArrayPaginated } from '../../types/utils.js';
5
- /**
6
- * Get a list of gifts sent to a user.
7
- *
8
- * @param userId User whose gifts to fetch
9
- * @deprecated Use {@link getSavedStarGifts} instead
10
- * @returns Gifts sent to the user
11
- */
12
- export declare function getStarGifts(client: ITelegramClient, userId: InputPeerLike, params?: {
13
- /**
14
- * Offset for pagination.
15
- */
16
- offset?: string;
17
- /**
18
- * Maximum number of gifts to fetch.
19
- *
20
- * @default 100
21
- */
22
- limit?: number;
23
- }): Promise<ArrayPaginated<SavedStarGift, string>>;
@@ -1,10 +0,0 @@
1
- import { getSavedStarGifts } from "./get-saved-star-gifts.js";
2
- async function getStarGifts(client, userId, params) {
3
- return getSavedStarGifts(client, {
4
- owner: userId,
5
- ...params
6
- });
7
- }
8
- export {
9
- getStarGifts
10
- };
@@ -1,29 +0,0 @@
1
- if (typeof globalThis !== "undefined" && !globalThis._MTCUTE_CJS_DEPRECATION_WARNED) {
2
- globalThis._MTCUTE_CJS_DEPRECATION_WARNED = true;
3
- console.warn("[@mtcute/core] CommonJS support is deprecated and will be removed in 0.25.0. Please consider switching to ESM, it's " + (/* @__PURE__ */ new Date()).getFullYear() + " already.");
4
- console.warn("[@mtcute/core] Learn more about switching to ESM: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c");
5
- }
6
- "use strict";
7
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8
- const resolvePeer = require("../users/resolve-peer.cjs");
9
- const getStarGifts = require("./get-star-gifts.cjs");
10
- async function* iterStarGifts(client, peerId, params) {
11
- if (!params) params = {};
12
- const { limit = Infinity, chunkSize = 100 } = params;
13
- let { offset } = params;
14
- let current = 0;
15
- const peer = await resolvePeer.resolvePeer(client, peerId);
16
- for (; ; ) {
17
- const res = await getStarGifts.getStarGifts(client, peer, {
18
- offset,
19
- limit: Math.min(limit - current, chunkSize)
20
- });
21
- for (const gift of res) {
22
- yield gift;
23
- if (++current >= limit) return;
24
- }
25
- if (!res.next) return;
26
- offset = res.next;
27
- }
28
- }
29
- exports.iterStarGifts = iterStarGifts;
@@ -1,26 +0,0 @@
1
- import { ITelegramClient } from '../../client.types.js';
2
- import { InputPeerLike, UserStarGift } from '../../types/index.js';
3
- import { getStarGifts } from './get-star-gifts.js';
4
- /**
5
- * Iterate over gifts sent to a given user.
6
- *
7
- * Wrapper over {@link getStarGifts}
8
- *
9
- * @param peerId Peer ID
10
- * @param params Additional parameters
11
- */
12
- export declare function iterStarGifts(client: ITelegramClient, peerId: InputPeerLike, params?: Parameters<typeof getStarGifts>[2] & {
13
- /**
14
- * Total number of gifts to fetch
15
- *
16
- * @default Infinity, i.e. fetch all gifts
17
- */
18
- limit?: number;
19
- /**
20
- * Number of gifts to fetch per request
21
- * Usually you don't need to change this
22
- *
23
- * @default 100
24
- */
25
- chunkSize?: number;
26
- }): AsyncIterableIterator<UserStarGift>;