@mtkruto/node 0.153.0 → 0.160.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/esm/3_types.d.ts +3 -0
- package/esm/3_types.d.ts.map +1 -1
- package/esm/3_types.js +3 -0
- package/esm/4_constants.d.ts +1 -0
- package/esm/4_constants.d.ts.map +1 -1
- package/esm/4_constants.js +1 -0
- package/esm/client/0_markdown.js +4 -4
- package/esm/client/0_params.d.ts +11 -1
- package/esm/client/0_params.d.ts.map +1 -1
- package/esm/client/1_client_generic.d.ts +100 -3
- package/esm/client/1_client_generic.d.ts.map +1 -1
- package/esm/client/1_client_plain.d.ts +1 -1
- package/esm/client/1_client_plain.d.ts.map +1 -1
- package/esm/client/1_client_plain.js +25 -13
- package/esm/client/2_client_encrypted.d.ts +6 -3
- package/esm/client/2_client_encrypted.d.ts.map +1 -1
- package/esm/client/2_client_encrypted.js +166 -49
- package/esm/client/2_file_manager.js +1 -1
- package/esm/client/2_network_statistics_manager.d.ts.map +1 -1
- package/esm/client/2_network_statistics_manager.js +3 -2
- package/esm/client/2_payment_manager.js +2 -2
- package/esm/client/2_takeout_manager.js +2 -2
- package/esm/client/2_update_manager.d.ts.map +1 -1
- package/esm/client/2_update_manager.js +16 -11
- package/esm/client/3_account_manager.js +3 -3
- package/esm/client/3_message_manager.d.ts +11 -0
- package/esm/client/3_message_manager.d.ts.map +1 -1
- package/esm/client/3_message_manager.js +195 -74
- package/esm/client/3_sticker_set_manager.js +3 -3
- package/esm/client/3_video_chat_manager.js +1 -1
- package/esm/client/4_callback_query_manager.js +2 -2
- package/esm/client/4_chat_list_manager.js +3 -3
- package/esm/client/4_chat_manager.d.ts +3 -2
- package/esm/client/4_chat_manager.d.ts.map +1 -1
- package/esm/client/4_chat_manager.js +12 -5
- package/esm/client/4_contact_manager.js +1 -1
- package/esm/client/4_gift_manager.js +11 -11
- package/esm/client/4_inline_query_manager.js +1 -1
- package/esm/client/4_story_manager.d.ts +3 -1
- package/esm/client/4_story_manager.d.ts.map +1 -1
- package/esm/client/4_story_manager.js +17 -3
- package/esm/client/6_client.d.ts +102 -3
- package/esm/client/6_client.d.ts.map +1 -1
- package/esm/client/6_client.js +130 -2
- package/esm/client/6_client_dispatcher.d.ts +100 -3
- package/esm/client/6_client_dispatcher.d.ts.map +1 -1
- package/esm/client/6_client_dispatcher.js +126 -1
- package/esm/connection/0_get_tls_header.d.ts.map +1 -1
- package/esm/connection/0_get_tls_header.js +19 -0
- package/esm/connection/1_connection_web_socket.js +2 -2
- package/esm/session/0_session_state.d.ts +1 -0
- package/esm/session/0_session_state.d.ts.map +1 -1
- package/esm/session/0_session_state.js +8 -4
- package/esm/session/1_session.d.ts +1 -0
- package/esm/session/1_session.d.ts.map +1 -1
- package/esm/session/1_session.js +3 -0
- package/esm/session/2_session_encrypted.d.ts +11 -6
- package/esm/session/2_session_encrypted.d.ts.map +1 -1
- package/esm/session/2_session_encrypted.js +20 -12
- package/esm/storage/1_utilities.js +2 -2
- package/esm/transport/2_transport_provider_web_socket.js +1 -1
- package/esm/types/0_button_style.js +1 -1
- package/esm/types/0_chat_member_rights.js +34 -34
- package/esm/types/0_chat_photo.js +2 -2
- package/esm/types/0_dice.d.ts +1 -1
- package/esm/types/0_dice.d.ts.map +1 -1
- package/esm/types/0_giveaway_parameters.js +1 -1
- package/esm/types/0_live_stream_channel.d.ts +1 -1
- package/esm/types/0_live_stream_channel.d.ts.map +1 -1
- package/esm/types/0_report_reason.d.ts +53 -0
- package/esm/types/0_report_reason.d.ts.map +1 -0
- package/esm/types/0_report_reason.js +45 -0
- package/esm/types/0_story_report_option.d.ts +26 -0
- package/esm/types/0_story_report_option.d.ts.map +1 -0
- package/esm/types/0_story_report_option.js +25 -0
- package/esm/types/0_video_chat.js +2 -2
- package/esm/types/1_inline_keyboard_button.d.ts +2 -2
- package/esm/types/1_message_reaction.js +1 -1
- package/esm/types/1_sticker.js +1 -1
- package/esm/types/1_story_reaction.js +1 -1
- package/esm/types/1_story_report_result.d.ts +37 -0
- package/esm/types/1_story_report_result.d.ts.map +1 -0
- package/esm/types/1_story_report_result.js +36 -0
- package/esm/types/2_chat.js +2 -2
- package/esm/types/2_chat_member.js +3 -3
- package/esm/types/2_message_entity.js +1 -1
- package/esm/types/2_story_interactive_area.js +3 -3
- package/esm/types/3_chat_settings.js +1 -1
- package/esm/types/3_forward_header.js +3 -3
- package/esm/types/3_inline_query.js +1 -1
- package/esm/types/3_invite_link.js +2 -2
- package/esm/types/3_story.js +3 -3
- package/esm/types/4_gift.js +1 -1
- package/esm/types/5_gift_non_upgraded_information.js +8 -8
- package/esm/types/5_gift_upgraded_information.js +5 -5
- package/esm/types/6_poll_media.d.ts +1 -1
- package/esm/types/6_poll_media.d.ts.map +1 -1
- package/esm/types/7_inline_query_result.js +8 -8
- package/esm/types/7_poll_option.d.ts +1 -1
- package/esm/types/7_poll_option.d.ts.map +1 -1
- package/esm/types/8_inline_query_answer.js +1 -1
- package/esm/types/9_message.js +3 -3
- package/esm/utilities/0_env.js +1 -1
- package/package.json +1 -1
- package/script/3_types.d.ts +3 -0
- package/script/3_types.d.ts.map +1 -1
- package/script/3_types.js +3 -0
- package/script/4_constants.d.ts +1 -0
- package/script/4_constants.d.ts.map +1 -1
- package/script/4_constants.js +2 -1
- package/script/client/0_markdown.js +4 -4
- package/script/client/0_params.d.ts +11 -1
- package/script/client/0_params.d.ts.map +1 -1
- package/script/client/1_client_generic.d.ts +100 -3
- package/script/client/1_client_generic.d.ts.map +1 -1
- package/script/client/1_client_plain.d.ts +1 -1
- package/script/client/1_client_plain.d.ts.map +1 -1
- package/script/client/1_client_plain.js +24 -12
- package/script/client/2_client_encrypted.d.ts +6 -3
- package/script/client/2_client_encrypted.d.ts.map +1 -1
- package/script/client/2_client_encrypted.js +166 -49
- package/script/client/2_file_manager.js +1 -1
- package/script/client/2_network_statistics_manager.d.ts.map +1 -1
- package/script/client/2_network_statistics_manager.js +3 -2
- package/script/client/2_payment_manager.js +2 -2
- package/script/client/2_takeout_manager.js +2 -2
- package/script/client/2_update_manager.d.ts.map +1 -1
- package/script/client/2_update_manager.js +16 -11
- package/script/client/3_account_manager.js +3 -3
- package/script/client/3_message_manager.d.ts +11 -0
- package/script/client/3_message_manager.d.ts.map +1 -1
- package/script/client/3_message_manager.js +194 -73
- package/script/client/3_sticker_set_manager.js +3 -3
- package/script/client/3_video_chat_manager.js +1 -1
- package/script/client/4_callback_query_manager.js +2 -2
- package/script/client/4_chat_list_manager.js +3 -3
- package/script/client/4_chat_manager.d.ts +3 -2
- package/script/client/4_chat_manager.d.ts.map +1 -1
- package/script/client/4_chat_manager.js +11 -4
- package/script/client/4_contact_manager.js +1 -1
- package/script/client/4_gift_manager.js +11 -11
- package/script/client/4_inline_query_manager.js +1 -1
- package/script/client/4_story_manager.d.ts +3 -1
- package/script/client/4_story_manager.d.ts.map +1 -1
- package/script/client/4_story_manager.js +15 -1
- package/script/client/6_client.d.ts +102 -3
- package/script/client/6_client.d.ts.map +1 -1
- package/script/client/6_client.js +130 -2
- package/script/client/6_client_dispatcher.d.ts +100 -3
- package/script/client/6_client_dispatcher.d.ts.map +1 -1
- package/script/client/6_client_dispatcher.js +126 -1
- package/script/connection/0_get_tls_header.d.ts.map +1 -1
- package/script/connection/0_get_tls_header.js +19 -0
- package/script/connection/1_connection_web_socket.js +2 -2
- package/script/session/0_session_state.d.ts +1 -0
- package/script/session/0_session_state.d.ts.map +1 -1
- package/script/session/0_session_state.js +8 -4
- package/script/session/1_session.d.ts +1 -0
- package/script/session/1_session.d.ts.map +1 -1
- package/script/session/1_session.js +3 -0
- package/script/session/2_session_encrypted.d.ts +11 -6
- package/script/session/2_session_encrypted.d.ts.map +1 -1
- package/script/session/2_session_encrypted.js +20 -12
- package/script/storage/1_utilities.js +2 -2
- package/script/transport/2_transport_provider_web_socket.js +1 -1
- package/script/types/0_button_style.js +1 -1
- package/script/types/0_chat_member_rights.js +34 -34
- package/script/types/0_chat_photo.js +2 -2
- package/script/types/0_dice.d.ts +1 -1
- package/script/types/0_dice.d.ts.map +1 -1
- package/script/types/0_giveaway_parameters.js +1 -1
- package/script/types/0_live_stream_channel.d.ts +1 -1
- package/script/types/0_live_stream_channel.d.ts.map +1 -1
- package/script/types/0_report_reason.d.ts +53 -0
- package/script/types/0_report_reason.d.ts.map +1 -0
- package/script/types/0_report_reason.js +48 -0
- package/script/types/0_story_report_option.d.ts +26 -0
- package/script/types/0_story_report_option.d.ts.map +1 -0
- package/script/types/0_story_report_option.js +28 -0
- package/script/types/0_video_chat.js +2 -2
- package/script/types/1_inline_keyboard_button.d.ts +2 -2
- package/script/types/1_message_reaction.js +1 -1
- package/script/types/1_sticker.js +1 -1
- package/script/types/1_story_reaction.js +1 -1
- package/script/types/1_story_report_result.d.ts +37 -0
- package/script/types/1_story_report_result.d.ts.map +1 -0
- package/script/types/1_story_report_result.js +39 -0
- package/script/types/2_chat.js +2 -2
- package/script/types/2_chat_member.js +3 -3
- package/script/types/2_message_entity.js +1 -1
- package/script/types/2_story_interactive_area.js +3 -3
- package/script/types/3_chat_settings.js +1 -1
- package/script/types/3_forward_header.js +3 -3
- package/script/types/3_inline_query.js +1 -1
- package/script/types/3_invite_link.js +2 -2
- package/script/types/3_story.js +3 -3
- package/script/types/4_gift.js +1 -1
- package/script/types/5_gift_non_upgraded_information.js +8 -8
- package/script/types/5_gift_upgraded_information.js +5 -5
- package/script/types/6_poll_media.d.ts +1 -1
- package/script/types/6_poll_media.d.ts.map +1 -1
- package/script/types/7_inline_query_result.js +8 -8
- package/script/types/7_poll_option.d.ts +1 -1
- package/script/types/7_poll_option.d.ts.map +1 -1
- package/script/types/8_inline_query_answer.js +1 -1
- package/script/types/9_message.js +3 -3
- package/script/utilities/0_env.js +1 -1
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
var _a;
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
exports.ClientEncrypted = void 0;
|
|
24
|
+
const _0_deps_js_1 = require("../0_deps.js");
|
|
24
25
|
const _0_errors_js_1 = require("../0_errors.js");
|
|
25
26
|
const _1_utilities_js_1 = require("../1_utilities.js");
|
|
26
27
|
const _2_tl_js_1 = require("../2_tl.js");
|
|
27
|
-
const _3_errors_js_1 = require("../3_errors.js");
|
|
28
28
|
const _4_constants_js_1 = require("../4_constants.js");
|
|
29
29
|
const _4_errors_js_1 = require("../4_errors.js");
|
|
30
|
+
const _4_errors_js_2 = require("../4_errors.js");
|
|
30
31
|
const _4_session_js_1 = require("../4_session.js");
|
|
31
32
|
const _0_client_abstract_js_1 = require("./0_client_abstract.js");
|
|
32
33
|
const _0_utilities_js_1 = require("./0_utilities.js");
|
|
@@ -38,62 +39,155 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
38
39
|
static #AUTH_KEY_CREATION_MAX_TRIES = 10;
|
|
39
40
|
handlers = {};
|
|
40
41
|
#L;
|
|
41
|
-
#
|
|
42
|
+
#dc;
|
|
43
|
+
#apiId;
|
|
44
|
+
#params;
|
|
45
|
+
#authKey = new Uint8Array();
|
|
46
|
+
#authKeyId = 0n;
|
|
47
|
+
#temporaryAuthKey = new Uint8Array();
|
|
48
|
+
#temporaryAuthKeyExpiresIn = 0;
|
|
42
49
|
session;
|
|
43
50
|
#sentRequests = new Map();
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#deviceModel;
|
|
47
|
-
#langCode;
|
|
48
|
-
#langPack;
|
|
49
|
-
#systemLangCode;
|
|
50
|
-
#systemVersion;
|
|
51
|
-
#disableUpdates;
|
|
51
|
+
#isAuthKeyBound = false;
|
|
52
|
+
#isPerfectForwardSecrecyEnabled = false;
|
|
52
53
|
constructor(dc, apiId, params) {
|
|
53
54
|
super();
|
|
54
55
|
this.#L = (0, _1_utilities_js_1.getLogger)("ClientEncrypted").client(id++);
|
|
55
|
-
this.#
|
|
56
|
+
this.#dc = dc;
|
|
57
|
+
this.#apiId = apiId;
|
|
58
|
+
this.#params = params;
|
|
59
|
+
this.#isPerfectForwardSecrecyEnabled = params?.isPerfectForwardSecrecyEnabled ?? false;
|
|
56
60
|
this.session = new _4_session_js_1.SessionEncrypted(dc, params);
|
|
61
|
+
this.session.handlers.onTransportError = this.#onTransportError.bind(this);
|
|
57
62
|
this.session.handlers.onUpdate = this.#onUpdate.bind(this);
|
|
58
63
|
this.session.handlers.onNewServerSalt = this.#onNewServerSalt.bind(this);
|
|
59
64
|
this.session.handlers.onMessageFailed = this.#onMessageFailed.bind(this);
|
|
60
65
|
this.session.handlers.onRpcError = this.#onRpcError.bind(this);
|
|
61
66
|
this.session.handlers.onRpcResult = this.#onRpcResult.bind(this);
|
|
62
67
|
this.session.handlers.onPong = this.#onPong.bind(this);
|
|
63
|
-
this.#apiId = apiId;
|
|
64
|
-
this.#appVersion = params?.appVersion ?? _4_constants_js_1.APP_VERSION;
|
|
65
|
-
this.#deviceModel = params?.deviceModel ?? _4_constants_js_1.DEVICE_MODEL;
|
|
66
|
-
this.#langCode = params?.langCode ?? _4_constants_js_1.LANG_CODE;
|
|
67
|
-
this.#langPack = params?.langPack ?? _4_constants_js_1.LANG_PACK;
|
|
68
|
-
this.#systemLangCode = params?.systemLangCode ?? _4_constants_js_1.SYSTEM_LANG_CODE;
|
|
69
|
-
this.#systemVersion = params?.systemVersion ?? _4_constants_js_1.SYSTEM_VERSION;
|
|
70
|
-
this.#disableUpdates = params?.disableUpdates ?? false;
|
|
71
68
|
}
|
|
72
|
-
async
|
|
69
|
+
async #encryptMessage(message) {
|
|
70
|
+
const payloadWriter = new _2_tl_js_1.TLWriter();
|
|
71
|
+
payloadWriter.writeInt64((0, _1_utilities_js_1.getRandomId)());
|
|
72
|
+
payloadWriter.writeInt64((0, _1_utilities_js_1.getRandomId)());
|
|
73
|
+
payloadWriter.write(await (0, _2_tl_js_1.serializeMessage)(message));
|
|
74
|
+
let payload = payloadWriter.buffer;
|
|
75
|
+
const payloadSha1 = await (0, _1_utilities_js_1.sha1)(payload);
|
|
76
|
+
const messageKey = payloadSha1.subarray(4, 20);
|
|
77
|
+
payloadWriter.write(new Uint8Array((0, _1_utilities_js_1.mod)(-payload.byteLength, 16)));
|
|
78
|
+
payload = payloadWriter.buffer;
|
|
79
|
+
const sha1A = await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([messageKey, this.#authKey.subarray(0, 32)]));
|
|
80
|
+
const sha1B = await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([this.#authKey.slice(32, 48), messageKey, this.#authKey.slice(48, 64)]));
|
|
81
|
+
const sha1C = await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([this.#authKey.slice(64, 96), messageKey]));
|
|
82
|
+
const sha1D = await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([messageKey, this.#authKey.slice(96, 128)]));
|
|
83
|
+
const encryptionKey = (0, _0_deps_js_1.concat)([sha1A.slice(0, 8), sha1B.slice(8, 20), sha1C.slice(4, 16)]);
|
|
84
|
+
const encryptionIv = (0, _0_deps_js_1.concat)([sha1A.slice(8, 20), sha1B.slice(0, 8), sha1C.slice(16, 20), sha1D.slice(0, 8)]);
|
|
85
|
+
const encrypted = (0, _0_deps_js_1.ige256Encrypt)(payload, encryptionKey, encryptionIv);
|
|
86
|
+
const messageWriter = new _2_tl_js_1.TLWriter();
|
|
87
|
+
messageWriter.writeInt64(this.#authKeyId);
|
|
88
|
+
messageWriter.write(messageKey);
|
|
89
|
+
messageWriter.write(encrypted);
|
|
90
|
+
return messageWriter.buffer;
|
|
91
|
+
}
|
|
92
|
+
#connectPromise;
|
|
93
|
+
connect() {
|
|
94
|
+
return this.#connectPromise ??= this.#connect().finally(() => this.#connectPromise = undefined);
|
|
95
|
+
}
|
|
96
|
+
async #connect() {
|
|
73
97
|
if (!this.authKey.byteLength) {
|
|
74
98
|
await this.#createAuthKey();
|
|
75
99
|
}
|
|
100
|
+
else if (this.#isPerfectForwardSecrecyEnabled) {
|
|
101
|
+
this.#L.debug("creating temporary auth key");
|
|
102
|
+
await this.#createAuthKeyInner(true);
|
|
103
|
+
}
|
|
76
104
|
await super.connect();
|
|
105
|
+
if (this.#isPerfectForwardSecrecyEnabled) {
|
|
106
|
+
this.#isAuthKeyBound = false;
|
|
107
|
+
await this.#bindTemporaryAuthKey();
|
|
108
|
+
(0, _1_utilities_js_1.drop)(this.#refreshTemporaryAuthKey());
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
this.#isAuthKeyBound = true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
async #bindTemporaryAuthKey() {
|
|
115
|
+
const nonce = (0, _1_utilities_js_1.getRandomId)();
|
|
116
|
+
const expires_at = (0, _1_utilities_js_1.toUnixTimestamp)(new Date()) + _4_constants_js_1.TEMPORARY_AUTH_KEY_TTL;
|
|
117
|
+
this.#temporaryAuthKeyExpiresIn = (0, _1_utilities_js_1.fromUnixTimestamp)(expires_at).getTime() - Date.now();
|
|
118
|
+
const object = {
|
|
119
|
+
_: "bind_auth_key_inner",
|
|
120
|
+
perm_auth_key_id: this.#authKeyId,
|
|
121
|
+
nonce,
|
|
122
|
+
expires_at,
|
|
123
|
+
temp_auth_key_id: this.session.authKeyId,
|
|
124
|
+
temp_session_id: this.session.id,
|
|
125
|
+
};
|
|
126
|
+
const encrypted_message = await this.#encryptMessage({
|
|
127
|
+
_: "message",
|
|
128
|
+
seqno: 0,
|
|
129
|
+
msg_id: this.session.previewNextMessageId(),
|
|
130
|
+
body: _2_tl_js_1.Mtproto.serializeObject(object),
|
|
131
|
+
});
|
|
132
|
+
await this.invoke({
|
|
133
|
+
_: "auth.bindTempAuthKey",
|
|
134
|
+
perm_auth_key_id: this.#authKeyId,
|
|
135
|
+
nonce,
|
|
136
|
+
encrypted_message,
|
|
137
|
+
expires_at,
|
|
138
|
+
}), this.#isAuthKeyBound = true;
|
|
139
|
+
}
|
|
140
|
+
#temporaryAuthKeyTimeoutController;
|
|
141
|
+
async #refreshTemporaryAuthKey() {
|
|
142
|
+
this.#temporaryAuthKeyTimeoutController?.abort();
|
|
143
|
+
const controller = this.#temporaryAuthKeyTimeoutController = new AbortController();
|
|
144
|
+
await (0, _0_deps_js_1.delay)(Math.max(0, this.#temporaryAuthKeyExpiresIn - 5 * _0_deps_js_1.SECOND), { signal: controller.signal });
|
|
145
|
+
if (this.#temporaryAuthKeyTimeoutController !== controller) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
this.#temporaryAuthKeyTimeoutController = undefined;
|
|
149
|
+
this.#L.debug("reconnecting with a new temporary auth key");
|
|
150
|
+
this.disconnect();
|
|
151
|
+
(0, _1_utilities_js_1.drop)(this.connect());
|
|
77
152
|
}
|
|
78
153
|
disconnect() {
|
|
79
154
|
super.disconnect();
|
|
155
|
+
this.#temporaryAuthKeyTimeoutController?.abort();
|
|
156
|
+
this.#temporaryAuthKeyTimeoutController = undefined;
|
|
80
157
|
this.lastRequest = undefined;
|
|
158
|
+
const error = new _0_errors_js_1.ConnectionError("The connection was closed.");
|
|
159
|
+
for (const request of this.#sentRequests.values()) {
|
|
160
|
+
request.promiseWithResolvers.reject(error);
|
|
161
|
+
}
|
|
162
|
+
this.#sentRequests.clear();
|
|
81
163
|
}
|
|
82
164
|
#createAuthKeyPromise;
|
|
83
165
|
#createAuthKey() {
|
|
84
|
-
return this.#createAuthKeyPromise ??= this.#createAuthKeyInner().finally(() => {
|
|
166
|
+
return this.#createAuthKeyPromise ??= (this.#isPerfectForwardSecrecyEnabled ? Promise.all([this.#createAuthKeyInner(false), this.#createAuthKeyInner(true)]) : this.#createAuthKeyInner(false)).finally(() => {
|
|
85
167
|
this.#createAuthKeyPromise = undefined;
|
|
86
168
|
});
|
|
87
169
|
}
|
|
88
|
-
async #createAuthKeyInner() {
|
|
170
|
+
async #createAuthKeyInner(isTemporary) {
|
|
89
171
|
let lastErr;
|
|
90
172
|
let errored = false;
|
|
173
|
+
const plain = new _1_client_plain_js_1.ClientPlain(this.#dc, this.#params);
|
|
91
174
|
for (let i = 0; i < _a.#AUTH_KEY_CREATION_MAX_TRIES; ++i) {
|
|
92
175
|
try {
|
|
93
|
-
await
|
|
94
|
-
const [authKey, serverSalt] = await
|
|
95
|
-
|
|
96
|
-
|
|
176
|
+
await plain.connect();
|
|
177
|
+
const [authKey, serverSalt] = await plain.createAuthKey(isTemporary);
|
|
178
|
+
if (isTemporary) {
|
|
179
|
+
this.#temporaryAuthKey = authKey;
|
|
180
|
+
await this.session.setAuthKey(this.#temporaryAuthKey);
|
|
181
|
+
this.session.serverSalt = serverSalt;
|
|
182
|
+
this.#isConnectionInited = false;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
await this.setAuthKey(authKey);
|
|
186
|
+
}
|
|
187
|
+
if (!this.#isPerfectForwardSecrecyEnabled) {
|
|
188
|
+
await this.session.setAuthKey(authKey);
|
|
189
|
+
this.session.serverSalt = serverSalt;
|
|
190
|
+
}
|
|
97
191
|
errored = false;
|
|
98
192
|
break;
|
|
99
193
|
}
|
|
@@ -106,7 +200,7 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
106
200
|
this.#L.error("failed to create auth key:", err);
|
|
107
201
|
}
|
|
108
202
|
finally {
|
|
109
|
-
|
|
203
|
+
plain.disconnect();
|
|
110
204
|
}
|
|
111
205
|
}
|
|
112
206
|
if (errored) {
|
|
@@ -114,12 +208,19 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
114
208
|
}
|
|
115
209
|
}
|
|
116
210
|
get authKey() {
|
|
117
|
-
return this.session.authKey;
|
|
211
|
+
return this.#isPerfectForwardSecrecyEnabled ? this.#authKey : this.session.authKey;
|
|
118
212
|
}
|
|
119
213
|
async setAuthKey(authKey) {
|
|
120
|
-
|
|
214
|
+
if (this.#isPerfectForwardSecrecyEnabled) {
|
|
215
|
+
const hash = await (0, _1_utilities_js_1.sha1)(authKey);
|
|
216
|
+
this.#authKeyId = (0, _1_utilities_js_1.intFromBytes)(hash.slice(-8));
|
|
217
|
+
this.#authKey = authKey;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
await this.session.setAuthKey(authKey);
|
|
221
|
+
}
|
|
121
222
|
}
|
|
122
|
-
#
|
|
223
|
+
#isConnectionInited = false;
|
|
123
224
|
lastRequest;
|
|
124
225
|
async #send(function_) {
|
|
125
226
|
this.lastRequest = new Date();
|
|
@@ -128,27 +229,27 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
128
229
|
body = _2_tl_js_1.Mtproto.serializeObject(function_);
|
|
129
230
|
}
|
|
130
231
|
else {
|
|
131
|
-
if (this.#disableUpdates && !(0, _0_utilities_js_1.isMediaFunction)(function_)) {
|
|
232
|
+
if (this.#isAuthKeyBound && this.#params?.disableUpdates && !(0, _0_utilities_js_1.isMediaFunction)(function_)) {
|
|
132
233
|
function_ = { _: "invokeWithoutUpdates", query: function_ };
|
|
133
234
|
}
|
|
134
|
-
if (!this.#
|
|
235
|
+
if (this.#isAuthKeyBound && !this.#isConnectionInited) {
|
|
135
236
|
if (!this.#apiId) {
|
|
136
|
-
throw new
|
|
237
|
+
throw new _4_errors_js_1.InputError("apiId not set");
|
|
137
238
|
}
|
|
138
239
|
function_ = {
|
|
139
240
|
_: "initConnection",
|
|
140
241
|
api_id: this.#apiId,
|
|
141
|
-
app_version: this.#appVersion,
|
|
142
|
-
device_model: this.#deviceModel,
|
|
143
|
-
lang_code: this.#langCode,
|
|
144
|
-
lang_pack: this.#langPack,
|
|
242
|
+
app_version: this.#params?.appVersion ?? _4_constants_js_1.APP_VERSION,
|
|
243
|
+
device_model: this.#params?.deviceModel ?? _4_constants_js_1.DEVICE_MODEL,
|
|
244
|
+
lang_code: this.#params?.langCode ?? _4_constants_js_1.LANG_CODE,
|
|
245
|
+
lang_pack: this.#params?.langPack ?? _4_constants_js_1.LANG_PACK,
|
|
145
246
|
query: {
|
|
146
247
|
_: "invokeWithLayer",
|
|
147
248
|
layer: _2_tl_js_1.Api.LAYER,
|
|
148
249
|
query: function_,
|
|
149
250
|
},
|
|
150
|
-
system_lang_code: this.#systemLangCode,
|
|
151
|
-
system_version: this.#systemVersion,
|
|
251
|
+
system_lang_code: this.#params?.systemLangCode ?? _4_constants_js_1.SYSTEM_LANG_CODE,
|
|
252
|
+
system_version: this.#params?.systemVersion ?? _4_constants_js_1.SYSTEM_VERSION,
|
|
152
253
|
};
|
|
153
254
|
}
|
|
154
255
|
body = _2_tl_js_1.Api.serializeObject(function_);
|
|
@@ -193,6 +294,17 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
193
294
|
this.#sentRequests.set(messageId, sentRequest);
|
|
194
295
|
return await sentRequest.promiseWithResolvers.promise;
|
|
195
296
|
}
|
|
297
|
+
async #onTransportError(transportError) {
|
|
298
|
+
this.#L.error("transport error:", transportError);
|
|
299
|
+
if (!this.#isPerfectForwardSecrecyEnabled) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (transportError.code === -404) {
|
|
303
|
+
this.#L.debug("reconnecting with a new temporary auth key");
|
|
304
|
+
this.disconnect();
|
|
305
|
+
await this.connect();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
196
308
|
async #onUpdate(body) {
|
|
197
309
|
let type;
|
|
198
310
|
try {
|
|
@@ -200,18 +312,18 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
200
312
|
}
|
|
201
313
|
catch (err) {
|
|
202
314
|
this.#L.error("failed to deserialize update:", err);
|
|
203
|
-
this.handlers.onDeserializationError?.();
|
|
315
|
+
await this.handlers.onDeserializationError?.();
|
|
204
316
|
return;
|
|
205
317
|
}
|
|
206
318
|
if (_2_tl_js_1.Api.isOfEnum("Update", type) || _2_tl_js_1.Api.isOfEnum("Updates", type)) {
|
|
207
|
-
this.handlers.onUpdate?.(type);
|
|
319
|
+
await this.handlers.onUpdate?.(type);
|
|
208
320
|
}
|
|
209
321
|
else {
|
|
210
322
|
this.#L.warning("received unknown type:", (0, _0_utilities_js_1.repr)(type));
|
|
211
323
|
}
|
|
212
324
|
}
|
|
213
325
|
#onNewServerSalt(serverSalt) {
|
|
214
|
-
this.handlers.onNewServerSalt?.(serverSalt);
|
|
326
|
+
(0, _1_utilities_js_1.drop)(this.handlers.onNewServerSalt?.(serverSalt));
|
|
215
327
|
}
|
|
216
328
|
async #onMessageFailed(msgId, error) {
|
|
217
329
|
const request = this.#sentRequests.get(msgId);
|
|
@@ -226,17 +338,22 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
226
338
|
}
|
|
227
339
|
}
|
|
228
340
|
async #onRpcError(msgId, error) {
|
|
341
|
+
if (error.error_message === "AUTH_KEY_PERM_EMPTY" || error.error_message === "ENCRYPTED_MESSAGE_INVALID") {
|
|
342
|
+
this.#L.debug("reconnecting with a new temporary auth key because of", error.error_message);
|
|
343
|
+
this.disconnect();
|
|
344
|
+
await this.connect();
|
|
345
|
+
}
|
|
229
346
|
const request = this.#sentRequests.get(msgId);
|
|
230
347
|
this.#L.debug("received rpc_error with req_msg_id =", msgId, "for", request === undefined ? "unknown" : "known", "request");
|
|
231
348
|
if (request) {
|
|
232
349
|
this.#sentRequests.delete(msgId);
|
|
233
|
-
const reason = (0,
|
|
234
|
-
if (reason instanceof
|
|
235
|
-
this.#
|
|
350
|
+
const reason = (0, _4_errors_js_2.constructTelegramError)(error, request.call);
|
|
351
|
+
if (reason instanceof _4_errors_js_1.ConnectionNotInited) {
|
|
352
|
+
this.#isConnectionInited = false;
|
|
236
353
|
await this.#resend(request);
|
|
237
354
|
}
|
|
238
355
|
else {
|
|
239
|
-
request.promiseWithResolvers.reject((0,
|
|
356
|
+
request.promiseWithResolvers.reject((0, _4_errors_js_2.constructTelegramError)(error, request.call));
|
|
240
357
|
}
|
|
241
358
|
}
|
|
242
359
|
}
|
|
@@ -254,15 +371,15 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
254
371
|
catch (err) {
|
|
255
372
|
sentRequest.promiseWithResolvers.reject(err);
|
|
256
373
|
this.#L.error("failed to deserialize rpc_result body:", err);
|
|
257
|
-
this.handlers.onDeserializationError?.();
|
|
374
|
+
await this.handlers.onDeserializationError?.();
|
|
258
375
|
return;
|
|
259
376
|
}
|
|
260
377
|
finally {
|
|
261
378
|
this.#sentRequests.delete(msgId);
|
|
262
379
|
}
|
|
263
380
|
}
|
|
264
|
-
if (!this.#
|
|
265
|
-
this.#
|
|
381
|
+
if (!this.#isConnectionInited) {
|
|
382
|
+
this.#isConnectionInited = true;
|
|
266
383
|
}
|
|
267
384
|
}
|
|
268
385
|
#onPong(pong) {
|
|
@@ -470,7 +470,7 @@ class FileManager {
|
|
|
470
470
|
}
|
|
471
471
|
const big = fileId_.location.source.type === _3_types_js_1.PhotoSourceType.ChatPhotoBig;
|
|
472
472
|
const peer = await this.#c.getInputPeer(Number(fileId_.location.source.chatId));
|
|
473
|
-
const location = { _: "inputPeerPhotoFileLocation", big: big
|
|
473
|
+
const location = { _: "inputPeerPhotoFileLocation", big: big || undefined, peer, photo_id: fileId_.location.id };
|
|
474
474
|
yield* this.downloadInner(location, fileId_.dcId, params);
|
|
475
475
|
break;
|
|
476
476
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2_network_statistics_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_network_statistics_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"2_network_statistics_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_network_statistics_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,wBAAwB;;gBAIvB,CAAC,EAAE,CAAC;IAKV,oBAAoB;;;;;;;;;;IAmB1B,6BAA6B,CAAC,OAAO,EAAE,OAAO;sBAE5B,MAAM;uBAKL,MAAM;;CA2B1B"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.NetworkStatisticsManager = void 0;
|
|
23
|
+
const _0_misc_js_1 = require("../utilities/0_misc.js");
|
|
23
24
|
const _1_logger_js_1 = require("../utilities/1_logger.js");
|
|
24
25
|
class NetworkStatisticsManager {
|
|
25
26
|
#c;
|
|
@@ -51,12 +52,12 @@ class NetworkStatisticsManager {
|
|
|
51
52
|
read: (count) => {
|
|
52
53
|
const key = isMedia ? "netstat_media_read" : "netstat_messages_read";
|
|
53
54
|
this.#pendingWrites[key] = (this.#pendingWrites[key] ?? 0) + count;
|
|
54
|
-
this.#write();
|
|
55
|
+
(0, _0_misc_js_1.drop)(this.#write());
|
|
55
56
|
},
|
|
56
57
|
write: (count) => {
|
|
57
58
|
const key = isMedia ? "netstat_media_write" : "netstat_messages_write";
|
|
58
59
|
this.#pendingWrites[key] = (this.#pendingWrites[key] ?? 0) + count;
|
|
59
|
-
this.#write();
|
|
60
|
+
(0, _0_misc_js_1.drop)(this.#write());
|
|
60
61
|
},
|
|
61
62
|
};
|
|
62
63
|
}
|
|
@@ -51,7 +51,7 @@ class PaymentManager {
|
|
|
51
51
|
if (!queryId) {
|
|
52
52
|
throw new _0_errors_js_1.InputError("Invalid pre-checkout query ID");
|
|
53
53
|
}
|
|
54
|
-
await this.#c.invoke({ _: "messages.setBotPrecheckoutResults", query_id: queryId, error: params?.error, success: ok
|
|
54
|
+
await this.#c.invoke({ _: "messages.setBotPrecheckoutResults", query_id: queryId, error: params?.error, success: ok || undefined });
|
|
55
55
|
}
|
|
56
56
|
async refundStarPayment(userId, telegramPaymentChargeId) {
|
|
57
57
|
this.#c.storage.assertBot("refundStarPayment");
|
|
@@ -85,7 +85,7 @@ class PaymentManager {
|
|
|
85
85
|
const peer = await this.#c.getInputPeer(chatId);
|
|
86
86
|
const offset = params?.offset ?? "";
|
|
87
87
|
const limit = (0, _0_utilities_js_1.getLimit)(params?.limit);
|
|
88
|
-
const result = await this.#c.invoke({ _: "payments.getStarsTransactions", peer, ton: params?.isTon
|
|
88
|
+
const result = await this.#c.invoke({ _: "payments.getStarsTransactions", peer, ton: params?.isTon || undefined, offset, limit, inbound: params?.isInbound || undefined, outbound: params?.isOutbound || undefined, ascending: params?.isAscending || undefined, subscription_id: params?.subscriptionId });
|
|
89
89
|
return (0, _3_types_js_1.constructStarTransactionList)(result, this.#c.getPeer);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
@@ -28,12 +28,12 @@ class TakeoutManager {
|
|
|
28
28
|
}
|
|
29
29
|
async startTakeoutSession(params) {
|
|
30
30
|
this.#c.storage.assertUser("startTakeoutSession");
|
|
31
|
-
const result = await this.#c.invoke({ _: "account.initTakeoutSession", contacts: params?.isExportingContacts
|
|
31
|
+
const result = await this.#c.invoke({ _: "account.initTakeoutSession", contacts: params?.isExportingContacts || undefined, message_users: params?.isExportingPrivateChats || undefined, message_chats: params?.isExportingGroupChats || undefined, message_megagroups: params?.isExportingSupergroupChats || undefined, message_channels: params?.isExportingChannelChats || undefined, files: params?.isExportingFiles || undefined, file_max_size: params?.maxFileSize ? BigInt(params.maxFileSize) : undefined });
|
|
32
32
|
return String(result.id);
|
|
33
33
|
}
|
|
34
34
|
async endTakeoutSession(takeoutId, params) {
|
|
35
35
|
this.#c.storage.assertUser("endTakeoutSession");
|
|
36
|
-
await this.#c.invoke({ _: "account.finishTakeoutSession", success: params?.isFailed
|
|
36
|
+
await this.#c.invoke({ _: "account.finishTakeoutSession", success: !params?.isFailed || undefined }, { takeoutId });
|
|
37
37
|
}
|
|
38
38
|
async getLeftChannels(takeoutId, params) {
|
|
39
39
|
this.#c.storage.assertUser("getLeftChannels");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2_update_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_update_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAiC,KAAK,EAAmB,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,SAAS,GACjB,GAAG,CAAC,gBAAgB,GACpB,GAAG,CAAC,oBAAoB,GACxB,GAAG,CAAC,sBAAsB,GAC1B,GAAG,CAAC,uBAAuB,GAC3B,GAAG,CAAC,2BAA2B,GAC/B,GAAG,CAAC,oBAAoB,GACxB,GAAG,CAAC,iBAAiB,GACrB,GAAG,CAAC,oBAAoB,GACxB,GAAG,CAAC,iBAAiB,GACrB,GAAG,CAAC,0BAA0B,GAC9B,GAAG,CAAC,aAAa,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GACxB,GAAG,CAAC,uBAAuB,GAC3B,GAAG,CAAC,wBAAwB,GAC5B,GAAG,CAAC,2BAA2B,GAC/B,GAAG,CAAC,oBAAoB,CAAC;AAE7B,MAAM,MAAM,SAAS,GACjB,GAAG,CAAC,yBAAyB,GAC7B,GAAG,CAAC,qBAAqB,GACzB,GAAG,CAAC,gBAAgB,GACpB,GAAG,CAAC,qBAAqB,GACzB,GAAG,CAAC,wBAAwB,GAC5B,GAAG,CAAC,4BAA4B,GAChC,GAAG,CAAC,kBAAkB,GACtB,GAAG,CAAC,wBAAwB,GAC5B,GAAG,CAAC,yBAAyB,GAC7B,GAAG,CAAC,wBAAwB,GAC5B,GAAG,CAAC,2BAA2B,GAC/B,GAAG,CAAC,4BAA4B,GAChC,GAAG,CAAC,8BAA8B,CAAC;AAEvC,qBAAa,aAAa;;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK;IAC9B,MAAM,CAAC,QAAQ,CAAC,WAAW,MAAM;gBAarB,CAAC,EAAE,CAAC;IAYhB,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS;IAIjD,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS;IAIjD,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,gBAAgB;IAuCvE,UAAU,CAAC,MAAM,EAAE,MAAM;IA0D/B,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,gBAAgB;IAM9D,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI;IAqBpB,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,gBAAgB;IAoDhD,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,gBAAgB;IAM9D,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI;IAsB1B,oBAAoB,CAAC,KAAK,EAAE,MAAM;IA6JlC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAE,GAAG,CAAC,SAAS,GAAG,IAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;IAsMvH,gBAAgB,CAAC,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"2_update_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_update_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -396,13 +396,13 @@ class UpdateManager {
|
|
|
396
396
|
this.#processUpdatesQueue.add(() => this.#processUpdates(updates, checkGap, call).finally(callback));
|
|
397
397
|
}
|
|
398
398
|
async #processUpdates(updates_, checkGap, call = null) {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
399
|
+
// First, individual updates (Update[1]) are extracted from Updates.[2]
|
|
400
|
+
//
|
|
401
|
+
// If an updatesTooLong[3] was received, an update gap recovery is initiated and no further action will be taken.
|
|
402
|
+
//
|
|
403
|
+
// [1]: https://core.telegram.org/type/Update
|
|
404
|
+
// [2]: https://core.telegram.org/type/Updates
|
|
405
|
+
// [3]: https://core.telegram.org/constructor/updatesTooLong
|
|
406
406
|
let updates;
|
|
407
407
|
if (_2_tl_js_1.Api.is("updatesCombined", updates_) || _2_tl_js_1.Api.is("updates", updates_)) {
|
|
408
408
|
updates = updates_.updates;
|
|
@@ -429,7 +429,7 @@ class UpdateManager {
|
|
|
429
429
|
return;
|
|
430
430
|
}
|
|
431
431
|
else if (localSeq + 1 < seqStart) {
|
|
432
|
-
// There's an
|
|
432
|
+
// There's an update gap that must be filled.
|
|
433
433
|
await this.recoverUpdateGap("localSeq + 1 < seqStart");
|
|
434
434
|
}
|
|
435
435
|
}
|
|
@@ -527,7 +527,7 @@ class UpdateManager {
|
|
|
527
527
|
if (_2_tl_js_1.Api.is("updates", updates_) || _2_tl_js_1.Api.is("updatesCombined", updates_)) {
|
|
528
528
|
this.processChats(updates_.chats, updates_);
|
|
529
529
|
this.processUsers(updates_.users, updates_);
|
|
530
|
-
this.#setUpdateStateDate(updates_.date);
|
|
530
|
+
await this.#setUpdateStateDate(updates_.date);
|
|
531
531
|
}
|
|
532
532
|
else if (_2_tl_js_1.Api.isOneOf([
|
|
533
533
|
"updateShort",
|
|
@@ -627,7 +627,12 @@ class UpdateManager {
|
|
|
627
627
|
continue;
|
|
628
628
|
}
|
|
629
629
|
else {
|
|
630
|
-
|
|
630
|
+
if (this.#c.isDisconnected()) {
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
633
|
+
else {
|
|
634
|
+
throw err;
|
|
635
|
+
}
|
|
631
636
|
}
|
|
632
637
|
}
|
|
633
638
|
if (_2_tl_js_1.Api.is("updates.difference", difference) || _2_tl_js_1.Api.is("updates.differenceSlice", difference)) {
|
|
@@ -956,7 +961,7 @@ class UpdateManager {
|
|
|
956
961
|
}
|
|
957
962
|
const controller = new AbortController();
|
|
958
963
|
const promise = Promise.resolve().then(async () => {
|
|
959
|
-
const logger = this.#LopenChat.branch(_2_tl_js_1.Api.peerToChatId(channel)
|
|
964
|
+
const logger = this.#LopenChat.branch(String(_2_tl_js_1.Api.peerToChatId(channel)));
|
|
960
965
|
while (true) {
|
|
961
966
|
if (this.#c.isDisconnected()) {
|
|
962
967
|
logger.debug("disconnected, stopping the loop");
|
|
@@ -418,7 +418,7 @@ class AccountManager {
|
|
|
418
418
|
}
|
|
419
419
|
async #toggleBotAddedtoAttachmentsMenu(botId, isWriteAllowed, enabled) {
|
|
420
420
|
const bot = await this.#c.getInputUser(botId);
|
|
421
|
-
await this.#c.invoke({ _: "messages.toggleBotInAttachMenu", bot, write_allowed: isWriteAllowed
|
|
421
|
+
await this.#c.invoke({ _: "messages.toggleBotInAttachMenu", bot, write_allowed: isWriteAllowed || undefined, enabled });
|
|
422
422
|
}
|
|
423
423
|
async addBotToAttachmentsMenu(botId, params) {
|
|
424
424
|
this.#c.storage.assertUser("addBotToAttachmentsMenu");
|
|
@@ -459,7 +459,7 @@ class AccountManager {
|
|
|
459
459
|
}
|
|
460
460
|
const bot = params?.botId ? await this.#c.getInputUser(params.botId) : undefined;
|
|
461
461
|
const file = await this.#c.fileManager.upload(photo, params, (0, _0_utilities_js_1.checkPhotoName)(params));
|
|
462
|
-
await this.#c.invoke({ _: "photos.uploadProfilePhoto", fallback: params?.isPublic
|
|
462
|
+
await this.#c.invoke({ _: "photos.uploadProfilePhoto", fallback: params?.isPublic || undefined, file, bot });
|
|
463
463
|
}
|
|
464
464
|
async updateProfileVideo(photo, params) {
|
|
465
465
|
if (params?.botId && this.#c.storage.isBot) {
|
|
@@ -467,7 +467,7 @@ class AccountManager {
|
|
|
467
467
|
}
|
|
468
468
|
const bot = params?.botId ? await this.#c.getInputUser(params.botId) : undefined;
|
|
469
469
|
const video = await this.#c.fileManager.upload(photo, params, () => "video.mp4");
|
|
470
|
-
await this.#c.invoke({ _: "photos.uploadProfilePhoto", fallback: params?.isPublic
|
|
470
|
+
await this.#c.invoke({ _: "photos.uploadProfilePhoto", fallback: params?.isPublic || undefined, video, video_start_ts: params?.thumbnailTimestamp, bot });
|
|
471
471
|
}
|
|
472
472
|
async removeProfilePhoto(params) {
|
|
473
473
|
if (params?.botId && this.#c.storage.isBot) {
|
|
@@ -134,6 +134,17 @@ export declare class MessageManager implements UpdateProcessor<MessageManagerUpd
|
|
|
134
134
|
translateMessages(toLanguage: string, chatId: ID, messageIds: number[], params?: TranslateTextParams): Promise<TranslatedText[]>;
|
|
135
135
|
translateMessage(toLanguage: string, chatId: ID, messageId: number, params?: TranslateTextParams): Promise<TranslatedText>;
|
|
136
136
|
getRichText(chatId: ID, messageId: number): Promise<import("../3_types.js").RichText | null>;
|
|
137
|
+
getScheduledMessages(chatId: ID): Promise<Message[]>;
|
|
138
|
+
getFavoriteStickers(): Promise<import("../3_types.js").Sticker[]>;
|
|
139
|
+
addStickerToFavorites(fileId: string): Promise<void>;
|
|
140
|
+
removeStickerFromFavorites(fileId: string): Promise<void>;
|
|
141
|
+
addStickerToRecents(fileId: string): Promise<void>;
|
|
142
|
+
removeStickerFromRecents(fileId: string): Promise<void>;
|
|
143
|
+
clearRecentStickers(): Promise<void>;
|
|
144
|
+
getRecentStickers(): Promise<import("../3_types.js").Sticker[]>;
|
|
145
|
+
getSavedAnimations(): Promise<import("../3_types.js").Animation[]>;
|
|
146
|
+
saveAnimation(fileId: string): Promise<void>;
|
|
147
|
+
unsaveAnimation(fileId: string): Promise<void>;
|
|
137
148
|
}
|
|
138
149
|
export {};
|
|
139
150
|
//# sourceMappingURL=3_message_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3_message_manager.d.ts","sourceRoot":"","sources":["../../src/client/3_message_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,
|
|
1
|
+
{"version":3,"file":"3_message_manager.d.ts","sourceRoot":"","sources":["../../src/client/3_message_manager.ts"],"names":[],"mappings":"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"}
|