@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.
Files changed (150) hide show
  1. package/esm/2_tl.d.ts +4 -6
  2. package/esm/2_tl.d.ts.map +1 -1
  3. package/esm/2_tl.js +4 -6
  4. package/esm/3_types.d.ts +1 -0
  5. package/esm/3_types.d.ts.map +1 -1
  6. package/esm/3_types.js +1 -0
  7. package/esm/client/0_params.d.ts +12 -0
  8. package/esm/client/0_params.d.ts.map +1 -1
  9. package/esm/client/0_storage_operations.d.ts.map +1 -1
  10. package/esm/client/0_storage_operations.js +9 -9
  11. package/esm/client/1_client_encrypted.d.ts.map +1 -1
  12. package/esm/client/1_client_encrypted.js +173 -126
  13. package/esm/client/1_client_plain.d.ts.map +1 -1
  14. package/esm/client/1_client_plain.js +12 -8
  15. package/esm/client/3_message_manager.d.ts +1 -0
  16. package/esm/client/3_message_manager.d.ts.map +1 -1
  17. package/esm/client/3_message_manager.js +51 -50
  18. package/esm/client/4_forum_manager.d.ts +40 -0
  19. package/esm/client/4_forum_manager.d.ts.map +1 -0
  20. package/esm/client/4_forum_manager.js +134 -0
  21. package/esm/client/5_client.d.ts +67 -2
  22. package/esm/client/5_client.d.ts.map +1 -1
  23. package/esm/client/5_client.js +87 -2
  24. package/esm/tl/0_api.d.ts +1 -2
  25. package/esm/tl/0_api.d.ts.map +1 -1
  26. package/esm/tl/0_api.js +7345 -6639
  27. package/esm/tl/0_tl_raw_reader.d.ts +2 -0
  28. package/esm/tl/0_tl_raw_reader.d.ts.map +1 -1
  29. package/esm/tl/0_tl_raw_reader.js +10 -0
  30. package/esm/tl/1_utilities.d.ts +10 -1
  31. package/esm/tl/1_utilities.d.ts.map +1 -1
  32. package/esm/tl/1_utilities.js +25 -1
  33. package/esm/tl/{5_message.d.ts → 2_message.d.ts} +5 -8
  34. package/esm/tl/2_message.d.ts.map +1 -0
  35. package/esm/tl/{5_message.js → 2_message.js} +16 -33
  36. package/esm/tl/{3_tl_reader.d.ts → 2_tl_reader.d.ts} +4 -3
  37. package/esm/tl/2_tl_reader.d.ts.map +1 -0
  38. package/esm/tl/2_tl_reader.js +146 -0
  39. package/esm/tl/2_tl_reader_test.d.ts.map +1 -0
  40. package/{script/tl/4_tl_writer.d.ts → esm/tl/2_tl_writer.d.ts} +4 -3
  41. package/esm/tl/2_tl_writer.d.ts.map +1 -0
  42. package/esm/tl/2_tl_writer.js +209 -0
  43. package/esm/tl/2_tl_writer_test.d.ts.map +1 -0
  44. package/{script/tl/3_utilities.d.ts → esm/tl/2_utilities.d.ts} +1 -1
  45. package/esm/tl/{3_utilities.d.ts.map → 2_utilities.d.ts.map} +1 -1
  46. package/esm/types/2_chosen_inline_result.d.ts.map +1 -1
  47. package/esm/types/2_chosen_inline_result.js +2 -2
  48. package/esm/types/4_message.d.ts +3 -3
  49. package/esm/types/4_message.d.ts.map +1 -1
  50. package/esm/types/4_message.js +16 -8
  51. package/esm/types/5_callback_query.d.ts.map +1 -1
  52. package/esm/types/5_callback_query.js +3 -3
  53. package/esm/{tl/4_rpc_result.d.ts → types/5_topic.d.ts} +14 -7
  54. package/esm/types/5_topic.d.ts.map +1 -0
  55. package/esm/types/5_topic.js +76 -0
  56. package/esm/utilities/0_misc.d.ts +0 -1
  57. package/esm/utilities/0_misc.d.ts.map +1 -1
  58. package/esm/utilities/0_misc.js +0 -1
  59. package/package.json +1 -1
  60. package/script/2_tl.d.ts +4 -6
  61. package/script/2_tl.d.ts.map +1 -1
  62. package/script/2_tl.js +4 -6
  63. package/script/3_types.d.ts +1 -0
  64. package/script/3_types.d.ts.map +1 -1
  65. package/script/3_types.js +1 -0
  66. package/script/client/0_params.d.ts +12 -0
  67. package/script/client/0_params.d.ts.map +1 -1
  68. package/script/client/0_storage_operations.d.ts.map +1 -1
  69. package/script/client/0_storage_operations.js +8 -8
  70. package/script/client/1_client_encrypted.d.ts.map +1 -1
  71. package/script/client/1_client_encrypted.js +171 -124
  72. package/script/client/1_client_plain.d.ts.map +1 -1
  73. package/script/client/1_client_plain.js +11 -7
  74. package/script/client/3_message_manager.d.ts +1 -0
  75. package/script/client/3_message_manager.d.ts.map +1 -1
  76. package/script/client/3_message_manager.js +51 -50
  77. package/script/client/4_forum_manager.d.ts +40 -0
  78. package/script/client/4_forum_manager.d.ts.map +1 -0
  79. package/script/client/4_forum_manager.js +138 -0
  80. package/script/client/5_client.d.ts +67 -2
  81. package/script/client/5_client.d.ts.map +1 -1
  82. package/script/client/5_client.js +87 -2
  83. package/script/tl/0_api.d.ts +1 -2
  84. package/script/tl/0_api.d.ts.map +1 -1
  85. package/script/tl/0_api.js +7346 -6640
  86. package/script/tl/0_tl_raw_reader.d.ts +2 -0
  87. package/script/tl/0_tl_raw_reader.d.ts.map +1 -1
  88. package/script/tl/0_tl_raw_reader.js +10 -0
  89. package/script/tl/1_utilities.d.ts +10 -1
  90. package/script/tl/1_utilities.d.ts.map +1 -1
  91. package/script/tl/1_utilities.js +29 -1
  92. package/script/tl/{5_message.d.ts → 2_message.d.ts} +5 -8
  93. package/script/tl/2_message.d.ts.map +1 -0
  94. package/script/tl/{5_message.js → 2_message.js} +17 -34
  95. package/script/tl/{3_tl_reader.d.ts → 2_tl_reader.d.ts} +4 -3
  96. package/script/tl/2_tl_reader.d.ts.map +1 -0
  97. package/script/tl/2_tl_reader.js +150 -0
  98. package/script/tl/2_tl_reader_test.d.ts.map +1 -0
  99. package/{esm/tl/4_tl_writer.d.ts → script/tl/2_tl_writer.d.ts} +4 -3
  100. package/script/tl/2_tl_writer.d.ts.map +1 -0
  101. package/script/tl/2_tl_writer.js +213 -0
  102. package/script/tl/2_tl_writer_test.d.ts.map +1 -0
  103. package/{esm/tl/3_utilities.d.ts → script/tl/2_utilities.d.ts} +1 -1
  104. package/script/tl/{3_utilities.d.ts.map → 2_utilities.d.ts.map} +1 -1
  105. package/script/types/2_chosen_inline_result.d.ts.map +1 -1
  106. package/script/types/2_chosen_inline_result.js +1 -1
  107. package/script/types/4_message.d.ts +3 -3
  108. package/script/types/4_message.d.ts.map +1 -1
  109. package/script/types/4_message.js +16 -8
  110. package/script/types/5_callback_query.d.ts.map +1 -1
  111. package/script/types/5_callback_query.js +2 -2
  112. package/script/types/5_topic.d.ts +34 -0
  113. package/script/types/5_topic.d.ts.map +1 -0
  114. package/script/types/5_topic.js +79 -0
  115. package/script/utilities/0_misc.d.ts +0 -1
  116. package/script/utilities/0_misc.d.ts.map +1 -1
  117. package/script/utilities/0_misc.js +1 -2
  118. package/esm/tl/2_deserialize.d.ts +0 -23
  119. package/esm/tl/2_deserialize.d.ts.map +0 -1
  120. package/esm/tl/2_deserialize.js +0 -98
  121. package/esm/tl/2_serialize.d.ts +0 -22
  122. package/esm/tl/2_serialize.d.ts.map +0 -1
  123. package/esm/tl/2_serialize.js +0 -163
  124. package/esm/tl/2_serialize_test.d.ts.map +0 -1
  125. package/esm/tl/3_deserialize_test.d.ts.map +0 -1
  126. package/esm/tl/3_tl_reader.d.ts.map +0 -1
  127. package/esm/tl/3_tl_reader.js +0 -49
  128. package/esm/tl/4_rpc_result.d.ts.map +0 -1
  129. package/esm/tl/4_rpc_result.js +0 -33
  130. package/esm/tl/4_tl_writer.d.ts.map +0 -1
  131. package/esm/tl/4_tl_writer.js +0 -45
  132. package/esm/tl/5_message.d.ts.map +0 -1
  133. package/script/tl/2_deserialize.d.ts +0 -23
  134. package/script/tl/2_deserialize.d.ts.map +0 -1
  135. package/script/tl/2_deserialize.js +0 -101
  136. package/script/tl/2_serialize.d.ts +0 -22
  137. package/script/tl/2_serialize.d.ts.map +0 -1
  138. package/script/tl/2_serialize.js +0 -166
  139. package/script/tl/2_serialize_test.d.ts.map +0 -1
  140. package/script/tl/3_deserialize_test.d.ts.map +0 -1
  141. package/script/tl/3_tl_reader.d.ts.map +0 -1
  142. package/script/tl/3_tl_reader.js +0 -53
  143. package/script/tl/4_rpc_result.d.ts +0 -27
  144. package/script/tl/4_rpc_result.d.ts.map +0 -1
  145. package/script/tl/4_rpc_result.js +0 -37
  146. package/script/tl/4_tl_writer.d.ts.map +0 -1
  147. package/script/tl/4_tl_writer.js +0 -49
  148. package/script/tl/5_message.d.ts.map +0 -1
  149. /package/esm/tl/{3_utilities.js → 2_utilities.js} +0 -0
  150. /package/script/tl/{3_utilities.js → 2_utilities.js} +0 -0
