@mtkruto/node 0.0.835 → 0.0.901

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 (75) hide show
  1. package/esm/client/client.d.ts +23 -3
  2. package/esm/client/client.js +497 -76
  3. package/esm/client/client_abstract.d.ts +2 -0
  4. package/esm/client/client_abstract.js +14 -3
  5. package/esm/client/client_plain.js +18 -4
  6. package/esm/constants.d.ts +7 -5
  7. package/esm/constants.js +10 -6
  8. package/esm/deps/deno.land/std@0.190.0/encoding/base64.d.ts +11 -0
  9. package/esm/deps/deno.land/std@0.190.0/encoding/base64.js +140 -0
  10. package/esm/deps/deno.land/x/q@v0.0.1/mod.d.ts +6 -0
  11. package/esm/deps/deno.land/x/q@v0.0.1/mod.js +71 -0
  12. package/esm/deps.d.ts +2 -0
  13. package/esm/deps.js +2 -0
  14. package/esm/mod.d.ts +3 -3
  15. package/esm/mod.js +3 -3
  16. package/esm/storage/storage.d.ts +18 -0
  17. package/esm/storage/storage.js +103 -0
  18. package/esm/tl/1_tl_object.d.ts +0 -1
  19. package/esm/tl/1_tl_object.js +1 -1
  20. package/esm/tl/4_tl_writer.d.ts +5 -0
  21. package/esm/tl/5_rpc_result.d.ts +9 -0
  22. package/esm/tl/6_message.d.ts +10 -0
  23. package/esm/tl/{5_message.js → 6_message.js} +2 -2
  24. package/esm/tl/{6_message_container.d.ts → 7_message_container.d.ts} +1 -1
  25. package/esm/tl/{6_message_container.js → 7_message_container.js} +2 -2
  26. package/esm/transport/transport_provider.d.ts +7 -4
  27. package/esm/transport/transport_provider.js +11 -8
  28. package/esm/types/3_message.d.ts +5 -1
  29. package/esm/types/3_message.js +26 -22
  30. package/esm/utilities/1_message.d.ts +2 -2
  31. package/esm/utilities/1_message.js +3 -3
  32. package/esm/utilities/1_password.js +1 -1
  33. package/package.json +1 -1
  34. package/script/client/client.d.ts +23 -3
  35. package/script/client/client.js +497 -76
  36. package/script/client/client_abstract.d.ts +2 -0
  37. package/script/client/client_abstract.js +14 -3
  38. package/script/client/client_plain.js +18 -4
  39. package/script/constants.d.ts +7 -5
  40. package/script/constants.js +34 -7
  41. package/script/deps/deno.land/std@0.190.0/encoding/base64.d.ts +11 -0
  42. package/script/deps/deno.land/std@0.190.0/encoding/base64.js +145 -0
  43. package/script/deps/deno.land/x/q@v0.0.1/mod.d.ts +6 -0
  44. package/script/deps/deno.land/x/q@v0.0.1/mod.js +75 -0
  45. package/script/deps.d.ts +2 -0
  46. package/script/deps.js +6 -1
  47. package/script/mod.d.ts +3 -3
  48. package/script/mod.js +3 -3
  49. package/script/storage/storage.d.ts +18 -0
  50. package/script/storage/storage.js +126 -0
  51. package/script/tl/1_tl_object.d.ts +0 -1
  52. package/script/tl/1_tl_object.js +1 -1
  53. package/script/tl/4_tl_writer.d.ts +5 -0
  54. package/script/tl/5_rpc_result.d.ts +9 -0
  55. package/script/tl/6_message.d.ts +10 -0
  56. package/script/tl/{5_message.js → 6_message.js} +6 -6
  57. package/script/tl/{6_message_container.d.ts → 7_message_container.d.ts} +1 -1
  58. package/script/tl/{6_message_container.js → 7_message_container.js} +4 -4
  59. package/script/transport/transport_provider.d.ts +7 -4
  60. package/script/transport/transport_provider.js +11 -8
  61. package/script/types/3_message.d.ts +5 -1
  62. package/script/types/3_message.js +26 -22
  63. package/script/utilities/1_message.d.ts +2 -2
  64. package/script/utilities/1_message.js +9 -9
  65. package/script/utilities/1_password.js +1 -1
  66. package/esm/tl/3_tl_writer.d.ts +0 -5
  67. package/esm/tl/4_rpc_result.d.ts +0 -8
  68. package/esm/tl/5_message.d.ts +0 -11
  69. package/script/tl/3_tl_writer.d.ts +0 -5
  70. package/script/tl/4_rpc_result.d.ts +0 -8
  71. package/script/tl/5_message.d.ts +0 -11
  72. /package/esm/tl/{3_tl_writer.js → 4_tl_writer.js} +0 -0
  73. /package/esm/tl/{4_rpc_result.js → 5_rpc_result.js} +0 -0
  74. /package/script/tl/{3_tl_writer.js → 4_tl_writer.js} +0 -0
  75. /package/script/tl/{4_rpc_result.js → 5_rpc_result.js} +0 -0
