@mtkruto/node 0.50.1 → 0.61.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/2_tl.d.ts +4 -6
- package/esm/2_tl.d.ts.map +1 -1
- package/esm/2_tl.js +4 -6
- package/esm/3_types.d.ts +1 -0
- package/esm/3_types.d.ts.map +1 -1
- package/esm/3_types.js +1 -0
- package/esm/client/0_params.d.ts +12 -0
- package/esm/client/0_params.d.ts.map +1 -1
- package/esm/client/0_storage_operations.d.ts.map +1 -1
- package/esm/client/0_storage_operations.js +9 -9
- package/esm/client/1_client_encrypted.d.ts.map +1 -1
- package/esm/client/1_client_encrypted.js +173 -126
- package/esm/client/1_client_plain.d.ts.map +1 -1
- package/esm/client/1_client_plain.js +12 -8
- package/esm/client/3_message_manager.d.ts +1 -0
- package/esm/client/3_message_manager.d.ts.map +1 -1
- package/esm/client/3_message_manager.js +51 -50
- package/esm/client/4_forum_manager.d.ts +40 -0
- package/esm/client/4_forum_manager.d.ts.map +1 -0
- package/esm/client/4_forum_manager.js +134 -0
- package/esm/client/5_client.d.ts +67 -2
- package/esm/client/5_client.d.ts.map +1 -1
- package/esm/client/5_client.js +87 -2
- package/esm/tl/0_api.d.ts +1 -2
- package/esm/tl/0_api.d.ts.map +1 -1
- package/esm/tl/0_api.js +7345 -6639
- package/esm/tl/0_tl_raw_reader.d.ts +2 -0
- package/esm/tl/0_tl_raw_reader.d.ts.map +1 -1
- package/esm/tl/0_tl_raw_reader.js +10 -0
- package/esm/tl/1_utilities.d.ts +10 -1
- package/esm/tl/1_utilities.d.ts.map +1 -1
- package/esm/tl/1_utilities.js +25 -1
- package/esm/tl/{5_message.d.ts → 2_message.d.ts} +5 -8
- package/esm/tl/2_message.d.ts.map +1 -0
- package/esm/tl/{5_message.js → 2_message.js} +16 -33
- package/esm/tl/{3_tl_reader.d.ts → 2_tl_reader.d.ts} +4 -3
- package/esm/tl/2_tl_reader.d.ts.map +1 -0
- package/esm/tl/2_tl_reader.js +146 -0
- package/esm/tl/2_tl_reader_test.d.ts.map +1 -0
- package/{script/tl/4_tl_writer.d.ts → esm/tl/2_tl_writer.d.ts} +4 -3
- package/esm/tl/2_tl_writer.d.ts.map +1 -0
- package/esm/tl/2_tl_writer.js +209 -0
- package/esm/tl/2_tl_writer_test.d.ts.map +1 -0
- package/{script/tl/3_utilities.d.ts → esm/tl/2_utilities.d.ts} +1 -1
- package/esm/tl/{3_utilities.d.ts.map → 2_utilities.d.ts.map} +1 -1
- package/esm/types/2_chosen_inline_result.d.ts.map +1 -1
- package/esm/types/2_chosen_inline_result.js +2 -2
- package/esm/types/4_message.d.ts +3 -3
- package/esm/types/4_message.d.ts.map +1 -1
- package/esm/types/4_message.js +16 -8
- package/esm/types/5_callback_query.d.ts.map +1 -1
- package/esm/types/5_callback_query.js +3 -3
- package/esm/{tl/4_rpc_result.d.ts → types/5_topic.d.ts} +14 -7
- package/esm/types/5_topic.d.ts.map +1 -0
- package/esm/types/5_topic.js +76 -0
- package/esm/utilities/0_misc.d.ts +0 -1
- package/esm/utilities/0_misc.d.ts.map +1 -1
- package/esm/utilities/0_misc.js +0 -1
- package/package.json +1 -1
- package/script/2_tl.d.ts +4 -6
- package/script/2_tl.d.ts.map +1 -1
- package/script/2_tl.js +4 -6
- package/script/3_types.d.ts +1 -0
- package/script/3_types.d.ts.map +1 -1
- package/script/3_types.js +1 -0
- package/script/client/0_params.d.ts +12 -0
- package/script/client/0_params.d.ts.map +1 -1
- package/script/client/0_storage_operations.d.ts.map +1 -1
- package/script/client/0_storage_operations.js +8 -8
- package/script/client/1_client_encrypted.d.ts.map +1 -1
- package/script/client/1_client_encrypted.js +171 -124
- package/script/client/1_client_plain.d.ts.map +1 -1
- package/script/client/1_client_plain.js +11 -7
- package/script/client/3_message_manager.d.ts +1 -0
- package/script/client/3_message_manager.d.ts.map +1 -1
- package/script/client/3_message_manager.js +51 -50
- package/script/client/4_forum_manager.d.ts +40 -0
- package/script/client/4_forum_manager.d.ts.map +1 -0
- package/script/client/4_forum_manager.js +138 -0
- package/script/client/5_client.d.ts +67 -2
- package/script/client/5_client.d.ts.map +1 -1
- package/script/client/5_client.js +87 -2
- package/script/tl/0_api.d.ts +1 -2
- package/script/tl/0_api.d.ts.map +1 -1
- package/script/tl/0_api.js +7346 -6640
- package/script/tl/0_tl_raw_reader.d.ts +2 -0
- package/script/tl/0_tl_raw_reader.d.ts.map +1 -1
- package/script/tl/0_tl_raw_reader.js +10 -0
- package/script/tl/1_utilities.d.ts +10 -1
- package/script/tl/1_utilities.d.ts.map +1 -1
- package/script/tl/1_utilities.js +29 -1
- package/script/tl/{5_message.d.ts → 2_message.d.ts} +5 -8
- package/script/tl/2_message.d.ts.map +1 -0
- package/script/tl/{5_message.js → 2_message.js} +17 -34
- package/script/tl/{3_tl_reader.d.ts → 2_tl_reader.d.ts} +4 -3
- package/script/tl/2_tl_reader.d.ts.map +1 -0
- package/script/tl/2_tl_reader.js +150 -0
- package/script/tl/2_tl_reader_test.d.ts.map +1 -0
- package/{esm/tl/4_tl_writer.d.ts → script/tl/2_tl_writer.d.ts} +4 -3
- package/script/tl/2_tl_writer.d.ts.map +1 -0
- package/script/tl/2_tl_writer.js +213 -0
- package/script/tl/2_tl_writer_test.d.ts.map +1 -0
- package/{esm/tl/3_utilities.d.ts → script/tl/2_utilities.d.ts} +1 -1
- package/script/tl/{3_utilities.d.ts.map → 2_utilities.d.ts.map} +1 -1
- package/script/types/2_chosen_inline_result.d.ts.map +1 -1
- package/script/types/2_chosen_inline_result.js +1 -1
- package/script/types/4_message.d.ts +3 -3
- package/script/types/4_message.d.ts.map +1 -1
- package/script/types/4_message.js +16 -8
- package/script/types/5_callback_query.d.ts.map +1 -1
- package/script/types/5_callback_query.js +2 -2
- package/script/types/5_topic.d.ts +34 -0
- package/script/types/5_topic.d.ts.map +1 -0
- package/script/types/5_topic.js +79 -0
- package/script/utilities/0_misc.d.ts +0 -1
- package/script/utilities/0_misc.d.ts.map +1 -1
- package/script/utilities/0_misc.js +1 -2
- package/esm/tl/2_deserialize.d.ts +0 -23
- package/esm/tl/2_deserialize.d.ts.map +0 -1
- package/esm/tl/2_deserialize.js +0 -98
- package/esm/tl/2_serialize.d.ts +0 -22
- package/esm/tl/2_serialize.d.ts.map +0 -1
- package/esm/tl/2_serialize.js +0 -163
- package/esm/tl/2_serialize_test.d.ts.map +0 -1
- package/esm/tl/3_deserialize_test.d.ts.map +0 -1
- package/esm/tl/3_tl_reader.d.ts.map +0 -1
- package/esm/tl/3_tl_reader.js +0 -49
- package/esm/tl/4_rpc_result.d.ts.map +0 -1
- package/esm/tl/4_rpc_result.js +0 -33
- package/esm/tl/4_tl_writer.d.ts.map +0 -1
- package/esm/tl/4_tl_writer.js +0 -45
- package/esm/tl/5_message.d.ts.map +0 -1
- package/script/tl/2_deserialize.d.ts +0 -23
- package/script/tl/2_deserialize.d.ts.map +0 -1
- package/script/tl/2_deserialize.js +0 -101
- package/script/tl/2_serialize.d.ts +0 -22
- package/script/tl/2_serialize.d.ts.map +0 -1
- package/script/tl/2_serialize.js +0 -166
- package/script/tl/2_serialize_test.d.ts.map +0 -1
- package/script/tl/3_deserialize_test.d.ts.map +0 -1
- package/script/tl/3_tl_reader.d.ts.map +0 -1
- package/script/tl/3_tl_reader.js +0 -53
- package/script/tl/4_rpc_result.d.ts +0 -27
- package/script/tl/4_rpc_result.d.ts.map +0 -1
- package/script/tl/4_rpc_result.js +0 -37
- package/script/tl/4_tl_writer.d.ts.map +0 -1
- package/script/tl/4_tl_writer.js +0 -49
- package/script/tl/5_message.d.ts.map +0 -1
- /package/esm/tl/{3_utilities.js → 2_utilities.js} +0 -0
- /package/script/tl/{3_utilities.js → 2_utilities.js} +0 -0
|
@@ -29,7 +29,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
29
29
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
30
30
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
31
31
|
};
|
|
32
|
-
var _ClientEncrypted_instances, _ClientEncrypted_authKey, _ClientEncrypted_authKeyId, _ClientEncrypted_sessionId, _ClientEncrypted_state, _ClientEncrypted_shouldInvalidateSession, _ClientEncrypted_toAcknowledge, _ClientEncrypted_recentAcks, _ClientEncrypted_promises, _ClientEncrypted_L, _ClientEncrypted_LreceiveLoop, _ClientEncrypted_Linvoke, _ClientEncrypted_timeDifference, _ClientEncrypted_nextMessageId, _ClientEncrypted_nextSeqNo, _ClientEncrypted_invalidateSession, _ClientEncrypted_sendMessage, _ClientEncrypted_receiveLoop;
|
|
32
|
+
var _ClientEncrypted_instances, _ClientEncrypted_authKey, _ClientEncrypted_authKeyId, _ClientEncrypted_sessionId, _ClientEncrypted_state, _ClientEncrypted_shouldInvalidateSession, _ClientEncrypted_toAcknowledge, _ClientEncrypted_recentAcks, _ClientEncrypted_promises, _ClientEncrypted_loopActive, _ClientEncrypted_L, _ClientEncrypted_LreceiveLoop, _ClientEncrypted_Linvoke, _ClientEncrypted_timeDifference, _ClientEncrypted_nextMessageId, _ClientEncrypted_nextSeqNo, _ClientEncrypted_invalidateSession, _ClientEncrypted_sendMessage, _ClientEncrypted_receiveLoop, _ClientEncrypted_handleIncomingMessage, _ClientEncrypted_handleRpcResult, _ClientEncrypted_handleType;
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
34
|
exports.ClientEncrypted = void 0;
|
|
35
35
|
const _0_deps_js_1 = require("../0_deps.js");
|
|
@@ -37,10 +37,13 @@ const _0_errors_js_1 = require("../0_errors.js");
|
|
|
37
37
|
const _1_utilities_js_1 = require("../1_utilities.js");
|
|
38
38
|
const _2_tl_js_1 = require("../2_tl.js");
|
|
39
39
|
const _4_errors_js_1 = require("../4_errors.js");
|
|
40
|
+
const _2_tl_writer_js_1 = require("../tl/2_tl_writer.js");
|
|
40
41
|
const _0_client_abstract_js_1 = require("./0_client_abstract.js");
|
|
41
42
|
const _0_message_js_1 = require("./0_message.js");
|
|
43
|
+
const COMPRESSION_THRESHOLD = 1024;
|
|
42
44
|
// global ClientEncrypted ID counter for logs
|
|
43
45
|
let id = 0;
|
|
46
|
+
const RPC_ERROR = _2_tl_js_1.Api.getType("rpc_error")[0];
|
|
44
47
|
/**
|
|
45
48
|
* An MTProto client for making encrypted connections. Most users won't need to interact with this. Used internally by `Client`.
|
|
46
49
|
*
|
|
@@ -64,6 +67,7 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
64
67
|
_ClientEncrypted_toAcknowledge.set(this, new Array());
|
|
65
68
|
_ClientEncrypted_recentAcks.set(this, new _1_utilities_js_1.CacheMap(20));
|
|
66
69
|
_ClientEncrypted_promises.set(this, new Map());
|
|
70
|
+
_ClientEncrypted_loopActive.set(this, true);
|
|
67
71
|
// loggers
|
|
68
72
|
_ClientEncrypted_L.set(this, void 0);
|
|
69
73
|
_ClientEncrypted_LreceiveLoop.set(this, void 0);
|
|
@@ -105,13 +109,19 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
105
109
|
}
|
|
106
110
|
async invoke(function_, noWait) {
|
|
107
111
|
const messageId = __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextMessageId).call(this);
|
|
112
|
+
let body = new _2_tl_writer_js_1.TLWriter().serialize(function_).buffer;
|
|
113
|
+
if (body.length > COMPRESSION_THRESHOLD) {
|
|
114
|
+
body = new _2_tl_writer_js_1.TLWriter()
|
|
115
|
+
.writeInt32(_2_tl_js_1.GZIP_PACKED, false)
|
|
116
|
+
.writeBytes(await (0, _1_utilities_js_1.gzip)(body))
|
|
117
|
+
.buffer;
|
|
118
|
+
}
|
|
108
119
|
let message_ = {
|
|
109
120
|
_: "message",
|
|
110
121
|
msg_id: messageId,
|
|
111
122
|
seqno: __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextSeqNo).call(this, true),
|
|
112
|
-
body
|
|
123
|
+
body,
|
|
113
124
|
};
|
|
114
|
-
Object.assign(message_, { [_2_tl_js_1.compressible]: true });
|
|
115
125
|
const message__ = message_;
|
|
116
126
|
let container = undefined;
|
|
117
127
|
if (__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").length) {
|
|
@@ -119,7 +129,7 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
119
129
|
_: "message",
|
|
120
130
|
msg_id: __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextMessageId).call(this),
|
|
121
131
|
seqno: __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextSeqNo).call(this, false),
|
|
122
|
-
body: { _: "msgs_ack", msg_ids: __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").splice(0, 8192) },
|
|
132
|
+
body: new _2_tl_writer_js_1.TLWriter().serialize({ _: "msgs_ack", msg_ids: __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").splice(0, 8192) }).buffer,
|
|
123
133
|
};
|
|
124
134
|
__classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").set(ack.msg_id, { container, message: ack });
|
|
125
135
|
message_ = {
|
|
@@ -148,7 +158,7 @@ class ClientEncrypted extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
148
158
|
}
|
|
149
159
|
}
|
|
150
160
|
exports.ClientEncrypted = ClientEncrypted;
|
|
151
|
-
_ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakMap(), _ClientEncrypted_sessionId = new WeakMap(), _ClientEncrypted_state = new WeakMap(), _ClientEncrypted_shouldInvalidateSession = new WeakMap(), _ClientEncrypted_toAcknowledge = new WeakMap(), _ClientEncrypted_recentAcks = new WeakMap(), _ClientEncrypted_promises = new WeakMap(), _ClientEncrypted_L = new WeakMap(), _ClientEncrypted_LreceiveLoop = new WeakMap(), _ClientEncrypted_Linvoke = new WeakMap(), _ClientEncrypted_timeDifference = new WeakMap(), _ClientEncrypted_instances = new WeakSet(), _ClientEncrypted_nextMessageId = function _ClientEncrypted_nextMessageId() {
|
|
161
|
+
_ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakMap(), _ClientEncrypted_sessionId = new WeakMap(), _ClientEncrypted_state = new WeakMap(), _ClientEncrypted_shouldInvalidateSession = new WeakMap(), _ClientEncrypted_toAcknowledge = new WeakMap(), _ClientEncrypted_recentAcks = new WeakMap(), _ClientEncrypted_promises = new WeakMap(), _ClientEncrypted_loopActive = new WeakMap(), _ClientEncrypted_L = new WeakMap(), _ClientEncrypted_LreceiveLoop = new WeakMap(), _ClientEncrypted_Linvoke = new WeakMap(), _ClientEncrypted_timeDifference = new WeakMap(), _ClientEncrypted_instances = new WeakSet(), _ClientEncrypted_nextMessageId = function _ClientEncrypted_nextMessageId() {
|
|
152
162
|
return __classPrivateFieldGet(this, _ClientEncrypted_state, "f").messageId = (0, _0_message_js_1.getMessageId)(__classPrivateFieldGet(this, _ClientEncrypted_state, "f").messageId, __classPrivateFieldGet(this, _ClientEncrypted_timeDifference, "f"));
|
|
153
163
|
}, _ClientEncrypted_nextSeqNo = function _ClientEncrypted_nextSeqNo(contentRelated) {
|
|
154
164
|
let seqNo = __classPrivateFieldGet(this, _ClientEncrypted_state, "f").seqNo * 2;
|
|
@@ -177,7 +187,8 @@ _ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakM
|
|
|
177
187
|
reject?.(new _0_errors_js_1.ConnectionError("Connection was closed"));
|
|
178
188
|
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(key);
|
|
179
189
|
}
|
|
180
|
-
|
|
190
|
+
__classPrivateFieldSet(this, _ClientEncrypted_loopActive, true, "f");
|
|
191
|
+
while (this.connected && __classPrivateFieldGet(this, _ClientEncrypted_loopActive, "f")) {
|
|
181
192
|
try {
|
|
182
193
|
const buffer = await this.transport.transport.receive();
|
|
183
194
|
__classPrivateFieldGet(this, _ClientEncrypted_L, "f").inBin(buffer);
|
|
@@ -191,126 +202,12 @@ _ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakM
|
|
|
191
202
|
(0, _1_utilities_js_1.drop)(this.handlers.error?.(err, "decryption"));
|
|
192
203
|
continue;
|
|
193
204
|
}
|
|
194
|
-
const messages = decrypted.body
|
|
205
|
+
const messages = decrypted.body instanceof Uint8Array ? [decrypted] : decrypted.body.messages.map((v) => v);
|
|
195
206
|
for (const message of messages) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("received", body._);
|
|
199
|
-
if ((0, _2_tl_js_1.isOfEnum)("Updates", body) || (0, _2_tl_js_1.isOfEnum)("Update", body)) {
|
|
200
|
-
(0, _1_utilities_js_1.drop)(this.handlers.updates?.(body, null));
|
|
201
|
-
}
|
|
202
|
-
else if ((0, _2_tl_js_1.is)("new_session_created", body)) {
|
|
203
|
-
this.serverSalt = body.server_salt;
|
|
204
|
-
(0, _1_utilities_js_1.drop)(this.handlers.serverSaltReassigned?.(this.serverSalt));
|
|
205
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("new session created with ID", body.unique_id);
|
|
206
|
-
}
|
|
207
|
-
else if (body._ == "rpc_result") {
|
|
208
|
-
const result = body.result;
|
|
209
|
-
if ((0, _2_tl_js_1.is)("rpc_error", result)) {
|
|
210
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", result.error_code, result.error_message);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", Array.isArray(result) ? "Array" : typeof result === "object" ? result._ : result);
|
|
214
|
-
}
|
|
215
|
-
const messageId = body.req_msg_id;
|
|
216
|
-
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(messageId);
|
|
217
|
-
const resolvePromise = () => {
|
|
218
|
-
if (promise) {
|
|
219
|
-
if ((0, _2_tl_js_1.is)("rpc_error", result)) {
|
|
220
|
-
promise.reject?.((0, _4_errors_js_1.constructTelegramError)(result, promise.call));
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
promise.resolve?.(result);
|
|
224
|
-
}
|
|
225
|
-
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(messageId);
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
if ((0, _2_tl_js_1.isOfEnum)("Updates", result) || (0, _2_tl_js_1.isOfEnum)("Update", result)) {
|
|
229
|
-
// @ts-ignore: tbd
|
|
230
|
-
let call = promise?.call ?? null;
|
|
231
|
-
if ((0, _2_tl_js_1.isGenericFunction)(call)) {
|
|
232
|
-
call = call.query;
|
|
233
|
-
}
|
|
234
|
-
(0, _1_utilities_js_1.drop)(this.handlers.updates?.(result, call, resolvePromise));
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
(0, _1_utilities_js_1.drop)(this.handlers.result?.(result, resolvePromise));
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
else if ((0, _2_tl_js_1.is)("pong", body)) {
|
|
241
|
-
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.msg_id);
|
|
242
|
-
if (promise) {
|
|
243
|
-
promise.resolve?.(body);
|
|
244
|
-
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.msg_id);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
else if ((0, _2_tl_js_1.is)("bad_server_salt", body)) {
|
|
248
|
-
sendAck = false;
|
|
249
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("server salt reassigned");
|
|
250
|
-
this.serverSalt = body.new_server_salt;
|
|
251
|
-
(0, _1_utilities_js_1.drop)(this.handlers.serverSaltReassigned?.(this.serverSalt));
|
|
252
|
-
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
|
|
253
|
-
const ack = __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").get(body.bad_msg_id);
|
|
254
|
-
if (promise) {
|
|
255
|
-
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
|
|
256
|
-
}
|
|
257
|
-
else if (ack) {
|
|
258
|
-
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
for (const promise of __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").values()) {
|
|
262
|
-
if (promise.container && promise.container == body.bad_msg_id) {
|
|
263
|
-
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
for (const ack of __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").values()) {
|
|
267
|
-
if (ack.container && ack.container == body.bad_msg_id) {
|
|
268
|
-
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
else if ((0, _2_tl_js_1.is)("bad_msg_notification", body)) {
|
|
274
|
-
sendAck = false;
|
|
275
|
-
let low = false;
|
|
276
|
-
switch (body.error_code) {
|
|
277
|
-
case 16: // message ID too low
|
|
278
|
-
low = true;
|
|
279
|
-
/* falls through */
|
|
280
|
-
case 17: // message ID too high
|
|
281
|
-
__classPrivateFieldSet(this, _ClientEncrypted_timeDifference, Math.abs((0, _1_utilities_js_1.toUnixTimestamp)(new Date()) - Number(message.msg_id >> 32n)), "f");
|
|
282
|
-
if (!low) {
|
|
283
|
-
__classPrivateFieldSet(this, _ClientEncrypted_timeDifference, -__classPrivateFieldGet(this, _ClientEncrypted_timeDifference, "f"), "f");
|
|
284
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too high, invalidating session");
|
|
285
|
-
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
|
|
286
|
-
break loop;
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too low, resending message");
|
|
290
|
-
}
|
|
291
|
-
break;
|
|
292
|
-
case 48: // bad server salt
|
|
293
|
-
// resend
|
|
294
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("resending message that caused bad_server_salt");
|
|
295
|
-
break;
|
|
296
|
-
default:
|
|
297
|
-
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
|
|
298
|
-
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("invalidating session because of unexpected bad_msg_notification:", body.error_code);
|
|
299
|
-
break loop;
|
|
300
|
-
}
|
|
301
|
-
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
|
|
302
|
-
if (promise) {
|
|
303
|
-
promise.reject?.(body);
|
|
304
|
-
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.bad_msg_id);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
else if ((0, _2_tl_js_1.isOneOf)(["msg_detailed_info", "msg_new_detailed_info"], body)) {
|
|
308
|
-
sendAck = false;
|
|
309
|
-
__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(body.answer_msg_id);
|
|
310
|
-
}
|
|
311
|
-
if (sendAck) {
|
|
312
|
-
__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(message.msg_id);
|
|
207
|
+
if (!(message.body instanceof Uint8Array)) {
|
|
208
|
+
(0, _0_deps_js_1.unreachable)();
|
|
313
209
|
}
|
|
210
|
+
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_handleIncomingMessage).call(this, message);
|
|
314
211
|
}
|
|
315
212
|
}
|
|
316
213
|
catch (err) {
|
|
@@ -335,4 +232,154 @@ _ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakM
|
|
|
335
232
|
else {
|
|
336
233
|
(0, _0_deps_js_1.unreachable)();
|
|
337
234
|
}
|
|
235
|
+
}, _ClientEncrypted_handleIncomingMessage = async function _ClientEncrypted_handleIncomingMessage(message) {
|
|
236
|
+
const body = message.body;
|
|
237
|
+
if (!(body instanceof Uint8Array)) {
|
|
238
|
+
(0, _0_deps_js_1.unreachable)();
|
|
239
|
+
}
|
|
240
|
+
let reader = new _2_tl_js_1.TLReader(body);
|
|
241
|
+
const id = reader.readInt32(false);
|
|
242
|
+
if (id == _2_tl_js_1.GZIP_PACKED) {
|
|
243
|
+
reader = new _2_tl_js_1.TLReader(await (0, _1_utilities_js_1.gunzip)(reader.readBytes()));
|
|
244
|
+
}
|
|
245
|
+
else if (id == _2_tl_js_1.RPC_RESULT) {
|
|
246
|
+
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_handleRpcResult).call(this, reader);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
reader.unreadInt32();
|
|
250
|
+
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_handleType).call(this, message, reader);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(message.msg_id);
|
|
254
|
+
}, _ClientEncrypted_handleRpcResult = async function _ClientEncrypted_handleRpcResult(reader) {
|
|
255
|
+
const messageId = reader.readInt64();
|
|
256
|
+
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(messageId);
|
|
257
|
+
if (!promise) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
let id = reader.readInt32(false);
|
|
261
|
+
if (id == _2_tl_js_1.GZIP_PACKED) {
|
|
262
|
+
reader = new _2_tl_js_1.TLReader(await (0, _1_utilities_js_1.gunzip)(reader.readBytes()));
|
|
263
|
+
id = reader.readInt32(false);
|
|
264
|
+
reader.unreadInt32();
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
reader.unreadInt32();
|
|
268
|
+
}
|
|
269
|
+
// deno-lint-ignore no-explicit-any
|
|
270
|
+
let call = promise?.call ?? null;
|
|
271
|
+
while ((0, _2_tl_js_1.isGenericFunction)(call)) {
|
|
272
|
+
call = call.query;
|
|
273
|
+
}
|
|
274
|
+
// deno-lint-ignore no-explicit-any
|
|
275
|
+
let result;
|
|
276
|
+
if (id == RPC_ERROR) {
|
|
277
|
+
result = await reader.deserialize("rpc_error");
|
|
278
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", result.error_code, result.error_message);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
result = await reader.deserialize((0, _2_tl_js_1.mustGetReturnType)(call._));
|
|
282
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", Array.isArray(result) ? "Array" : typeof result === "object" ? result._ : result);
|
|
283
|
+
}
|
|
284
|
+
const resolvePromise = () => {
|
|
285
|
+
if ((0, _2_tl_js_1.is)("rpc_error", result)) {
|
|
286
|
+
promise.reject?.((0, _4_errors_js_1.constructTelegramError)(result, promise.call));
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
promise.resolve?.(result);
|
|
290
|
+
}
|
|
291
|
+
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(messageId);
|
|
292
|
+
};
|
|
293
|
+
if ((0, _2_tl_js_1.isOfEnum)("Updates", result) || (0, _2_tl_js_1.isOfEnum)("Update", result)) {
|
|
294
|
+
(0, _1_utilities_js_1.drop)(this.handlers.updates?.(result, call, resolvePromise));
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
(0, _1_utilities_js_1.drop)(this.handlers.result?.(result, resolvePromise));
|
|
298
|
+
}
|
|
299
|
+
}, _ClientEncrypted_handleType = async function _ClientEncrypted_handleType(message, reader) {
|
|
300
|
+
const body = await reader.deserialize(_2_tl_js_1.X);
|
|
301
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("received", (0, _2_tl_js_1.repr)(body));
|
|
302
|
+
let sendAck = true;
|
|
303
|
+
if ((0, _2_tl_js_1.isOfEnum)("Updates", body) || (0, _2_tl_js_1.isOfEnum)("Update", body)) {
|
|
304
|
+
(0, _1_utilities_js_1.drop)(this.handlers.updates?.(body, null));
|
|
305
|
+
}
|
|
306
|
+
else if ((0, _2_tl_js_1.is)("new_session_created", body)) {
|
|
307
|
+
this.serverSalt = body.server_salt;
|
|
308
|
+
(0, _1_utilities_js_1.drop)(this.handlers.serverSaltReassigned?.(this.serverSalt));
|
|
309
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("new session created with ID", body.unique_id);
|
|
310
|
+
}
|
|
311
|
+
else if ((0, _2_tl_js_1.is)("pong", body)) {
|
|
312
|
+
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.msg_id);
|
|
313
|
+
if (promise) {
|
|
314
|
+
promise.resolve?.(body);
|
|
315
|
+
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.msg_id);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if ((0, _2_tl_js_1.is)("bad_server_salt", body)) {
|
|
319
|
+
sendAck = false;
|
|
320
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("server salt reassigned");
|
|
321
|
+
this.serverSalt = body.new_server_salt;
|
|
322
|
+
(0, _1_utilities_js_1.drop)(this.handlers.serverSaltReassigned?.(this.serverSalt));
|
|
323
|
+
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
|
|
324
|
+
const ack = __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").get(body.bad_msg_id);
|
|
325
|
+
if (promise) {
|
|
326
|
+
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
|
|
327
|
+
}
|
|
328
|
+
else if (ack) {
|
|
329
|
+
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
for (const promise of __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").values()) {
|
|
333
|
+
if (promise.container && promise.container == body.bad_msg_id) {
|
|
334
|
+
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
for (const ack of __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").values()) {
|
|
338
|
+
if (ack.container && ack.container == body.bad_msg_id) {
|
|
339
|
+
(0, _1_utilities_js_1.drop)(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else if ((0, _2_tl_js_1.is)("bad_msg_notification", body)) {
|
|
345
|
+
sendAck = false;
|
|
346
|
+
let low = false;
|
|
347
|
+
switch (body.error_code) {
|
|
348
|
+
case 16: // message ID too low
|
|
349
|
+
low = true;
|
|
350
|
+
/* falls through */
|
|
351
|
+
case 17: // message ID too high
|
|
352
|
+
__classPrivateFieldSet(this, _ClientEncrypted_timeDifference, Math.abs((0, _1_utilities_js_1.toUnixTimestamp)(new Date()) - Number(message.msg_id >> 32n)), "f");
|
|
353
|
+
if (!low) {
|
|
354
|
+
__classPrivateFieldSet(this, _ClientEncrypted_timeDifference, -__classPrivateFieldGet(this, _ClientEncrypted_timeDifference, "f"), "f");
|
|
355
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too high, invalidating session");
|
|
356
|
+
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
|
|
357
|
+
__classPrivateFieldSet(this, _ClientEncrypted_loopActive, false, "f");
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too low, resending message");
|
|
361
|
+
}
|
|
362
|
+
break;
|
|
363
|
+
case 48: // bad server salt
|
|
364
|
+
// resend
|
|
365
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("resending message that caused bad_server_salt");
|
|
366
|
+
break;
|
|
367
|
+
default:
|
|
368
|
+
await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
|
|
369
|
+
__classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("invalidating session because of unexpected bad_msg_notification:", body.error_code);
|
|
370
|
+
__classPrivateFieldSet(this, _ClientEncrypted_loopActive, false, "f");
|
|
371
|
+
}
|
|
372
|
+
const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
|
|
373
|
+
if (promise) {
|
|
374
|
+
promise.reject?.(body);
|
|
375
|
+
__classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.bad_msg_id);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
else if ((0, _2_tl_js_1.isOneOf)(["msg_detailed_info", "msg_new_detailed_info"], body)) {
|
|
379
|
+
sendAck = false;
|
|
380
|
+
__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(body.answer_msg_id);
|
|
381
|
+
}
|
|
382
|
+
if (sendAck) {
|
|
383
|
+
__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(message.msg_id);
|
|
384
|
+
}
|
|
338
385
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"1_client_plain.d.ts","sourceRoot":"","sources":["../../src/client/1_client_plain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"1_client_plain.d.ts","sourceRoot":"","sources":["../../src/client/1_client_plain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,EAA6C,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9E,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,cAAc;;gBAIjC,MAAM,CAAC,EAAE,iBAAiB;IAKhC,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwB3P,aAAa,IAAI,OAAO,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;CAmIlE"}
|
|
@@ -56,7 +56,7 @@ class ClientPlain extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
56
56
|
throw new _0_errors_js_1.ConnectionError("Not connected.");
|
|
57
57
|
}
|
|
58
58
|
const messageId = __classPrivateFieldSet(this, _ClientPlain_lastMessageId, (0, _0_message_js_1.getMessageId)(__classPrivateFieldGet(this, _ClientPlain_lastMessageId, "f"), 0), "f");
|
|
59
|
-
const payload = (0, _0_message_js_1.packUnencryptedMessage)(
|
|
59
|
+
const payload = (0, _0_message_js_1.packUnencryptedMessage)(new _2_tl_js_1.TLWriter().serialize(function_).buffer, messageId);
|
|
60
60
|
await this.transport.transport.send(payload);
|
|
61
61
|
L.out(function_);
|
|
62
62
|
L.outBin(payload);
|
|
@@ -68,7 +68,7 @@ class ClientPlain extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
68
68
|
}
|
|
69
69
|
const { message } = (0, _0_message_js_1.unpackUnencryptedMessage)(buffer);
|
|
70
70
|
const reader = new _2_tl_js_1.TLReader(message);
|
|
71
|
-
const result = reader.
|
|
71
|
+
const result = await reader.deserialize((0, _2_tl_js_1.mustGetReturnType)(function_._));
|
|
72
72
|
L.in(result);
|
|
73
73
|
return result;
|
|
74
74
|
}
|
|
@@ -116,7 +116,8 @@ class ClientPlain extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
116
116
|
const pq = resPq.pq;
|
|
117
117
|
const serverNonce = resPq.server_nonce;
|
|
118
118
|
const newNonce = (0, _1_utilities_js_1.getRandomBigInt)(32, false, true);
|
|
119
|
-
let encryptedData = await (0, _1_utilities_js_1.rsaPad)(
|
|
119
|
+
let encryptedData = await (0, _1_utilities_js_1.rsaPad)(new _2_tl_js_1.TLWriter()
|
|
120
|
+
.serialize({
|
|
120
121
|
_: "p_q_inner_data_dc",
|
|
121
122
|
pq,
|
|
122
123
|
p,
|
|
@@ -125,7 +126,8 @@ class ClientPlain extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
125
126
|
new_nonce: newNonce,
|
|
126
127
|
nonce,
|
|
127
128
|
server_nonce: serverNonce,
|
|
128
|
-
})
|
|
129
|
+
})
|
|
130
|
+
.buffer, publicKey);
|
|
129
131
|
const dhParams = await this.invoke({
|
|
130
132
|
_: "req_DH_params",
|
|
131
133
|
nonce,
|
|
@@ -142,20 +144,22 @@ class ClientPlain extends _0_client_abstract_js_1.ClientAbstract {
|
|
|
142
144
|
const tmpAesKey = (0, _0_deps_js_1.concat)([await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([newNonce_, serverNonce_])), (await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([serverNonce_, newNonce_]))).subarray(0, 0 + 12)]);
|
|
143
145
|
const tmpAesIv = (0, _0_deps_js_1.concat)([(await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([serverNonce_, newNonce_]))).subarray(12, 12 + 8), await (0, _1_utilities_js_1.sha1)((0, _0_deps_js_1.concat)([newNonce_, newNonce_])), newNonce_.subarray(0, 0 + 4)]);
|
|
144
146
|
const answerWithHash = (0, _0_deps_js_1.ige256Decrypt)(dhParams.encrypted_answer, tmpAesKey, tmpAesIv);
|
|
145
|
-
const dhInnerData = new _2_tl_js_1.TLReader(answerWithHash.slice(20)).
|
|
147
|
+
const dhInnerData = await new _2_tl_js_1.TLReader(answerWithHash.slice(20)).deserialize("server_DH_inner_data");
|
|
146
148
|
(0, _0_deps_js_1.assert)((0, _2_tl_js_1.is)("server_DH_inner_data", dhInnerData));
|
|
147
149
|
const { g, g_a: gA_, dh_prime: dhPrime_ } = dhInnerData;
|
|
148
150
|
const gA = (0, _1_utilities_js_1.bigIntFromBuffer)(gA_, false, false);
|
|
149
151
|
const dhPrime = (0, _1_utilities_js_1.bigIntFromBuffer)(dhPrime_, false, false);
|
|
150
152
|
const b = (0, _1_utilities_js_1.getRandomBigInt)(256, false, false);
|
|
151
153
|
const gB = (0, _1_utilities_js_1.modExp)(BigInt(g), b, dhPrime);
|
|
152
|
-
const data =
|
|
154
|
+
const data = new _2_tl_js_1.TLWriter()
|
|
155
|
+
.serialize({
|
|
153
156
|
_: "client_DH_inner_data",
|
|
154
157
|
nonce,
|
|
155
158
|
server_nonce: serverNonce,
|
|
156
159
|
retry_id: 0n,
|
|
157
160
|
g_b: (0, _1_utilities_js_1.bufferFromBigInt)(gB, 256, false, false),
|
|
158
|
-
})
|
|
161
|
+
})
|
|
162
|
+
.buffer;
|
|
159
163
|
let dataWithHash = (0, _0_deps_js_1.concat)([await (0, _1_utilities_js_1.sha1)(data), data]);
|
|
160
164
|
while (dataWithHash.length % 16 != 0) {
|
|
161
165
|
dataWithHash = (0, _0_deps_js_1.concat)([dataWithHash, new Uint8Array(1)]);
|
|
@@ -40,6 +40,7 @@ export declare class MessageManager implements UpdateProcessor<MessageManagerUpd
|
|
|
40
40
|
parseMode?: ParseMode;
|
|
41
41
|
entities?: MessageEntity[];
|
|
42
42
|
}): Promise<readonly [string, Api.MessageEntity[] | undefined]>;
|
|
43
|
+
updatesToMessages(chatId: ID, updates: Api.Updates, businessConnectionId?: string): Promise<Message[]>;
|
|
43
44
|
constructMessage(message_: Api.Message, r?: boolean, business?: {
|
|
44
45
|
connectionId: string;
|
|
45
46
|
replyToMessage?: Api.Message;
|
|
@@ -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,EAAmD,MAAM,YAAY,CAAC;AAClF,OAAO,EAA0D,UAAU,EAAiB,UAAU,EAAE,QAAQ,EAA+C,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzM,OAAO,EAAqB,UAAU,EAAqE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAA2B,SAAS,EAAE,QAAQ,EAA4D,MAAM,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIrT,OAAO,EAA8E,iBAAiB,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACl1B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,UAAU,CAAE,SAAQ,EAAE;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,QAAA,MAAM,qBAAqB,2VAajB,CAAC;AAEX,KAAK,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE9E,qBAAa,cAAe,YAAW,eAAe,CAAC,oBAAoB,CAAC;;gBAI9D,CAAC,EAAE,CAAC;IAOV,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;IAuC5C,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM;IAQjD,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM;IAK9C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAqDpG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"3_message_manager.d.ts","sourceRoot":"","sources":["../../src/client/3_message_manager.ts"],"names":[],"mappings":"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"}
|