@@ -28,16 +28,19 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
28
28
  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");
29
29
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
30
30
  };
31
- 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;
31
+ 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;
32
32
  import { unreachable } from "../0_deps.js";
33
33
  import { ConnectionError } from "../0_errors.js";
34
- import { bigIntFromBuffer, CacheMap, drop, getLogger, getRandomBigInt, sha1, toUnixTimestamp } from "../1_utilities.js";
35
- import { compressible, is, isGenericFunction, isOfEnum, isOneOf, TLError } from "../2_tl.js";
34
+ import { bigIntFromBuffer, CacheMap, drop, getLogger, getRandomBigInt, gunzip, gzip, sha1, toUnixTimestamp } from "../1_utilities.js";
35
+ import { Api, GZIP_PACKED, is, isGenericFunction, isOfEnum, isOneOf, mustGetReturnType, repr, RPC_RESULT, TLError, TLReader, X } from "../2_tl.js";
36
36
  import { constructTelegramError } from "../4_errors.js";
37
+ import { TLWriter } from "../tl/2_tl_writer.js";
37
38
  import { ClientAbstract } from "./0_client_abstract.js";
38
39
  import { decryptMessage, encryptMessage, getMessageId } from "./0_message.js";
40
+ const COMPRESSION_THRESHOLD = 1024;
39
41
  // global ClientEncrypted ID counter for logs