@@ -0,0 +1,9 @@
1
+ import { id } from "./1_tl_object.js";
2
+ import { ReadObject } from "./3_tl_reader.js";
3
+ export declare class RPCResult {
4
+ readonly messageId: bigint;
5
+ readonly result: ReadObject;
6
+ static get [id](): number;
7
+ constructor(messageId: bigint, result: ReadObject);
8
+ static deserialize(buffer: Uint8Array): RPCResult;
9
+ }
@@ -0,0 +1,10 @@
1
+ import { ReadObject, TLReader } from "./3_tl_reader.js";
2
+ import { RPCResult } from "./5_rpc_result.js";
3
+ export declare class Message {
4
+ readonly id: bigint;
5
+ readonly seqNo: number;
6
+ readonly body: ReadObject | RPCResult;
7
+ constructor(id: bigint, seqNo: number, body: ReadObject | RPCResult);
8
+ serialize(): Uint8Array;
9
+ static deserialize(reader: TLReader): Message;
10
+ }
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Message = void 0;
4
4
  const _1_tl_object_js_1 = require("./1_tl_object.js");
5
5
  const _3_tl_reader_js_1 = require("./3_tl_reader.js");
6
- const _3_tl_writer_js_1 = require("./3_tl_writer.js");
7
- const _4_rpc_result_js_1 = require("./4_rpc_result.js");
6
+ const _4_tl_writer_js_1 = require("./4_tl_writer.js");
7
+ const _5_rpc_result_js_1 = require("./5_rpc_result.js");
8
8
  // TODO: test
9
9
  function calculateLength(object) {
10
10
  let length = 0;
@@ -42,10 +42,10 @@ class Message {
42
42
  });
43
43
  }
