@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.
- package/client.cjs +13 -8
- package/client.js +13 -8
- package/highlevel/client.d.cts +27 -49
- package/highlevel/client.d.ts +27 -49
- package/highlevel/methods/auth/sign-in-qr.cjs +4 -4
- package/highlevel/methods/files/download-iterable.cjs +25 -0
- package/highlevel/methods/files/download-iterable.js +25 -0
- package/highlevel/methods/files/upload-file.js +1 -1
- package/highlevel/methods/messages/forward-messages.cjs +2 -1
- package/highlevel/methods/messages/forward-messages.d.cts +6 -0
- package/highlevel/methods/messages/forward-messages.d.ts +6 -0
- package/highlevel/methods/messages/forward-messages.js +2 -1
- package/highlevel/methods/messages/get-web-page-preview.cjs +22 -0
- package/highlevel/methods/messages/get-web-page-preview.d.cts +9 -0
- package/highlevel/methods/messages/get-web-page-preview.d.ts +9 -0
- package/highlevel/methods/messages/get-web-page-preview.js +17 -0
- package/highlevel/methods/messages/send-common.d.cts +5 -0
- package/highlevel/methods/messages/send-common.d.ts +5 -0
- package/highlevel/methods/messages/send-media-group.cjs +2 -1
- package/highlevel/methods/messages/send-media-group.js +2 -1
- package/highlevel/methods/messages/send-media.cjs +2 -1
- package/highlevel/methods/messages/send-media.js +2 -1
- package/highlevel/methods/messages/send-text.cjs +2 -1
- package/highlevel/methods/messages/send-text.js +2 -1
- package/highlevel/methods/premium/pin-star-gift.cjs +24 -0
- package/highlevel/methods/premium/pin-star-gift.d.cts +13 -0
- package/highlevel/methods/premium/pin-star-gift.d.ts +13 -0
- package/highlevel/methods/premium/pin-star-gift.js +19 -0
- package/highlevel/methods/{premium/get-star-gifts.cjs → users/get-peer-settings.cjs} +10 -6
- package/highlevel/methods/users/get-peer-settings.d.cts +4 -0
- package/highlevel/methods/users/get-peer-settings.d.ts +4 -0
- package/highlevel/methods/users/get-peer-settings.js +14 -0
- package/highlevel/methods/users/resolve-peer.cjs +16 -31
- package/highlevel/methods/users/resolve-peer.js +7 -22
- package/highlevel/methods.d.cts +3 -2
- package/highlevel/methods.d.ts +3 -2
- package/highlevel/storage/repository/peers.d.cts +2 -3
- package/highlevel/storage/repository/peers.d.ts +2 -3
- package/highlevel/storage/service/peers.cjs +10 -4
- package/highlevel/storage/service/peers.d.cts +1 -0
- package/highlevel/storage/service/peers.d.ts +1 -0
- package/highlevel/storage/service/peers.js +10 -4
- package/highlevel/types/bots/keyboards/factories.cjs +4 -4
- package/highlevel/types/media/document.cjs +1 -1
- package/highlevel/types/media/document.js +1 -1
- package/highlevel/types/media/web-page.cjs +40 -3
- package/highlevel/types/media/web-page.d.cts +23 -1
- package/highlevel/types/media/web-page.d.ts +23 -1
- package/highlevel/types/media/web-page.js +41 -4
- package/highlevel/types/messages/message-media.cjs +1 -1
- package/highlevel/types/messages/message-media.d.cts +2 -2
- package/highlevel/types/messages/message-media.d.ts +2 -2
- package/highlevel/types/messages/message-media.js +2 -2
- package/highlevel/types/messages/message.cjs +4 -0
- package/highlevel/types/messages/message.d.cts +2 -0
- package/highlevel/types/messages/message.d.ts +2 -0
- package/highlevel/types/messages/message.js +4 -0
- package/highlevel/types/peers/chat-event/actions.cjs +5 -0
- package/highlevel/types/peers/chat-event/actions.js +5 -0
- package/highlevel/types/peers/chat.cjs +4 -2
- package/highlevel/types/peers/chat.d.cts +2 -2
- package/highlevel/types/peers/chat.d.ts +2 -2
- package/highlevel/types/peers/chat.js +4 -2
- package/highlevel/types/peers/full-chat.cjs +4 -0
- package/highlevel/types/peers/full-chat.d.cts +2 -0
- package/highlevel/types/peers/full-chat.d.ts +2 -0
- package/highlevel/types/peers/full-chat.js +4 -0
- package/highlevel/types/peers/index.d.cts +1 -0
- package/highlevel/types/peers/index.d.ts +1 -0
- package/highlevel/types/peers/peer-settings.cjs +101 -0
- package/highlevel/types/peers/peer-settings.d.cts +84 -0
- package/highlevel/types/peers/peer-settings.d.ts +84 -0
- package/highlevel/types/peers/peer-settings.js +96 -0
- package/highlevel/types/peers/user.cjs +4 -0
- package/highlevel/types/peers/user.d.cts +2 -0
- package/highlevel/types/peers/user.d.ts +2 -0
- package/highlevel/types/peers/user.js +4 -0
- package/highlevel/types/premium/saved-star-gift.cjs +4 -1
- package/highlevel/types/premium/saved-star-gift.d.cts +2 -3
- package/highlevel/types/premium/saved-star-gift.d.ts +2 -3
- package/highlevel/types/premium/saved-star-gift.js +5 -2
- package/highlevel/types/premium/stars-transaction.cjs +14 -0
- package/highlevel/types/premium/stars-transaction.d.cts +14 -0
- package/highlevel/types/premium/stars-transaction.d.ts +14 -0
- package/highlevel/types/premium/stars-transaction.js +14 -0
- package/highlevel/types/stories/story-viewer.cjs +1 -1
- package/highlevel/types/stories/story-viewer.js +1 -1
- package/highlevel/types/updates/history-read-update.cjs +1 -0
- package/highlevel/types/updates/history-read-update.js +1 -0
- package/highlevel/updates/manager.js +2 -2
- package/highlevel/utils/file-utils.js +1 -1
- package/highlevel/utils/inline-utils.cjs +5 -5
- package/highlevel/utils/inline-utils.js +1 -1
- package/highlevel/worker/storage.cjs +2 -0
- package/highlevel/worker/storage.d.cts +1 -0
- package/highlevel/worker/storage.d.ts +1 -0
- package/highlevel/worker/storage.js +2 -0
- package/index.cjs +3 -1
- package/index.js +5 -3
- package/methods.cjs +6 -4
- package/methods.js +6 -4
- package/network/authorization.js +2 -2
- package/network/network-manager.cjs +1 -1
- package/network/network-manager.js +1 -1
- package/network/persistent-connection.cjs +6 -4
- package/network/persistent-connection.js +6 -4
- package/network/session-connection.cjs +14 -7
- package/network/session-connection.d.cts +1 -1
- package/network/session-connection.d.ts +1 -1
- package/network/session-connection.js +15 -8
- package/package.json +4 -4
- package/storage/memory/repository/peers.cjs +2 -2
- package/storage/memory/repository/peers.d.cts +1 -1
- package/storage/memory/repository/peers.d.ts +1 -1
- package/storage/memory/repository/peers.js +2 -2
- package/storage/sqlite/repository/peers.cjs +3 -5
- package/storage/sqlite/repository/peers.d.cts +1 -2
- package/storage/sqlite/repository/peers.d.ts +1 -2
- package/storage/sqlite/repository/peers.js +3 -5
- package/utils/binary/asn1-parser.js +1 -1
- package/utils/binary/compat.cjs +150 -0
- package/utils/binary/compat.d.cts +13 -0
- package/utils/binary/compat.d.ts +13 -0
- package/utils/binary/compat.js +145 -0
- package/utils/binary/compat.test.d.cts +1 -0
- package/utils/binary/compat.test.d.ts +1 -0
- package/utils/binary/serialization.cjs +59 -0
- package/utils/binary/serialization.d.cts +10 -0
- package/utils/binary/serialization.d.ts +10 -0
- package/utils/binary/serialization.js +54 -0
- package/utils/index.d.cts +2 -0
- package/utils/index.d.ts +2 -0
- package/utils/long-utils.js +1 -1
- package/utils/peer-utils.js +1 -1
- package/utils.cjs +8 -0
- package/utils.js +8 -0
- package/highlevel/methods/premium/get-star-gifts.d.cts +0 -23
- package/highlevel/methods/premium/get-star-gifts.d.ts +0 -23
- package/highlevel/methods/premium/get-star-gifts.js +0 -10
- package/highlevel/methods/premium/iter-star-gifts.cjs +0 -29
- package/highlevel/methods/premium/iter-star-gifts.d.cts +0 -26
- package/highlevel/methods/premium/iter-star-gifts.d.ts +0 -26
- 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';
|
package/utils/long-utils.js
CHANGED
package/utils/peer-utils.js
CHANGED
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,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>;
|