40
42
  let id = 0;
43
+ const RPC_ERROR = Api.getType("rpc_error")[0];
41
44
  /**
42
45
  * An MTProto client for making encrypted connections. Most users won't need to interact with this. Used internally by `Client`.
43
46
  *
@@ -61,6 +64,7 @@ export class ClientEncrypted extends ClientAbstract {
61
64
  _ClientEncrypted_toAcknowledge.set(this, new Array());
62
65
  _ClientEncrypted_recentAcks.set(this, new CacheMap(20));
63
66
  _ClientEncrypted_promises.set(this, new Map());
67
+ _ClientEncrypted_loopActive.set(this, true);
64
68
  // loggers
65
69
  _ClientEncrypted_L.set(this, void 0);
66
70
  _ClientEncrypted_LreceiveLoop.set(this, void 0);
@@ -102,13 +106,19 @@ export class ClientEncrypted extends ClientAbstract {
102
106
  }
103
107
  async invoke(function_, noWait) {
104
108
  const messageId = __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextMessageId).call(this);
109
+ let body = new TLWriter().serialize(function_).buffer;
110
+ if (body.length > COMPRESSION_THRESHOLD) {
111
+ body = new TLWriter()
112
+ .writeInt32(GZIP_PACKED, false)
113
+ .writeBytes(await gzip(body))
114
+ .buffer;
115
+ }
105
116
  let message_ = {
106
117
  _: "message",
107
118
  msg_id: messageId,
108
119
  seqno: __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextSeqNo).call(this, true),
109
- body: function_,
120
+ body,
110
121
  };
111
- Object.assign(message_, { [compressible]: true });
112
122
  const message__ = message_;
113
123
  let container = undefined;
114
124
  if (__classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").length) {
@@ -116,7 +126,7 @@ export class ClientEncrypted extends ClientAbstract {
116
126
  _: "message",
117
127
  msg_id: __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextMessageId).call(this),
118
128
  seqno: __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_nextSeqNo).call(this, false),
119
- body: { _: "msgs_ack", msg_ids: __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").splice(0, 8192) },
129
+ body: new TLWriter().serialize({ _: "msgs_ack", msg_ids: __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").splice(0, 8192) }).buffer,
120
130
  };
121
131
  __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").set(ack.msg_id, { container, message: ack });
122
132
  message_ = {
@@ -144,7 +154,7 @@ export class ClientEncrypted extends ClientAbstract {
144
154
  }));
145
155
  }
146
156
  }
147
- _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() {
157
+ _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() {
148
158
  return __classPrivateFieldGet(this, _ClientEncrypted_state, "f").messageId = getMessageId(__classPrivateFieldGet(this, _ClientEncrypted_state, "f").messageId, __classPrivateFieldGet(this, _ClientEncrypted_timeDifference, "f"));
149
159
  }, _ClientEncrypted_nextSeqNo = function _ClientEncrypted_nextSeqNo(contentRelated) {
150
160
  let seqNo = __classPrivateFieldGet(this, _ClientEncrypted_state, "f").seqNo * 2;
@@ -173,7 +183,8 @@ _ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakM
173
183
  reject?.(new ConnectionError("Connection was closed"));
174
184
  __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(key);
175
185
  }
176
- loop: while (this.connected) {
186
+ __classPrivateFieldSet(this, _ClientEncrypted_loopActive, true, "f");
187
+ while (this.connected && __classPrivateFieldGet(this, _ClientEncrypted_loopActive, "f")) {
177
188
  try {
178
189
  const buffer = await this.transport.transport.receive();
179
190
  __classPrivateFieldGet(this, _ClientEncrypted_L, "f").inBin(buffer);
@@ -187,126 +198,12 @@ _ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakM
187
198
  drop(this.handlers.error?.(err, "decryption"));
188
199
  continue;
189
200
  }
190
- const messages = decrypted.body._ == "msg_container" ? decrypted.body.messages : [decrypted];
201
+ const messages = decrypted.body instanceof Uint8Array ? [decrypted] : decrypted.body.messages.map((v) => v);
191
202
  for (const message of messages) {
192
- let sendAck = true;
193
- const body = message.body;
194
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("received", body._);
195
- if (isOfEnum("Updates", body) || isOfEnum("Update", body)) {
196
- drop(this.handlers.updates?.(body, null));
197
- }
198
- else if (is("new_session_created", body)) {
199
- this.serverSalt = body.server_salt;
200
- drop(this.handlers.serverSaltReassigned?.(this.serverSalt));
201
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("new session created with ID", body.unique_id);
202
- }
203
- else if (body._ == "rpc_result") {
204
- const result = body.result;
205
- if (is("rpc_error", result)) {
206
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", result.error_code, result.error_message);
207
- }
208
- else {
209
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", Array.isArray(result) ? "Array" : typeof result === "object" ? result._ : result);
210
- }
211
- const messageId = body.req_msg_id;
212
- const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(messageId);
213
- const resolvePromise = () => {
214
- if (promise) {
215
- if (is("rpc_error", result)) {
216
- promise.reject?.(constructTelegramError(result, promise.call));
217
- }
218
- else {
219
- promise.resolve?.(result);
220
- }
221
- __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(messageId);
222
- }
223
- };
224
- if (isOfEnum("Updates", result) || isOfEnum("Update", result)) {
225
- // @ts-ignore: tbd
226
- let call = promise?.call ?? null;
227
- if (isGenericFunction(call)) {
228
- call = call.query;
229
- }
230
- drop(this.handlers.updates?.(result, call, resolvePromise));
231
- }
232
- else {
233
- drop(this.handlers.result?.(result, resolvePromise));
234
- }
235
- }
236
- else if (is("pong", body)) {
237
- const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.msg_id);
238
- if (promise) {
239
- promise.resolve?.(body);
240
- __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.msg_id);
241
- }
242
- }
243
- else if (is("bad_server_salt", body)) {
244
- sendAck = false;
245
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("server salt reassigned");
246
- this.serverSalt = body.new_server_salt;
247
- drop(this.handlers.serverSaltReassigned?.(this.serverSalt));
248
- const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
249
- const ack = __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").get(body.bad_msg_id);
250
- if (promise) {
251
- drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
252
- }
253
- else if (ack) {
254
- drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
255
- }
256
- else {
257
- for (const promise of __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").values()) {
258
- if (promise.container && promise.container == body.bad_msg_id) {
259
- drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
260
- }
261
- }
262
- for (const ack of __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").values()) {
263
- if (ack.container && ack.container == body.bad_msg_id) {
264
- drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
265
- }
266
- }
267
- }
268
- }
269
- else if (is("bad_msg_notification", body)) {
270
- sendAck = false;
271
- let low = false;
272
- switch (body.error_code) {
273
- case 16: // message ID too low
274
- low = true;
275
- /* falls through */
276
- case 17: // message ID too high
277
- __classPrivateFieldSet(this, _ClientEncrypted_timeDifference, Math.abs(toUnixTimestamp(new Date()) - Number(message.msg_id >> 32n)), "f");
278
- if (!low) {
279
- __classPrivateFieldSet(this, _ClientEncrypted_timeDifference, -__classPrivateFieldGet(this, _ClientEncrypted_timeDifference, "f"), "f");
280
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too high, invalidating session");
281
- await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
282
- break loop;
283
- }
284
- else {
285
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too low, resending message");
286
- }
287
- break;
288
- case 48: // bad server salt
289
- // resend
290
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("resending message that caused bad_server_salt");
291
- break;
292
- default:
293
- await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
294
- __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("invalidating session because of unexpected bad_msg_notification:", body.error_code);
295
- break loop;
296
- }
297
- const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
298
- if (promise) {
299
- promise.reject?.(body);
300
- __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.bad_msg_id);
301
- }
302
- }
303
- else if (isOneOf(["msg_detailed_info", "msg_new_detailed_info"], body)) {
304
- sendAck = false;
305
- __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(body.answer_msg_id);
306
- }
307
- if (sendAck) {
308
- __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(message.msg_id);
203
+ if (!(message.body instanceof Uint8Array)) {
204
+ unreachable();
309
205
  }
206
+ await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_handleIncomingMessage).call(this, message);
310
207
  }
