@mtkruto/node 0.115.0 → 0.117.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 (141) hide show
  1. package/esm/3_types.d.ts +6 -0
  2. package/esm/3_types.d.ts.map +1 -1
  3. package/esm/3_types.js +6 -0
  4. package/esm/5_client.d.ts +5 -4
  5. package/esm/5_client.d.ts.map +1 -1
  6. package/esm/5_client.js +5 -4
  7. package/esm/client/1_client_generic.d.ts +35 -7
  8. package/esm/client/1_client_generic.d.ts.map +1 -1
  9. package/esm/client/2_account_manager.d.ts +16 -5
  10. package/esm/client/2_account_manager.d.ts.map +1 -1
  11. package/esm/client/2_account_manager.js +65 -9
  12. package/esm/client/2_bot_info_manager.d.ts +9 -2
  13. package/esm/client/2_bot_info_manager.d.ts.map +1 -1
  14. package/esm/client/2_bot_info_manager.js +14 -0
  15. package/esm/client/3_filters.d.ts +29 -4
  16. package/esm/client/3_filters.d.ts.map +1 -1
  17. package/esm/client/{2_context.d.ts → 4_context.d.ts} +20 -1
  18. package/esm/client/4_context.d.ts.map +1 -0
  19. package/esm/client/{2_context.js → 4_context.js} +114 -0
  20. package/{script/client/4_composer.d.ts → esm/client/5_composer.d.ts} +6 -8
  21. package/esm/client/5_composer.d.ts.map +1 -0
  22. package/esm/client/{4_composer.js → 5_composer.js} +8 -70
  23. package/esm/client/5_composer_test.d.ts.map +1 -0
  24. package/esm/client/{5_client.d.ts → 6_client.d.ts} +38 -10
  25. package/esm/client/6_client.d.ts.map +1 -0
  26. package/esm/client/{5_client.js → 6_client.js} +52 -10
  27. package/{script/client/5_client_dispatcher.d.ts → esm/client/6_client_dispatcher.d.ts} +38 -10
  28. package/esm/client/6_client_dispatcher.d.ts.map +1 -0
  29. package/esm/client/{5_client_dispatcher.js → 6_client_dispatcher.js} +46 -10
  30. package/esm/client/{6_client_worker.d.ts → 7_client_worker.d.ts} +2 -2
  31. package/esm/client/{6_client_worker.d.ts.map → 7_client_worker.d.ts.map} +1 -1
  32. package/esm/client/{6_client_worker.js → 7_client_worker.js} +1 -1
  33. package/esm/types/0_emoji_status.d.ts +45 -0
  34. package/esm/types/0_emoji_status.d.ts.map +1 -0
  35. package/esm/types/0_emoji_status.js +33 -0
  36. package/esm/types/0_input_emoji_status.d.ts +33 -0
  37. package/esm/types/0_input_emoji_status.d.ts.map +1 -0
  38. package/esm/types/0_input_emoji_status.js +20 -0
  39. package/esm/types/0_user_status.d.ts +64 -0
  40. package/esm/types/0_user_status.d.ts.map +1 -0
  41. package/esm/types/0_user_status.js +35 -0
  42. package/esm/types/1_bot_commands.d.ts +30 -0
  43. package/esm/types/1_bot_commands.d.ts.map +1 -0
  44. package/esm/types/1_bot_commands.js +20 -0
  45. package/esm/types/1_chat_p.d.ts +10 -0
  46. package/esm/types/1_chat_p.d.ts.map +1 -1
  47. package/esm/types/1_chat_p.js +7 -1
  48. package/esm/types/2_user.d.ts +9 -1
  49. package/esm/types/2_user.d.ts.map +1 -1
  50. package/esm/types/2_user.js +10 -1
  51. package/esm/types/4_gift.d.ts +1 -1
  52. package/esm/types/4_gift.d.ts.map +1 -1
  53. package/esm/types/5_claimed_gift.d.ts +1 -1
  54. package/esm/types/5_claimed_gift.js +1 -1
  55. package/esm/types/5_gift_non_upgraded_information.d.ts +47 -0
  56. package/esm/types/5_gift_non_upgraded_information.d.ts.map +1 -0
  57. package/esm/types/5_gift_non_upgraded_information.js +69 -0
  58. package/esm/types/5_gift_upgraded_information.d.ts +41 -0
  59. package/esm/types/5_gift_upgraded_information.d.ts.map +1 -0
  60. package/esm/types/5_gift_upgraded_information.js +58 -0
  61. package/esm/types/6_message.d.ts +21 -1
  62. package/esm/types/6_message.d.ts.map +1 -1
  63. package/esm/types/6_message.js +12 -0
  64. package/esm/types/8_update.d.ts +57 -2
  65. package/esm/types/8_update.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/script/3_types.d.ts +6 -0
  68. package/script/3_types.d.ts.map +1 -1
  69. package/script/3_types.js +6 -0
  70. package/script/5_client.d.ts +5 -4
  71. package/script/5_client.d.ts.map +1 -1
  72. package/script/5_client.js +5 -4
  73. package/script/client/1_client_generic.d.ts +35 -7
  74. package/script/client/1_client_generic.d.ts.map +1 -1
  75. package/script/client/2_account_manager.d.ts +16 -5
  76. package/script/client/2_account_manager.d.ts.map +1 -1
  77. package/script/client/2_account_manager.js +64 -8
  78. package/script/client/2_bot_info_manager.d.ts +9 -2
  79. package/script/client/2_bot_info_manager.d.ts.map +1 -1
  80. package/script/client/2_bot_info_manager.js +14 -0
  81. package/script/client/3_filters.d.ts +29 -4
  82. package/script/client/3_filters.d.ts.map +1 -1
  83. package/script/client/{2_context.d.ts → 4_context.d.ts} +20 -1
  84. package/script/client/4_context.d.ts.map +1 -0
  85. package/script/client/{2_context.js → 4_context.js} +114 -0
  86. package/{esm/client/4_composer.d.ts → script/client/5_composer.d.ts} +6 -8
  87. package/script/client/5_composer.d.ts.map +1 -0
  88. package/script/client/{4_composer.js → 5_composer.js} +9 -71
  89. package/script/client/5_composer_test.d.ts.map +1 -0
  90. package/script/client/{5_client.d.ts → 6_client.d.ts} +38 -10
  91. package/script/client/6_client.d.ts.map +1 -0
  92. package/script/client/{5_client.js → 6_client.js} +53 -11
  93. package/{esm/client/5_client_dispatcher.d.ts → script/client/6_client_dispatcher.d.ts} +38 -10
  94. package/script/client/6_client_dispatcher.d.ts.map +1 -0
  95. package/script/client/{5_client_dispatcher.js → 6_client_dispatcher.js} +47 -11
  96. package/script/client/{6_client_worker.d.ts → 7_client_worker.d.ts} +2 -2
  97. package/script/client/{6_client_worker.d.ts.map → 7_client_worker.d.ts.map} +1 -1
  98. package/script/client/{6_client_worker.js → 7_client_worker.js} +3 -3
  99. package/script/types/0_emoji_status.d.ts +45 -0
  100. package/script/types/0_emoji_status.d.ts.map +1 -0
  101. package/script/types/0_emoji_status.js +36 -0
  102. package/script/types/0_input_emoji_status.d.ts +33 -0
  103. package/script/types/0_input_emoji_status.d.ts.map +1 -0
  104. package/script/types/0_input_emoji_status.js +21 -0
  105. package/script/types/0_user_status.d.ts +64 -0
  106. package/script/types/0_user_status.d.ts.map +1 -0
  107. package/script/types/0_user_status.js +38 -0
  108. package/script/types/1_bot_commands.d.ts +30 -0
  109. package/script/types/1_bot_commands.d.ts.map +1 -0
  110. package/script/types/1_bot_commands.js +21 -0
  111. package/script/types/1_chat_p.d.ts +10 -0
  112. package/script/types/1_chat_p.d.ts.map +1 -1
  113. package/script/types/1_chat_p.js +7 -1
  114. package/script/types/2_user.d.ts +9 -1
  115. package/script/types/2_user.d.ts.map +1 -1
  116. package/script/types/2_user.js +10 -1
  117. package/script/types/4_gift.d.ts +1 -1
  118. package/script/types/4_gift.d.ts.map +1 -1
  119. package/script/types/5_claimed_gift.d.ts +1 -1
  120. package/script/types/5_claimed_gift.js +1 -1
  121. package/script/types/5_gift_non_upgraded_information.d.ts +47 -0
  122. package/script/types/5_gift_non_upgraded_information.d.ts.map +1 -0
  123. package/script/types/5_gift_non_upgraded_information.js +72 -0
  124. package/script/types/5_gift_upgraded_information.d.ts +41 -0
  125. package/script/types/5_gift_upgraded_information.d.ts.map +1 -0
  126. package/script/types/5_gift_upgraded_information.js +61 -0
  127. package/script/types/6_message.d.ts +21 -1
  128. package/script/types/6_message.d.ts.map +1 -1
  129. package/script/types/6_message.js +12 -0
  130. package/script/types/8_update.d.ts +57 -2
  131. package/script/types/8_update.d.ts.map +1 -1
  132. package/esm/client/2_context.d.ts.map +0 -1
  133. package/esm/client/4_composer.d.ts.map +0 -1
  134. package/esm/client/4_composer_test.d.ts.map +0 -1
  135. package/esm/client/5_client.d.ts.map +0 -1
  136. package/esm/client/5_client_dispatcher.d.ts.map +0 -1
  137. package/script/client/2_context.d.ts.map +0 -1
  138. package/script/client/4_composer.d.ts.map +0 -1
  139. package/script/client/4_composer_test.d.ts.map +0 -1
  140. package/script/client/5_client.d.ts.map +0 -1
  141. package/script/client/5_client_dispatcher.d.ts.map +0 -1
