yaebal 0.0.4 → 0.0.6

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.
package/lib/index.test.js CHANGED
@@ -43,6 +43,49 @@ test("typed routers expose the generated shortcuts + narrowed fields", () => {
43
43
  void args;
44
44
  void ctx.react; // command handlers get the message context
45
45
  });
46
+ bot.on("guest_message", (ctx) => {
47
+ void ctx.answer; // GuestMessageContext shortcut — answerGuestQuery, not sendMessage
48
+ void ctx.guest_bot_caller_user; // who summoned the guest bot
49
+ });
46
50
  assert.ok(bot);
47
51
  });
52
+ test("guest_message answer() posts a real message via answerGuestQuery", async () => {
53
+ const guestUpdate = {
54
+ update_id: 1,
55
+ guest_message: {
56
+ message_id: 5,
57
+ date: 0,
58
+ chat: { id: 42, type: "private" },
59
+ guest_query_id: "gq1",
60
+ guest_bot_caller_user: { id: 7, is_bot: false, first_name: "u" },
61
+ },
62
+ };
63
+ const calls = [];
64
+ const stubApi = {
65
+ call: (method, params) => {
66
+ calls.push({ method, params });
67
+ return Promise.resolve({ inline_message_id: "im1" });
68
+ },
69
+ };
70
+ const ctx = richContext(stubApi, guestUpdate, "guest_message");
71
+ assert.equal(ctx.guest_bot_caller_user?.first_name, "u");
72
+ await ctx.answer({
73
+ type: "article",
74
+ id: "1",
75
+ title: "hi",
76
+ input_message_content: { message_text: "hi" },
77
+ });
78
+ assert.deepEqual(calls[0], {
79
+ method: "answerGuestQuery",
80
+ params: {
81
+ guest_query_id: "gq1",
82
+ result: {
83
+ type: "article",
84
+ id: "1",
85
+ title: "hi",
86
+ input_message_content: { message_text: "hi" },
87
+ },
88
+ },
89
+ });
90
+ });
48
91
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,GAAG,GAAG,EAAW,CAAC;AAExB,MAAM,aAAa,GAAG;IACrB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE;QACR,UAAU,EAAE,CAAC;QACb,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE;QAC/C,IAAI,EAAE,IAAI;KACV;CACQ,CAAC;AAEX,IAAI,CAAC,wEAAwE,EAAE,GAAG,EAAE;IACnF,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,CAAC,EAAE,CAAC,GAAG,YAAY,OAAO,CAAC,CAAC,CAAC,8CAA8C;IAEjF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,0BAA0B;IACxD,MAAM,CAAC,KAAK,CAAE,GAAwC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,2BAA2B;IAClG,MAAM,CAAC,KAAK,CAAC,OAAQ,GAAoC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,8BAA8B;IAC5G,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,wBAAwB;AACpE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAChE,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEjC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,mFAAmF;AACnF,4EAA4E;AAC5E,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC3E,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEjC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,CAAC,GAAW,GAAG,CAAC,IAAI,CAAC,CAAC,yCAAyC;QAErE,KAAK,CAAC,CAAC;QACP,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,oDAAoD;QACpE,KAAK,GAAG,CAAC,QAAQ,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;QACrC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,gCAAgC;IAClD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAa,GAAG,CAAC,IAAI,CAAC;QAEhC,KAAK,IAAI,CAAC;QACV,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,2CAA2C;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yaebal",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "yaebal — batteries-included Telegram Bot API framework: core + auto-generated contexts + the common plugins, one import.",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -16,15 +16,15 @@
16
16
  "src"
17
17
  ],
18
18
  "dependencies": {
19
- "@yaebal/core": "0.0.5",
20
- "@yaebal/contexts": "0.0.2",
21
- "@yaebal/keyboard": "0.0.2",
22
- "@yaebal/callback-data": "0.0.2",
23
- "@yaebal/filters": "0.0.2",
24
- "@yaebal/session": "0.0.2",
25
- "@yaebal/i18n": "0.0.3",
26
- "@yaebal/fmt": "0.0.2",
27
- "@yaebal/web": "0.0.2"
19
+ "@yaebal/contexts": "0.0.5",
20
+ "@yaebal/core": "0.0.8",
21
+ "@yaebal/keyboard": "0.1.1",
22
+ "@yaebal/callback-data": "0.0.3",
23
+ "@yaebal/session": "0.0.3",
24
+ "@yaebal/filters": "0.0.3",
25
+ "@yaebal/i18n": "0.0.4",
26
+ "@yaebal/fmt": "0.0.3",
27
+ "@yaebal/web": "0.0.3"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/node": "latest"
package/src/index.test.ts CHANGED
@@ -57,5 +57,57 @@ test("typed routers expose the generated shortcuts + narrowed fields", () => {
57
57
  void ctx.react; // command handlers get the message context
58
58
  });
59
59
 
60
+ bot.on("guest_message", (ctx) => {
61
+ void ctx.answer; // GuestMessageContext shortcut — answerGuestQuery, not sendMessage
62
+ void ctx.guest_bot_caller_user; // who summoned the guest bot
63
+ });
64
+
60
65
  assert.ok(bot);
61
66
  });
67
+
68
+ test("guest_message answer() posts a real message via answerGuestQuery", async () => {
69
+ const guestUpdate = {
70
+ update_id: 1,
71
+ guest_message: {
72
+ message_id: 5,
73
+ date: 0,
74
+ chat: { id: 42, type: "private" },
75
+ guest_query_id: "gq1",
76
+ guest_bot_caller_user: { id: 7, is_bot: false, first_name: "u" },
77
+ },
78
+ } as never;
79
+
80
+ const calls: { method: string; params: unknown }[] = [];
81
+ const stubApi = {
82
+ call: (method: string, params: unknown) => {
83
+ calls.push({ method, params });
84
+ return Promise.resolve({ inline_message_id: "im1" });
85
+ },
86
+ } as never;
87
+
88
+ const ctx = richContext(stubApi, guestUpdate, "guest_message") as Context & {
89
+ answer: (result: unknown) => Promise<unknown>;
90
+ guest_bot_caller_user?: { first_name: string };
91
+ };
92
+
93
+ assert.equal(ctx.guest_bot_caller_user?.first_name, "u");
94
+
95
+ await ctx.answer({
96
+ type: "article",
97
+ id: "1",
98
+ title: "hi",
99
+ input_message_content: { message_text: "hi" },
100
+ });
101
+ assert.deepEqual(calls[0], {
102
+ method: "answerGuestQuery",
103
+ params: {
104
+ guest_query_id: "gq1",
105
+ result: {
106
+ type: "article",
107
+ id: "1",
108
+ title: "hi",
109
+ input_message_content: { message_text: "hi" },
110
+ },
111
+ },
112
+ });
113
+ });