311
208
  }
312
209
  catch (err) {
@@ -331,4 +228,154 @@ _ClientEncrypted_authKey = new WeakMap(), _ClientEncrypted_authKeyId = new WeakM
331
228
  else {
332
229
  unreachable();
333
230
  }
231
+ }, _ClientEncrypted_handleIncomingMessage = async function _ClientEncrypted_handleIncomingMessage(message) {
232
+ const body = message.body;
233
+ if (!(body instanceof Uint8Array)) {
234
+ unreachable();
235
+ }
236
+ let reader = new TLReader(body);
237
+ const id = reader.readInt32(false);
238
+ if (id == GZIP_PACKED) {
239
+ reader = new TLReader(await gunzip(reader.readBytes()));
240
+ }
241
+ else if (id == RPC_RESULT) {
242
+ await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_handleRpcResult).call(this, reader);
243
+ }
244
+ else {
245
+ reader.unreadInt32();
246
+ await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_handleType).call(this, message, reader);
247
+ return;
248
+ }
249
+ __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(message.msg_id);
250
+ }, _ClientEncrypted_handleRpcResult = async function _ClientEncrypted_handleRpcResult(reader) {
251
+ const messageId = reader.readInt64();
252
+ const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(messageId);
253
+ if (!promise) {
254
+ return;
255
+ }
256
+ let id = reader.readInt32(false);
257
+ if (id == GZIP_PACKED) {
258
+ reader = new TLReader(await gunzip(reader.readBytes()));
259
+ id = reader.readInt32(false);
260
+ reader.unreadInt32();
261
+ }
262
+ else {
263
+ reader.unreadInt32();
264
+ }
265
+ // deno-lint-ignore no-explicit-any
266
+ let call = promise?.call ?? null;
267
+ while (isGenericFunction(call)) {
268
+ call = call.query;
269
+ }
270
+ // deno-lint-ignore no-explicit-any
271
+ let result;
272
+ if (id == RPC_ERROR) {
273
+ result = await reader.deserialize("rpc_error");
274
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", result.error_code, result.error_message);
275
+ }
276
+ else {
277
+ result = await reader.deserialize(mustGetReturnType(call._));
278
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("RPCResult:", Array.isArray(result) ? "Array" : typeof result === "object" ? result._ : result);
279
+ }
280
+ const resolvePromise = () => {
281
+ if (is("rpc_error", result)) {
282
+ promise.reject?.(constructTelegramError(result, promise.call));
283
+ }
284
+ else {
285
+ promise.resolve?.(result);
286
+ }
287
+ __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(messageId);
288
+ };
289
+ if (isOfEnum("Updates", result) || isOfEnum("Update", result)) {
290
+ drop(this.handlers.updates?.(result, call, resolvePromise));
291
+ }
292
+ else {
293
+ drop(this.handlers.result?.(result, resolvePromise));
294
+ }
295
+ }, _ClientEncrypted_handleType = async function _ClientEncrypted_handleType(message, reader) {
296
+ const body = await reader.deserialize(X);
297
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("received", repr(body));
298
+ let sendAck = true;
299
+ if (isOfEnum("Updates", body) || isOfEnum("Update", body)) {
300
+ drop(this.handlers.updates?.(body, null));
301
+ }
302
+ else if (is("new_session_created", body)) {
303
+ this.serverSalt = body.server_salt;
304
+ drop(this.handlers.serverSaltReassigned?.(this.serverSalt));
305
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("new session created with ID", body.unique_id);
306
+ }
307
+ else if (is("pong", body)) {
308
+ const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.msg_id);
309
+ if (promise) {
310
+ promise.resolve?.(body);
311
+ __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.msg_id);
312
+ }
313
+ }
314
+ else if (is("bad_server_salt", body)) {
315
+ sendAck = false;
316
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("server salt reassigned");
317
+ this.serverSalt = body.new_server_salt;
318
+ drop(this.handlers.serverSaltReassigned?.(this.serverSalt));
319
+ const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
320
+ const ack = __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").get(body.bad_msg_id);
321
+ if (promise) {
322
+ drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
323
+ }
324
+ else if (ack) {
325
+ drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
326
+ }
327
+ else {
328
+ for (const promise of __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").values()) {
329
+ if (promise.container && promise.container == body.bad_msg_id) {
330
+ drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, promise.message));
331
+ }
332
+ }
333
+ for (const ack of __classPrivateFieldGet(this, _ClientEncrypted_recentAcks, "f").values()) {
334
+ if (ack.container && ack.container == body.bad_msg_id) {
335
+ drop(__classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_sendMessage).call(this, ack.message));
336
+ }
337
+ }
338
+ }
339
+ }
340
+ else if (is("bad_msg_notification", body)) {
341
+ sendAck = false;
342
+ let low = false;
343
+ switch (body.error_code) {
344
+ case 16: // message ID too low
345
+ low = true;
346
+ /* falls through */
347
+ case 17: // message ID too high
348
+ __classPrivateFieldSet(this, _ClientEncrypted_timeDifference, Math.abs(toUnixTimestamp(new Date()) - Number(message.msg_id >> 32n)), "f");
349
+ if (!low) {
350
+ __classPrivateFieldSet(this, _ClientEncrypted_timeDifference, -__classPrivateFieldGet(this, _ClientEncrypted_timeDifference, "f"), "f");
351
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too high, invalidating session");
352
+ await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
353
+ __classPrivateFieldSet(this, _ClientEncrypted_loopActive, false, "f");
354
+ }
355
+ else {
356
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("message ID too low, resending message");
357
+ }
358
+ break;
359
+ case 48: // bad server salt
360
+ // resend
361
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("resending message that caused bad_server_salt");
362
+ break;
363
+ default:
364
+ await __classPrivateFieldGet(this, _ClientEncrypted_instances, "m", _ClientEncrypted_invalidateSession).call(this);
365
+ __classPrivateFieldGet(this, _ClientEncrypted_LreceiveLoop, "f").debug("invalidating session because of unexpected bad_msg_notification:", body.error_code);
366
+ __classPrivateFieldSet(this, _ClientEncrypted_loopActive, false, "f");
367
+ }
368
+ const promise = __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").get(body.bad_msg_id);
369
+ if (promise) {
370
+ promise.reject?.(body);
371
+ __classPrivateFieldGet(this, _ClientEncrypted_promises, "f").delete(body.bad_msg_id);
372
+ }
373
+ }
374
+ else if (isOneOf(["msg_detailed_info", "msg_new_detailed_info"], body)) {
375
+ sendAck = false;
376
+ __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(body.answer_msg_id);
377
+ }
378
+ if (sendAck) {
379
+ __classPrivateFieldGet(this, _ClientEncrypted_toAcknowledge, "f").push(message.msg_id);
380
+ }
334
381
  };