@@ -27,11 +27,17 @@ const _3_errors_js_1 = require("../3_errors.js");
27
27
  const _3_types_js_1 = require("../3_types.js");
28
28
  const _0_password_js_1 = require("./0_password.js");
29
29
  const _0_utilities_js_1 = require("./0_utilities.js");
30
+ const accountManagerUpdates = [
31
+ "updateUserEmojiStatus",
32
+ ];
30
33
  class AccountManager {
31
34
  #c;
32
35
  constructor(c) {
33
36
  this.#c = c;
34
37
  }
38
+ canHandleUpdate(update) {
39
+ return _2_tl_js_1.Api.isOneOf(accountManagerUpdates, update);
40
+ }
35
41
  async #toggleUsername(id, username, active) {
36
42
  const peer = await this.#c.getInputPeer(id);
37
43
  if (_2_tl_js_1.Api.is("inputPeerSelf", peer)) {
@@ -104,25 +110,65 @@ class AccountManager {
104
110
  const { chats, dates } = await this.#c.invoke({ _: "channels.getInactiveChannels" });
105
111
  return chats.map((v, i) => (0, _3_types_js_1.constructInactiveChat)(v, dates[i]));
106
112
  }
107
- async setOnline(online) {
113
+ async setIsOnline(isOnline) {
108
114
  this.#c.storage.assertUser("setOnline");
109
- await this.#c.invoke({ _: "account.updateStatus", offline: !online });
115
+ await this.#c.invoke({ _: "account.updateStatus", offline: !isOnline });
110
116
  }
111
- async setEmojiStatus(id, params) {
117
+ async setEmojiStatus(emojiStatus, params) {
112
118
  this.#c.storage.assertUser("setEmojiStatus");
113
- const document_id = BigInt(id);
119
+ let emoji_status;
114
120
  const until = params?.until;
115
- const emoji_status = { _: "emojiStatus", document_id, until };
121
+ if (emojiStatus.type === "customEmoji") {
122
+ const document_id = BigInt(emojiStatus.customEmojiId);
123
+ emoji_status = { _: "emojiStatus", document_id, until };
124
+ }
125
+ else {
126
+ emoji_status = { _: "inputEmojiStatusCollectible", collectible_id: BigInt(emojiStatus.giftId), until };
127
+ }
116
128
  await this.#c.invoke({ _: "account.updateEmojiStatus", emoji_status });
117
129
  }
118
- async setUserEmojiStatus(userId, id, params) {
130
+ async removeEmojiStatus() {
131
+ this.#c.storage.assertUser("removeEmojiStatus");
132
+ await this.#c.invoke({ _: "account.updateEmojiStatus", emoji_status: { _: "emojiStatusEmpty" } });
133
+ }
134
+ async setChannelEmojiStatus(chatId, emojiStatus, params) {
135
+ this.#c.storage.assertUser("setChannelEmojiStatus");
136
+ const channel = await this.#c.getInputChannel(chatId);
137
+ const until = params?.until;
138
+ let emoji_status;
139
+ if (emojiStatus.type === "customEmoji") {
140
+ const document_id = BigInt(emojiStatus.customEmojiId);
141
+ emoji_status = { _: "emojiStatus", document_id, until };
142
+ }
143
+ else {
144
+ emoji_status = { _: "inputEmojiStatusCollectible", collectible_id: BigInt(emojiStatus.giftId), until };
145
+ }
146
+ await this.#c.invoke({ _: "channels.updateEmojiStatus", channel, emoji_status });
147
+ }
148
+ async removeChannelEmojiStatus(chatId) {
149
+ this.#c.storage.assertUser("removeChannelEmojiStatus");
150
+ const channel = await this.#c.getInputChannel(chatId);
151
+ await this.#c.invoke({ _: "channels.updateEmojiStatus", channel, emoji_status: { _: "emojiStatusEmpty" } });
152
+ }
153
+ async setUserEmojiStatus(userId, emojiStatus, params) {
119
154
  this.#c.storage.assertBot("setUserEmojiStatus");
120
155
  const user_id = await this.#c.getInputUser(userId);
121
- const document_id = BigInt(id);
122
156
  const until = params?.until;
123
- const emoji_status = { _: "emojiStatus", document_id, until };
157
+ let emoji_status;
158
+ if (emojiStatus.type === "customEmoji") {
159
+ const document_id = BigInt(emojiStatus.customEmojiId);
160
+ emoji_status = { _: "emojiStatus", document_id, until };
161
+ }
162
+ else {
163
+ emoji_status = { _: "inputEmojiStatusCollectible", collectible_id: BigInt(emojiStatus.giftId), until };
164
+ }
124
165
  await this.#c.invoke({ _: "bots.updateUserEmojiStatus", user_id, emoji_status });
125
166
  }
167
+ async removeUserEmojiStatus(userId) {
168
+ this.#c.storage.assertBot("removeUserEmojiStatus");
169
+ const user_id = await this.#c.getInputUser(userId);
170
+ await this.#c.invoke({ _: "bots.updateUserEmojiStatus", user_id, emoji_status: { _: "emojiStatusEmpty" } });
171
+ }
126
172
  async setBotCanSetEmojiStatus(botId, canSetEmojiStatus) {
127
173
  this.#c.storage.assertUser("setBotCanSetEmojiStatus");
128
174
  const bot = await this.#c.getInputUser(botId);
@@ -364,5 +410,15 @@ class AccountManager {
364
410
  this.#c.storage.assertUser("resumeBusinessBotConnection");
365
411
  await this.#setIsBusinessBotConnectionPaused(chatId, false);
366
412
  }
413
+ handleUpdate(update) {
414
+ const userId = Number(update.user_id);
415
+ if (_2_tl_js_1.Api.is("emojiStatusEmpty", update.emoji_status)) {
416
+ return { emojiStatusRemoved: true, userId };
417
+ }
418
+ else {
419
+ const emojiStatus = (0, _3_types_js_1.constructEmojiStatus)(update.emoji_status);
420
+ return { emojiStatus, userId };
421
+ }
422
+ }
367
423
  }
368
424
  exports.AccountManager = AccountManager;
@@ -17,12 +17,17 @@
17
17
  * You should have received a copy of the GNU Lesser General Public License
18
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
19
  */
20
- import { type BotCommand } from "../3_types.js";
20
+ import { Api } from "../2_tl.js";
21
+ import { type BotCommand, type Update } from "../3_types.js";
21
22
  import type { GetMyCommandsParams, SetMyCommandsParams } from "./0_params.js";
23
+ import type { UpdateProcessor } from "./0_update_processor.js";
22
24
  import type { C } from "./1_types.js";
23
- export declare class BotInfoManager {
25
+ declare const botInfoManagerUpdates: readonly ["updateBotCommands"];
26
+ type BotInfoManagerUpdate = Api.Types[(typeof botInfoManagerUpdates)[number]];
27
+ export declare class BotInfoManager implements UpdateProcessor<BotInfoManagerUpdate, false> {
24
28
  #private;
25
29
  constructor(c: C);
30
+ canHandleUpdate(update: Api.Update): update is BotInfoManagerUpdate;
26
31
  setMyDescription(params?: {
27
32
  description?: string;
28
33
  languageCode?: string;
@@ -46,5 +51,7 @@ export declare class BotInfoManager {
46
51
  }): Promise<string>;
47
52
  getMyCommands(params?: GetMyCommandsParams): Promise<BotCommand[]>;
48
53
  setMyCommands(commands: BotCommand[], params?: SetMyCommandsParams): Promise<void>;
54
+ handleUpdate(update: BotInfoManagerUpdate): Update;
49
55
  }
56
+ export {};
50
57
  //# sourceMappingURL=2_bot_info_manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"2_bot_info_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_bot_info_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,qBAAa,cAAc;;gBAGb,CAAC,EAAE,CAAC;IAQV,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAKzE,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAK3D,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IASnF,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrE,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1E,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUlE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,mBAAmB;CASzE"}
1
+ {"version":3,"file":"2_bot_info_manager.d.ts","sourceRoot":"","sources":["../../src/client/2_bot_info_manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,KAAK,UAAU,EAA6B,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEtC,QAAA,MAAM,qBAAqB,gCAEjB,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,EAAE,KAAK,CAAC;;gBAGrE,CAAC,EAAE,CAAC;IAIhB,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,IAAI,oBAAoB;IAQ7D,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAKzE,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAK3D,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IASnF,gBAAgB,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrE,SAAS,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAK1E,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUlE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,mBAAmB;IAUxE,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAMnD"}
@@ -20,12 +20,20 @@
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.BotInfoManager = void 0;
23
+ const _2_tl_js_1 = require("../2_tl.js");
23
24
  const _3_types_js_1 = require("../3_types.js");
25
+ const _2_telegram_js_1 = require("../tl/2_telegram.js");
26
+ const botInfoManagerUpdates = [
27
+ "updateBotCommands",
28
+ ];
24
29
  class BotInfoManager {
25
30
  #c;
26
31
  constructor(c) {
27
32
  this.#c = c;
28
33
  }
34
+ canHandleUpdate(update) {
35
+ return _2_tl_js_1.Api.isOneOf(botInfoManagerUpdates, update);
36
+ }
29
37
  async #setMyInfo(info) {
30
38
  await this.#c.invoke({ _: "bots.setBotInfo", ...info });
31
39
  }
@@ -74,5 +82,11 @@ class BotInfoManager {
74
82
  scope: await (0, _3_types_js_1.botCommandScopeToTlObject)(params?.scope ?? { type: "default" }, this.#c.getInputPeer),
75
83
  });
76
84
  }
85
+ handleUpdate(update) {
86
+ const botId = Number(update.bot_id);
87
+ const chatId = (0, _2_telegram_js_1.peerToChatId)(update.peer);
88
+ const commands = update.commands;
89
+ return { botCommands: { botId, chatId, commands } };
90
+ }
77
91
  }
78
92
  exports.BotInfoManager = BotInfoManager;
@@ -18,8 +18,7 @@
18
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
19
  */
20
20
  import type { Api } from "../2_tl.js";
21
- import type { CallbackQuery, ChosenInlineResult, MessageTypes, UpdateIntersection, UpdateMap } from "../3_types.js";
22
- import type { Context } from "./2_context.js";
21
+ import type { CallbackQuery, ChatP, ChosenInlineResult, MessageTypes, UpdateIntersection, UpdateMap } from "../3_types.js";
23
22
  type AnyLevel1 = keyof UpdateMap;
24
23
  type GetLevel1Type<L1 extends AnyLevel1> = UpdateMap[L1];
25
24
  interface Level2Map {
@@ -60,12 +59,38 @@ interface Shortcuts<T extends UpdateIntersection> {
60
59
  inlineQuery: T["inlineQuery"];
61
60
  chosenInlineResult: T["chosenInlineResult"];
62
61
  }
63
- type GetShortcuts<T> = T extends UpdateIntersection ? T["update"] extends object ? Record<string, never> : Shortcuts<T> : Record<string, never>;
62
+ type GetShortcuts<T extends UpdateIntersection> = T["update"] extends object ? Record<string, never> : Shortcuts<T>;
64
63
  type Filter<Q extends AnyLevelX> = {
65
64
  update: FilterCore<Q>;
66
65
  } & GetShortcuts<FilterCore<Q>>;
67
66
  export type FilterQuery = AnyLevelX;
68
- export type WithFilter<T extends Context, Q extends FilterQuery> = T & Filter<Q>;
67
+ export type WithFilter<T, Q extends FilterQuery> = T & Filter<Q>;
69
68
  export declare function match<Q extends FilterQuery, T extends object>(filter: Q, value: T): boolean;
69
+ type ChatType<T extends ChatP["type"]> = {
70
+ chat: {
71
+ type: T;
72
+ };
73
+ };
74
+ export type WithChatType<C, T extends ChatP["type"]> = C & ChatType<T> & {
75
+ msg?: ChatType<T>;
76
+ message?: ChatType<T>;
77
+ editedMessage?: ChatType<T>;
78
+ callbackQuery?: {
79
+ message?: ChatType<T>;
80
+ };
81
+ update: {
82
+ callbackQuery?: {
83
+ message?: ChatType<T>;
84
+ };
85
+ message?: ChatType<T>;
86
+ editedMessage?: ChatType<T>;
87
+ scheduledMessage?: ChatType<T>;
88
+ messageReactions?: ChatType<T>;
89
+ messageReactionCount?: ChatType<T>;
90
+ myChatMember?: ChatType<T>;
91
+ chatMember?: ChatType<T>;
92
+ joinRequest?: ChatType<T>;
93
+ };
94
+ };
70
95
  export {};
71
96
  //# sourceMappingURL=3_filters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"3_filters.d.ts","sourceRoot":"","sources":["../../src/client/3_filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"3_filters.d.ts","sourceRoot":"","sources":["../../src/client/3_filters.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,18 @@ import { type Api } from "../2_tl.js";
21
21
  import type { BusinessConnection, CallbackQuery, Chat, ChatAction, ChatMember, ChatP, ChatPChannel, ChatPGroup, ChatPPrivate, ChatPSupergroup, ChatSettings, ChosenInlineResult, ClaimedGifts, FailedInvitation, FileSource, ID, InlineQuery, InlineQueryResult, InputChecklistItem, InputMedia, InputPollOption, InputStoryContent, InviteLink, JoinRequest, Message, MessageAnimation, MessageAudio, MessageChecklist, MessageContact, MessageDice, MessageDocument, MessageInvoice, MessageList, MessageLocation, MessagePhoto, MessagePoll, MessageReactionList, MessageSticker, MessageText, MessageVenue, MessageVideo, MessageVideoNote, MessageVoice, Poll, PriceTag, Reaction, SlowModeDuration, Story, Topic, Update, User, VideoChatActive, VideoChatScheduled, VoiceTranscription } from "../3_types.js";
22
22
  import type { AddChatMemberParams, AddContactParams, AddReactionParams, AnswerCallbackQueryParams, AnswerInlineQueryParams, AnswerPreCheckoutQueryParams, ApproveJoinRequestsParams, BanChatMemberParams, CreateInviteLinkParams, CreateStoryParams, CreateTopicParams, DeclineJoinRequestsParams, DeleteMessagesParams, EditInlineMessageCaptionParams, EditInlineMessageMediaParams, EditInlineMessageTextParams, EditMessageCaptionParams, EditMessageLiveLocationParams, EditMessageMediaParams, EditMessageReplyMarkupParams, EditMessageTextParams, EditTopicParams, EnableSignaturesParams, ForwardMessagesParams, GetChatMembersParams, GetClaimedGiftsParams, GetCreatedInviteLinksParams, GetHistoryParams, GetJoinRequestsParams, GetSavedMessagesParams, PinMessageParams, PromoteChatMemberParams, ReplyParams, ScheduleVideoChatParams, SearchMessagesParams, SendAnimationParams, SendAudioParams, SendChecklistParams, SendContactParams, SendDiceParams, SendDocumentParams, SendGiftParams, SendInvoiceParams, SendLocationParams, SendMediaGroupParams, SendMessageDraftParams, SendMessageParams, SendPhotoParams, SendPollParams, SendStickerParams, SendVenueParams, SendVideoNoteParams, SendVideoParams, SendVoiceParams, SetChatMemberRightsParams, SetChatMemberTagParams, SetChatPhotoParams, SetReactionsParams, StartVideoChatParams, StopPollParams, UpdateChecklistParams } from "./0_params.js";
23
23
  import type { ClientGeneric } from "./1_client_generic.js";
24
+ import { type FilterQuery, type WithChatType, type WithFilter } from "./3_filters.js";
25
+ export type ContextCommands = string | RegExp | (string | RegExp)[] | {
26
+ names: string | RegExp | (string | RegExp)[];
27
+ prefixes: string | string[];
28
+ };
29
+ interface StaticHas {
30
+ filterQuery<Q extends FilterQuery>(filter: Q): <C extends Context>(ctx: C) => ctx is WithFilter<typeof ctx, Q>;
31
+ command(commands: ContextCommands, fallbackPrefixes: string | string[] | undefined): <C extends Context>(ctx: C) => ctx is WithFilter<typeof ctx, "message:text">;
32
+ callbackQuery(data: string | RegExp | (string | RegExp)[]): <C extends Context>(ctx: C) => ctx is WithFilter<typeof ctx, "callbackQuery:data">;
33
+ inlineQuery(queries: string | RegExp | (string | RegExp)[]): <C extends Context>(ctx: C) => ctx is WithFilter<typeof ctx, "inlineQuery">;
34
+ chatType<T extends ChatP["type"]>(chatType: T | T[]): <C extends Context>(ctx: C) => ctx is WithChatType<typeof ctx, T>;
35
+ }
24
36
  /**
25
37
  * The context object that is passed to the client's update handlers.
26
38
  *
@@ -29,6 +41,7 @@ import type { ClientGeneric } from "./1_client_generic.js";
29
41
  export declare class Context {
30
42
  #private;
31
43
  constructor(client: ClientGeneric, me: User | undefined, update: Update);
44
+ static has: StaticHas;
32
45
  get update(): Update;
33
46
  get me(): User | undefined;
34
47
  get client(): ClientGeneric;
@@ -40,6 +53,11 @@ export declare class Context {
40
53
  get chosenInlineResult(): ChosenInlineResult | undefined;
41
54
  get chat(): ChatP | undefined;
42
55
  get from(): User | ChatPGroup | ChatPSupergroup | ChatPChannel | undefined;
56
+ hasFilterQuery<Q extends FilterQuery>(filter: Q): this is WithFilter<typeof this, Q>;
57
+ hasCommand(commands: ContextCommands, fallbackPrefixes: string | string[] | undefined): this is WithFilter<typeof this, "message:text">;
58
+ hasCallbackQuery(data: string | RegExp | (string | RegExp)[]): this is WithFilter<typeof this, "callbackQuery:data">;
59
+ hasInlineQuery(queries: string | RegExp | (string | RegExp)[]): this is WithFilter<typeof this, "inlineQuery">;
60
+ hasChatType<T extends ChatP["type"]>(chatType: T | T[]): this is WithChatType<typeof this, T>;
43
61
  /**
44
62
  * Returns a representation of the update held in the context that can be converted to JSON.
45
63
  *
@@ -667,4 +685,5 @@ export declare class Context {
667
685
  */
668
686
  updateChecklist(messageId: number, params?: UpdateChecklistParams): Promise<void>;
669
687
  }
670
- //# sourceMappingURL=2_context.d.ts.map
688
+ export {};
689
+ //# sourceMappingURL=4_context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"4_context.d.ts","sourceRoot":"","sources":["../../src/client/4_context.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,105 @@
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.Context = void 0;
23
23
  const _0_deps_js_1 = require("../0_deps.js");
24
+ const _0_errors_js_1 = require("../0_errors.js");
24
25
  const _2_tl_js_1 = require("../2_tl.js");
26
+ const _3_filters_js_1 = require("./3_filters.js");
27
+ const staticHas = {
28
+ filterQuery(filter) {
29
+ return (ctx) => {
30
+ return (0, _3_filters_js_1.match)(filter, ctx.update);
31
+ };
32
+ },
33
+ command(commands, fallbackPrefixes) {
34
+ const hasText = staticHas.filterQuery("message:text");
35
+ const commands__ = typeof commands === "object" && "names" in commands ? commands.names : commands;
36
+ const commands_ = Array.isArray(commands__) ? commands__ : [commands__];
37
+ const prefixes_ = typeof commands === "object" && "prefixes" in commands ? commands.prefixes : (fallbackPrefixes ?? []);
38
+ const prefixes = Array.isArray(prefixes_) ? prefixes_ : [prefixes_];
39
+ for (const left of prefixes) {
40
+ for (const right of prefixes) {
41
+ if (left === right) {
42
+ continue;
43
+ }
44
+ if (left.startsWith(right) || right.startsWith(left)) {
45
+ throw new _0_errors_js_1.InputError("Intersecting prefixes");
46
+ }
47
+ }
48
+ }
49
+ return (ctx) => {
50
+ if (!hasText(ctx)) {
51
+ return false;
52
+ }
53
+ const prefixes_ = prefixes.length === 0 ? [!ctx.me?.isBot ? "\\" : "/"] : prefixes;
54
+ if (prefixes_.length === 0) {
55
+ return false;
56
+ }
57
+ const cmd = ctx.update.message.text.split(/\s/, 1)[0];
58
+ const prefix = prefixes_.find((v) => cmd.startsWith(v));
59
+ if (prefix === undefined) {
60
+ return false;
61
+ }
62
+ if (cmd.includes("@")) {
63
+ const username = cmd.split("@", 2)[1];
64
+ if (username.toLowerCase() !== ctx.me.username?.toLowerCase()) {
65
+ return false;
66
+ }
67
+ }
68
+ const command_ = cmd.split("@", 1)[0].split(prefix, 2)[1].toLowerCase();
69
+ for (const command of commands_) {
70
+ if (typeof command === "string" && (command.toLowerCase() === command_)) {
71
+ return true;
72
+ }
73
+ else if (command instanceof RegExp && command.test(command_)) {
74
+ return true;
75
+ }
76
+ }
77
+ return false;
78
+ };
79
+ },
80
+ callbackQuery(data) {
81
+ const hasCallbackQueryData = staticHas.filterQuery("callbackQuery:data");
82
+ const data_ = Array.isArray(data) ? data : [data];
83
+ return (ctx) => {
84
+ if (!hasCallbackQueryData(ctx)) {
85
+ return false;
86
+ }
87
+ for (const data of data_) {
88
+ if (typeof data === "string" && data === ctx.update.callbackQuery.data) {
89
+ return true;
90
+ }
91
+ else if (data instanceof RegExp && data.test(ctx.update.callbackQuery.data)) {
92
+ return true;
93
+ }
94
+ }
95
+ return false;
96
+ };
97
+ },
98
+ inlineQuery(queries) {
99
+ const hasInlineQuery = staticHas.filterQuery("inlineQuery");
100
+ const queries_ = Array.isArray(queries) ? queries : [queries];
101
+ return (ctx) => {
102
+ if (!hasInlineQuery(ctx)) {
103
+ return false;
104
+ }
105
+ for (const query of queries_) {
106
+ if (typeof query === "string" && query === ctx.update.inlineQuery.query) {
107
+ return true;
108
+ }
109
+ else if (query instanceof RegExp && query.test(ctx.update.inlineQuery.query)) {
110
+ return true;
111
+ }
112
+ }
113
+ return false;
114
+ };
115
+ },
116
+ chatType(chatType) {
117
+ const set = new Set(Array.isArray(chatType) ? chatType : [chatType]);
118
+ return (ctx) => {
119
+ return ctx.chat !== undefined && set.has(ctx.chat.type);
120
+ };
121
+ },
122
+ };
25
123
  /**
26
124
  * The context object that is passed to the client's update handlers.
27
125
  *
@@ -36,6 +134,7 @@ class Context {
36
134
  this.#me = me;
37
135
  this.#update = update;
38
136
  }
137
+ static has = staticHas;
39
138
  get update() {
40
139
  return this.#update;
41
140
  }
@@ -135,6 +234,21 @@ class Context {
135
234
  const from = "callbackQuery" in this.update ? this.update.callbackQuery.from : "inlineQuery" in this.update ? this.update.inlineQuery.from : "chatMember" in this.update ? this.update.chatMember.from : "myChatMember" in this.update ? this.update.myChatMember.from : "messageReactions" in this.update ? this.update.messageReactions.user : "preCheckoutQuery" in this.update ? this.update.preCheckoutQuery.from : "joinRequest" in this.update ? this.update.joinRequest.from : "businessConnection" in this.update ? this.update.businessConnection.user : "pollAnswer" in this.update ? this.update.pollAnswer.from : this.msg?.from;
136
235
  return from;
137
236
  }
237
+ hasFilterQuery(filter) {
238
+ return Context.has.filterQuery(filter)(this);
239
+ }
240
+ hasCommand(commands, fallbackPrefixes) {
241
+ return Context.has.command(commands, fallbackPrefixes)(this);
242
+ }
243
+ hasCallbackQuery(data) {
244
+ return Context.has.callbackQuery(data)(this);
245
+ }
246
+ hasInlineQuery(queries) {
247
+ return Context.has.inlineQuery(queries)(this);
248
+ }
249
+ hasChatType(chatType) {
250
+ return Context.has.chatType(chatType)(this);
251
+ }
138
252
  /**
139
253
  * Returns a representation of the update held in the context that can be converted to JSON.
140
254
  *
@@ -18,11 +18,11 @@
18
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
19
  */
20
20
  import type { MaybePromise } from "../1_utilities.js";
21
- import type { Update } from "../3_types.js";
21
+ import type { ChatP, Update } from "../3_types.js";
22
22
  import type { NextFunction } from "./0_utilities.js";
23
23
  import type { ClientGeneric } from "./1_client_generic.js";
24
- import { Context } from "./2_context.js";
25
- import { type FilterQuery, type WithFilter } from "./3_filters.js";
24
+ import type { FilterQuery, WithChatType, WithFilter } from "./3_filters.js";
25
+ import { Context, type ContextCommands } from "./4_context.js";
26
26
  export type MiddlewareFn<C> = (ctx: C, next: NextFunction) => MaybePromise<unknown>;
27
27
  export interface MiddlewareObj<C> {
28
28
  middleware: () => MiddlewareFn<C>;
@@ -42,11 +42,9 @@ export declare class Composer<C extends Context> implements MiddlewareObj<C> {
42
42
  filter<D extends C>(predicate: (ctx: C) => ctx is D, ...middleware: Middleware<D>[]): Composer<D>;
43
43
  filter(predicate: (ctx: C) => MaybePromise<boolean>, ...middleware: Middleware<C>[]): Composer<C>;
44
44
  on<Q extends FilterQuery>(filter: Q, ...middleware: Middleware<WithFilter<C, Q>>[]): Composer<WithFilter<C, Q>>;
45
- command(commands: string | RegExp | (string | RegExp)[] | {
46
- names: string | RegExp | (string | RegExp)[];
47
- prefixes: string | string[];
48
- }, ...middleware: Middleware<WithFilter<C, "message:text">>[]): Composer<WithFilter<C, "message:text">>;
45
+ command(commands: ContextCommands, ...middleware: Middleware<WithFilter<C, "message:text">>[]): Composer<WithFilter<C, "message:text">>;
49
46
  callbackQuery(data: string | RegExp | (string | RegExp)[], ...middleware: Middleware<WithFilter<C, "callbackQuery:data">>[]): Composer<WithFilter<C, "callbackQuery:data">>;
50
47
  inlineQuery(queries: string | RegExp | (string | RegExp)[], ...middleware: Middleware<WithFilter<C, "inlineQuery">>[]): Composer<WithFilter<C, "inlineQuery">>;
48
+ chatType<T extends ChatP["type"]>(chatType: T | T[], ...middleware: Middleware<WithChatType<C, T>>[]): Composer<WithChatType<C, T>>;
51
49
  }
52
- //# sourceMappingURL=4_composer.d.ts.map
50
+ //# sourceMappingURL=5_composer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5_composer.d.ts","sourceRoot":"","sources":["../../src/client/5_composer.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,7 @@ exports.flatten = flatten;
24
24
  exports.concat = concat;
25
25
  exports.skip = skip;
26
26
  const _0_errors_js_1 = require("../0_errors.js");
27
- const _2_context_js_1 = require("./2_context.js");
28
- const _3_filters_js_1 = require("./3_filters.js");
27
+ const _4_context_js_1 = require("./4_context.js");
29
28
  function flatten(mw) {
30
29
  return typeof mw === "function" ? mw : (ctx, next) => mw.middleware()(ctx, next);
31
30
  }
@@ -63,7 +62,7 @@ class Composer {
63
62
  if (!this.#lastGetMe && !("connectionState" in update) && (!("authorizationState" in update) || ("authorizationState" in update && update.authorizationState.isAuthorized))) {
64
63
  this.#lastGetMe = await client.getMe();
65
64
  }
66
- const ctx = new _2_context_js_1.Context(client, this.#lastGetMe, update);
65
+ const ctx = new _4_context_js_1.Context(client, this.#lastGetMe, update);
67
66
  const next = () => Promise.resolve();
68
67
  await this.#handle(ctx, next);
69
68
  }
@@ -93,80 +92,19 @@ class Composer {
93
92
  return composer;
94
93
  }
95
94
  on(filter, ...middleware) {
96
- return this.filter((ctx) => {
97
- return (0, _3_filters_js_1.match)(filter, ctx.update);
98
- }, ...middleware);
95
+ return this.filter((ctx) => ctx.hasFilterQuery(filter), ...middleware);
99
96
  }
100
97
  command(commands, ...middleware) {
101
- const commands__ = typeof commands === "object" && "names" in commands ? commands.names : commands;
102
- const commands_ = Array.isArray(commands__) ? commands__ : [commands__];
103
- const prefixes_ = typeof commands === "object" && "prefixes" in commands ? commands.prefixes : (this.#prefixes ?? []);
104
- const prefixes = Array.isArray(prefixes_) ? prefixes_ : [prefixes_];
105
- for (const left of prefixes) {
106
- for (const right of prefixes) {
107
- if (left === right) {
108
- continue;
109
- }
110
- if (left.startsWith(right) || right.startsWith(left)) {
111
- throw new _0_errors_js_1.InputError("Intersecting prefixes");
112
- }
113
- }
114
- }
115
- return this.on("message:text").filter((ctx) => {
116
- const prefixes_ = prefixes.length === 0 ? [!ctx.me?.isBot ? "\\" : "/"] : prefixes;
117
- if (prefixes_.length === 0) {
118
- return false;
119
- }
120
- const cmd = ctx.update.message.text.split(/\s/, 1)[0];
121
- const prefix = prefixes_.find((v) => cmd.startsWith(v));
122
- if (prefix === undefined) {
123
- return false;
124
- }
125
- if (cmd.includes("@")) {
126
- const username = cmd.split("@", 2)[1];
127
- if (username.toLowerCase() !== ctx.me.username?.toLowerCase()) {
128
- return false;
129
- }
130
- }
131
- const command_ = cmd.split("@", 1)[0].split(prefix, 2)[1].toLowerCase();
132
- for (const command of commands_) {
133
- if (typeof command === "string" && (command.toLowerCase() === command_)) {
134
- return true;
135
- }
136
- else if (command instanceof RegExp && command.test(command_)) {
137
- return true;
138
- }
139
- }
140
- return false;
141
- }, ...middleware);
98
+ return this.filter(_4_context_js_1.Context.has.command(commands, this.#prefixes), ...middleware);
142
99
  }
143
100
  callbackQuery(data, ...middleware) {
144
- const data_ = Array.isArray(data) ? data : [data];
145
- return this.on("callbackQuery:data").filter((ctx) => {
146
- for (const data of data_) {
147
- if (typeof data === "string" && data === ctx.update.callbackQuery.data) {
148
- return true;
149
- }
150
- else if (data instanceof RegExp && data.test(ctx.update.callbackQuery.data)) {
151
- return true;
152
- }
153
- }
154
- return false;
155
- }, ...middleware);
101
+ return this.filter(_4_context_js_1.Context.has.callbackQuery(data), ...middleware);
156
102
  }
157
103
  inlineQuery(queries, ...middleware) {
158
- const queries_ = Array.isArray(queries) ? queries : [queries];
159
- return this.on("inlineQuery").filter((ctx) => {
160
- for (const query of queries_) {
161
- if (typeof query === "string" && query === ctx.update.inlineQuery.query) {
162
- return true;
163
- }
164
- else if (query instanceof RegExp && query.test(ctx.update.inlineQuery.query)) {
165
- return true;
166
- }
167
- }
168
- return false;
169
- }, ...middleware);
104
+ return this.filter(_4_context_js_1.Context.has.inlineQuery(queries), ...middleware);
105
+ }
106
+ chatType(chatType, ...middleware) {
107
+ return this.filter(_4_context_js_1.Context.has.chatType(chatType), ...middleware);
170
108
  }
171
109
  }
172
110
  exports.Composer = Composer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5_composer_test.d.ts","sourceRoot":"","sources":["../../src/client/5_composer_test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,2BAA2B,CAAC"}