@mtkruto/node 0.2.34 → 0.2.35

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.
@@ -56,6 +56,17 @@ export interface InlineKeyboardButtonSwitchInlineCurrent extends _InlineKeyboard
56
56
  switchInlineQueryCurrentChat: string;
57
57
  }
58
58
  /** @unlisted */
59
+ export interface InlineKeyboardButtonSwitchInlineChosen extends _InlineKeyboardButtonBase {
60
+ /** @discriminator */
61
+ switchInlineQueryChosenChats: {
62
+ query: string;
63
+ allowUsers?: boolean;
64
+ allowBots?: boolean;
65
+ allowGroups?: boolean;
66
+ allowChannels?: boolean;
67
+ };
68
+ }
69
+ /** @unlisted */
59
70
  export interface InlineKeyboardButtonGame extends _InlineKeyboardButtonBase {
60
71
  /** @discriminator */
61
72
  callbackGame: Record<never, never>;
@@ -66,7 +77,7 @@ export interface InlineKeyboardButtonPay extends _InlineKeyboardButtonBase {
66
77
  pay: boolean;
67
78
  }
68
79
  /** A button of an inline keyboard. */
69
- export type InlineKeyboardButton = InlineKeyboardButtonURL | InlineKeyboardButtonCallback | InlineKeyboardButtonMiniApp | InlineKeyboardButtonLogin | InlineKeyboardButtonSwitchInline | InlineKeyboardButtonSwitchInlineCurrent | InlineKeyboardButtonGame | InlineKeyboardButtonPay;
80
+ export type InlineKeyboardButton = InlineKeyboardButtonURL | InlineKeyboardButtonCallback | InlineKeyboardButtonMiniApp | InlineKeyboardButtonLogin | InlineKeyboardButtonSwitchInline | InlineKeyboardButtonSwitchInlineCurrent | InlineKeyboardButtonSwitchInlineChosen | InlineKeyboardButtonGame | InlineKeyboardButtonPay;
70
81
  export declare function constructInlineKeyboardButton(button_: Api.KeyboardButton): InlineKeyboardButton;
71
82
  export declare function inlineKeyboardButtonToTlObject(button: InlineKeyboardButton, usernameResolver: UsernameResolver): Promise<Api.KeyboardButton>;
72
83
  //# sourceMappingURL=2_inline_keyboard_button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"2_inline_keyboard_button.d.ts","sourceRoot":"","sources":["../../src/types/2_inline_keyboard_button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAM,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzE,gBAAgB;AAChB,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,qBAAqB;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,qBAAqB;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gBAAgB;AAChB,MAAM,WAAW,uCAAwC,SAAQ,yBAAyB;IACxF,qBAAqB;IACrB,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CACpC;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,4BAA4B,GAC5B,2BAA2B,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,uCAAuC,GACvC,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAsB/F;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAkBlJ"}
1
+ {"version":3,"file":"2_inline_keyboard_button.d.ts","sourceRoot":"","sources":["../../src/types/2_inline_keyboard_button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,EAAM,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzE,gBAAgB;AAChB,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,qBAAqB;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,qBAAqB;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gBAAgB;AAChB,MAAM,WAAW,uCAAwC,SAAQ,yBAAyB;IACxF,qBAAqB;IACrB,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,gBAAgB;AAChB,MAAM,WAAW,sCAAuC,SAAQ,yBAAyB;IACvF,qBAAqB;IACrB,4BAA4B,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CACpC;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,4BAA4B,GAC5B,2BAA2B,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,uCAAuC,GACvC,sCAAsC,GACtC,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,oBAAoB,CA8B/F;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAqClJ"}
@@ -18,6 +18,8 @@
18
18
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
19
19
  */
20
20
  import { unreachable } from "../0_deps.js";
21
+ import { InputError } from "../0_errors.js";
22
+ import { cleanObject } from "../1_utilities.js";
21
23
  import { is } from "../2_tl.js";
22
24
  import { constructMiniAppInfo } from "./0_mini_app_info.js";
23
25
  export function constructInlineKeyboardButton(button_) {
@@ -37,6 +39,13 @@ export function constructInlineKeyboardButton(button_) {
37
39
  if (button_.same_peer) {
38
40
  return { text: button_.text, switchInlineQueryCurrentChat: button_.query };
39
41
  }
42
+ else if (button_.peer_types && button_.peer_types.length) {
43
+ const allowUsers = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeBotPM") || undefined;
44
+ const allowBots = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeSameBotPM" || v._ == "inlineQueryPeerTypeBotPM") || undefined;
45
+ const allowGroups = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeChat" || v._ == "inlineQueryPeerTypeMegagroup") || undefined;
46
+ const allowChannels = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeBroadcast") || undefined;
47
+ return cleanObject({ text: button_.text, switchInlineQueryChosenChats: { query: button_.query, allowUsers, allowBots, allowGroups, allowChannels } });
48
+ }
40
49
  else {
41
50
  return { text: button_.text, switchInlineQuery: button_.query };
42
51
  }
@@ -47,6 +56,9 @@ export function constructInlineKeyboardButton(button_) {
47
56
  else if (is("keyboardButtonGame", button_)) {
48
57
  return { text: button_.text, callbackGame: {} };
49
58
  }
59
+ else if (is("keyboardButtonRequestPeer", button_)) {
60
+ unreachable();
61
+ }
50
62
  else {
51
63
  unreachable();
52
64
  }
@@ -70,6 +82,26 @@ export async function inlineKeyboardButtonToTlObject(button, usernameResolver) {
70
82
  else if ("switchInlineQueryCurrentChat" in button) {
71
83
  return { _: "keyboardButtonSwitchInline", text: button.text, query: button.switchInlineQueryCurrentChat, same_peer: true };
72
84
  }
85
+ else if ("switchInlineQueryChosenChats" in button) {
86
+ const peerTypes = new Array();
87
+ const { allowUsers, allowBots, allowGroups, allowChannels } = button.switchInlineQueryChosenChats;
88
+ if (!allowUsers && !allowBots && !allowGroups && !allowChannels) {
89
+ throw new InputError("switchInlineQueryChosenChats: At least one chat type must be allowed");
90
+ }
91
+ if (allowUsers) {
92
+ peerTypes.push({ _: "inlineQueryPeerTypeBotPM" });
93
+ }
94
+ if (allowBots) {
95
+ peerTypes.push({ _: "inlineQueryPeerTypeSameBotPM" }, { _: "inlineQueryPeerTypeBotPM" });
96
+ }
97
+ if (allowGroups) {
98
+ peerTypes.push({ _: "inlineQueryPeerTypeChat" }, { _: "inlineQueryPeerTypeMegagroup" });
99
+ }
100
+ if (allowChannels) {
101
+ peerTypes.push({ _: "inlineQueryPeerTypeBroadcast" });
102
+ }
103
+ return { _: "keyboardButtonSwitchInline", text: button.text, query: button.switchInlineQueryChosenChats.query, peer_types: peerTypes };
104
+ }
73
105
  else if ("pay" in button) {
74
106
  return { _: "keyboardButtonBuy", text: button.text };
75
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mtkruto/node",
3
- "version": "0.2.34",
3
+ "version": "0.2.35",
4
4
  "description": "MTKruto for Node.js",
5
5
  "author": "Roj <rojvv@icloud.com>",
6
6
  "repository": {
@@ -56,6 +56,17 @@ export interface InlineKeyboardButtonSwitchInlineCurrent extends _InlineKeyboard
56
56
  switchInlineQueryCurrentChat: string;
57
57
  }
58
58
  /** @unlisted */
59
+ export interface InlineKeyboardButtonSwitchInlineChosen extends _InlineKeyboardButtonBase {
60
+ /** @discriminator */
61
+ switchInlineQueryChosenChats: {
62
+ query: string;
63
+ allowUsers?: boolean;
64
+ allowBots?: boolean;
65
+ allowGroups?: boolean;
66
+ allowChannels?: boolean;
67
+ };
68
+ }
69
+ /** @unlisted */
59
70
  export interface InlineKeyboardButtonGame extends _InlineKeyboardButtonBase {
60
71
  /** @discriminator */
61
72
  callbackGame: Record<never, never>;
@@ -66,7 +77,7 @@ export interface InlineKeyboardButtonPay extends _InlineKeyboardButtonBase {
66
77
  pay: boolean;
67
78
  }
68
79
  /** A button of an inline keyboard. */
69
- export type InlineKeyboardButton = InlineKeyboardButtonURL | InlineKeyboardButtonCallback | InlineKeyboardButtonMiniApp | InlineKeyboardButtonLogin | InlineKeyboardButtonSwitchInline | InlineKeyboardButtonSwitchInlineCurrent | InlineKeyboardButtonGame | InlineKeyboardButtonPay;
80
+ export type InlineKeyboardButton = InlineKeyboardButtonURL | InlineKeyboardButtonCallback | InlineKeyboardButtonMiniApp | InlineKeyboardButtonLogin | InlineKeyboardButtonSwitchInline | InlineKeyboardButtonSwitchInlineCurrent | InlineKeyboardButtonSwitchInlineChosen | InlineKeyboardButtonGame | InlineKeyboardButtonPay;
70
81
  export declare function constructInlineKeyboardButton(button_: Api.KeyboardButton): InlineKeyboardButton;
71
82
  export declare function inlineKeyboardButtonToTlObject(button: InlineKeyboardButton, usernameResolver: UsernameResolver): Promise<Api.KeyboardButton>;
72
83
  //# sourceMappingURL=2_inline_keyboard_button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"2_inline_keyboard_button.d.ts","sourceRoot":"","sources":["../../src/types/2_inline_keyboard_button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,GAAG,EAAM,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzE,gBAAgB;AAChB,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,qBAAqB;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,qBAAqB;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gBAAgB;AAChB,MAAM,WAAW,uCAAwC,SAAQ,yBAAyB;IACxF,qBAAqB;IACrB,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CACpC;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,4BAA4B,GAC5B,2BAA2B,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,uCAAuC,GACvC,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAsB/F;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAkBlJ"}
1
+ {"version":3,"file":"2_inline_keyboard_button.d.ts","sourceRoot":"","sources":["../../src/types/2_inline_keyboard_button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,GAAG,EAAM,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzE,gBAAgB;AAChB,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,qBAAqB;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,gBAAgB;AAChB,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,gCAAiC,SAAQ,yBAAyB;IACjF,qBAAqB;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gBAAgB;AAChB,MAAM,WAAW,uCAAwC,SAAQ,yBAAyB;IACxF,qBAAqB;IACrB,4BAA4B,EAAE,MAAM,CAAC;CACtC;AAED,gBAAgB;AAChB,MAAM,WAAW,sCAAuC,SAAQ,yBAAyB;IACvF,qBAAqB;IACrB,4BAA4B,EAAE;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED,gBAAgB;AAChB,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;IACzE,qBAAqB;IACrB,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CACpC;AAED,gBAAgB;AAChB,MAAM,WAAW,uBAAwB,SAAQ,yBAAyB;IACxE,qBAAqB;IACrB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAC5B,uBAAuB,GACvB,4BAA4B,GAC5B,2BAA2B,GAC3B,yBAAyB,GACzB,gCAAgC,GAChC,uCAAuC,GACvC,sCAAsC,GACtC,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,oBAAoB,CA8B/F;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAqClJ"}
@@ -21,6 +21,8 @@
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.inlineKeyboardButtonToTlObject = exports.constructInlineKeyboardButton = void 0;
23
23
  const _0_deps_js_1 = require("../0_deps.js");
24
+ const _0_errors_js_1 = require("../0_errors.js");
25
+ const _1_utilities_js_1 = require("../1_utilities.js");
24
26
  const _2_tl_js_1 = require("../2_tl.js");
25
27
  const _0_mini_app_info_js_1 = require("./0_mini_app_info.js");
26
28
  function constructInlineKeyboardButton(button_) {
@@ -40,6 +42,13 @@ function constructInlineKeyboardButton(button_) {
40
42
  if (button_.same_peer) {
41
43
  return { text: button_.text, switchInlineQueryCurrentChat: button_.query };
42
44
  }
45
+ else if (button_.peer_types && button_.peer_types.length) {
46
+ const allowUsers = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeBotPM") || undefined;
47
+ const allowBots = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeSameBotPM" || v._ == "inlineQueryPeerTypeBotPM") || undefined;
48
+ const allowGroups = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeChat" || v._ == "inlineQueryPeerTypeMegagroup") || undefined;
49
+ const allowChannels = button_.peer_types.some((v) => v._ == "inlineQueryPeerTypeBroadcast") || undefined;
50
+ return (0, _1_utilities_js_1.cleanObject)({ text: button_.text, switchInlineQueryChosenChats: { query: button_.query, allowUsers, allowBots, allowGroups, allowChannels } });
51
+ }
43
52
  else {
44
53
  return { text: button_.text, switchInlineQuery: button_.query };
45
54
  }
@@ -50,6 +59,9 @@ function constructInlineKeyboardButton(button_) {
50
59
  else if ((0, _2_tl_js_1.is)("keyboardButtonGame", button_)) {
51
60
  return { text: button_.text, callbackGame: {} };
52
61
  }
62
+ else if ((0, _2_tl_js_1.is)("keyboardButtonRequestPeer", button_)) {
63
+ (0, _0_deps_js_1.unreachable)();
64
+ }
53
65
  else {
54
66
  (0, _0_deps_js_1.unreachable)();
55
67
  }
@@ -74,6 +86,26 @@ async function inlineKeyboardButtonToTlObject(button, usernameResolver) {
74
86
  else if ("switchInlineQueryCurrentChat" in button) {
75
87
  return { _: "keyboardButtonSwitchInline", text: button.text, query: button.switchInlineQueryCurrentChat, same_peer: true };
76
88
  }
89
+ else if ("switchInlineQueryChosenChats" in button) {
90
+ const peerTypes = new Array();
91
+ const { allowUsers, allowBots, allowGroups, allowChannels } = button.switchInlineQueryChosenChats;
92
+ if (!allowUsers && !allowBots && !allowGroups && !allowChannels) {
93
+ throw new _0_errors_js_1.InputError("switchInlineQueryChosenChats: At least one chat type must be allowed");
94
+ }
95
+ if (allowUsers) {
96
+ peerTypes.push({ _: "inlineQueryPeerTypeBotPM" });
97
+ }
98
+ if (allowBots) {
99
+ peerTypes.push({ _: "inlineQueryPeerTypeSameBotPM" }, { _: "inlineQueryPeerTypeBotPM" });
100
+ }
101
+ if (allowGroups) {
102
+ peerTypes.push({ _: "inlineQueryPeerTypeChat" }, { _: "inlineQueryPeerTypeMegagroup" });
103
+ }
104
+ if (allowChannels) {
105
+ peerTypes.push({ _: "inlineQueryPeerTypeBroadcast" });
106
+ }
107
+ return { _: "keyboardButtonSwitchInline", text: button.text, query: button.switchInlineQueryChosenChats.query, peer_types: peerTypes };
108
+ }
77
109
  else if ("pay" in button) {
78
110
  return { _: "keyboardButtonBuy", text: button.text };
79
111
  }