@@ -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,EAA2B,MAAM,YAAY,CAAC;AAC1D,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;CA+HlE"}
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"}
@@ -32,7 +32,7 @@ var _ClientPlain_publicKeys, _ClientPlain_lastMessageId;
32
32
  import { assert, assertEquals, concat, ige256Decrypt, ige256Encrypt, unreachable } from "../0_deps.js";
33
33
  import { ConnectionError, TransportError } from "../0_errors.js";
34
34
  import { bigIntFromBuffer, bufferFromBigInt, factorize, getLogger, getRandomBigInt, modExp, rsaPad, sha1 } from "../1_utilities.js";
35
- import { is, serialize, TLReader } from "../2_tl.js";
35
+ import { is, mustGetReturnType, TLReader, TLWriter } from "../2_tl.js";
36
36
  import { PUBLIC_KEYS } from "../4_constants.js";
37
37
  import { ClientAbstract } from "./0_client_abstract.js";
38
38
  import { getMessageId, packUnencryptedMessage, unpackUnencryptedMessage } from "./0_message.js";
@@ -53,7 +53,7 @@ export class ClientPlain extends ClientAbstract {
53
53
  throw new ConnectionError("Not connected.");
54
54
  }
55
55
  const messageId = __classPrivateFieldSet(this, _ClientPlain_lastMessageId, getMessageId(__classPrivateFieldGet(this, _ClientPlain_lastMessageId, "f"), 0), "f");
