@mtcute/core 0.9.1 → 0.10.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.
- package/cjs/highlevel/client.d.ts +4 -2
- package/cjs/highlevel/client.js.map +1 -1
- package/cjs/highlevel/methods/chats/add-chat-members.d.ts +3 -1
- package/cjs/highlevel/methods/chats/add-chat-members.js +8 -4
- package/cjs/highlevel/methods/chats/add-chat-members.js.map +1 -1
- package/cjs/highlevel/methods/chats/create-group.d.ts +8 -1
- package/cjs/highlevel/methods/chats/create-group.js +7 -4
- package/cjs/highlevel/methods/chats/create-group.js.map +1 -1
- package/cjs/highlevel/methods.d.ts +1 -0
- package/cjs/highlevel/methods.js.map +1 -1
- package/cjs/network/mtproto-session.js +2 -1
- package/cjs/network/mtproto-session.js.map +1 -1
- package/cjs/network/network-manager.js +1 -1
- package/cjs/network/session-connection.js +5 -1
- package/cjs/network/session-connection.js.map +1 -1
- package/esm/highlevel/client.d.ts +4 -2
- package/esm/highlevel/client.js.map +1 -1
- package/esm/highlevel/methods/chats/add-chat-members.d.ts +3 -1
- package/esm/highlevel/methods/chats/add-chat-members.js +8 -4
- package/esm/highlevel/methods/chats/add-chat-members.js.map +1 -1
- package/esm/highlevel/methods/chats/create-group.d.ts +8 -1
- package/esm/highlevel/methods/chats/create-group.js +7 -4
- package/esm/highlevel/methods/chats/create-group.js.map +1 -1
- package/esm/highlevel/methods.d.ts +1 -0
- package/esm/highlevel/methods.js.map +1 -1
- package/esm/network/mtproto-session.js +2 -1
- package/esm/network/mtproto-session.js.map +1 -1
- package/esm/network/network-manager.js +1 -1
- package/esm/network/session-connection.js +5 -1
- package/esm/network/session-connection.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { tl } from '@mtcute/tl';
|
|
1
2
|
import { MaybeArray } from '../../../types/utils.js';
|
|
2
3
|
import { ITelegramClient } from '../../client.types.js';
|
|
3
4
|
import { InputPeerLike } from '../../types/index.js';
|
|
@@ -6,6 +7,7 @@ import { InputPeerLike } from '../../types/index.js';
|
|
|
6
7
|
*
|
|
7
8
|
* @param chatId ID of the chat or its username
|
|
8
9
|
* @param users ID(s) of the user(s) to add
|
|
10
|
+
* @returns List of users that were failed to be invited (may be empty)
|
|
9
11
|
*/
|
|
10
12
|
export declare function addChatMembers(client: ITelegramClient, chatId: InputPeerLike, users: MaybeArray<InputPeerLike>, params: {
|
|
11
13
|
/**
|
|
@@ -15,4 +17,4 @@ export declare function addChatMembers(client: ITelegramClient, chatId: InputPee
|
|
|
15
17
|
* @default 100
|
|
16
18
|
*/
|
|
17
19
|
forwardCount?: number;
|
|
18
|
-
}): Promise<
|
|
20
|
+
}): Promise<tl.RawMissingInvitee[]>;
|
|
@@ -10,6 +10,7 @@ const resolve_peer_many_js_1 = require("../users/resolve-peer-many.js");
|
|
|
10
10
|
*
|
|
11
11
|
* @param chatId ID of the chat or its username
|
|
12
12
|
* @param users ID(s) of the user(s) to add
|
|
13
|
+
* @returns List of users that were failed to be invited (may be empty)
|
|
13
14
|
*/
|
|
14
15
|
async function addChatMembers(client, chatId, users, params) {
|
|
15
16
|
const { forwardCount = 100 } = params;
|
|
@@ -17,27 +18,30 @@ async function addChatMembers(client, chatId, users, params) {
|
|
|
17
18
|
if (!Array.isArray(users))
|
|
18
19
|
users = [users];
|
|
19
20
|
if ((0, peer_utils_js_1.isInputPeerChat)(chat)) {
|
|
21
|
+
const missing = [];
|
|
20
22
|
for (const user of users) {
|
|
21
23
|
const p = await (0, resolve_peer_js_1.resolveUser)(client, user);
|
|
22
|
-
const updates = await client.call({
|
|
24
|
+
const { updates, missingInvitees } = await client.call({
|
|
23
25
|
_: 'messages.addChatUser',
|
|
24
26
|
chatId: chat.chatId,
|
|
25
27
|
userId: p,
|
|
26
28
|
fwdLimit: forwardCount,
|
|
27
29
|
});
|
|
28
30
|
client.handleClientUpdate(updates);
|
|
31
|
+
missing.push(...missingInvitees);
|
|
29
32
|
}
|
|
33
|
+
return missing;
|
|
30
34
|
}
|
|
31
35
|
else if ((0, peer_utils_js_1.isInputPeerChannel)(chat)) {
|
|
32
|
-
const updates = await client.call({
|
|
36
|
+
const { updates, missingInvitees } = await client.call({
|
|
33
37
|
_: 'channels.inviteToChannel',
|
|
34
38
|
channel: (0, peer_utils_js_1.toInputChannel)(chat),
|
|
35
39
|
users: await (0, resolve_peer_many_js_1.resolvePeerMany)(client, users, peer_utils_js_1.toInputUser),
|
|
36
40
|
});
|
|
37
41
|
client.handleClientUpdate(updates);
|
|
42
|
+
return missingInvitees;
|
|
38
43
|
}
|
|
39
|
-
|
|
40
|
-
throw new index_js_1.MtInvalidPeerTypeError(chatId, 'chat or channel');
|
|
44
|
+
throw new index_js_1.MtInvalidPeerTypeError(chatId, 'chat or channel');
|
|
41
45
|
}
|
|
42
46
|
exports.addChatMembers = addChatMembers;
|
|
43
47
|
//# sourceMappingURL=add-chat-members.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-chat-members.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/add-chat-members.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"add-chat-members.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/add-chat-members.ts"],"names":[],"mappings":";;;AAIA,mDAA4E;AAC5E,6DAA4G;AAC5G,8DAAmE;AACnE,wEAA+D;AAE/D;;;;;;GAMG;AACI,KAAK,UAAU,cAAc,CAChC,MAAuB,EACvB,MAAqB,EACrB,KAAgC,EAChC,MAQC;IAED,MAAM,EAAE,YAAY,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;IAErC,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1C,IAAI,IAAA,+BAAe,EAAC,IAAI,CAAC,EAAE;QACvB,MAAM,OAAO,GAA2B,EAAE,CAAA;QAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,MAAM,CAAC,GAAG,MAAM,IAAA,6BAAW,EAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAEzC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACnD,CAAC,EAAE,sBAAsB;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,YAAY;aACzB,CAAC,CAAA;YACF,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;SACnC;QAED,OAAO,OAAO,CAAA;KACjB;SAAM,IAAI,IAAA,kCAAkB,EAAC,IAAI,CAAC,EAAE;QACjC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACnD,CAAC,EAAE,0BAA0B;YAC7B,OAAO,EAAE,IAAA,8BAAc,EAAC,IAAI,CAAC;YAC7B,KAAK,EAAE,MAAM,IAAA,sCAAe,EAAC,MAAM,EAAE,KAAK,EAAE,2BAAW,CAAC;SAC3D,CAAC,CAAA;QACF,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAElC,OAAO,eAAe,CAAA;KACzB;IACD,MAAM,IAAI,iCAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAC/D,CAAC;AAhDD,wCAgDC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../types/utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { InputPeerLike, MtInvalidPeerTypeError } from '../../types/index.js'\nimport { isInputPeerChannel, isInputPeerChat, toInputChannel, toInputUser } from '../../utils/peer-utils.js'\nimport { resolvePeer, resolveUser } from '../users/resolve-peer.js'\nimport { resolvePeerMany } from '../users/resolve-peer-many.js'\n\n/**\n * Add one or more new members to a group, supergroup or channel.\n *\n * @param chatId ID of the chat or its username\n * @param users ID(s) of the user(s) to add\n * @returns List of users that were failed to be invited (may be empty)\n */\nexport async function addChatMembers(\n client: ITelegramClient,\n chatId: InputPeerLike,\n users: MaybeArray<InputPeerLike>,\n params: {\n /**\n * Number of old messages to be forwarded (0-100).\n * Only applicable to legacy groups, ignored for supergroups and channels\n *\n * @default 100\n */\n forwardCount?: number\n },\n): Promise<tl.RawMissingInvitee[]> {\n const { forwardCount = 100 } = params\n\n const chat = await resolvePeer(client, chatId)\n\n if (!Array.isArray(users)) users = [users]\n\n if (isInputPeerChat(chat)) {\n const missing: tl.RawMissingInvitee[] = []\n\n for (const user of users) {\n const p = await resolveUser(client, user)\n\n const { updates, missingInvitees } = await client.call({\n _: 'messages.addChatUser',\n chatId: chat.chatId,\n userId: p,\n fwdLimit: forwardCount,\n })\n client.handleClientUpdate(updates)\n missing.push(...missingInvitees)\n }\n\n return missing\n } else if (isInputPeerChannel(chat)) {\n const { updates, missingInvitees } = await client.call({\n _: 'channels.inviteToChannel',\n channel: toInputChannel(chat),\n users: await resolvePeerMany(client, users, toInputUser),\n })\n client.handleClientUpdate(updates)\n\n return missingInvitees\n }\n throw new MtInvalidPeerTypeError(chatId, 'chat or channel')\n}\n"]}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { tl } from '@mtcute/tl';
|
|
1
2
|
import { MaybeArray } from '../../../types/utils.js';
|
|
2
3
|
import { ITelegramClient } from '../../client.types.js';
|
|
3
4
|
import { Chat, InputPeerLike } from '../../types/index.js';
|
|
5
|
+
export interface CreateGroupResult {
|
|
6
|
+
/** Chat that was created */
|
|
7
|
+
chat: Chat;
|
|
8
|
+
/** Users that were failed to be invited */
|
|
9
|
+
missing: tl.RawMissingInvitee[];
|
|
10
|
+
}
|
|
4
11
|
/**
|
|
5
12
|
* Create a legacy group chat
|
|
6
13
|
*
|
|
@@ -23,4 +30,4 @@ export declare function createGroup(client: ITelegramClient, params: {
|
|
|
23
30
|
* @default 0 (i.e. messages don't expire)
|
|
24
31
|
*/
|
|
25
32
|
ttlPeriod?: number;
|
|
26
|
-
}): Promise<
|
|
33
|
+
}): Promise<CreateGroupResult>;
|
|
@@ -17,14 +17,17 @@ async function createGroup(client, params) {
|
|
|
17
17
|
if (!Array.isArray(users))
|
|
18
18
|
users = [users];
|
|
19
19
|
const peers = await (0, resolve_peer_many_js_1.resolvePeerMany)(client, users, peer_utils_js_1.toInputUser);
|
|
20
|
-
const
|
|
20
|
+
const { updates, missingInvitees } = await client.call({
|
|
21
21
|
_: 'messages.createChat',
|
|
22
22
|
title,
|
|
23
23
|
users: peers,
|
|
24
24
|
});
|
|
25
|
-
(0, utils_js_1.assertIsUpdatesGroup)('messages.createChat',
|
|
26
|
-
client.handleClientUpdate(
|
|
27
|
-
return
|
|
25
|
+
(0, utils_js_1.assertIsUpdatesGroup)('messages.createChat', updates);
|
|
26
|
+
client.handleClientUpdate(updates);
|
|
27
|
+
return {
|
|
28
|
+
chat: new index_js_1.Chat(updates.chats[0]),
|
|
29
|
+
missing: missingInvitees,
|
|
30
|
+
};
|
|
28
31
|
}
|
|
29
32
|
exports.createGroup = createGroup;
|
|
30
33
|
//# sourceMappingURL=create-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/create-group.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"create-group.js","sourceRoot":"","sources":["../../../../../src/highlevel/methods/chats/create-group.ts"],"names":[],"mappings":";;;AAIA,mDAA0D;AAC1D,qDAA6D;AAC7D,6DAAuD;AACvD,wEAA+D;AAU/D;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAC7B,MAAuB,EACvB,MAkBC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IACxB,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAEtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1C,MAAM,KAAK,GAAG,MAAM,IAAA,sCAAe,EAAC,MAAM,EAAE,KAAK,EAAE,2BAAW,CAAC,CAAA;IAE/D,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QACnD,CAAC,EAAE,qBAAqB;QACxB,KAAK;QACL,KAAK,EAAE,KAAK;KACf,CAAC,CAAA;IAEF,IAAA,+BAAoB,EAAC,qBAAqB,EAAE,OAAO,CAAC,CAAA;IAEpD,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAElC,OAAO;QACH,IAAI,EAAE,IAAI,eAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO,EAAE,eAAe;KAC3B,CAAA;AACL,CAAC;AA3CD,kCA2CC","sourcesContent":["import { tl } from '@mtcute/tl'\n\nimport { MaybeArray } from '../../../types/utils.js'\nimport { ITelegramClient } from '../../client.types.js'\nimport { Chat, InputPeerLike } from '../../types/index.js'\nimport { assertIsUpdatesGroup } from '../../updates/utils.js'\nimport { toInputUser } from '../../utils/peer-utils.js'\nimport { resolvePeerMany } from '../users/resolve-peer-many.js'\n\n// @exported\nexport interface CreateGroupResult {\n /** Chat that was created */\n chat: Chat\n /** Users that were failed to be invited */\n missing: tl.RawMissingInvitee[]\n}\n\n/**\n * Create a legacy group chat\n *\n * If you want to create a supergroup, use {@link createSupergroup}\n * instead.\n */\nexport async function createGroup(\n client: ITelegramClient,\n params: {\n /**\n * Group title\n */\n title: string\n\n /**\n * User(s) to be invited in the group (ID(s), username(s) or phone number(s)).\n * Due to Telegram limitations, you can't create a legacy group with just yourself.\n */\n users: MaybeArray<InputPeerLike>\n\n /**\n * TTL period (in seconds) for the newly created chat\n *\n * @default 0 (i.e. messages don't expire)\n */\n ttlPeriod?: number\n },\n): Promise<CreateGroupResult> {\n const { title } = params\n let { users } = params\n\n if (!Array.isArray(users)) users = [users]\n\n const peers = await resolvePeerMany(client, users, toInputUser)\n\n const { updates, missingInvitees } = await client.call({\n _: 'messages.createChat',\n title,\n users: peers,\n })\n\n assertIsUpdatesGroup('messages.createChat', updates)\n\n client.handleClientUpdate(updates)\n\n return {\n chat: new Chat(updates.chats[0]),\n missing: missingInvitees,\n }\n}\n"]}
|
|
@@ -31,6 +31,7 @@ export { addChatMembers } from './methods/chats/add-chat-members.js';
|
|
|
31
31
|
export { archiveChats } from './methods/chats/archive-chats.js';
|
|
32
32
|
export { banChatMember } from './methods/chats/ban-chat-member.js';
|
|
33
33
|
export { createChannel } from './methods/chats/create-channel.js';
|
|
34
|
+
export type { CreateGroupResult } from './methods/chats/create-group.js';
|
|
34
35
|
export { createGroup } from './methods/chats/create-group.js';
|
|
35
36
|
export { createSupergroup } from './methods/chats/create-supergroup.js';
|
|
36
37
|
export { deleteChannel } from './methods/chats/delete-channel.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../src/highlevel/methods.ts"],"names":[],"mappings":"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","sourcesContent":["/* THIS FILE WAS AUTO-GENERATED */\nexport { checkPassword } from './methods/auth/check-password.js'\nexport { getPasswordHint } from './methods/auth/get-password-hint.js'\nexport { logOut } from './methods/auth/log-out.js'\nexport { recoverPassword } from './methods/auth/recover-password.js'\nexport { resendCode } from './methods/auth/resend-code.js'\nexport { run } from './methods/auth/run.js'\nexport { sendCode } from './methods/auth/send-code.js'\nexport { sendRecoveryCode } from './methods/auth/send-recovery-code.js'\nexport { signIn } from './methods/auth/sign-in.js'\nexport { signInBot } from './methods/auth/sign-in-bot.js'\nexport { start } from './methods/auth/start.js'\nexport { startTest } from './methods/auth/start-test.js'\nexport { isSelfPeer } from './methods/auth/utils.js'\nexport { answerCallbackQuery } from './methods/bots/answer-callback-query.js'\nexport { answerInlineQuery } from './methods/bots/answer-inline-query.js'\nexport { answerPreCheckoutQuery } from './methods/bots/answer-pre-checkout-query.js'\nexport { deleteMyCommands } from './methods/bots/delete-my-commands.js'\nexport { getBotInfo } from './methods/bots/get-bot-info.js'\nexport { getBotMenuButton } from './methods/bots/get-bot-menu-button.js'\nexport { getCallbackAnswer } from './methods/bots/get-callback-answer.js'\nexport { getGameHighScores } from './methods/bots/get-game-high-scores.js'\nexport { getInlineGameHighScores } from './methods/bots/get-game-high-scores.js'\nexport { getMyCommands } from './methods/bots/get-my-commands.js'\nexport { setBotInfo } from './methods/bots/set-bot-info.js'\nexport { setBotMenuButton } from './methods/bots/set-bot-menu-button.js'\nexport { setGameScore } from './methods/bots/set-game-score.js'\nexport { setInlineGameScore } from './methods/bots/set-game-score.js'\nexport { setMyCommands } from './methods/bots/set-my-commands.js'\nexport { setMyDefaultRights } from './methods/bots/set-my-default-rights.js'\nexport { addChatMembers } from './methods/chats/add-chat-members.js'\nexport { archiveChats } from './methods/chats/archive-chats.js'\nexport { banChatMember } from './methods/chats/ban-chat-member.js'\nexport { createChannel } from './methods/chats/create-channel.js'\nexport { createGroup } from './methods/chats/create-group.js'\nexport { createSupergroup } from './methods/chats/create-supergroup.js'\nexport { deleteChannel } from './methods/chats/delete-channel.js'\nexport { deleteChatPhoto } from './methods/chats/delete-chat-photo.js'\nexport { deleteGroup } from './methods/chats/delete-group.js'\nexport { deleteHistory } from './methods/chats/delete-history.js'\nexport { deleteUserHistory } from './methods/chats/delete-user-history.js'\nexport { editAdminRights } from './methods/chats/edit-admin-rights.js'\nexport { getChat } from './methods/chats/get-chat.js'\nexport { getChatEventLog } from './methods/chats/get-chat-event-log.js'\nexport { getChatMember } from './methods/chats/get-chat-member.js'\nexport { getChatMembers } from './methods/chats/get-chat-members.js'\nexport { getChatPreview } from './methods/chats/get-chat-preview.js'\nexport { getFullChat } from './methods/chats/get-full-chat.js'\nexport { getNearbyChats } from './methods/chats/get-nearby-chats.js'\nexport { getSimilarChannels } from './methods/chats/get-similar-channels.js'\nexport { iterChatEventLog } from './methods/chats/iter-chat-event-log.js'\nexport { iterChatMembers } from './methods/chats/iter-chat-members.js'\nexport { joinChat } from './methods/chats/join-chat.js'\nexport { kickChatMember } from './methods/chats/kick-chat-member.js'\nexport { leaveChat } from './methods/chats/leave-chat.js'\nexport { markChatUnread } from './methods/chats/mark-chat-unread.js'\nexport { openChat } from './methods/chats/open-chat.js'\nexport { closeChat } from './methods/chats/open-chat.js'\nexport { reorderUsernames } from './methods/chats/reorder-usernames.js'\nexport { restrictChatMember } from './methods/chats/restrict-chat-member.js'\nexport { saveDraft } from './methods/chats/save-draft.js'\nexport { setChatColor } from './methods/chats/set-chat-color.js'\nexport { setChatDefaultPermissions } from './methods/chats/set-chat-default-permissions.js'\nexport { setChatDescription } from './methods/chats/set-chat-description.js'\nexport { setChatPhoto } from './methods/chats/set-chat-photo.js'\nexport { setChatTitle } from './methods/chats/set-chat-title.js'\nexport { setChatTtl } from './methods/chats/set-chat-ttl.js'\nexport { setChatUsername } from './methods/chats/set-chat-username.js'\nexport { setSlowMode } from './methods/chats/set-slow-mode.js'\nexport { toggleContentProtection } from './methods/chats/toggle-content-protection.js'\nexport { toggleFragmentUsername } from './methods/chats/toggle-fragment-username.js'\nexport { toggleJoinRequests } from './methods/chats/toggle-join-requests.js'\nexport { toggleJoinToSend } from './methods/chats/toggle-join-to-send.js'\nexport { unarchiveChats } from './methods/chats/unarchive-chats.js'\nexport { unbanChatMember } from './methods/chats/unban-chat-member.js'\nexport { addContact } from './methods/contacts/add-contact.js'\nexport { deleteContacts } from './methods/contacts/delete-contacts.js'\nexport { getContacts } from './methods/contacts/get-contacts.js'\nexport { importContacts } from './methods/contacts/import-contacts.js'\nexport { createFolder } from './methods/dialogs/create-folder.js'\nexport { deleteFolder } from './methods/dialogs/delete-folder.js'\nexport { editFolder } from './methods/dialogs/edit-folder.js'\nexport { findFolder } from './methods/dialogs/find-folder.js'\nexport { getFolders } from './methods/dialogs/get-folders.js'\nexport { getPeerDialogs } from './methods/dialogs/get-peer-dialogs.js'\nexport { iterDialogs } from './methods/dialogs/iter-dialogs.js'\nexport { setFoldersOrder } from './methods/dialogs/set-folders-order.js'\nexport { downloadAsBuffer } from './methods/files/download-buffer.js'\nexport { downloadAsIterable } from './methods/files/download-iterable.js'\nexport { downloadAsStream } from './methods/files/download-stream.js'\nexport { _normalizeInputFile } from './methods/files/normalize-input-file.js'\nexport { _normalizeInputMedia } from './methods/files/normalize-input-media.js'\nexport { uploadFile } from './methods/files/upload-file.js'\nexport { uploadMedia } from './methods/files/upload-media.js'\nexport { createForumTopic } from './methods/forums/create-forum-topic.js'\nexport { deleteForumTopicHistory } from './methods/forums/delete-forum-topic-history.js'\nexport { editForumTopic } from './methods/forums/edit-forum-topic.js'\nexport type { GetForumTopicsOffset } from './methods/forums/get-forum-topics.js'\nexport { getForumTopics } from './methods/forums/get-forum-topics.js'\nexport { getForumTopicsById } from './methods/forums/get-forum-topics-by-id.js'\nexport { iterForumTopics } from './methods/forums/iter-forum-topics.js'\nexport { reorderPinnedForumTopics } from './methods/forums/reorder-pinned-forum-topics.js'\nexport { toggleForum } from './methods/forums/toggle-forum.js'\nexport { toggleForumTopicClosed } from './methods/forums/toggle-forum-topic-closed.js'\nexport { toggleForumTopicPinned } from './methods/forums/toggle-forum-topic-pinned.js'\nexport { toggleGeneralTopicHidden } from './methods/forums/toggle-general-topic-hidden.js'\nexport { createInviteLink } from './methods/invite-links/create-invite-link.js'\nexport { editInviteLink } from './methods/invite-links/edit-invite-link.js'\nexport { exportInviteLink } from './methods/invite-links/export-invite-link.js'\nexport { getInviteLink } from './methods/invite-links/get-invite-link.js'\nexport { getInviteLinkMembers } from './methods/invite-links/get-invite-link-members.js'\nexport type { GetInviteLinksOffset } from './methods/invite-links/get-invite-links.js'\nexport { getInviteLinks } from './methods/invite-links/get-invite-links.js'\nexport { getPrimaryInviteLink } from './methods/invite-links/get-primary-invite-link.js'\nexport { hideAllJoinRequests } from './methods/invite-links/hide-all-join-requests.js'\nexport { hideJoinRequest } from './methods/invite-links/hide-join-request.js'\nexport { iterInviteLinkMembers } from './methods/invite-links/iter-invite-link-members.js'\nexport { iterInviteLinks } from './methods/invite-links/iter-invite-links.js'\nexport { revokeInviteLink } from './methods/invite-links/revoke-invite-link.js'\nexport { closePoll } from './methods/messages/close-poll.js'\nexport type { DeleteMessagesParams } from './methods/messages/delete-messages.js'\nexport { deleteMessagesById } from './methods/messages/delete-messages.js'\nexport { deleteMessages } from './methods/messages/delete-messages.js'\nexport { deleteScheduledMessages } from './methods/messages/delete-scheduled-messages.js'\nexport { editInlineMessage } from './methods/messages/edit-inline-message.js'\nexport { editMessage } from './methods/messages/edit-message.js'\nexport type { ForwardMessageOptions } from './methods/messages/forward-messages.js'\nexport { forwardMessagesById } from './methods/messages/forward-messages.js'\nexport { forwardMessages } from './methods/messages/forward-messages.js'\nexport { getCallbackQueryMessage } from './methods/messages/get-callback-query-message.js'\nexport { getDiscussionMessage } from './methods/messages/get-discussion-message.js'\nexport type { GetHistoryOffset } from './methods/messages/get-history.js'\nexport { getHistory } from './methods/messages/get-history.js'\nexport { getMessageByLink } from './methods/messages/get-message-by-link.js'\nexport { getMessageGroup } from './methods/messages/get-message-group.js'\nexport { getMessageReactionsById } from './methods/messages/get-message-reactions.js'\nexport { getMessageReactions } from './methods/messages/get-message-reactions.js'\nexport { getMessages } from './methods/messages/get-messages.js'\nexport { getMessagesUnsafe } from './methods/messages/get-messages-unsafe.js'\nexport type { GetReactionUsersOffset } from './methods/messages/get-reaction-users.js'\nexport { getReactionUsers } from './methods/messages/get-reaction-users.js'\nexport { getReplyTo } from './methods/messages/get-reply-to.js'\nexport { getScheduledMessages } from './methods/messages/get-scheduled-messages.js'\nexport { iterHistory } from './methods/messages/iter-history.js'\nexport { iterReactionUsers } from './methods/messages/iter-reaction-users.js'\nexport { iterSearchGlobal } from './methods/messages/iter-search-global.js'\nexport { iterSearchMessages } from './methods/messages/iter-search-messages.js'\nexport { pinMessage } from './methods/messages/pin-message.js'\nexport { readHistory } from './methods/messages/read-history.js'\nexport { readReactions } from './methods/messages/read-reactions.js'\nexport type { SearchGlobalOffset } from './methods/messages/search-global.js'\nexport { searchGlobal } from './methods/messages/search-global.js'\nexport type { SearchMessagesOffset } from './methods/messages/search-messages.js'\nexport { searchMessages } from './methods/messages/search-messages.js'\nexport { answerText } from './methods/messages/send-answer.js'\nexport { answerMedia } from './methods/messages/send-answer.js'\nexport { answerMediaGroup } from './methods/messages/send-answer.js'\nexport { commentText } from './methods/messages/send-comment.js'\nexport { commentMedia } from './methods/messages/send-comment.js'\nexport { commentMediaGroup } from './methods/messages/send-comment.js'\nexport type { SendCopyParams } from './methods/messages/send-copy.js'\nexport { sendCopy } from './methods/messages/send-copy.js'\nexport type { SendCopyGroupParams } from './methods/messages/send-copy-group.js'\nexport { sendCopyGroup } from './methods/messages/send-copy-group.js'\nexport { sendMedia } from './methods/messages/send-media.js'\nexport { sendMediaGroup } from './methods/messages/send-media-group.js'\nexport type { QuoteParamsFrom } from './methods/messages/send-quote.js'\nexport { quoteWithText } from './methods/messages/send-quote.js'\nexport { quoteWithMedia } from './methods/messages/send-quote.js'\nexport { quoteWithMediaGroup } from './methods/messages/send-quote.js'\nexport { sendReaction } from './methods/messages/send-reaction.js'\nexport { replyText } from './methods/messages/send-reply.js'\nexport { replyMedia } from './methods/messages/send-reply.js'\nexport { replyMediaGroup } from './methods/messages/send-reply.js'\nexport { sendScheduled } from './methods/messages/send-scheduled.js'\nexport { sendText } from './methods/messages/send-text.js'\nexport { sendTyping } from './methods/messages/send-typing.js'\nexport { sendVote } from './methods/messages/send-vote.js'\nexport { translateMessage } from './methods/messages/translate-message.js'\nexport { translateText } from './methods/messages/translate-text.js'\nexport { unpinAllMessages } from './methods/messages/unpin-all-messages.js'\nexport { unpinMessage } from './methods/messages/unpin-message.js'\nexport { initTakeoutSession } from './methods/misc/init-takeout-session.js'\nexport { _normalizePrivacyRules } from './methods/misc/normalize-privacy-rules.js'\nexport { changeCloudPassword } from './methods/password/change-cloud-password.js'\nexport { enableCloudPassword } from './methods/password/enable-cloud-password.js'\nexport { verifyPasswordEmail } from './methods/password/password-email.js'\nexport { resendPasswordEmail } from './methods/password/password-email.js'\nexport { cancelPasswordEmail } from './methods/password/password-email.js'\nexport { removeCloudPassword } from './methods/password/remove-cloud-password.js'\nexport { applyBoost } from './methods/premium/apply-boost.js'\nexport type { CanApplyBoostResult } from './methods/premium/can-apply-boost.js'\nexport { canApplyBoost } from './methods/premium/can-apply-boost.js'\nexport { getBoostStats } from './methods/premium/get-boost-stats.js'\nexport { getBoosts } from './methods/premium/get-boosts.js'\nexport { getMyBoostSlots } from './methods/premium/get-my-boost-slots.js'\nexport { iterBoosters } from './methods/premium/iter-boosters.js'\nexport { addStickerToSet } from './methods/stickers/add-sticker-to-set.js'\nexport { createStickerSet } from './methods/stickers/create-sticker-set.js'\nexport { deleteStickerFromSet } from './methods/stickers/delete-sticker-from-set.js'\nexport { getCustomEmojis } from './methods/stickers/get-custom-emojis.js'\nexport { getCustomEmojisFromMessages } from './methods/stickers/get-custom-emojis.js'\nexport { getInstalledStickers } from './methods/stickers/get-installed-stickers.js'\nexport { getStickerSet } from './methods/stickers/get-sticker-set.js'\nexport { moveStickerInSet } from './methods/stickers/move-sticker-in-set.js'\nexport { setChatStickerSet } from './methods/stickers/set-chat-sticker-set.js'\nexport { setStickerSetThumb } from './methods/stickers/set-sticker-set-thumb.js'\nexport type { CanSendStoryResult } from './methods/stories/can-send-story.js'\nexport { canSendStory } from './methods/stories/can-send-story.js'\nexport { deleteStories } from './methods/stories/delete-stories.js'\nexport { editStory } from './methods/stories/edit-story.js'\nexport { getAllStories } from './methods/stories/get-all-stories.js'\nexport { getPeerStories } from './methods/stories/get-peer-stories.js'\nexport { getProfileStories } from './methods/stories/get-profile-stories.js'\nexport { getStoriesById } from './methods/stories/get-stories-by-id.js'\nexport { getStoriesInteractions } from './methods/stories/get-stories-interactions.js'\nexport { getStoryLink } from './methods/stories/get-story-link.js'\nexport { getStoryViewers } from './methods/stories/get-story-viewers.js'\nexport { hideMyStoriesViews } from './methods/stories/hide-my-stories-views.js'\nexport { incrementStoriesViews } from './methods/stories/increment-stories-views.js'\nexport { iterAllStories } from './methods/stories/iter-all-stories.js'\nexport { iterProfileStories } from './methods/stories/iter-profile-stories.js'\nexport { iterStoryViewers } from './methods/stories/iter-story-viewers.js'\nexport { readStories } from './methods/stories/read-stories.js'\nexport { reportStory } from './methods/stories/report-story.js'\nexport { sendStory } from './methods/stories/send-story.js'\nexport { sendStoryReaction } from './methods/stories/send-story-reaction.js'\nexport { togglePeerStoriesArchived } from './methods/stories/toggle-peer-stories-archived.js'\nexport { toggleStoriesPinned } from './methods/stories/toggle-stories-pinned.js'\nexport { blockUser } from './methods/users/block-user.js'\nexport { deleteProfilePhotos } from './methods/users/delete-profile-photos.js'\nexport { editCloseFriendsRaw } from './methods/users/edit-close-friends.js'\nexport { editCloseFriends } from './methods/users/edit-close-friends.js'\nexport { getCommonChats } from './methods/users/get-common-chats.js'\nexport { getGlobalTtl } from './methods/users/get-global-ttl.js'\nexport { getMe } from './methods/users/get-me.js'\nexport { getMyUsername } from './methods/users/get-my-username.js'\nexport { getProfilePhoto } from './methods/users/get-profile-photo.js'\nexport { getProfilePhotos } from './methods/users/get-profile-photos.js'\nexport { getUsers } from './methods/users/get-users.js'\nexport { iterProfilePhotos } from './methods/users/iter-profile-photos.js'\nexport { resolvePeer } from './methods/users/resolve-peer.js'\nexport { resolveUser } from './methods/users/resolve-peer.js'\nexport { resolveChannel } from './methods/users/resolve-peer.js'\nexport { resolvePeerMany } from './methods/users/resolve-peer-many.js'\nexport { setGlobalTtl } from './methods/users/set-global-ttl.js'\nexport { setMyEmojiStatus } from './methods/users/set-my-emoji-status.js'\nexport { setMyProfilePhoto } from './methods/users/set-my-profile-photo.js'\nexport { setMyUsername } from './methods/users/set-my-username.js'\nexport { setOffline } from './methods/users/set-offline.js'\nexport { unblockUser } from './methods/users/unblock-user.js'\nexport { updateProfile } from './methods/users/update-profile.js'\n"]}
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../src/highlevel/methods.ts"],"names":[],"mappings":"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","sourcesContent":["/* THIS FILE WAS AUTO-GENERATED */\nexport { checkPassword } from './methods/auth/check-password.js'\nexport { getPasswordHint } from './methods/auth/get-password-hint.js'\nexport { logOut } from './methods/auth/log-out.js'\nexport { recoverPassword } from './methods/auth/recover-password.js'\nexport { resendCode } from './methods/auth/resend-code.js'\nexport { run } from './methods/auth/run.js'\nexport { sendCode } from './methods/auth/send-code.js'\nexport { sendRecoveryCode } from './methods/auth/send-recovery-code.js'\nexport { signIn } from './methods/auth/sign-in.js'\nexport { signInBot } from './methods/auth/sign-in-bot.js'\nexport { start } from './methods/auth/start.js'\nexport { startTest } from './methods/auth/start-test.js'\nexport { isSelfPeer } from './methods/auth/utils.js'\nexport { answerCallbackQuery } from './methods/bots/answer-callback-query.js'\nexport { answerInlineQuery } from './methods/bots/answer-inline-query.js'\nexport { answerPreCheckoutQuery } from './methods/bots/answer-pre-checkout-query.js'\nexport { deleteMyCommands } from './methods/bots/delete-my-commands.js'\nexport { getBotInfo } from './methods/bots/get-bot-info.js'\nexport { getBotMenuButton } from './methods/bots/get-bot-menu-button.js'\nexport { getCallbackAnswer } from './methods/bots/get-callback-answer.js'\nexport { getGameHighScores } from './methods/bots/get-game-high-scores.js'\nexport { getInlineGameHighScores } from './methods/bots/get-game-high-scores.js'\nexport { getMyCommands } from './methods/bots/get-my-commands.js'\nexport { setBotInfo } from './methods/bots/set-bot-info.js'\nexport { setBotMenuButton } from './methods/bots/set-bot-menu-button.js'\nexport { setGameScore } from './methods/bots/set-game-score.js'\nexport { setInlineGameScore } from './methods/bots/set-game-score.js'\nexport { setMyCommands } from './methods/bots/set-my-commands.js'\nexport { setMyDefaultRights } from './methods/bots/set-my-default-rights.js'\nexport { addChatMembers } from './methods/chats/add-chat-members.js'\nexport { archiveChats } from './methods/chats/archive-chats.js'\nexport { banChatMember } from './methods/chats/ban-chat-member.js'\nexport { createChannel } from './methods/chats/create-channel.js'\nexport type { CreateGroupResult } from './methods/chats/create-group.js'\nexport { createGroup } from './methods/chats/create-group.js'\nexport { createSupergroup } from './methods/chats/create-supergroup.js'\nexport { deleteChannel } from './methods/chats/delete-channel.js'\nexport { deleteChatPhoto } from './methods/chats/delete-chat-photo.js'\nexport { deleteGroup } from './methods/chats/delete-group.js'\nexport { deleteHistory } from './methods/chats/delete-history.js'\nexport { deleteUserHistory } from './methods/chats/delete-user-history.js'\nexport { editAdminRights } from './methods/chats/edit-admin-rights.js'\nexport { getChat } from './methods/chats/get-chat.js'\nexport { getChatEventLog } from './methods/chats/get-chat-event-log.js'\nexport { getChatMember } from './methods/chats/get-chat-member.js'\nexport { getChatMembers } from './methods/chats/get-chat-members.js'\nexport { getChatPreview } from './methods/chats/get-chat-preview.js'\nexport { getFullChat } from './methods/chats/get-full-chat.js'\nexport { getNearbyChats } from './methods/chats/get-nearby-chats.js'\nexport { getSimilarChannels } from './methods/chats/get-similar-channels.js'\nexport { iterChatEventLog } from './methods/chats/iter-chat-event-log.js'\nexport { iterChatMembers } from './methods/chats/iter-chat-members.js'\nexport { joinChat } from './methods/chats/join-chat.js'\nexport { kickChatMember } from './methods/chats/kick-chat-member.js'\nexport { leaveChat } from './methods/chats/leave-chat.js'\nexport { markChatUnread } from './methods/chats/mark-chat-unread.js'\nexport { openChat } from './methods/chats/open-chat.js'\nexport { closeChat } from './methods/chats/open-chat.js'\nexport { reorderUsernames } from './methods/chats/reorder-usernames.js'\nexport { restrictChatMember } from './methods/chats/restrict-chat-member.js'\nexport { saveDraft } from './methods/chats/save-draft.js'\nexport { setChatColor } from './methods/chats/set-chat-color.js'\nexport { setChatDefaultPermissions } from './methods/chats/set-chat-default-permissions.js'\nexport { setChatDescription } from './methods/chats/set-chat-description.js'\nexport { setChatPhoto } from './methods/chats/set-chat-photo.js'\nexport { setChatTitle } from './methods/chats/set-chat-title.js'\nexport { setChatTtl } from './methods/chats/set-chat-ttl.js'\nexport { setChatUsername } from './methods/chats/set-chat-username.js'\nexport { setSlowMode } from './methods/chats/set-slow-mode.js'\nexport { toggleContentProtection } from './methods/chats/toggle-content-protection.js'\nexport { toggleFragmentUsername } from './methods/chats/toggle-fragment-username.js'\nexport { toggleJoinRequests } from './methods/chats/toggle-join-requests.js'\nexport { toggleJoinToSend } from './methods/chats/toggle-join-to-send.js'\nexport { unarchiveChats } from './methods/chats/unarchive-chats.js'\nexport { unbanChatMember } from './methods/chats/unban-chat-member.js'\nexport { addContact } from './methods/contacts/add-contact.js'\nexport { deleteContacts } from './methods/contacts/delete-contacts.js'\nexport { getContacts } from './methods/contacts/get-contacts.js'\nexport { importContacts } from './methods/contacts/import-contacts.js'\nexport { createFolder } from './methods/dialogs/create-folder.js'\nexport { deleteFolder } from './methods/dialogs/delete-folder.js'\nexport { editFolder } from './methods/dialogs/edit-folder.js'\nexport { findFolder } from './methods/dialogs/find-folder.js'\nexport { getFolders } from './methods/dialogs/get-folders.js'\nexport { getPeerDialogs } from './methods/dialogs/get-peer-dialogs.js'\nexport { iterDialogs } from './methods/dialogs/iter-dialogs.js'\nexport { setFoldersOrder } from './methods/dialogs/set-folders-order.js'\nexport { downloadAsBuffer } from './methods/files/download-buffer.js'\nexport { downloadAsIterable } from './methods/files/download-iterable.js'\nexport { downloadAsStream } from './methods/files/download-stream.js'\nexport { _normalizeInputFile } from './methods/files/normalize-input-file.js'\nexport { _normalizeInputMedia } from './methods/files/normalize-input-media.js'\nexport { uploadFile } from './methods/files/upload-file.js'\nexport { uploadMedia } from './methods/files/upload-media.js'\nexport { createForumTopic } from './methods/forums/create-forum-topic.js'\nexport { deleteForumTopicHistory } from './methods/forums/delete-forum-topic-history.js'\nexport { editForumTopic } from './methods/forums/edit-forum-topic.js'\nexport type { GetForumTopicsOffset } from './methods/forums/get-forum-topics.js'\nexport { getForumTopics } from './methods/forums/get-forum-topics.js'\nexport { getForumTopicsById } from './methods/forums/get-forum-topics-by-id.js'\nexport { iterForumTopics } from './methods/forums/iter-forum-topics.js'\nexport { reorderPinnedForumTopics } from './methods/forums/reorder-pinned-forum-topics.js'\nexport { toggleForum } from './methods/forums/toggle-forum.js'\nexport { toggleForumTopicClosed } from './methods/forums/toggle-forum-topic-closed.js'\nexport { toggleForumTopicPinned } from './methods/forums/toggle-forum-topic-pinned.js'\nexport { toggleGeneralTopicHidden } from './methods/forums/toggle-general-topic-hidden.js'\nexport { createInviteLink } from './methods/invite-links/create-invite-link.js'\nexport { editInviteLink } from './methods/invite-links/edit-invite-link.js'\nexport { exportInviteLink } from './methods/invite-links/export-invite-link.js'\nexport { getInviteLink } from './methods/invite-links/get-invite-link.js'\nexport { getInviteLinkMembers } from './methods/invite-links/get-invite-link-members.js'\nexport type { GetInviteLinksOffset } from './methods/invite-links/get-invite-links.js'\nexport { getInviteLinks } from './methods/invite-links/get-invite-links.js'\nexport { getPrimaryInviteLink } from './methods/invite-links/get-primary-invite-link.js'\nexport { hideAllJoinRequests } from './methods/invite-links/hide-all-join-requests.js'\nexport { hideJoinRequest } from './methods/invite-links/hide-join-request.js'\nexport { iterInviteLinkMembers } from './methods/invite-links/iter-invite-link-members.js'\nexport { iterInviteLinks } from './methods/invite-links/iter-invite-links.js'\nexport { revokeInviteLink } from './methods/invite-links/revoke-invite-link.js'\nexport { closePoll } from './methods/messages/close-poll.js'\nexport type { DeleteMessagesParams } from './methods/messages/delete-messages.js'\nexport { deleteMessagesById } from './methods/messages/delete-messages.js'\nexport { deleteMessages } from './methods/messages/delete-messages.js'\nexport { deleteScheduledMessages } from './methods/messages/delete-scheduled-messages.js'\nexport { editInlineMessage } from './methods/messages/edit-inline-message.js'\nexport { editMessage } from './methods/messages/edit-message.js'\nexport type { ForwardMessageOptions } from './methods/messages/forward-messages.js'\nexport { forwardMessagesById } from './methods/messages/forward-messages.js'\nexport { forwardMessages } from './methods/messages/forward-messages.js'\nexport { getCallbackQueryMessage } from './methods/messages/get-callback-query-message.js'\nexport { getDiscussionMessage } from './methods/messages/get-discussion-message.js'\nexport type { GetHistoryOffset } from './methods/messages/get-history.js'\nexport { getHistory } from './methods/messages/get-history.js'\nexport { getMessageByLink } from './methods/messages/get-message-by-link.js'\nexport { getMessageGroup } from './methods/messages/get-message-group.js'\nexport { getMessageReactionsById } from './methods/messages/get-message-reactions.js'\nexport { getMessageReactions } from './methods/messages/get-message-reactions.js'\nexport { getMessages } from './methods/messages/get-messages.js'\nexport { getMessagesUnsafe } from './methods/messages/get-messages-unsafe.js'\nexport type { GetReactionUsersOffset } from './methods/messages/get-reaction-users.js'\nexport { getReactionUsers } from './methods/messages/get-reaction-users.js'\nexport { getReplyTo } from './methods/messages/get-reply-to.js'\nexport { getScheduledMessages } from './methods/messages/get-scheduled-messages.js'\nexport { iterHistory } from './methods/messages/iter-history.js'\nexport { iterReactionUsers } from './methods/messages/iter-reaction-users.js'\nexport { iterSearchGlobal } from './methods/messages/iter-search-global.js'\nexport { iterSearchMessages } from './methods/messages/iter-search-messages.js'\nexport { pinMessage } from './methods/messages/pin-message.js'\nexport { readHistory } from './methods/messages/read-history.js'\nexport { readReactions } from './methods/messages/read-reactions.js'\nexport type { SearchGlobalOffset } from './methods/messages/search-global.js'\nexport { searchGlobal } from './methods/messages/search-global.js'\nexport type { SearchMessagesOffset } from './methods/messages/search-messages.js'\nexport { searchMessages } from './methods/messages/search-messages.js'\nexport { answerText } from './methods/messages/send-answer.js'\nexport { answerMedia } from './methods/messages/send-answer.js'\nexport { answerMediaGroup } from './methods/messages/send-answer.js'\nexport { commentText } from './methods/messages/send-comment.js'\nexport { commentMedia } from './methods/messages/send-comment.js'\nexport { commentMediaGroup } from './methods/messages/send-comment.js'\nexport type { SendCopyParams } from './methods/messages/send-copy.js'\nexport { sendCopy } from './methods/messages/send-copy.js'\nexport type { SendCopyGroupParams } from './methods/messages/send-copy-group.js'\nexport { sendCopyGroup } from './methods/messages/send-copy-group.js'\nexport { sendMedia } from './methods/messages/send-media.js'\nexport { sendMediaGroup } from './methods/messages/send-media-group.js'\nexport type { QuoteParamsFrom } from './methods/messages/send-quote.js'\nexport { quoteWithText } from './methods/messages/send-quote.js'\nexport { quoteWithMedia } from './methods/messages/send-quote.js'\nexport { quoteWithMediaGroup } from './methods/messages/send-quote.js'\nexport { sendReaction } from './methods/messages/send-reaction.js'\nexport { replyText } from './methods/messages/send-reply.js'\nexport { replyMedia } from './methods/messages/send-reply.js'\nexport { replyMediaGroup } from './methods/messages/send-reply.js'\nexport { sendScheduled } from './methods/messages/send-scheduled.js'\nexport { sendText } from './methods/messages/send-text.js'\nexport { sendTyping } from './methods/messages/send-typing.js'\nexport { sendVote } from './methods/messages/send-vote.js'\nexport { translateMessage } from './methods/messages/translate-message.js'\nexport { translateText } from './methods/messages/translate-text.js'\nexport { unpinAllMessages } from './methods/messages/unpin-all-messages.js'\nexport { unpinMessage } from './methods/messages/unpin-message.js'\nexport { initTakeoutSession } from './methods/misc/init-takeout-session.js'\nexport { _normalizePrivacyRules } from './methods/misc/normalize-privacy-rules.js'\nexport { changeCloudPassword } from './methods/password/change-cloud-password.js'\nexport { enableCloudPassword } from './methods/password/enable-cloud-password.js'\nexport { verifyPasswordEmail } from './methods/password/password-email.js'\nexport { resendPasswordEmail } from './methods/password/password-email.js'\nexport { cancelPasswordEmail } from './methods/password/password-email.js'\nexport { removeCloudPassword } from './methods/password/remove-cloud-password.js'\nexport { applyBoost } from './methods/premium/apply-boost.js'\nexport type { CanApplyBoostResult } from './methods/premium/can-apply-boost.js'\nexport { canApplyBoost } from './methods/premium/can-apply-boost.js'\nexport { getBoostStats } from './methods/premium/get-boost-stats.js'\nexport { getBoosts } from './methods/premium/get-boosts.js'\nexport { getMyBoostSlots } from './methods/premium/get-my-boost-slots.js'\nexport { iterBoosters } from './methods/premium/iter-boosters.js'\nexport { addStickerToSet } from './methods/stickers/add-sticker-to-set.js'\nexport { createStickerSet } from './methods/stickers/create-sticker-set.js'\nexport { deleteStickerFromSet } from './methods/stickers/delete-sticker-from-set.js'\nexport { getCustomEmojis } from './methods/stickers/get-custom-emojis.js'\nexport { getCustomEmojisFromMessages } from './methods/stickers/get-custom-emojis.js'\nexport { getInstalledStickers } from './methods/stickers/get-installed-stickers.js'\nexport { getStickerSet } from './methods/stickers/get-sticker-set.js'\nexport { moveStickerInSet } from './methods/stickers/move-sticker-in-set.js'\nexport { setChatStickerSet } from './methods/stickers/set-chat-sticker-set.js'\nexport { setStickerSetThumb } from './methods/stickers/set-sticker-set-thumb.js'\nexport type { CanSendStoryResult } from './methods/stories/can-send-story.js'\nexport { canSendStory } from './methods/stories/can-send-story.js'\nexport { deleteStories } from './methods/stories/delete-stories.js'\nexport { editStory } from './methods/stories/edit-story.js'\nexport { getAllStories } from './methods/stories/get-all-stories.js'\nexport { getPeerStories } from './methods/stories/get-peer-stories.js'\nexport { getProfileStories } from './methods/stories/get-profile-stories.js'\nexport { getStoriesById } from './methods/stories/get-stories-by-id.js'\nexport { getStoriesInteractions } from './methods/stories/get-stories-interactions.js'\nexport { getStoryLink } from './methods/stories/get-story-link.js'\nexport { getStoryViewers } from './methods/stories/get-story-viewers.js'\nexport { hideMyStoriesViews } from './methods/stories/hide-my-stories-views.js'\nexport { incrementStoriesViews } from './methods/stories/increment-stories-views.js'\nexport { iterAllStories } from './methods/stories/iter-all-stories.js'\nexport { iterProfileStories } from './methods/stories/iter-profile-stories.js'\nexport { iterStoryViewers } from './methods/stories/iter-story-viewers.js'\nexport { readStories } from './methods/stories/read-stories.js'\nexport { reportStory } from './methods/stories/report-story.js'\nexport { sendStory } from './methods/stories/send-story.js'\nexport { sendStoryReaction } from './methods/stories/send-story-reaction.js'\nexport { togglePeerStoriesArchived } from './methods/stories/toggle-peer-stories-archived.js'\nexport { toggleStoriesPinned } from './methods/stories/toggle-stories-pinned.js'\nexport { blockUser } from './methods/users/block-user.js'\nexport { deleteProfilePhotos } from './methods/users/delete-profile-photos.js'\nexport { editCloseFriendsRaw } from './methods/users/edit-close-friends.js'\nexport { editCloseFriends } from './methods/users/edit-close-friends.js'\nexport { getCommonChats } from './methods/users/get-common-chats.js'\nexport { getGlobalTtl } from './methods/users/get-global-ttl.js'\nexport { getMe } from './methods/users/get-me.js'\nexport { getMyUsername } from './methods/users/get-my-username.js'\nexport { getProfilePhoto } from './methods/users/get-profile-photo.js'\nexport { getProfilePhotos } from './methods/users/get-profile-photos.js'\nexport { getUsers } from './methods/users/get-users.js'\nexport { iterProfilePhotos } from './methods/users/iter-profile-photos.js'\nexport { resolvePeer } from './methods/users/resolve-peer.js'\nexport { resolveUser } from './methods/users/resolve-peer.js'\nexport { resolveChannel } from './methods/users/resolve-peer.js'\nexport { resolvePeerMany } from './methods/users/resolve-peer-many.js'\nexport { setGlobalTtl } from './methods/users/set-global-ttl.js'\nexport { setMyEmojiStatus } from './methods/users/set-my-emoji-status.js'\nexport { setMyProfilePhoto } from './methods/users/set-my-profile-photo.js'\nexport { setMyUsername } from './methods/users/set-my-username.js'\nexport { setOffline } from './methods/users/set-offline.js'\nexport { unblockUser } from './methods/users/unblock-user.js'\nexport { updateProfile } from './methods/users/update-profile.js'\n"]}
|
|
@@ -75,6 +75,7 @@ class MtprotoSession {
|
|
|
75
75
|
this._authKeyTempSecondary.reset();
|
|
76
76
|
}
|
|
77
77
|
updateTimeOffset(offset) {
|
|
78
|
+
this.log.debug('time offset updated: %d', offset);
|
|
78
79
|
this._timeOffset = offset;
|
|
79
80
|
// lastMessageId was generated with (potentially) wrong time
|
|
80
81
|
// reset it to avoid bigger issues - at worst, we'll get bad_msg_notification
|
|
@@ -135,7 +136,7 @@ class MtprotoSession {
|
|
|
135
136
|
const timeMSec = timeTicks % 1000;
|
|
136
137
|
const random = (0, index_js_2.getRandomInt)(0xffff);
|
|
137
138
|
let messageId = new long_1.default((timeMSec << 21) | (random << 3) | 4, timeSec);
|
|
138
|
-
if (this._lastMessageId.
|
|
139
|
+
if (this._lastMessageId.ge(messageId)) {
|
|
139
140
|
messageId = this._lastMessageId.add(4);
|
|
140
141
|
}
|
|
141
142
|
this._lastMessageId = messageId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtproto-session.js","sourceRoot":"","sources":["../../../src/network/mtproto-session.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { mtp, tl } from '@mtcute/tl'\nimport { TlBinaryWriter, TlReaderMap, TlSerializationCounter, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { MtcuteError } from '../types/index.js'\nimport {\n compareLongs,\n ControllablePromise,\n Deque,\n getRandomInt,\n ICryptoProvider,\n Logger,\n LongMap,\n LruSet,\n randomLong,\n SortedArray,\n} from '../utils/index.js'\nimport { AuthKey } from './auth-key.js'\nimport { ServerSaltManager } from './server-salt.js'\n\nexport interface PendingRpc {\n method: string\n data: Uint8Array\n promise: ControllablePromise\n stack?: string\n gzipOverhead?: number\n\n chainId?: string | number\n invokeAfter?: Long\n\n sent?: boolean\n done?: boolean\n msgId?: Long\n seqNo?: number\n containerId?: Long\n acked?: boolean\n initConn?: boolean\n getState?: number\n cancelled?: boolean\n timeout?: NodeJS.Timeout\n}\n\nexport type PendingMessage =\n | {\n _: 'rpc'\n rpc: PendingRpc\n }\n | {\n _: 'container'\n msgIds: Long[]\n }\n | {\n _: 'state'\n msgIds: Long[]\n containerId: Long\n }\n | {\n _: 'resend'\n msgIds: Long[]\n containerId: Long\n }\n | {\n _: 'ping'\n pingId: Long\n containerId: Long\n }\n | {\n _: 'destroy_session'\n sessionId: Long\n containerId: Long\n }\n | {\n _: 'cancel'\n msgId: Long\n containerId: Long\n }\n | {\n _: 'future_salts'\n containerId: Long\n }\n | {\n _: 'bind'\n promise: ControllablePromise\n }\n\n/**\n * Class encapsulating a single MTProto session and storing\n * all the relevant state\n */\nexport class MtprotoSession {\n _sessionId = randomLong()\n\n _authKey = new AuthKey(this._crypto, this.log, this._readerMap)\n _authKeyTemp = new AuthKey(this._crypto, this.log, this._readerMap)\n _authKeyTempSecondary = new AuthKey(this._crypto, this.log, this._readerMap)\n\n _timeOffset = 0\n _lastMessageId = Long.ZERO\n _seqNo = 0\n\n /// state ///\n // recent msg ids\n recentOutgoingMsgIds = new LruSet<Long>(1000, true)\n recentIncomingMsgIds = new LruSet<Long>(1000, true)\n\n // queues\n queuedRpc = new Deque<PendingRpc>()\n queuedAcks: Long[] = []\n queuedStateReq: Long[] = []\n queuedResendReq: Long[] = []\n queuedCancelReq: Long[] = []\n getStateSchedule = new SortedArray<PendingRpc>([], (a, b) => a.getState! - b.getState!)\n\n chains = new Map<string | number, Long>()\n chainsPendingFails = new Map<string | number, SortedArray<PendingRpc>>()\n\n // requests info\n pendingMessages = new LongMap<PendingMessage>()\n destroySessionIdToMsgId = new LongMap<Long>()\n\n lastPingRtt = NaN\n lastPingTime = 0\n lastPingMsgId = Long.ZERO\n lastSessionCreatedUid = Long.ZERO\n\n initConnectionCalled = false\n authorizationPending = false\n\n next429Timeout = 1000\n current429Timeout?: NodeJS.Timeout\n next429ResetTimeout?: NodeJS.Timeout\n\n constructor(\n readonly _crypto: ICryptoProvider,\n readonly log: Logger,\n readonly _readerMap: TlReaderMap,\n readonly _writerMap: TlWriterMap,\n readonly _salts: ServerSaltManager,\n ) {\n this.log.prefix = `[SESSION ${this._sessionId.toString(16)}] `\n }\n\n get hasPendingMessages(): boolean {\n return Boolean(\n this.queuedRpc.length ||\n this.queuedAcks.length ||\n this.queuedStateReq.length ||\n this.queuedResendReq.length,\n )\n }\n\n /**\n * Reset session by resetting auth key(s) and session state\n */\n reset(withAuthKey = false): void {\n if (withAuthKey) {\n this.resetAuthKey()\n }\n\n clearTimeout(this.current429Timeout)\n this.resetState(withAuthKey)\n this.resetLastPing(true)\n }\n\n resetAuthKey(): void {\n this._authKey.reset()\n this._authKeyTemp.reset()\n this._authKeyTempSecondary.reset()\n }\n\n updateTimeOffset(offset: number) {\n this._timeOffset = offset\n // lastMessageId was generated with (potentially) wrong time\n // reset it to avoid bigger issues - at worst, we'll get bad_msg_notification\n this._lastMessageId = Long.ZERO\n }\n\n /**\n * Reset session state and generate a new session ID.\n *\n * By default, also cancels any pending RPC requests.\n * If `keepPending` is set to `true`, pending requests will be kept\n */\n resetState(keepPending = false): void {\n this._lastMessageId = Long.ZERO\n this._seqNo = 0\n\n this._sessionId = randomLong()\n this.log.debug('session reset, new sid = %h', this._sessionId)\n this.log.prefix = `[SESSION ${this._sessionId.toString(16)}] `\n\n // reset session state\n\n if (!keepPending) {\n for (const info of this.pendingMessages.values()) {\n if (info._ === 'rpc') {\n info.rpc.promise.reject(new MtcuteError('Session is reset'))\n }\n }\n this.pendingMessages.clear()\n }\n\n this.recentOutgoingMsgIds.clear()\n this.recentIncomingMsgIds.clear()\n\n if (!keepPending) {\n while (this.queuedRpc.length) {\n const rpc = this.queuedRpc.popFront()!\n\n if (rpc.sent === false) {\n rpc.promise.reject(new MtcuteError('Session is reset'))\n }\n }\n }\n\n this.queuedAcks.length = 0\n this.queuedStateReq.length = 0\n this.queuedResendReq.length = 0\n this.queuedCancelReq.length = 0\n this.getStateSchedule.clear()\n this.chains.clear()\n this.chainsPendingFails.clear()\n }\n\n enqueueRpc(rpc: PendingRpc, force?: boolean): boolean {\n // already queued or cancelled\n if ((!force && !rpc.sent) || rpc.cancelled) return false\n\n rpc.sent = false\n rpc.containerId = undefined\n this.log.debug('enqueued %s for sending (msg_id = %s)', rpc.method, rpc.msgId || 'n/a')\n this.queuedRpc.pushBack(rpc)\n\n return true\n }\n\n getMessageId(): Long {\n const timeTicks = Date.now()\n const timeSec = Math.floor(timeTicks / 1000) - this._timeOffset\n const timeMSec = timeTicks % 1000\n const random = getRandomInt(0xffff)\n\n let messageId = new Long((timeMSec << 21) | (random << 3) | 4, timeSec)\n\n if (this._lastMessageId.gt(messageId)) {\n messageId = this._lastMessageId.add(4)\n }\n\n this._lastMessageId = messageId\n\n return messageId\n }\n\n getSeqNo(isContentRelated = true): number {\n let seqNo = this._seqNo\n\n if (isContentRelated) {\n seqNo += 1\n this._seqNo += 2\n }\n\n return seqNo\n }\n\n /** Encrypt a single MTProto message using session's keys */\n encryptMessage(message: Uint8Array): Uint8Array {\n const key = this._authKeyTemp.ready ? this._authKeyTemp : this._authKey\n\n return key.encryptMessage(message, this._salts.currentSalt, this._sessionId)\n }\n\n /** Decrypt a single MTProto message using session's keys */\n decryptMessage(data: Uint8Array, callback: Parameters<AuthKey['decryptMessage']>[2]): void {\n if (!this._authKey.ready) throw new MtcuteError('Keys are not set up!')\n\n const authKeyId = data.subarray(0, 8)\n\n let key: AuthKey\n\n if (this._authKey.match(authKeyId)) {\n key = this._authKey\n } else if (this._authKeyTemp.match(authKeyId)) {\n key = this._authKeyTemp\n } else if (this._authKeyTempSecondary.match(authKeyId)) {\n key = this._authKeyTempSecondary\n } else {\n this.log.warn(\n 'received message with unknown authKey = %h (expected %h or %h or %h)',\n authKeyId,\n this._authKey.id,\n this._authKeyTemp.id,\n this._authKeyTempSecondary.id,\n )\n\n return\n }\n\n return key.decryptMessage(data, this._sessionId, callback)\n }\n\n writeMessage(\n writer: TlBinaryWriter,\n content: tl.TlObject | mtp.TlObject | Uint8Array,\n isContentRelated = true,\n ): Long {\n const messageId = this.getMessageId()\n const seqNo = this.getSeqNo(isContentRelated)\n\n const length = ArrayBuffer.isView(content) ?\n content.length :\n TlSerializationCounter.countNeededBytes(writer.objectMap!, content)\n\n writer.long(messageId)\n writer.int(seqNo)\n writer.uint(length)\n if (ArrayBuffer.isView(content)) writer.raw(content)\n else writer.object(content as tl.TlObject)\n\n return messageId\n }\n\n onTransportFlood(callback: () => void) {\n if (this.current429Timeout) return // already waiting\n\n // all active queries must be resent after a timeout\n this.resetLastPing(true)\n\n const timeout = this.next429Timeout\n\n this.next429Timeout = Math.min(this.next429Timeout * 2, 32000)\n clearTimeout(this.current429Timeout)\n clearTimeout(this.next429ResetTimeout)\n\n this.current429Timeout = setTimeout(() => {\n this.current429Timeout = undefined\n callback()\n }, timeout)\n this.next429ResetTimeout = setTimeout(() => {\n this.next429ResetTimeout = undefined\n this.next429Timeout = 1000\n }, 60000)\n\n this.log.debug('transport flood, waiting for %d ms before proceeding', timeout)\n\n return Date.now() + timeout\n }\n\n resetLastPing(withTime = false): void {\n if (withTime) this.lastPingTime = 0\n\n if (!this.lastPingMsgId.isZero()) {\n this.pendingMessages.delete(this.lastPingMsgId)\n }\n\n this.lastPingMsgId = Long.ZERO\n }\n\n addToChain(chainId: string | number, msgId: Long): Long | undefined {\n const prevMsgId = this.chains.get(chainId)\n this.chains.set(chainId, msgId)\n\n this.log.debug('added message %l to chain %s (prev: %l)', msgId, chainId, prevMsgId)\n\n return prevMsgId\n }\n\n removeFromChain(chainId: string | number, msgId: Long): void {\n const lastMsgId = this.chains.get(chainId)\n\n if (!lastMsgId) {\n this.log.warn('tried to remove message %l from empty chain %s', msgId, chainId)\n\n return\n }\n\n if (lastMsgId.eq(msgId)) {\n // last message of the chain, remove it\n this.log.debug('chain %s: exhausted, last message %l', msgId, chainId)\n this.chains.delete(chainId)\n }\n\n // do nothing\n }\n\n getPendingChainedFails(chainId: string | number): SortedArray<PendingRpc> {\n let arr = this.chainsPendingFails.get(chainId)\n\n if (!arr) {\n arr = new SortedArray<PendingRpc>([], (a, b) => compareLongs(a.invokeAfter!, b.invokeAfter!))\n this.chainsPendingFails.set(chainId, arr)\n }\n\n return arr\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"mtproto-session.js","sourceRoot":"","sources":["../../../src/network/mtproto-session.ts"],"names":[],"mappings":"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","sourcesContent":["import Long from 'long'\n\nimport { mtp, tl } from '@mtcute/tl'\nimport { TlBinaryWriter, TlReaderMap, TlSerializationCounter, TlWriterMap } from '@mtcute/tl-runtime'\n\nimport { MtcuteError } from '../types/index.js'\nimport {\n compareLongs,\n ControllablePromise,\n Deque,\n getRandomInt,\n ICryptoProvider,\n Logger,\n LongMap,\n LruSet,\n randomLong,\n SortedArray,\n} from '../utils/index.js'\nimport { AuthKey } from './auth-key.js'\nimport { ServerSaltManager } from './server-salt.js'\n\nexport interface PendingRpc {\n method: string\n data: Uint8Array\n promise: ControllablePromise\n stack?: string\n gzipOverhead?: number\n\n chainId?: string | number\n invokeAfter?: Long\n\n sent?: boolean\n done?: boolean\n msgId?: Long\n seqNo?: number\n containerId?: Long\n acked?: boolean\n initConn?: boolean\n getState?: number\n cancelled?: boolean\n timeout?: NodeJS.Timeout\n}\n\nexport type PendingMessage =\n | {\n _: 'rpc'\n rpc: PendingRpc\n }\n | {\n _: 'container'\n msgIds: Long[]\n }\n | {\n _: 'state'\n msgIds: Long[]\n containerId: Long\n }\n | {\n _: 'resend'\n msgIds: Long[]\n containerId: Long\n }\n | {\n _: 'ping'\n pingId: Long\n containerId: Long\n }\n | {\n _: 'destroy_session'\n sessionId: Long\n containerId: Long\n }\n | {\n _: 'cancel'\n msgId: Long\n containerId: Long\n }\n | {\n _: 'future_salts'\n containerId: Long\n }\n | {\n _: 'bind'\n promise: ControllablePromise\n }\n\n/**\n * Class encapsulating a single MTProto session and storing\n * all the relevant state\n */\nexport class MtprotoSession {\n _sessionId = randomLong()\n\n _authKey = new AuthKey(this._crypto, this.log, this._readerMap)\n _authKeyTemp = new AuthKey(this._crypto, this.log, this._readerMap)\n _authKeyTempSecondary = new AuthKey(this._crypto, this.log, this._readerMap)\n\n _timeOffset = 0\n _lastMessageId = Long.ZERO\n _seqNo = 0\n\n /// state ///\n // recent msg ids\n recentOutgoingMsgIds = new LruSet<Long>(1000, true)\n recentIncomingMsgIds = new LruSet<Long>(1000, true)\n\n // queues\n queuedRpc = new Deque<PendingRpc>()\n queuedAcks: Long[] = []\n queuedStateReq: Long[] = []\n queuedResendReq: Long[] = []\n queuedCancelReq: Long[] = []\n getStateSchedule = new SortedArray<PendingRpc>([], (a, b) => a.getState! - b.getState!)\n\n chains = new Map<string | number, Long>()\n chainsPendingFails = new Map<string | number, SortedArray<PendingRpc>>()\n\n // requests info\n pendingMessages = new LongMap<PendingMessage>()\n destroySessionIdToMsgId = new LongMap<Long>()\n\n lastPingRtt = NaN\n lastPingTime = 0\n lastPingMsgId = Long.ZERO\n lastSessionCreatedUid = Long.ZERO\n\n initConnectionCalled = false\n authorizationPending = false\n\n next429Timeout = 1000\n current429Timeout?: NodeJS.Timeout\n next429ResetTimeout?: NodeJS.Timeout\n\n constructor(\n readonly _crypto: ICryptoProvider,\n readonly log: Logger,\n readonly _readerMap: TlReaderMap,\n readonly _writerMap: TlWriterMap,\n readonly _salts: ServerSaltManager,\n ) {\n this.log.prefix = `[SESSION ${this._sessionId.toString(16)}] `\n }\n\n get hasPendingMessages(): boolean {\n return Boolean(\n this.queuedRpc.length ||\n this.queuedAcks.length ||\n this.queuedStateReq.length ||\n this.queuedResendReq.length,\n )\n }\n\n /**\n * Reset session by resetting auth key(s) and session state\n */\n reset(withAuthKey = false): void {\n if (withAuthKey) {\n this.resetAuthKey()\n }\n\n clearTimeout(this.current429Timeout)\n this.resetState(withAuthKey)\n this.resetLastPing(true)\n }\n\n resetAuthKey(): void {\n this._authKey.reset()\n this._authKeyTemp.reset()\n this._authKeyTempSecondary.reset()\n }\n\n updateTimeOffset(offset: number) {\n this.log.debug('time offset updated: %d', offset)\n this._timeOffset = offset\n // lastMessageId was generated with (potentially) wrong time\n // reset it to avoid bigger issues - at worst, we'll get bad_msg_notification\n this._lastMessageId = Long.ZERO\n }\n\n /**\n * Reset session state and generate a new session ID.\n *\n * By default, also cancels any pending RPC requests.\n * If `keepPending` is set to `true`, pending requests will be kept\n */\n resetState(keepPending = false): void {\n this._lastMessageId = Long.ZERO\n this._seqNo = 0\n\n this._sessionId = randomLong()\n this.log.debug('session reset, new sid = %h', this._sessionId)\n this.log.prefix = `[SESSION ${this._sessionId.toString(16)}] `\n\n // reset session state\n\n if (!keepPending) {\n for (const info of this.pendingMessages.values()) {\n if (info._ === 'rpc') {\n info.rpc.promise.reject(new MtcuteError('Session is reset'))\n }\n }\n this.pendingMessages.clear()\n }\n\n this.recentOutgoingMsgIds.clear()\n this.recentIncomingMsgIds.clear()\n\n if (!keepPending) {\n while (this.queuedRpc.length) {\n const rpc = this.queuedRpc.popFront()!\n\n if (rpc.sent === false) {\n rpc.promise.reject(new MtcuteError('Session is reset'))\n }\n }\n }\n\n this.queuedAcks.length = 0\n this.queuedStateReq.length = 0\n this.queuedResendReq.length = 0\n this.queuedCancelReq.length = 0\n this.getStateSchedule.clear()\n this.chains.clear()\n this.chainsPendingFails.clear()\n }\n\n enqueueRpc(rpc: PendingRpc, force?: boolean): boolean {\n // already queued or cancelled\n if ((!force && !rpc.sent) || rpc.cancelled) return false\n\n rpc.sent = false\n rpc.containerId = undefined\n this.log.debug('enqueued %s for sending (msg_id = %s)', rpc.method, rpc.msgId || 'n/a')\n this.queuedRpc.pushBack(rpc)\n\n return true\n }\n\n getMessageId(): Long {\n const timeTicks = Date.now()\n const timeSec = Math.floor(timeTicks / 1000) - this._timeOffset\n const timeMSec = timeTicks % 1000\n const random = getRandomInt(0xffff)\n\n let messageId = new Long((timeMSec << 21) | (random << 3) | 4, timeSec)\n\n if (this._lastMessageId.ge(messageId)) {\n messageId = this._lastMessageId.add(4)\n }\n\n this._lastMessageId = messageId\n\n return messageId\n }\n\n getSeqNo(isContentRelated = true): number {\n let seqNo = this._seqNo\n\n if (isContentRelated) {\n seqNo += 1\n this._seqNo += 2\n }\n\n return seqNo\n }\n\n /** Encrypt a single MTProto message using session's keys */\n encryptMessage(message: Uint8Array): Uint8Array {\n const key = this._authKeyTemp.ready ? this._authKeyTemp : this._authKey\n\n return key.encryptMessage(message, this._salts.currentSalt, this._sessionId)\n }\n\n /** Decrypt a single MTProto message using session's keys */\n decryptMessage(data: Uint8Array, callback: Parameters<AuthKey['decryptMessage']>[2]): void {\n if (!this._authKey.ready) throw new MtcuteError('Keys are not set up!')\n\n const authKeyId = data.subarray(0, 8)\n\n let key: AuthKey\n\n if (this._authKey.match(authKeyId)) {\n key = this._authKey\n } else if (this._authKeyTemp.match(authKeyId)) {\n key = this._authKeyTemp\n } else if (this._authKeyTempSecondary.match(authKeyId)) {\n key = this._authKeyTempSecondary\n } else {\n this.log.warn(\n 'received message with unknown authKey = %h (expected %h or %h or %h)',\n authKeyId,\n this._authKey.id,\n this._authKeyTemp.id,\n this._authKeyTempSecondary.id,\n )\n\n return\n }\n\n return key.decryptMessage(data, this._sessionId, callback)\n }\n\n writeMessage(\n writer: TlBinaryWriter,\n content: tl.TlObject | mtp.TlObject | Uint8Array,\n isContentRelated = true,\n ): Long {\n const messageId = this.getMessageId()\n const seqNo = this.getSeqNo(isContentRelated)\n\n const length = ArrayBuffer.isView(content) ?\n content.length :\n TlSerializationCounter.countNeededBytes(writer.objectMap!, content)\n\n writer.long(messageId)\n writer.int(seqNo)\n writer.uint(length)\n if (ArrayBuffer.isView(content)) writer.raw(content)\n else writer.object(content as tl.TlObject)\n\n return messageId\n }\n\n onTransportFlood(callback: () => void) {\n if (this.current429Timeout) return // already waiting\n\n // all active queries must be resent after a timeout\n this.resetLastPing(true)\n\n const timeout = this.next429Timeout\n\n this.next429Timeout = Math.min(this.next429Timeout * 2, 32000)\n clearTimeout(this.current429Timeout)\n clearTimeout(this.next429ResetTimeout)\n\n this.current429Timeout = setTimeout(() => {\n this.current429Timeout = undefined\n callback()\n }, timeout)\n this.next429ResetTimeout = setTimeout(() => {\n this.next429ResetTimeout = undefined\n this.next429Timeout = 1000\n }, 60000)\n\n this.log.debug('transport flood, waiting for %d ms before proceeding', timeout)\n\n return Date.now() + timeout\n }\n\n resetLastPing(withTime = false): void {\n if (withTime) this.lastPingTime = 0\n\n if (!this.lastPingMsgId.isZero()) {\n this.pendingMessages.delete(this.lastPingMsgId)\n }\n\n this.lastPingMsgId = Long.ZERO\n }\n\n addToChain(chainId: string | number, msgId: Long): Long | undefined {\n const prevMsgId = this.chains.get(chainId)\n this.chains.set(chainId, msgId)\n\n this.log.debug('added message %l to chain %s (prev: %l)', msgId, chainId, prevMsgId)\n\n return prevMsgId\n }\n\n removeFromChain(chainId: string | number, msgId: Long): void {\n const lastMsgId = this.chains.get(chainId)\n\n if (!lastMsgId) {\n this.log.warn('tried to remove message %l from empty chain %s', msgId, chainId)\n\n return\n }\n\n if (lastMsgId.eq(msgId)) {\n // last message of the chain, remove it\n this.log.debug('chain %s: exhausted, last message %l', msgId, chainId)\n this.chains.delete(chainId)\n }\n\n // do nothing\n }\n\n getPendingChainedFails(chainId: string | number): SortedArray<PendingRpc> {\n let arr = this.chainsPendingFails.get(chainId)\n\n if (!arr) {\n arr = new SortedArray<PendingRpc>([], (a, b) => compareLongs(a.invokeAfter!, b.invokeAfter!))\n this.chainsPendingFails.set(chainId, arr)\n }\n\n return arr\n }\n}\n"]}
|
|
@@ -717,6 +717,7 @@ class SessionConnection extends persistent_connection_js_1.PersistentConnection
|
|
|
717
717
|
// called when all the pending messages are to be resent
|
|
718
718
|
// e.g. when server returns 429
|
|
719
719
|
// most service messages can be omitted as stale
|
|
720
|
+
this.log.debug('all messages failed because of %s', reason);
|
|
720
721
|
for (const msgId of this._session.pendingMessages.keys()) {
|
|
721
722
|
const info = this._session.pendingMessages.get(msgId);
|
|
722
723
|
switch (info._) {
|
|
@@ -725,6 +726,7 @@ class SessionConnection extends persistent_connection_js_1.PersistentConnection
|
|
|
725
726
|
case 'resend':
|
|
726
727
|
case 'ping':
|
|
727
728
|
// no longer relevant
|
|
729
|
+
this.log.debug('forgetting about %s message %l', info._, msgId);
|
|
728
730
|
this._session.pendingMessages.delete(msgId);
|
|
729
731
|
break;
|
|
730
732
|
default:
|
|
@@ -1492,10 +1494,12 @@ class SessionConnection extends persistent_connection_js_1.PersistentConnection
|
|
|
1492
1494
|
// requires them to be >= than the contained messages
|
|
1493
1495
|
packetSize = writer.pos;
|
|
1494
1496
|
const containerId = this._session.getMessageId();
|
|
1497
|
+
const seqNo = this._session.getSeqNo(false);
|
|
1498
|
+
this.log.debug('container: msg_id assigned %l, seqno: %d', containerId, seqNo);
|
|
1495
1499
|
writer.pos = 0;
|
|
1496
1500
|
rootMsgId = containerId;
|
|
1497
1501
|
writer.long(this._registerOutgoingMsgId(containerId));
|
|
1498
|
-
writer.uint(
|
|
1502
|
+
writer.uint(seqNo);
|
|
1499
1503
|
writer.uint(packetSize - 16);
|
|
1500
1504
|
writer.pos = packetSize;
|
|
1501
1505
|
const msgIds = [];
|