@mtkruto/node 0.0.834 → 0.0.900

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 (145) hide show
  1. package/esm/client/client.d.ts +29 -4
  2. package/esm/client/client.js +528 -71
  3. package/esm/client/client_abstract.d.ts +1 -1
  4. package/esm/connection/connection.d.ts +1 -1
  5. package/esm/constants.d.ts +2 -0
  6. package/esm/constants.js +2 -0
  7. package/esm/deps/deno.land/std@0.190.0/encoding/base64.d.ts +11 -0
  8. package/esm/deps/deno.land/std@0.190.0/encoding/base64.js +140 -0
  9. package/esm/deps/deno.land/x/q@v0.0.1/mod.d.ts +6 -0
  10. package/esm/deps/deno.land/x/q@v0.0.1/mod.js +71 -0
  11. package/esm/deps.d.ts +2 -0
  12. package/esm/deps.js +2 -0
  13. package/esm/mod.d.ts +3 -3
  14. package/esm/mod.js +3 -3
  15. package/esm/storage/storage.d.ts +19 -1
  16. package/esm/storage/storage.js +103 -0
  17. package/esm/storage/storage_local_storage.d.ts +1 -1
  18. package/esm/storage/storage_memory.d.ts +1 -1
  19. package/esm/storage/storage_session_storage.d.ts +1 -1
  20. package/esm/tl/1_tl_object.d.ts +0 -1
  21. package/esm/tl/1_tl_object.js +1 -1
  22. package/esm/tl/4_tl_writer.d.ts +5 -0
  23. package/esm/tl/5_rpc_result.d.ts +9 -0
  24. package/esm/tl/6_message.d.ts +10 -0
  25. package/esm/tl/{5_message.js → 6_message.js} +2 -2
  26. package/esm/tl/{6_message_container.d.ts → 7_message_container.d.ts} +1 -1
  27. package/esm/tl/{6_message_container.js → 7_message_container.js} +2 -2
  28. package/esm/transport/transport.d.ts +1 -1
  29. package/esm/types/0_chat_administrator_rights.d.ts +17 -0
  30. package/esm/types/0_chat_administrator_rights.js +38 -0
  31. package/esm/types/0_chat_photo.d.ts +24 -0
  32. package/esm/types/0_chat_photo.js +28 -0
  33. package/esm/types/0_force_reply.d.ts +8 -0
  34. package/esm/types/0_force_reply.js +17 -0
  35. package/esm/types/0_keyboard_button_poll_type.d.ts +3 -0
  36. package/esm/types/0_login_url.d.ts +6 -0
  37. package/esm/types/0_login_url.js +1 -0
  38. package/esm/types/0_message_entity.d.ts +1 -1
  39. package/esm/types/0_message_entity.js +2 -2
  40. package/esm/types/0_reply_keyboard_remove.d.ts +7 -0
  41. package/esm/types/0_reply_keyboard_remove.js +8 -0
  42. package/esm/types/0_web_app_info.d.ts +4 -0
  43. package/esm/types/0_web_app_info.js +3 -0
  44. package/esm/types/1_chat.d.ts +60 -0
  45. package/esm/types/1_chat.js +70 -0
  46. package/esm/types/1_inline_keyboard_button.d.ts +33 -0
  47. package/esm/types/1_inline_keyboard_button.js +63 -0
  48. package/esm/types/1_keyboard_button.d.ts +43 -0
  49. package/esm/types/1_keyboard_button.js +133 -0
  50. package/esm/types/1_user.d.ts +19 -0
  51. package/esm/types/1_user.js +25 -0
  52. package/esm/types/2_inline_keyboard_markup.d.ts +7 -0
  53. package/esm/types/2_inline_keyboard_markup.js +25 -0
  54. package/esm/types/2_reply_keyboard_markup.d.ts +12 -0
  55. package/esm/types/2_reply_keyboard_markup.js +37 -0
  56. package/esm/types/3_message.d.ts +26 -0
  57. package/esm/types/3_message.js +91 -0
  58. package/esm/utilities/0_control.d.ts +1 -0
  59. package/esm/utilities/0_control.js +3 -0
  60. package/esm/utilities/0_object.d.ts +1 -0
  61. package/esm/utilities/0_object.js +14 -0
  62. package/esm/utilities/0_types.js +1 -0
  63. package/esm/utilities/1_message.d.ts +2 -2
  64. package/esm/utilities/1_message.js +3 -3
  65. package/esm/utilities/1_password.js +1 -1
  66. package/package.json +1 -1
  67. package/script/client/client.d.ts +29 -4
  68. package/script/client/client.js +528 -71
  69. package/script/client/client_abstract.d.ts +1 -1
  70. package/script/connection/connection.d.ts +1 -1
  71. package/script/constants.d.ts +2 -0
  72. package/script/constants.js +3 -1
  73. package/script/deps/deno.land/std@0.190.0/encoding/base64.d.ts +11 -0
  74. package/script/deps/deno.land/std@0.190.0/encoding/base64.js +145 -0
  75. package/script/deps/deno.land/x/q@v0.0.1/mod.d.ts +6 -0
  76. package/script/deps/deno.land/x/q@v0.0.1/mod.js +75 -0
  77. package/script/deps.d.ts +2 -0
  78. package/script/deps.js +6 -1
  79. package/script/mod.d.ts +3 -3
  80. package/script/mod.js +3 -3
  81. package/script/storage/storage.d.ts +19 -1
  82. package/script/storage/storage.js +126 -0
  83. package/script/storage/storage_local_storage.d.ts +1 -1
  84. package/script/storage/storage_memory.d.ts +1 -1
  85. package/script/storage/storage_session_storage.d.ts +1 -1
  86. package/script/tl/1_tl_object.d.ts +0 -1
  87. package/script/tl/1_tl_object.js +1 -1
  88. package/script/tl/4_tl_writer.d.ts +5 -0
  89. package/script/tl/5_rpc_result.d.ts +9 -0
  90. package/script/tl/6_message.d.ts +10 -0
  91. package/script/tl/{5_message.js → 6_message.js} +6 -6
  92. package/script/tl/{6_message_container.d.ts → 7_message_container.d.ts} +1 -1
  93. package/script/tl/{6_message_container.js → 7_message_container.js} +4 -4
  94. package/script/transport/transport.d.ts +1 -1
  95. package/script/types/0_chat_administrator_rights.d.ts +17 -0
  96. package/script/types/0_chat_administrator_rights.js +66 -0
  97. package/script/types/0_chat_photo.d.ts +24 -0
  98. package/script/types/0_chat_photo.js +55 -0
  99. package/script/types/0_force_reply.d.ts +8 -0
  100. package/script/types/0_force_reply.js +45 -0
  101. package/script/types/0_keyboard_button_poll_type.d.ts +3 -0
  102. package/script/types/0_login_url.d.ts +6 -0
  103. package/script/types/0_login_url.js +2 -0
  104. package/script/types/0_message_entity.d.ts +1 -1
  105. package/script/types/0_message_entity.js +2 -2
  106. package/script/types/0_reply_keyboard_remove.d.ts +7 -0
  107. package/script/types/0_reply_keyboard_remove.js +36 -0
  108. package/script/types/0_web_app_info.d.ts +4 -0
  109. package/script/types/0_web_app_info.js +7 -0
  110. package/script/types/1_chat.d.ts +60 -0
  111. package/script/types/1_chat.js +97 -0
  112. package/script/types/1_inline_keyboard_button.d.ts +33 -0
  113. package/script/types/1_inline_keyboard_button.js +91 -0
  114. package/script/types/1_keyboard_button.d.ts +43 -0
  115. package/script/types/1_keyboard_button.js +161 -0
  116. package/script/types/1_user.d.ts +19 -0
  117. package/script/types/1_user.js +52 -0
  118. package/script/types/2_inline_keyboard_markup.d.ts +7 -0
  119. package/script/types/2_inline_keyboard_markup.js +53 -0
  120. package/script/types/2_reply_keyboard_markup.d.ts +12 -0
  121. package/script/types/2_reply_keyboard_markup.js +65 -0
  122. package/script/types/3_message.d.ts +26 -0
  123. package/script/types/3_message.js +118 -0
  124. package/script/utilities/0_control.d.ts +1 -0
  125. package/script/utilities/0_control.js +7 -0
  126. package/script/utilities/0_object.d.ts +1 -0
  127. package/script/utilities/0_object.js +18 -0
  128. package/script/utilities/0_types.js +2 -0
  129. package/script/utilities/1_message.d.ts +2 -2
  130. package/script/utilities/1_message.js +9 -9
  131. package/script/utilities/1_password.js +1 -1
  132. package/esm/tl/3_tl_writer.d.ts +0 -5
  133. package/esm/tl/4_rpc_result.d.ts +0 -8
  134. package/esm/tl/5_message.d.ts +0 -11
  135. package/script/tl/3_tl_writer.d.ts +0 -5
  136. package/script/tl/4_rpc_result.d.ts +0 -8
  137. package/script/tl/5_message.d.ts +0 -11
  138. /package/esm/tl/{3_tl_writer.js → 4_tl_writer.js} +0 -0
  139. /package/esm/tl/{4_rpc_result.js → 5_rpc_result.js} +0 -0
  140. /package/esm/{types.js → types/0_keyboard_button_poll_type.js} +0 -0
  141. /package/esm/{types.d.ts → utilities/0_types.d.ts} +0 -0
  142. /package/script/tl/{3_tl_writer.js → 4_tl_writer.js} +0 -0
  143. /package/script/tl/{4_rpc_result.js → 5_rpc_result.js} +0 -0
  144. /package/script/{types.js → types/0_keyboard_button_poll_type.js} +0 -0
  145. /package/script/{types.d.ts → utilities/0_types.d.ts} +0 -0
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.keyboardButtonToTlObject = exports.constructKeyboardButton = void 0;
27
+ const _0_control_js_1 = require("../utilities/0_control.js");
28
+ const _1_tl_object_js_1 = require("../tl/1_tl_object.js");
29
+ const types = __importStar(require("../tl/2_types.js"));
30
+ const _0_chat_administrator_rights_js_1 = require("./0_chat_administrator_rights.js");
31
+ function constructKeyboardButton(button_) {
32
+ if (button_ instanceof types.KeyboardButton) {
33
+ return { text: button_.text };
34
+ }
35
+ else if (button_ instanceof types.KeyboardButtonRequestPeer) {
36
+ if (button_.peerType instanceof types.RequestPeerTypeUser) {
37
+ return {
38
+ text: button_.text,
39
+ requestUser: {
40
+ requestId: button_.buttonId,
41
+ userIsBot: button_.peerType.bot || false,
42
+ userIsPremium: button_.peerType.premium || false,
43
+ },
44
+ };
45
+ }
46
+ else if (button_.peerType instanceof types.RequestPeerTypeChat) {
47
+ const button = {
48
+ text: button_.text,
49
+ requestChat: {
50
+ requestId: button_.buttonId,
51
+ chatIsChannel: false,
52
+ chatIsForum: button_.peerType.forum || false,
53
+ chatHasUsername: button_.peerType.hasUsername || false,
54
+ chatIsCreated: button_.peerType.creator || false,
55
+ botIsMember: button_.peerType.botParticipant || false,
56
+ },
57
+ };
58
+ if (button_.peerType.botAdminRights) {
59
+ button.requestChat.botAdministratorRights = (0, _0_chat_administrator_rights_js_1.constructChatAdministratorRights)(button_.peerType.botAdminRights[_1_tl_object_js_1.as](types.ChatAdminRights));
60
+ }
61
+ if (button_.peerType.userAdminRights) {
62
+ button.requestChat.userAdministratorRights = (0, _0_chat_administrator_rights_js_1.constructChatAdministratorRights)(button_.peerType.userAdminRights[_1_tl_object_js_1.as](types.ChatAdminRights));
63
+ }
64
+ return button;
65
+ }
66
+ else if (button_.peerType instanceof types.RequestPeerTypeBroadcast) {
67
+ const button = {
68
+ text: button_.text,
69
+ requestChat: {
70
+ requestId: button_.buttonId,
71
+ chatIsChannel: true,
72
+ chatIsCreated: button_.peerType.creator || false,
73
+ chatHasUsername: button_.peerType.hasUsername || false,
74
+ },
75
+ };
76
+ if (button_.peerType.botAdminRights) {
77
+ button.requestChat.botAdministratorRights = (0, _0_chat_administrator_rights_js_1.constructChatAdministratorRights)(button_.peerType.botAdminRights[_1_tl_object_js_1.as](types.ChatAdminRights));
78
+ }
79
+ if (button_.peerType.userAdminRights) {
80
+ button.requestChat.userAdministratorRights = (0, _0_chat_administrator_rights_js_1.constructChatAdministratorRights)(button_.peerType.userAdminRights[_1_tl_object_js_1.as](types.ChatAdminRights));
81
+ }
82
+ return button;
83
+ }
84
+ else {
85
+ (0, _0_control_js_1.UNREACHABLE)();
86
+ }
87
+ }
88
+ else if (button_ instanceof types.KeyboardButtonRequestPhone) {
89
+ return { text: button_.text, requestContact: true };
90
+ }
91
+ else if (button_ instanceof types.KeyboardButtonRequestGeoLocation) {
92
+ return { text: button_.text, requestLocation: true };
93
+ }
94
+ else if (button_ instanceof types.KeyboardButtonRequestPoll) {
95
+ const button = { text: button_.text, requestPoll: {} };
96
+ if (button_.quiz) {
97
+ button.requestPoll.type = "quiz";
98
+ }
99
+ return button;
100
+ }
101
+ else if (button_ instanceof types.KeyboardButtonWebView || button_ instanceof types.KeyboardButtonSimpleWebView) {
102
+ return { text: button_.text, webApp: { url: button_.url } };
103
+ }
104
+ else {
105
+ (0, _0_control_js_1.UNREACHABLE)();
106
+ }
107
+ }
108
+ exports.constructKeyboardButton = constructKeyboardButton;
109
+ function keyboardButtonToTlObject(button) {
110
+ if ("requestUser" in button) {
111
+ return new types.KeyboardButtonRequestPeer({
112
+ text: button.text,
113
+ buttonId: button.requestUser.requestId,
114
+ peerType: new types.RequestPeerTypeUser({ bot: button.requestUser.userIsBot, premium: button.requestUser.userIsPremium }),
115
+ });
116
+ }
117
+ else if ("requestChat" in button) {
118
+ if (!button.requestChat.chatIsChannel) { // GUESS
119
+ return new types.KeyboardButtonRequestPeer({
120
+ text: button.text,
121
+ buttonId: button.requestChat.requestId,
122
+ peerType: new types.RequestPeerTypeChat({
123
+ forum: button.requestChat.chatIsForum,
124
+ hasUsername: button.requestChat.chatHasUsername,
125
+ creator: button.requestChat.chatIsCreated || undefined,
126
+ botParticipant: button.requestChat.botIsMember || undefined,
127
+ botAdminRights: button.requestChat.botAdministratorRights ? (0, _0_chat_administrator_rights_js_1.chatAdministratorRightsToTlObject)(button.requestChat.botAdministratorRights) : undefined,
128
+ userAdminRights: button.requestChat.userAdministratorRights ? (0, _0_chat_administrator_rights_js_1.chatAdministratorRightsToTlObject)(button.requestChat.userAdministratorRights) : undefined,
129
+ }),
130
+ });
131
+ }
132
+ else {
133
+ return new types.KeyboardButtonRequestPeer({
134
+ text: button.text,
135
+ buttonId: button.requestChat.requestId,
136
+ peerType: new types.RequestPeerTypeBroadcast({
137
+ hasUsername: button.requestChat.chatHasUsername,
138
+ creator: button.requestChat.chatIsCreated || undefined,
139
+ botAdminRights: button.requestChat.botAdministratorRights ? (0, _0_chat_administrator_rights_js_1.chatAdministratorRightsToTlObject)(button.requestChat.botAdministratorRights) : undefined,
140
+ userAdminRights: button.requestChat.userAdministratorRights ? (0, _0_chat_administrator_rights_js_1.chatAdministratorRightsToTlObject)(button.requestChat.userAdministratorRights) : undefined,
141
+ }),
142
+ });
143
+ }
144
+ }
145
+ else if ("requestContact" in button) {
146
+ return new types.KeyboardButtonRequestPhone({ text: button.text });
147
+ }
148
+ else if ("requestLocation" in button) {
149
+ return new types.KeyboardButtonRequestGeoLocation({ text: button.text });
150
+ }
151
+ else if ("requestPoll" in button) {
152
+ return new types.KeyboardButtonRequestPoll({ text: button.text, quiz: button.requestPoll.type == "quiz" });
153
+ }
154
+ else if ("webApp" in button) {
155
+ return new types.KeyboardButtonWebView({ text: button.text, url: button.webApp.url });
156
+ }
157
+ else {
158
+ (0, _0_control_js_1.UNREACHABLE)();
159
+ }
160
+ }
161
+ exports.keyboardButtonToTlObject = keyboardButtonToTlObject;
@@ -0,0 +1,19 @@
1
+ import * as types from "../tl/2_types.js";
2
+ import { ChatPhoto } from "./0_chat_photo.js";
3
+ export interface User {
4
+ id: number;
5
+ isBot: boolean;
6
+ firstName: string;
7
+ lastName?: string;
8
+ username?: string;
9
+ also?: string[];
10
+ photo?: ChatPhoto.User;
11
+ languageCode?: string;
12
+ isScam: boolean;
13
+ isFake: boolean;
14
+ isPremium: boolean;
15
+ isVerified: boolean;
16
+ isSupport: boolean;
17
+ addedToAttachmentMenu: boolean;
18
+ }
19
+ export declare function constructUser(user_: types.User): User;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.constructUser = void 0;
27
+ const _0_object_js_1 = require("../utilities/0_object.js");
28
+ const _1_tl_object_js_1 = require("../tl/1_tl_object.js");
29
+ const types = __importStar(require("../tl/2_types.js"));
30
+ const _0_chat_photo_js_1 = require("./0_chat_photo.js");
31
+ function constructUser(user_) {
32
+ const user = {
33
+ id: Number(user_.id),
34
+ isBot: user_.bot || false,
35
+ firstName: user_.firstName || "",
36
+ lastName: user_.lastName,
37
+ username: user_.username,
38
+ also: user_.usernames?.map((v) => v[_1_tl_object_js_1.as](types.Username)).map((v) => v.username),
39
+ languageCode: user_.langCode,
40
+ isScam: user_.scam || false,
41
+ isFake: user_.fake || false,
42
+ isPremium: user_.premium || false,
43
+ isVerified: user_.verified || false,
44
+ isSupport: user_.support || false,
45
+ addedToAttachmentMenu: user_.attachMenuEnabled || false,
46
+ };
47
+ if (user_.photo instanceof types.UserProfilePhoto) {
48
+ user.photo = (0, _0_chat_photo_js_1.constructChatPhoto)(user_.photo);
49
+ }
50
+ return (0, _0_object_js_1.cleanObject)(user);
51
+ }
52
+ exports.constructUser = constructUser;
@@ -0,0 +1,7 @@
1
+ import * as types from "../tl/2_types.js";
2
+ import { InlineKeyboardButton, inlineKeyboardButtonToTlObject } from "./1_inline_keyboard_button.js";
3
+ export interface InlineKeyboardMarkup {
4
+ inlineKeyboard: InlineKeyboardButton[][];
5
+ }
6
+ export declare function constructInlineKeyboardMarkup(keyboard_: types.ReplyInlineMarkup): InlineKeyboardMarkup;
7
+ export declare function inlineKeyboardMarkupToTlObject(keyboard: InlineKeyboardMarkup, usernameResolver: Parameters<typeof inlineKeyboardButtonToTlObject>[1]): Promise<types.ReplyInlineMarkup>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.inlineKeyboardMarkupToTlObject = exports.constructInlineKeyboardMarkup = void 0;
27
+ const _1_tl_object_js_1 = require("../tl/1_tl_object.js");
28
+ const types = __importStar(require("../tl/2_types.js"));
29
+ const _1_inline_keyboard_button_js_1 = require("./1_inline_keyboard_button.js");
30
+ function constructInlineKeyboardMarkup(keyboard_) {
31
+ const rows = new Array();
32
+ for (const row_ of keyboard_.rows.map((v) => v[_1_tl_object_js_1.as](types.KeyboardButtonRow))) {
33
+ const row = new Array();
34
+ for (const button_ of row_.buttons) {
35
+ row.push((0, _1_inline_keyboard_button_js_1.constructInlineKeyboardButton)(button_));
36
+ }
37
+ rows.push(row);
38
+ }
39
+ return { inlineKeyboard: rows };
40
+ }
41
+ exports.constructInlineKeyboardMarkup = constructInlineKeyboardMarkup;
42
+ async function inlineKeyboardMarkupToTlObject(keyboard, usernameResolver) {
43
+ const rows_ = new Array();
44
+ for (const row of keyboard.inlineKeyboard) {
45
+ const row_ = new Array();
46
+ for (const button of row) {
47
+ row_.push(await (0, _1_inline_keyboard_button_js_1.inlineKeyboardButtonToTlObject)(button, usernameResolver));
48
+ }
49
+ rows_.push(new types.KeyboardButtonRow({ buttons: row_ }));
50
+ }
51
+ return new types.ReplyInlineMarkup({ rows: rows_ });
52
+ }
53
+ exports.inlineKeyboardMarkupToTlObject = inlineKeyboardMarkupToTlObject;
@@ -0,0 +1,12 @@
1
+ import * as types from "../tl/2_types.js";
2
+ import { KeyboardButton } from "./1_keyboard_button.js";
3
+ export interface ReplyKeyboardMarkup {
4
+ keyboard: KeyboardButton[][];
5
+ isPersistent?: boolean;
6
+ resizeKeyboard?: boolean;
7
+ oneTimeKeyboard?: boolean;
8
+ inputFieldPlaceholder?: string;
9
+ selective?: boolean;
10
+ }
11
+ export declare function constructReplyKeyboardMarkup(keyboard_: types.ReplyKeyboardMarkup): ReplyKeyboardMarkup;
12
+ export declare function replyKeyboardMarkupToTlObject(replyMarkup: ReplyKeyboardMarkup): types.ReplyKeyboardMarkup;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.replyKeyboardMarkupToTlObject = exports.constructReplyKeyboardMarkup = void 0;
27
+ const _1_tl_object_js_1 = require("../tl/1_tl_object.js");
28
+ const types = __importStar(require("../tl/2_types.js"));
29
+ const _1_keyboard_button_js_1 = require("./1_keyboard_button.js");
30
+ function constructReplyKeyboardMarkup(keyboard_) {
31
+ const rows = new Array();
32
+ for (const row_ of keyboard_.rows.map((v) => v[_1_tl_object_js_1.as](types.KeyboardButtonRow))) {
33
+ const row = new Array();
34
+ for (const button_ of row_.buttons) {
35
+ row.push((0, _1_keyboard_button_js_1.constructKeyboardButton)(button_));
36
+ }
37
+ rows.push(row);
38
+ }
39
+ return {
40
+ resizeKeyboard: keyboard_.resize || false,
41
+ oneTimeKeyboard: keyboard_.singleUse || false,
42
+ selective: keyboard_.selective || false,
43
+ isPersistent: keyboard_.persistent || false,
44
+ keyboard: rows,
45
+ };
46
+ }
47
+ exports.constructReplyKeyboardMarkup = constructReplyKeyboardMarkup;
48
+ function replyKeyboardMarkupToTlObject(replyMarkup) {
49
+ const rows_ = new Array();
50
+ for (const row of replyMarkup.keyboard) {
51
+ const row_ = new Array();
52
+ for (const button of row) {
53
+ row_.push((0, _1_keyboard_button_js_1.keyboardButtonToTlObject)(button));
54
+ }
55
+ rows_.push(new types.KeyboardButtonRow({ buttons: row_ }));
56
+ }
57
+ return new types.ReplyKeyboardMarkup({
58
+ resize: replyMarkup.resizeKeyboard || undefined,
59
+ singleUse: replyMarkup.oneTimeKeyboard || undefined,
60
+ selective: replyMarkup.selective || undefined,
61
+ persistent: replyMarkup.isPersistent || undefined,
62
+ rows: rows_,
63
+ });
64
+ }
65
+ exports.replyKeyboardMarkupToTlObject = replyKeyboardMarkupToTlObject;
@@ -0,0 +1,26 @@
1
+ import * as types from "../tl/2_types.js";
2
+ import { ForceReply } from "./0_force_reply.js";
3
+ import { MessageEntity } from "./0_message_entity.js";
4
+ import { ReplyKeyboardRemove } from "./0_reply_keyboard_remove.js";
5
+ import { Chat } from "./1_chat.js";
6
+ import { User } from "./1_user.js";
7
+ import { InlineKeyboardMarkup } from "./2_inline_keyboard_markup.js";
8
+ import { ReplyKeyboardMarkup } from "./2_reply_keyboard_markup.js";
9
+ export interface Message {
10
+ id: number;
11
+ from?: User;
12
+ chat: Chat;
13
+ text?: string;
14
+ caption?: string;
15
+ entities?: MessageEntity[];
16
+ captionEntities?: MessageEntity[];
17
+ date?: Date;
18
+ editDate?: Date;
19
+ views?: number;
20
+ replyMarkup?: InlineKeyboardMarkup | ReplyKeyboardMarkup | ReplyKeyboardRemove | ForceReply;
21
+ }
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>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.constructMessage = void 0;
27
+ const _0_control_js_1 = require("../utilities/0_control.js");
28
+ const _0_object_js_1 = require("../utilities/0_object.js");
29
+ const types = __importStar(require("../tl/2_types.js"));
30
+ const _0_force_reply_js_1 = require("./0_force_reply.js");
31
+ const _0_message_entity_js_1 = require("./0_message_entity.js");
32
+ const _0_reply_keyboard_remove_js_1 = require("./0_reply_keyboard_remove.js");
33
+ const _1_chat_js_1 = require("./1_chat.js");
34
+ const _1_user_js_1 = require("./1_user.js");
35
+ const _2_inline_keyboard_markup_js_1 = require("./2_inline_keyboard_markup.js");
36
+ const _2_reply_keyboard_markup_js_1 = require("./2_reply_keyboard_markup.js");
37
+ async function constructMessage(message_, getEntity) {
38
+ let chat_ = null;
39
+ if (message_.peerId instanceof types.PeerUser) {
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)();
46
+ }
47
+ }
48
+ else if (message_.peerId instanceof types.PeerChat) {
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)();
55
+ }
56
+ }
57
+ else if (message_.peerId instanceof types.PeerChannel) {
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)();
64
+ }
65
+ }
66
+ else {
67
+ (0, _0_control_js_1.UNREACHABLE)();
68
+ }
69
+ const message = { id: message_.id, chat: chat_, views: message_.views };
70
+ if (message_.fromId instanceof types.PeerUser) {
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)();
77
+ }
78
+ }
79
+ if (message_.message) {
80
+ if (message_.media == undefined) {
81
+ message.text = message_.message;
82
+ }
83
+ else {
84
+ message.caption = message_.message;
85
+ }
86
+ }
87
+ if (message_.entities != undefined) {
88
+ if (message_.media == undefined) {
89
+ message.entities = message_.entities.map(_0_message_entity_js_1.constructMessageEntity).filter((v) => v);
90
+ }
91
+ else {
92
+ message.captionEntities = message_.entities.map(_0_message_entity_js_1.constructMessageEntity).filter((v) => v);
93
+ }
94
+ }
95
+ message.date = new Date(message_.date * 1000);
96
+ if (message_.editDate != undefined) {
97
+ message.editDate = new Date(message_.editDate * 1000);
98
+ }
99
+ if (message_.replyMarkup) {
100
+ if (message_.replyMarkup instanceof types.ReplyKeyboardMarkup) {
101
+ message.replyMarkup = (0, _2_reply_keyboard_markup_js_1.constructReplyKeyboardMarkup)(message_.replyMarkup);
102
+ }
103
+ else if (message_.replyMarkup instanceof types.ReplyInlineMarkup) {
104
+ message.replyMarkup = (0, _2_inline_keyboard_markup_js_1.constructInlineKeyboardMarkup)(message_.replyMarkup);
105
+ }
106
+ else if (message_.replyMarkup instanceof types.ReplyKeyboardHide) {
107
+ message.replyMarkup = (0, _0_reply_keyboard_remove_js_1.constructReplyKeyboardRemove)(message_.replyMarkup);
108
+ }
109
+ else if (message_.replyMarkup instanceof types.ReplyKeyboardForceReply) {
110
+ message.replyMarkup = (0, _0_force_reply_js_1.constructForceReply)(message_.replyMarkup);
111
+ }
112
+ else {
113
+ (0, _0_control_js_1.UNREACHABLE)();
114
+ }
115
+ }
116
+ return (0, _0_object_js_1.cleanObject)(message);
117
+ }
118
+ exports.constructMessage = constructMessage;
@@ -0,0 +1 @@
1
+ export declare function UNREACHABLE(): never;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UNREACHABLE = void 0;
4
+ function UNREACHABLE() {
5
+ throw new Error("Unreachable");
6
+ }
7
+ exports.UNREACHABLE = UNREACHABLE;
@@ -0,0 +1 @@
1
+ export declare function cleanObject<T extends Record<string, any>>(object: T): T;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanObject = void 0;
4
+ // deno-lint-ignore no-explicit-any
5
+ function cleanObject(object) {
6
+ for (const [k, v] of Object.entries(object)) {
7
+ switch (typeof v) {
8
+ case "undefined":
9
+ delete object[k];
10
+ break;
11
+ case "object":
12
+ // @ts-ignore: this works, no idea why it complains
13
+ object[k] = cleanObject(v);
14
+ }
15
+ }
16
+ return object;
17
+ }
18
+ exports.cleanObject = cleanObject;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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
- }