44
44
  serialize() {
45
- if (this.body instanceof _4_rpc_result_js_1.RPCResult) {
45
+ if (this.body instanceof _5_rpc_result_js_1.RPCResult) {
46
46
  throw new Error("Not applicable");
47
47
  }
48
- return new _3_tl_writer_js_1.TLWriter()
48
+ return new _4_tl_writer_js_1.TLWriter()
49
49
  .writeInt64(this.id)
50
50
  .writeInt32(this.seqNo)
51
51
  .writeInt32(calculateLength(this.body))
@@ -60,8 +60,8 @@ class Message {
60
60
  const cid = reader.readInt32(false);
61
61
  let body;
62
62
  {
63
- if (cid == _4_rpc_result_js_1.RPCResult[_1_tl_object_js_1.id]) {
64
- body = _4_rpc_result_js_1.RPCResult.deserialize(reader.buffer);
63
+ if (cid == _5_rpc_result_js_1.RPCResult[_1_tl_object_js_1.id]) {
64
+ body = _5_rpc_result_js_1.RPCResult.deserialize(reader.buffer);
65
65
  }
66
66
  else {
67
67
  body = reader.readObject(cid);
@@ -1,5 +1,5 @@
1
1
  import { id } from "./1_tl_object.js";
2
- import { Message } from "./5_message.js";
2
+ import { Message } from "./6_message.js";
3
3
  export declare class MessageContainer {
4
4
  messages: Message[];
5
5
  static get [id](): number;
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MessageContainer = void 0;
4
4
  const _1_tl_object_js_1 = require("./1_tl_object.js");
5
5
  const _3_tl_reader_js_1 = require("./3_tl_reader.js");
6
- const _3_tl_writer_js_1 = require("./3_tl_writer.js");
7
- const _5_message_js_1 = require("./5_message.js");
6
+ const _4_tl_writer_js_1 = require("./4_tl_writer.js");
7
+ const _6_message_js_1 = require("./6_message.js");
8
8
  class MessageContainer {
9
9
  static get [_1_tl_object_js_1.id]() {
10
10
  return 0x73F1F8DC;
@@ -18,7 +18,7 @@ class MessageContainer {
18
18
  });
19
19
  }
20
20
  serialize() {
21
- const writer = new _3_tl_writer_js_1.TLWriter();
21
+ const writer = new _4_tl_writer_js_1.TLWriter();
22
22
  writer.writeInt32(MessageContainer[_1_tl_object_js_1.id]);
23
23
  writer.writeInt32(this.messages.length);
24
24
  for (const message of this.messages) {
@@ -31,7 +31,7 @@ class MessageContainer {
31
31
  const length = reader.readInt32();
32
32
  const messages = new Array();
33
33
  for (let i = 0; i < length; i++) {
34
- messages.push(_5_message_js_1.Message.deserialize(reader));
34
+ messages.push(_6_message_js_1.Message.deserialize(reader));
35
35
  }
36
36
  return new MessageContainer(messages);
37
37
  }
@@ -5,10 +5,13 @@ export interface TransportProviderParams {
5
5
  dc?: DC;
6
6
  cdn: boolean;
7
7
  }
8
- export type TransportProvider = (params: TransportProviderParams) => {
9
- connection: Connection;
10
- transport: Transport;
11
- dcId: number;
8
+ export type TransportProvider = {
9
+ initialDc: DC;
10
+ createTransport: (params: TransportProviderParams) => {
11
+ connection: Connection;
12
+ transport: Transport;
13
+ dcId: number;
14
+ };
12
15
  };
13
16
  export interface TransportProviderCreatorParams {
14
17
  initialDc: DC;
@@ -14,14 +14,17 @@ const dcToNameMap = {
14
14
  "5": "flora",
15
15
  };
16
16
  const defaultTransportProvider = ({ initialDc, wss }) => {
17
- return ({ dc, cdn }) => {
18
- dc ??= initialDc;
19
- wss ??= typeof location !== "undefined" && location.protocol == "http:" ? false : true;
20
- const url = `${wss ? "wss" : "ws"}://${dcToNameMap[dc]}${cdn ? "-1" : ""}.web.telegram.org/${dc.endsWith("-test") ? "apiws_test" : "apiws"}`;
21
- const connection = new connection_web_socket_js_1.ConnectionWebSocket(url);
22
- const transport = new transport_intermediate_js_1.TransportIntermediate(connection, true);
23
- const dcId = Number(dc[0]) + (dc.endsWith("-test") ? 10000 : 0) * (cdn ? -1 : 1);
24
- return { connection, transport, dcId };
17
+ return {
18
+ initialDc,
19
+ createTransport: ({ dc, cdn }) => {
20
+ dc ??= initialDc;
21
+ wss ??= typeof location !== "undefined" && location.protocol == "http:" ? false : true;
22
+ const url = `${wss ? "wss" : "ws"}://${dcToNameMap[dc]}${cdn ? "-1" : ""}.web.telegram.org/${dc.endsWith("-test") ? "apiws_test" : "apiws"}`;
23
+ const connection = new connection_web_socket_js_1.ConnectionWebSocket(url);
24
+ const transport = new transport_intermediate_js_1.TransportIntermediate(connection, true);
25
+ const dcId = Number(dc[0]) + (dc.endsWith("-test") ? 10000 : 0) * (cdn ? -1 : 1);
26
+ return { connection, transport, dcId };
27
+ },
25
28
  };
26
29
  };
27
30
  exports.defaultTransportProvider = defaultTransportProvider;
@@ -19,4 +19,8 @@ export interface Message {
19
19
  views?: number;
20
20
  replyMarkup?: InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply;
21
21
  }
22
- export declare function constructMessage(message_: types.Message, users: types.TypeUser[], chats: types.TypeChat[]): Message;
22
+ export declare function constructMessage(message_: types.Message, getEntity: {
23
+ (peer: types.PeerUser): Promise<types.User | null>;
24
+ (peer: types.PeerChat): Promise<types.Chat | null>;
25
+ (peer: types.PeerChannel): Promise<types.Channel | null>;
26
+ }): Promise<Message>;
@@ -34,42 +34,46 @@ const _1_chat_js_1 = require("./1_chat.js");
34
34
  const _1_user_js_1 = require("./1_user.js");
35
35
  const _2_inline_keyboard_markup_js_1 = require("./2_inline_keyboard_markup.js");
36
36
  const _2_reply_keyboard_markup_js_1 = require("./2_reply_keyboard_markup.js");
37
- function constructMessage(message_, users, chats) {
37
+ async function constructMessage(message_, getEntity) {
38
38
  let chat_ = null;
39
39
  if (message_.peerId instanceof types.PeerUser) {
40
- for (const user of users) {
41
- if (user instanceof types.User && user.id == message_.peerId.userId) {
42
- chat_ = (0, _1_chat_js_1.constructChat)(user);
43
- break;
44
- }
40
+ const entity = await getEntity(message_.peerId);
41
+ if (entity) {
42
+ chat_ = (0, _1_chat_js_1.constructChat)(entity);
43
+ }
44
+ else {
45
+ (0, _0_control_js_1.UNREACHABLE)();
45
46
  }
46
47
  }
47
48
  else if (message_.peerId instanceof types.PeerChat) {
48
- for (const chat of chats) {
49
- if (chat instanceof types.Chat && chat.id == message_.peerId.chatId) {
50
- chat_ = (0, _1_chat_js_1.constructChat)(chat);
51
- break;
52
- }
49
+ const entity = await getEntity(message_.peerId);
50
+ if (entity) {
51
+ chat_ = (0, _1_chat_js_1.constructChat)(entity);
52
+ }
53
+ else {
54
+ (0, _0_control_js_1.UNREACHABLE)();
53
55
  }
54
56
  }
55
57
  else if (message_.peerId instanceof types.PeerChannel) {
56
- for (const chat of chats) {
57
- if (chat instanceof types.Channel && chat.id == message_.peerId.channelId) {
58
- chat_ = (0, _1_chat_js_1.constructChat)(chat);
59
- break;
60
- }
58
+ const entity = await getEntity(message_.peerId);
59
+ if (entity) {
60
+ chat_ = (0, _1_chat_js_1.constructChat)(entity);
61
+ }
62
+ else {
63
+ (0, _0_control_js_1.UNREACHABLE)();
61
64
  }
62
65
  }
63
- if (!chat_) {
66
+ else {
64
67
  (0, _0_control_js_1.UNREACHABLE)();
65
68
  }
66
69
  const message = { id: message_.id, chat: chat_, views: message_.views };
67
70
  if (message_.fromId instanceof types.PeerUser) {
68
- for (const user of users) {
69
- if (user instanceof types.User && user.id == message_.fromId.userId) {
70
- message.from = (0, _1_user_js_1.constructUser)(user);
71
- break;
72
- }
71
+ const entity = await getEntity(message_.fromId);
72
+ if (entity) {
73
+ message.from = (0, _1_user_js_1.constructUser)(entity);
74
+ }
75
+ else {
76
+ (0, _0_control_js_1.UNREACHABLE)();
73
77
  }
74
78
  }
75
79
  if (message_.message) {
@@ -1,5 +1,5 @@
1
- import { Message } from "../tl/5_message.js";
2
- import { MessageContainer } from "../tl/6_message_container.js";
1
+ import { Message } from "../tl/6_message.js";
2
+ import { MessageContainer } from "../tl/7_message_container.js";
3
3
  export declare function getMessageId(): bigint;
4
4
  export declare function packUnencryptedMessage(data: Uint8Array): Uint8Array;
5
5
  export declare function unpackUnencryptedMessage(buffer: Uint8Array): {
@@ -6,9 +6,9 @@ const _0_tl_raw_reader_js_1 = require("../tl/0_tl_raw_reader.js");
6
6
  const _0_tl_raw_writer_js_1 = require("../tl/0_tl_raw_writer.js");
7
7
  const _1_tl_object_js_1 = require("../tl/1_tl_object.js");
8
8
  const _3_tl_reader_js_1 = require("../tl/3_tl_reader.js");
9
- const _4_rpc_result_js_1 = require("../tl/4_rpc_result.js");
10
- const _5_message_js_1 = require("../tl/5_message.js");
11
- const _6_message_container_js_1 = require("../tl/6_message_container.js");
9
+ const _5_rpc_result_js_1 = require("../tl/5_rpc_result.js");
10
+ const _6_message_js_1 = require("../tl/6_message.js");
11
+ const _7_message_container_js_1 = require("../tl/7_message_container.js");
12
12
  const _0_buffer_js_1 = require("./0_buffer.js");
13
13
  const _0_hash_js_1 = require("./0_hash.js");
14
14
  let lastMsgId = 0n;
@@ -87,16 +87,16 @@ async function decryptMessage(buffer, authKey, authKeyId, _sessionId) {
87
87
  const length = plainReader.readInt32();
88
88
  plainReader = new _3_tl_reader_js_1.TLReader(plainReader.read(length));
89
89
  const cid = plainReader.readInt32(false);
90
- if (cid == _6_message_container_js_1.MessageContainer[_1_tl_object_js_1.id]) {
91
- return _6_message_container_js_1.MessageContainer.deserialize(plainReader.buffer);
90
+ if (cid == _7_message_container_js_1.MessageContainer[_1_tl_object_js_1.id]) {
91
+ return _7_message_container_js_1.MessageContainer.deserialize(plainReader.buffer);
92
92
  }
93
- else if (cid == _4_rpc_result_js_1.RPCResult[_1_tl_object_js_1.id]) {
94
- const body = _4_rpc_result_js_1.RPCResult.deserialize(plainReader.buffer);
95
- return new _5_message_js_1.Message(mid, seqno, body);
93
+ else if (cid == _5_rpc_result_js_1.RPCResult[_1_tl_object_js_1.id]) {
94
+ const body = _5_rpc_result_js_1.RPCResult.deserialize(plainReader.buffer);
95
+ return new _6_message_js_1.Message(mid, seqno, body);
96
96
  }
97
97
  else {
98
98
  const body = plainReader.readObject(cid);
99
- return new _5_message_js_1.Message(mid, seqno, body);
99
+ return new _6_message_js_1.Message(mid, seqno, body);
100
100
  }
101
101
  }
102
102
  exports.decryptMessage = decryptMessage;
@@ -56,7 +56,7 @@ function isSafePrime(primeBytes, g) {
56
56
  0xB9, 0x2F, 0xCC, 0x5B,
57
57
  ]);
58
58
  if (goodPrime.every((v, i) => v == primeBytes[i])) {
59
- if ([3, 4, 5, 7].includes(g)) { // It's good
59
+ if ([3, 4, 5, 7].includes(g)) {
60
60
  return true;
61
61
  }
62
62
  }
@@ -1,5 +0,0 @@
1
- import { TLRawWriter } from "./0_tl_raw_writer.js";
2
- import { MaybeVectorTLObject } from "./1_tl_object.js";
3
- export declare class TLWriter extends TLRawWriter {
4
- writeObject(object: MaybeVectorTLObject): this;
5
- }
@@ -1,8 +0,0 @@
1
- import { id, MaybeVectorTLObject } from "./1_tl_object.js";
2
- export declare class RPCResult {
3
- readonly messageId: bigint;
4
- readonly result: MaybeVectorTLObject;
5
- static get [id](): number;
6
- constructor(messageId: bigint, result: MaybeVectorTLObject);
7
- static deserialize(buffer: Uint8Array): RPCResult;
8
- }
@@ -1,11 +0,0 @@
1
- import { MaybeVectorTLObject } from "./1_tl_object.js";
2
- import { TLReader } from "./3_tl_reader.js";
3
- import { RPCResult } from "./4_rpc_result.js";
4
- export declare class Message {
5
- readonly id: bigint;
6
- readonly seqNo: number;
7
- readonly body: MaybeVectorTLObject | RPCResult;
8
- constructor(id: bigint, seqNo: number, body: MaybeVectorTLObject | RPCResult);
9
- serialize(): Uint8Array;
10
- static deserialize(reader: TLReader): Message;
11
- }
@@ -1,5 +0,0 @@
1
- import { TLRawWriter } from "./0_tl_raw_writer.js";
2
- import { MaybeVectorTLObject } from "./1_tl_object.js";
3
- export declare class TLWriter extends TLRawWriter {
4
- writeObject(object: MaybeVectorTLObject): this;
5
- }
@@ -1,8 +0,0 @@
1
- import { id, MaybeVectorTLObject } from "./1_tl_object.js";
2
- export declare class RPCResult {
3
- readonly messageId: bigint;
4
- readonly result: MaybeVectorTLObject;
5
- static get [id](): number;
6
- constructor(messageId: bigint, result: MaybeVectorTLObject);
7
- static deserialize(buffer: Uint8Array): RPCResult;
8
- }
@@ -1,11 +0,0 @@
1
- import { MaybeVectorTLObject } from "./1_tl_object.js";
2
- import { TLReader } from "./3_tl_reader.js";
3
- import { RPCResult } from "./4_rpc_result.js";
4
- export declare class Message {
5
- readonly id: bigint;
6
- readonly seqNo: number;
7
- readonly body: MaybeVectorTLObject | RPCResult;
8
- constructor(id: bigint, seqNo: number, body: MaybeVectorTLObject | RPCResult);
9
- serialize(): Uint8Array;
10
- static deserialize(reader: TLReader): Message;
11
- }
File without changes
File without changes
File without changes
File without changes