telemeister 0.3.0 → 0.3.1

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/README.md CHANGED
@@ -218,20 +218,20 @@ import type { MenuTransitions } from './bot-state-types.js';
218
218
  appBuilder
219
219
  .forState('menu')
220
220
  .onEnter(async (context: AppContext): MenuTransitions => {
221
- await context.ctx.reply('Welcome to menu!');
221
+ await context.reply('Welcome to menu!');
222
222
  // Can only return 'idle', 'welcome', or void
223
223
  })
224
224
  .onResponse(async (context: AppContext): MenuTransitions => {
225
225
  // Handle text messages
226
226
  if (context.ctx.message?.text === 'back') return 'welcome'; // ✅ Valid
227
227
  if (context.ctx.message?.text === 'exit') return 'idle'; // ✅ Valid
228
-
228
+
229
229
  // Handle inline button callbacks
230
230
  if (context.ctx.callbackQuery?.data === 'go_back') {
231
231
  await context.ctx.answerCallbackQuery();
232
232
  return 'welcome';
233
233
  }
234
-
234
+
235
235
  // return 'invalid'; // ❌ Type error - not in transitions
236
236
  });
237
237
  ```
@@ -255,24 +255,29 @@ interface BotHandlerContext<TState> {
255
255
 
256
256
  // State transition
257
257
  transition: (toState: TState) => Promise<void>;
258
+
259
+ // Universal reply - works with messages, callbacks, and poll answers
260
+ reply: (text: string, extra?) => Promise<Message>;
258
261
  }
259
262
  ```
260
263
 
261
264
  The `ctx` property provides full access to Grammy's Context API:
262
- - `ctx.reply()`, `ctx.replyWithPhoto()`, `ctx.replyWithPoll()`, etc.
263
265
  - `ctx.message?.text` - Text messages
264
- - `ctx.callbackQuery?.data` - Inline button callbacks
266
+ - `ctx.callbackQuery?.data` - Inline button callbacks
265
267
  - `ctx.message?.photo` - Photo messages
266
268
  - `ctx.pollAnswer` - Poll responses
