@mtkruto/node 0.1.142 → 0.1.144
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/esm/3_types.d.ts +1 -0
- package/esm/3_types.js +1 -0
- package/esm/4_constants.d.ts +1 -1
- package/esm/4_constants.js +1 -1
- package/esm/client/0_message.js +9 -9
- package/esm/client/0_types.d.ts +1 -0
- package/esm/client/1_bot_info_manager.d.ts +30 -0
- package/esm/client/1_bot_info_manager.js +66 -0
- package/esm/client/1_file_manager.js +1 -1
- package/esm/client/1_network_statistics_manager.d.ts +19 -0
- package/esm/client/1_network_statistics_manager.js +48 -0
- package/esm/client/2_client_plain.js +4 -4
- package/esm/client/2_message_manager.d.ts +11 -2
- package/esm/client/2_message_manager.js +170 -1
- package/esm/client/3_callback_query_manager.js +1 -1
- package/esm/client/3_inline_query_manager.js +2 -1
- package/esm/client/4_client.d.ts +21 -12
- package/esm/client/4_client.js +134 -311
- package/esm/storage/0_storage.js +1 -1
- package/esm/tl/0_tl_raw_reader.js +3 -2
- package/esm/tl/0_tl_raw_writer.js +3 -3
- package/esm/transport/0_obfuscation.js +2 -2
- package/esm/transport/1_transport_abridged.js +1 -1
- package/esm/transport/1_transport_intermediate.js +1 -1
- package/esm/types/0__file_id.js +2 -2
- package/esm/types/0_chat_member_rights.d.ts +3 -0
- package/esm/types/0_chat_member_rights.js +45 -1
- package/esm/types/2_chat_member.d.ts +46 -0
- package/esm/types/2_chat_member.js +89 -0
- package/package.json +1 -1
- package/script/3_types.d.ts +1 -0
- package/script/3_types.js +1 -0
- package/script/4_constants.d.ts +1 -1
- package/script/4_constants.js +1 -1
- package/script/client/0_message.js +9 -9
- package/script/client/0_types.d.ts +1 -0
- package/script/client/1_bot_info_manager.d.ts +30 -0
- package/script/client/1_bot_info_manager.js +70 -0
- package/script/client/1_file_manager.js +1 -1
- package/script/client/1_network_statistics_manager.d.ts +19 -0
- package/script/client/1_network_statistics_manager.js +52 -0
- package/script/client/2_client_plain.js +4 -4
- package/script/client/2_message_manager.d.ts +11 -2
- package/script/client/2_message_manager.js +169 -0
- package/script/client/3_callback_query_manager.js +1 -1
- package/script/client/3_inline_query_manager.js +2 -1
- package/script/client/4_client.d.ts +21 -12
- package/script/client/4_client.js +131 -308
- package/script/storage/0_storage.js +1 -1
- package/script/tl/0_tl_raw_reader.js +3 -2
- package/script/tl/0_tl_raw_writer.js +3 -3
- package/script/transport/0_obfuscation.js +2 -2
- package/script/transport/1_transport_abridged.js +1 -1
- package/script/transport/1_transport_intermediate.js +1 -1
- package/script/types/0__file_id.js +2 -2
- package/script/types/0_chat_member_rights.d.ts +3 -0
- package/script/types/0_chat_member_rights.js +48 -0
- package/script/types/2_chat_member.d.ts +46 -0
- package/script/types/2_chat_member.js +93 -0
|
@@ -22,7 +22,7 @@ class TLRawReader {
|
|
|
22
22
|
throw new TLError("No data remaining");
|
|
23
23
|
}
|
|
24
24
|
const buffer = this._buffer.slice(0, count);
|
|
25
|
-
this._buffer = this._buffer.
|
|
25
|
+
this._buffer = this._buffer.subarray(count);
|
|
26
26
|
return buffer;
|
|
27
27
|
}
|
|
28
28
|
readInt24(signed = true) {
|
|
@@ -38,7 +38,8 @@ class TLRawReader {
|
|
|
38
38
|
return (0, _1_utilities_js_1.bigIntFromBuffer)(buffer, true, signed);
|
|
39
39
|
}
|
|
40
40
|
readDouble() {
|
|
41
|
-
|
|
41
|
+
const buffer = this.read(8);
|
|
42
|
+
return new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength).getFloat64(0, true);
|
|
42
43
|
}
|
|
43
44
|
readInt128(signed = true) {
|
|
44
45
|
const buffer = this.read(128 / 8);
|
|
@@ -31,9 +31,9 @@ class TLRawWriter {
|
|
|
31
31
|
return this;
|
|
32
32
|
}
|
|
33
33
|
writeDouble(double) {
|
|
34
|
-
const
|
|
35
|
-
new DataView(
|
|
36
|
-
this.write(
|
|
34
|
+
const buffer = new Uint8Array(8);
|
|
35
|
+
new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength).setFloat64(0, double, true);
|
|
36
|
+
this.write(buffer);
|
|
37
37
|
return this;
|
|
38
38
|
}
|
|
39
39
|
writeInt128(int, signed = true) {
|
|
@@ -33,7 +33,7 @@ async function getObfuscationParameters(protocol, connection) {
|
|
|
33
33
|
if (init[0] == 0xEF) {
|
|
34
34
|
continue;
|
|
35
35
|
}
|
|
36
|
-
const dataView = new DataView(init.buffer);
|
|
36
|
+
const dataView = new DataView(init.buffer, init.byteOffset, init.byteLength);
|
|
37
37
|
const firstInt = dataView.getInt32(0);
|
|
38
38
|
if ([0x44414548, 0x54534F50, 0x20544547, 0x4954504F, 0x02010316, 0xDDDDDDDD, 0xEEEEEEEE].includes(firstInt)) {
|
|
39
39
|
continue;
|
|
@@ -53,7 +53,7 @@ async function getObfuscationParameters(protocol, connection) {
|
|
|
53
53
|
const decryptKey = initRev.slice(8, 8 + 32);
|
|
54
54
|
const decryptIv = initRev.slice(40, 40 + 16);
|
|
55
55
|
const decryptionCTR = new _1_utilities_js_1.CTR(decryptKey, decryptIv);
|
|
56
|
-
await connection.write((0, _1_utilities_js_1.concat)(init.
|
|
56
|
+
await connection.write((0, _1_utilities_js_1.concat)(init.subarray(0, 56), encryptedInit.subarray(56, 56 + 8)));
|
|
57
57
|
return { encryptionCTR, decryptionCTR };
|
|
58
58
|
}
|
|
59
59
|
exports.getObfuscationParameters = getObfuscationParameters;
|
|
@@ -52,7 +52,7 @@ class TransportAbridged extends _0_transport_js_1.Transport {
|
|
|
52
52
|
const buffer = new Uint8Array(3);
|
|
53
53
|
await __classPrivateFieldGet(this, _TransportAbridged_connection, "f").read(buffer);
|
|
54
54
|
this.decrypt(buffer);
|
|
55
|
-
const dataView = new DataView(buffer.buffer);
|
|
55
|
+
const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
56
56
|
length = dataView.getUint16(0, true);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -45,7 +45,7 @@ class TransportIntermediate extends _0_transport_js_1.Transport {
|
|
|
45
45
|
const buffer = new Uint8Array(4);
|
|
46
46
|
await __classPrivateFieldGet(this, _TransportIntermediate_connection, "f").read(buffer);
|
|
47
47
|
this.decrypt(buffer);
|
|
48
|
-
const dataView = new DataView(buffer.buffer);
|
|
48
|
+
const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
49
49
|
length = dataView.getUint32(0, true);
|
|
50
50
|
}
|
|
51
51
|
const buffer = new Uint8Array(length);
|
|
@@ -89,11 +89,11 @@ class FileID {
|
|
|
89
89
|
let buffer;
|
|
90
90
|
if (major < 4) {
|
|
91
91
|
minor = 0;
|
|
92
|
-
buffer = decoded.
|
|
92
|
+
buffer = decoded.subarray(0, -1);
|
|
93
93
|
}
|
|
94
94
|
else {
|
|
95
95
|
minor = decoded[decoded.length - 2];
|
|
96
|
-
buffer = decoded.
|
|
96
|
+
buffer = decoded.subarray(0, -2);
|
|
97
97
|
}
|
|
98
98
|
const reader = new _2_tl_js_1.TLReader(buffer);
|
|
99
99
|
let fileType = reader.readInt32();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { types } from "../2_tl.js";
|
|
1
2
|
/** The rights of a chat member. */
|
|
2
3
|
export interface ChatMemberRights {
|
|
3
4
|
/** Whether messages are allowed to be sent. */
|
|
@@ -35,3 +36,5 @@ export interface ChatMemberRights {
|
|
|
35
36
|
/** Whether it is allowed to manage topics. */
|
|
36
37
|
canManageTopics?: boolean;
|
|
37
38
|
}
|
|
39
|
+
export declare function constructChatMemberRights(rights: types.ChatBannedRights): ChatMemberRights;
|
|
40
|
+
export declare function chatMemberRightsToTlObject(rights?: ChatMemberRights, untilDate?: Date): import("../tl/2_types.js").ChatBannedRights_;
|
|
@@ -1,2 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chatMemberRightsToTlObject = exports.constructChatMemberRights = void 0;
|
|
4
|
+
const _1_utilities_js_1 = require("../1_utilities.js");
|
|
5
|
+
const _2_tl_js_1 = require("../2_tl.js");
|
|
6
|
+
function constructChatMemberRights(rights) {
|
|
7
|
+
return {
|
|
8
|
+
canSendMessages: rights.send_messages ? true : false,
|
|
9
|
+
canSendAudio: rights.send_audios ? true : false,
|
|
10
|
+
canSendDocuments: rights.send_docs ? true : false,
|
|
11
|
+
canSendPhotos: rights.send_photos ? true : false,
|
|
12
|
+
canSendVideos: rights.send_messages ? true : false,
|
|
13
|
+
canSendVideoNotes: rights.send_roundvideos ? true : false,
|
|
14
|
+
canSendVoice: rights.send_voices ? true : false,
|
|
15
|
+
canSendPolls: rights.send_polls ? true : false,
|
|
16
|
+
canSendStickers: rights.send_stickers ? true : false,
|
|
17
|
+
canSendAnimations: rights.send_gifs ? true : undefined,
|
|
18
|
+
canSendGames: rights.send_games ? true : undefined,
|
|
19
|
+
canSendInlineBotResults: rights.send_inline ? true : undefined,
|
|
20
|
+
canAddWebPagePreviews: rights.embed_links ? true : undefined,
|
|
21
|
+
canChangeInfo: rights.change_info ? true : undefined,
|
|
22
|
+
canInviteUsers: rights.invite_users ? true : undefined,
|
|
23
|
+
canPinMessages: rights.pin_messages ? true : undefined,
|
|
24
|
+
canManageTopics: rights.manage_topics ? true : undefined,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.constructChatMemberRights = constructChatMemberRights;
|
|
28
|
+
function chatMemberRightsToTlObject(rights, untilDate) {
|
|
29
|
+
return new _2_tl_js_1.types.ChatBannedRights({
|
|
30
|
+
until_date: untilDate ? (0, _1_utilities_js_1.toUnixTimestamp)(untilDate) : 0,
|
|
31
|
+
send_messages: rights?.canSendMessages ? true : undefined,
|
|
32
|
+
send_audios: rights?.canSendAudio ? true : undefined,
|
|
33
|
+
send_docs: rights?.canSendDocuments ? true : undefined,
|
|
34
|
+
send_photos: rights?.canSendPhotos ? true : undefined,
|
|
35
|
+
send_videos: rights?.canSendVideos ? true : undefined,
|
|
36
|
+
send_roundvideos: rights?.canSendVideoNotes ? true : undefined,
|
|
37
|
+
send_voices: rights?.canSendVoice ? true : undefined,
|
|
38
|
+
send_polls: rights?.canSendPolls ? true : undefined,
|
|
39
|
+
send_stickers: rights?.canSendStickers ? true : undefined,
|
|
40
|
+
send_gifs: rights?.canSendAnimations ? true : undefined,
|
|
41
|
+
send_games: rights?.canSendGames ? true : undefined,
|
|
42
|
+
send_inline: rights?.canSendInlineBotResults ? true : undefined,
|
|
43
|
+
embed_links: rights?.canAddWebPagePreviews ? true : undefined,
|
|
44
|
+
change_info: rights?.canChangeInfo ? true : undefined,
|
|
45
|
+
invite_users: rights?.canInviteUsers ? true : undefined,
|
|
46
|
+
pin_messages: rights?.canPinMessages ? true : undefined,
|
|
47
|
+
manage_topics: rights?.canManageTopics ? true : undefined,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
exports.chatMemberRightsToTlObject = chatMemberRightsToTlObject;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { enums } from "../2_tl.js";
|
|
2
|
+
import { ChatAdministratorRights } from "./0_chat_administrator_rights.js";
|
|
3
|
+
import { ChatMemberRights } from "./0_chat_member_rights.js";
|
|
4
|
+
import { EntityGetter } from "./1__getters.js";
|
|
5
|
+
import { User } from "./1_user.js";
|
|
6
|
+
/** @unlisted */
|
|
7
|
+
export type ChatMemberStatus = "creator" | "administrator" | "member" | "restricted" | "left" | "banned";
|
|
8
|
+
/** @unlisted */
|
|
9
|
+
export interface ChatMemberBase {
|
|
10
|
+
status: ChatMemberStatus;
|
|
11
|
+
user: User;
|
|
12
|
+
}
|
|
13
|
+
/** @unlisted */
|
|
14
|
+
export interface ChatMemberCreator extends ChatMemberBase {
|
|
15
|
+
status: "creator";
|
|
16
|
+
isAnonymous: boolean;
|
|
17
|
+
title?: string;
|
|
18
|
+
}
|
|
19
|
+
/** @unlisted */
|
|
20
|
+
export interface ChatMemberAdministrator extends ChatMemberBase {
|
|
21
|
+
status: "administrator";
|
|
22
|
+
rights: ChatAdministratorRights;
|
|
23
|
+
title?: string;
|
|
24
|
+
}
|
|
25
|
+
/** @unlisted */
|
|
26
|
+
export interface ChatMemberMember extends ChatMemberBase {
|
|
27
|
+
status: "member";
|
|
28
|
+
}
|
|
29
|
+
/** @unlisted */
|
|
30
|
+
export interface ChatMemberRestricted extends ChatMemberBase {
|
|
31
|
+
status: "restricted";
|
|
32
|
+
isMember: boolean;
|
|
33
|
+
rights: ChatMemberRights;
|
|
34
|
+
untilDate?: Date;
|
|
35
|
+
}
|
|
36
|
+
/** @unlisted */
|
|
37
|
+
export interface ChatMemberLeft extends ChatMemberBase {
|
|
38
|
+
status: "left";
|
|
39
|
+
}
|
|
40
|
+
/** @unlisted */
|
|
41
|
+
export interface ChatMemberBanned extends ChatMemberBase {
|
|
42
|
+
status: "banned";
|
|
43
|
+
untilDate?: Date;
|
|
44
|
+
}
|
|
45
|
+
export type ChatMember = ChatMemberCreator | ChatMemberAdministrator | ChatMemberMember | ChatMemberRestricted | ChatMemberLeft | ChatMemberBanned;
|
|
46
|
+
export declare function constructChatMember(participant: enums.ChannelParticipant | enums.ChatParticipant, getEntity: EntityGetter): Promise<ChatMember>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructChatMember = void 0;
|
|
4
|
+
const _1_utilities_js_1 = require("../1_utilities.js");
|
|
5
|
+
const _2_tl_js_1 = require("../2_tl.js");
|
|
6
|
+
const _0_chat_administrator_rights_js_1 = require("./0_chat_administrator_rights.js");
|
|
7
|
+
const _0_chat_member_rights_js_1 = require("./0_chat_member_rights.js");
|
|
8
|
+
const _1_user_js_1 = require("./1_user.js");
|
|
9
|
+
async function constructChatMember(participant, getEntity) {
|
|
10
|
+
const user_ = "user_id" in participant ? await getEntity(new _2_tl_js_1.types.PeerUser(participant)) : "peer" in participant ? participant.peer instanceof _2_tl_js_1.types.PeerUser ? await getEntity(participant.peer) : (0, _1_utilities_js_1.UNREACHABLE)() : (0, _1_utilities_js_1.UNREACHABLE)(); // TODO: support other peer types
|
|
11
|
+
if (user_ == null)
|
|
12
|
+
(0, _1_utilities_js_1.UNREACHABLE)();
|
|
13
|
+
const user = (0, _1_user_js_1.constructUser)(user_);
|
|
14
|
+
if (participant instanceof _2_tl_js_1.types.ChannelParticipant || participant instanceof _2_tl_js_1.types.ChatParticipant) {
|
|
15
|
+
return {
|
|
16
|
+
status: "member",
|
|
17
|
+
user,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
else if (participant instanceof _2_tl_js_1.types.ChannelParticipantCreator) {
|
|
21
|
+
return (0, _1_utilities_js_1.cleanObject)({
|
|
22
|
+
status: "creator",
|
|
23
|
+
user,
|
|
24
|
+
isAnonymous: participant.admin_rights.anonymous ? true : false,
|
|
25
|
+
title: participant.rank,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else if (participant instanceof _2_tl_js_1.types.ChannelParticipantAdmin) {
|
|
29
|
+
return (0, _1_utilities_js_1.cleanObject)({
|
|
30
|
+
status: "administrator",
|
|
31
|
+
user,
|
|
32
|
+
rights: (0, _0_chat_administrator_rights_js_1.constructChatAdministratorRights)(participant.admin_rights),
|
|
33
|
+
title: participant.rank,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else if (participant instanceof _2_tl_js_1.types.ChannelParticipantBanned) {
|
|
37
|
+
const untilDate = participant.banned_rights.until_date ? (0, _1_utilities_js_1.fromUnixTimestamp)(participant.banned_rights.until_date) : undefined;
|
|
38
|
+
if (!participant.banned_rights.view_messages) {
|
|
39
|
+
participant.peer;
|
|
40
|
+
return (0, _1_utilities_js_1.cleanObject)({
|
|
41
|
+
status: "banned",
|
|
42
|
+
user,
|
|
43
|
+
untilDate,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const isMember = participant.left ? true : false;
|
|
47
|
+
const rights = (0, _0_chat_member_rights_js_1.constructChatMemberRights)(participant.banned_rights);
|
|
48
|
+
return (0, _1_utilities_js_1.cleanObject)({
|
|
49
|
+
status: "restricted",
|
|
50
|
+
user,
|
|
51
|
+
isMember,
|
|
52
|
+
rights,
|
|
53
|
+
untilDate,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else if (participant instanceof _2_tl_js_1.types.ChannelParticipantSelf) {
|
|
57
|
+
(0, _1_utilities_js_1.UNREACHABLE)(); // TODO: implement
|
|
58
|
+
}
|
|
59
|
+
else if (participant instanceof _2_tl_js_1.types.ChannelParticipantLeft) {
|
|
60
|
+
return { status: "left", user };
|
|
61
|
+
}
|
|
62
|
+
else if (participant instanceof _2_tl_js_1.types.ChatParticipantAdmin) {
|
|
63
|
+
return (0, _1_utilities_js_1.cleanObject)({
|
|
64
|
+
status: "administrator",
|
|
65
|
+
user,
|
|
66
|
+
rights: {
|
|
67
|
+
isAnonymous: false,
|
|
68
|
+
canManageChat: true,
|
|
69
|
+
canDeleteMessages: true,
|
|
70
|
+
canManageVideoChats: false,
|
|
71
|
+
canRestrictMembers: true,
|
|
72
|
+
canPromoteMembers: false,
|
|
73
|
+
canChangeInfo: true,
|
|
74
|
+
canInviteUsers: true,
|
|
75
|
+
canPostMessages: false,
|
|
76
|
+
canEditMessages: false,
|
|
77
|
+
canPinMessages: true,
|
|
78
|
+
canManageTopics: false,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else if (participant instanceof _2_tl_js_1.types.ChatParticipantCreator) {
|
|
83
|
+
return (0, _1_utilities_js_1.cleanObject)({
|
|
84
|
+
status: "creator",
|
|
85
|
+
user,
|
|
86
|
+
isAnonymous: false,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
(0, _1_utilities_js_1.UNREACHABLE)();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.constructChatMember = constructChatMember;
|