56
- const payload = packUnencryptedMessage(serialize(function_), messageId);
56
+ const payload = packUnencryptedMessage(new TLWriter().serialize(function_).buffer, messageId);
57
57
  await this.transport.transport.send(payload);
58
58
  L.out(function_);
59
59
  L.outBin(payload);
@@ -65,7 +65,7 @@ export class ClientPlain extends ClientAbstract {
65
65
  }
66
66
  const { message } = unpackUnencryptedMessage(buffer);
67
67
  const reader = new TLReader(message);
68
- const result = reader.readObject();
68
+ const result = await reader.deserialize(mustGetReturnType(function_._));
69
69
  L.in(result);
70
70
  return result;
71
71
  }
@@ -113,7 +113,8 @@ export class ClientPlain extends ClientAbstract {
113
113
  const pq = resPq.pq;
114
114
  const serverNonce = resPq.server_nonce;
115
115
  const newNonce = getRandomBigInt(32, false, true);
116
- let encryptedData = await rsaPad(serialize({
116
+ let encryptedData = await rsaPad(new TLWriter()
117
+ .serialize({
117
118
  _: "p_q_inner_data_dc",
118
119
  pq,
119
120
  p,
@@ -122,7 +123,8 @@ export class ClientPlain extends ClientAbstract {
122
123
  new_nonce: newNonce,
123
124
  nonce,
124
125
  server_nonce: serverNonce,
125
- }), publicKey);
126
+ })
127
+ .buffer, publicKey);
126
128
  const dhParams = await this.invoke({
127
129
  _: "req_DH_params",
128
130
  nonce,
@@ -139,20 +141,22 @@ export class ClientPlain extends ClientAbstract {
139
141
  const tmpAesKey = concat([await sha1(concat([newNonce_, serverNonce_])), (await sha1(concat([serverNonce_, newNonce_]))).subarray(0, 0 + 12)]);
140
142
  const tmpAesIv = concat([(await sha1(concat([serverNonce_, newNonce_]))).subarray(12, 12 + 8), await sha1(concat([newNonce_, newNonce_])), newNonce_.subarray(0, 0 + 4)]);
141
143
  const answerWithHash = ige256Decrypt(dhParams.encrypted_answer, tmpAesKey, tmpAesIv);
142
- const dhInnerData = new TLReader(answerWithHash.slice(20)).readObject();
144
+ const dhInnerData = await new TLReader(answerWithHash.slice(20)).deserialize("server_DH_inner_data");
143
145
  assert(is("server_DH_inner_data", dhInnerData));
144
146
  const { g, g_a: gA_, dh_prime: dhPrime_ } = dhInnerData;
145
147
  const gA = bigIntFromBuffer(gA_, false, false);
146
148
  const dhPrime = bigIntFromBuffer(dhPrime_, false, false);
147
149
  const b = getRandomBigInt(256, false, false);
148
150
  const gB = modExp(BigInt(g), b, dhPrime);
149
- const data = serialize({
151
+ const data = new TLWriter()
152
+ .serialize({
150
153
  _: "client_DH_inner_data",
151
154
  nonce,
152
155
  server_nonce: serverNonce,
153
156
  retry_id: 0n,
154
157
  g_b: bufferFromBigInt(gB, 256, false, false),
155
- });
158
+ })
159
+ .buffer;
156
160
  let dataWithHash = concat([await sha1(data), data]);
157
161
  while (dataWithHash.length % 16 != 0) {
158
162
  dataWithHash = 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":"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"}
1
+ {"version":3,"file":"3_message_manager.d.ts","sourceRoot":"","sources":["../../src/client/3_message_manager.ts"],"names":[],"mappings":"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"}