269
+ - `ctx.api.sendMessage()`, `ctx.replyWithPoll()`, `ctx.replyWithPhoto()`, etc. - Send messages
267
270
  - See [Grammy docs](https://grammy.dev/guide/context) for full API
268
271
 
272
+ **Note:** Use `context.reply()` instead of `context.ctx.reply()` for universal reply that works with all update types (messages, callbacks, poll answers).
273
+
269
274
  ### Handler Types
270
275
 
271
276
  ```typescript
272
277
  // Called when entering a state
273
278
  .onEnter(async (context) => {
274
- // Access Grammy via context.ctx
275
- await context.ctx.reply("Welcome!", {
279
+ // Use context.reply() for universal reply
280
+ await context.reply("Welcome!", {
276
281
  reply_markup: {
277
282
  inline_keyboard: [[{ text: 'Click', callback_data: 'click' }]]
278
283
  }
@@ -285,14 +290,14 @@ The `ctx` property provides full access to Grammy's Context API:
285
290
  .onResponse(async (context) => {
286
291
  // Text message
287
292
  if (context.ctx.message?.text === "yes") {
288
- await context.ctx.reply("Confirmed!");
293
+ await context.reply("Confirmed!");
289
294
  return "confirmed";
290
295
  }
291
-
296
+
292
297
  // Inline button callback
293
298
  if (context.ctx.callbackQuery?.data === "click") {
294
299
  await context.ctx.answerCallbackQuery();
295
- await context.ctx.reply("Button clicked!");
300
+ await context.reply("Button clicked!");
296
301
  return "clicked";
297
302
  }
298
303
 
@@ -303,7 +308,8 @@ The `ctx` property provides full access to Grammy's Context API:
303
308
 
304
309
  // Poll response
305
310
  if (context.ctx.pollAnswer) {
306
- // Handle poll answer
311
+ const optionIds = context.ctx.pollAnswer.option_ids;
312
+ await context.reply(`You selected options: ${optionIds.join(', ')}`);
307
313
  }
308
314
 
309
315
  // Return void to stay in current state
@@ -93,10 +93,11 @@ export async function startPollingMode(config) {
93
93
  */
94
94
  function createHandlerContext(ctx, session, database) {
95
95
  const localStateData = { ...session.stateData };
96
+ const chatId = ctx.chat?.id ?? (session.chatId ? parseInt(session.chatId, 10) : 0);
96
97
  return {
97
98
  userId: session.userId || 0,
98
99
  telegramId: extractUserId(ctx) || 0,
99
- chatId: ctx.chat?.id ?? (session.chatId ? parseInt(session.chatId, 10) : 0),
100
+ chatId,
100
101
  currentState: session.currentState,
101
102
  ctx: ctx,
102
103
  setData: (key, value) => {
@@ -111,6 +112,9 @@ function createHandlerContext(ctx, session, database) {
111
112
  transition: async (toState) => {
112
113
  await transitionToState(ctx, session, toState, createHandlerContext(ctx, session, database), database);
113
114
  },
115
+ reply: (text, extra) => {
116
+ return ctx.api.sendMessage(chatId, text, extra);
117
+ },
114
118
  };
115
119
  }
116
120
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"polling.js","sourceRoot":"","sources":["../../../src/core/bot/polling.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"polling.js","sourceRoot":"","sources":["../../../src/core/bot/polling.ts"],"names":[],"mappings":"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"}
@@ -194,10 +194,11 @@ export async function getWebhookInfo(token) {
194
194
  */
195
195
  function createHandlerContext(ctx, session, database) {
196
196
  const localStateData = { ...session.stateData };
197
+ const chatId = ctx.chat?.id ?? (session.chatId ? parseInt(session.chatId, 10) : 0);
197
198
  return {
198
199
  userId: session.userId || 0,
199
200
  telegramId: extractUserId(ctx) || 0,
200
- chatId: ctx.chat?.id ?? (session.chatId ? parseInt(session.chatId, 10) : 0),
201
+ chatId,
201
202
  currentState: session.currentState,
202
203
  ctx: ctx,
203
204
  setData: (key, value) => {
@@ -212,6 +213,9 @@ function createHandlerContext(ctx, session, database) {
212
213
  transition: async (toState) => {
213
214
  await transitionToState(ctx, session, toState, createHandlerContext(ctx, session, database), database);
214
215
  },
216
+ reply: (text, extra) => {
217
+ return ctx.api.sendMessage(chatId, text, extra);
218
+ },
215
219
  };
216
220
  }
217
221
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/core/bot/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/core/bot/webhook.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export interface BotHandlerContext<TState extends BotState = BotState> {
12
12
  setData: <T>(key: string, value: T) => void;
13
13
  getData: <T>(key: string) => T | undefined;
14
14
  transition: (toState: TState) => Promise<void>;
15
+ reply: (text: string, extra?: Parameters<Context['reply']>[1]) => ReturnType<Context['reply']>;
15
16
  }
16
17
  export type EnterHandler<TState extends BotState = BotState> = (context: BotHandlerContext<TState>) => Promise<TState | void>;
17
18
  export type ResponseHandler<TState extends BotState = BotState> = (context: BotHandlerContext<TState>) => Promise<TState | void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,UAAU,oBAA2B,CAAC;AAGnD,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAC7D,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAChE,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ;IAC/D,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU,oBAA2B,CAAC;AAEnD,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;CAChG;AAED,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAC7D,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAChE,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5B,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ;IAC/D,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE5E,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -1,4 +1,3 @@
1
1
  import { BotBuilder } from './builder.js';
2
- // Generic appBuilder - users should cast to their specific state type
3
2
  export const appBuilder = new BotBuilder();
4
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,sEAAsE;AACtE,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAU,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAU,CAAC"}
@@ -19,14 +19,14 @@ appBuilder
19
19
 
20
20
  // Access Grammy context via context.ctx
21
21
  // See Grammy docs: https://grammy.dev/guide/context
22
- await context.ctx.reply("Hello from <%= stateName %> state!");
22
+ await context.reply("Hello from <%= stateName %> state!");
23
23
 
24
24
  // === INLINE KEYBOARD EXAMPLE ===
25
25
  // import { InlineKeyboard } from 'grammy';
26
26
  // const keyboard = new InlineKeyboard()
27
27
  // .text('Button 1', 'btn1')
28
28
  // .text('Button 2', 'btn2');
29
- // await context.ctx.reply('Choose:', { reply_markup: keyboard });
29
+ // await context.reply('Choose:', { reply_markup: keyboard });
30
30
 
31
31
  // === POLL EXAMPLE ===
32
32
  // await context.ctx.replyWithPoll(
@@ -66,7 +66,7 @@ appBuilder
66
66
  // const data = context.ctx.callbackQuery.data;
67
67
  // switch (data) {
68
68
  // case 'btn1':
69
- // await context.ctx.reply('You clicked Button 1!');
69
+ // await context.reply('You clicked Button 1!');
70
70
  // break;
71
71
  // case 'btn2':
72
72
  // return 'otherState'; // Transition to another state
@@ -79,7 +79,7 @@ appBuilder
79
79
  // const optionIds = context.ctx.pollAnswer.option_ids;
80
80
  // const options = ['Option A', 'Option B', 'Option C'];
81
81
  // const selected = optionIds.map(id => options[id]).join(', ');
82
- // await context.ctx.reply(`You voted for: ${selected}`);
82
+ // await context.reply(`You voted for: ${selected}`);
83
83
  // return;
84
84
  // }
85
85
 
@@ -89,19 +89,19 @@ appBuilder
89
89
  // const command = text.split(' ')[0].toLowerCase();
90
90
  // switch (command) {
91
91
  // case '/start':
92
- // await context.ctx.reply('Welcome!');
92
+ // await context.reply('Welcome!');
93
93
  // return 'welcome';
94
94
  // case '/menu':
95
95
  // return 'menu';
96
96
  // default:
97
- // await context.ctx.reply(`Unknown command: ${command}`);
97
+ // await context.reply(`Unknown command: ${command}`);
98
98
  // }
99
99
  // return;
100
100
  // }
101
101
 
102
102
  const text = context.ctx.message?.text?.trim();
103
103
  if (text) {
104
- await context.ctx.reply(`You said: ${text}`);
104
+ await context.reply(`You said: ${text}`);
105
105
  }
106
106
  <% if (transitionStates.length > 0) { %>
107
107
  // Available transitions: <%= transitionStates.join(', ') %>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "telemeister",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "TypeScript Telegram Bot Boilerplate with XState",
5
5
  "type": "module",
6
6
  "main": "./dist/core/index.js",
@@ -19,14 +19,14 @@ appBuilder
19
19
 
20
20
  // Access Grammy context via context.ctx
21
21
  // See Grammy docs: https://grammy.dev/guide/context
22
- await context.ctx.reply("Hello from <%= stateName %> state!");
22
+ await context.reply("Hello from <%= stateName %> state!");
23
23
 
24
24
  // === INLINE KEYBOARD EXAMPLE ===
25
25
  // import { InlineKeyboard } from 'grammy';
26
26
  // const keyboard = new InlineKeyboard()
27
27
  // .text('Button 1', 'btn1')
28
28
  // .text('Button 2', 'btn2');
29
- // await context.ctx.reply('Choose:', { reply_markup: keyboard });
29
+ // await context.reply('Choose:', { reply_markup: keyboard });
30
30
 
31
31
  // === POLL EXAMPLE ===
32
32
  // await context.ctx.replyWithPoll(
@@ -66,7 +66,7 @@ appBuilder
66
66
  // const data = context.ctx.callbackQuery.data;
67
67
  // switch (data) {
68
68
  // case 'btn1':
69
- // await context.ctx.reply('You clicked Button 1!');
69
+ // await context.reply('You clicked Button 1!');
70
70
  // break;
71
71
  // case 'btn2':
72
72
  // return 'otherState'; // Transition to another state
@@ -79,7 +79,7 @@ appBuilder
79
79
  // const optionIds = context.ctx.pollAnswer.option_ids;
80
80
  // const options = ['Option A', 'Option B', 'Option C'];
81
81
  // const selected = optionIds.map(id => options[id]).join(', ');
82
- // await context.ctx.reply(`You voted for: ${selected}`);
82
+ // await context.reply(`You voted for: ${selected}`);
83
83
  // return;
84
84
  // }
85
85
 
@@ -89,19 +89,19 @@ appBuilder
89
89
  // const command = text.split(' ')[0].toLowerCase();
90
90
  // switch (command) {
91
91
  // case '/start':
92
- // await context.ctx.reply('Welcome!');
92
+ // await context.reply('Welcome!');
93
93
  // return 'welcome';
94
94
  // case '/menu':
95
95
  // return 'menu';
96
96
  // default:
97
- // await context.ctx.reply(`Unknown command: ${command}`);
97
+ // await context.reply(`Unknown command: ${command}`);
98
98
  // }
99
99
  // return;
100
100
  // }
101
101
 
102
102
  const text = context.ctx.message?.text?.trim();
103
103
  if (text) {
104
- await context.ctx.reply(`You said: ${text}`);
104
+ await context.reply(`You said: ${text}`);
105
105
  }
106
106
  <% if (transitionStates.length > 0) { %>
107
107
  // Available transitions: <%= transitionStates.join(', ') %>