telemeister 0.1.21 → 0.2.8
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 +55 -13
- package/bin/telemeister-cli.js +1220 -0
- package/bin/telemeister.js +2 -1
- package/dist/bot/index.d.ts +10 -0
- package/dist/bot/index.d.ts.map +1 -0
- package/dist/bot/index.js +9 -0
- package/dist/bot/index.js.map +1 -0
- package/dist/bot/polling.d.ts +20 -0
- package/dist/bot/polling.d.ts.map +1 -0
- package/dist/bot/polling.js +129 -0
- package/dist/bot/polling.js.map +1 -0
- package/dist/bot/session.d.ts +54 -0
- package/dist/bot/session.d.ts.map +1 -0
- package/dist/bot/session.js +89 -0
- package/dist/bot/session.js.map +1 -0
- package/dist/bot/webhook.d.ts +36 -0
- package/dist/bot/webhook.d.ts.map +1 -0
- package/dist/bot/webhook.js +213 -0
- package/dist/bot/webhook.js.map +1 -0
- package/dist/bot-state-types.d.ts.map +1 -0
- package/dist/bot-state-types.js +3 -0
- package/dist/bot-state-types.js.map +1 -0
- package/dist/cli/create-bot.d.ts.map +1 -1
- package/dist/cli/create-bot.js +32 -10
- package/dist/cli/create-bot.js.map +1 -1
- package/dist/cli/state-manager.d.ts.map +1 -1
- package/dist/cli/state-manager.js +14 -1
- package/dist/cli/state-manager.js.map +1 -1
- package/dist/core/app-states.d.ts +8 -0
- package/dist/core/app-states.d.ts.map +1 -0
- package/dist/core/app-states.js +8 -0
- package/dist/core/app-states.js.map +1 -0
- package/dist/core/bot/polling.d.ts.map +1 -1
- package/dist/core/bot/polling.js +4 -7
- package/dist/core/bot/polling.js.map +1 -1
- package/dist/core/bot/webhook.d.ts.map +1 -1
- package/dist/core/bot/webhook.js +28 -9
- package/dist/core/bot/webhook.js.map +1 -1
- package/dist/core/builder.d.ts +1 -1
- package/dist/core/builder.d.ts.map +1 -1
- package/dist/core/builder.js +2 -2
- package/dist/core/builder.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/types.d.ts +3 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/database.d.ts +43 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +127 -0
- package/dist/database.js.map +1 -0
- package/dist/generated/prisma/browser.d.ts +15 -0
- package/dist/generated/prisma/browser.d.ts.map +1 -0
- package/dist/generated/prisma/browser.js +18 -0
- package/dist/generated/prisma/browser.js.map +1 -0
- package/dist/generated/prisma/client.d.ts +32 -0
- package/dist/generated/prisma/client.d.ts.map +1 -0
- package/dist/generated/prisma/client.js +33 -0
- package/dist/generated/prisma/client.js.map +1 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +166 -0
- package/dist/generated/prisma/commonInputTypes.d.ts.map +1 -0
- package/dist/generated/prisma/commonInputTypes.js +11 -0
- package/dist/generated/prisma/commonInputTypes.js.map +1 -0
- package/dist/generated/prisma/enums.d.ts +2 -0
- package/dist/generated/prisma/enums.d.ts.map +1 -0
- package/dist/generated/prisma/enums.js +11 -0
- package/dist/generated/prisma/enums.js.map +1 -0
- package/dist/generated/prisma/internal/class.d.ts +138 -0
- package/dist/generated/prisma/internal/class.d.ts.map +1 -0
- package/dist/generated/prisma/internal/class.js +50 -0
- package/dist/generated/prisma/internal/class.js.map +1 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +591 -0
- package/dist/generated/prisma/internal/prismaNamespace.d.ts.map +1 -0
- package/dist/generated/prisma/internal/prismaNamespace.js +96 -0
- package/dist/generated/prisma/internal/prismaNamespace.js.map +1 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +56 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +67 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/generated/prisma/models/User.d.ts +1169 -0
- package/dist/generated/prisma/models/User.d.ts.map +1 -0
- package/dist/generated/prisma/models/User.js +2 -0
- package/dist/generated/prisma/models/User.js.map +1 -0
- package/dist/generated/prisma/models/UserInfo.d.ts +1101 -0
- package/dist/generated/prisma/models/UserInfo.d.ts.map +1 -0
- package/dist/generated/prisma/models/UserInfo.js +2 -0
- package/dist/generated/prisma/models/UserInfo.js.map +1 -0
- package/dist/generated/prisma/models.d.ts +4 -0
- package/dist/generated/prisma/models.d.ts.map +1 -0
- package/dist/generated/prisma/models.js +2 -0
- package/dist/generated/prisma/models.js.map +1 -0
- package/dist/handlers/idle/index.d.ts +2 -0
- package/dist/handlers/idle/index.d.ts.map +1 -0
- package/dist/handlers/idle/index.js +22 -0
- package/dist/handlers/idle/index.js.map +1 -0
- package/dist/handlers/index.d.ts +12 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +14 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/menu/index.d.ts +2 -0
- package/dist/handlers/menu/index.d.ts.map +1 -0
- package/dist/handlers/menu/index.js +35 -0
- package/dist/handlers/menu/index.js.map +1 -0
- package/dist/handlers/menu.d.ts +2 -0
- package/dist/handlers/menu.d.ts.map +1 -0
- package/dist/handlers/menu.js +37 -0
- package/dist/handlers/menu.js.map +1 -0
- package/dist/handlers/welcome/index.d.ts +2 -0
- package/dist/handlers/welcome/index.d.ts.map +1 -0
- package/dist/handlers/welcome/index.js +22 -0
- package/dist/handlers/welcome/index.js.map +1 -0
- package/dist/handlers/welcome.d.ts +2 -0
- package/dist/handlers/welcome.d.ts.map +1 -0
- package/dist/handlers/welcome.js +30 -0
- package/dist/handlers/welcome.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/README.md.ejs +6 -5
- package/dist/templates/handler.ts.ejs +71 -8
- package/dist/templates/package.json.ejs +7 -0
- package/dist/templates/templates/README.md.ejs +12 -11
- package/dist/templates/templates/handler.ts.ejs +70 -8
- package/dist/templates/templates/package.json.ejs +7 -0
- package/package.json +17 -38
- package/src/templates/README.md.ejs +12 -11
- package/src/templates/handler.ts.ejs +70 -8
- package/src/templates/package.json.ejs +7 -0
package/README.md
CHANGED
|
@@ -218,13 +218,21 @@ 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.
|
|
221
|
+
await context.ctx.reply('Welcome to menu!');
|
|
222
222
|
// Can only return 'idle', 'welcome', or void
|
|
223
223
|
})
|
|
224
|
-
.onResponse(async (context: AppContext
|
|
225
|
-
|
|
226
|
-
if (
|
|
227
|
-
return '
|
|
224
|
+
.onResponse(async (context: AppContext): MenuTransitions => {
|
|
225
|
+
// Handle text messages
|
|
226
|
+
if (context.ctx.message?.text === 'back') return 'welcome'; // ✅ Valid
|
|
227
|
+
if (context.ctx.message?.text === 'exit') return 'idle'; // ✅ Valid
|
|
228
|
+
|
|
229
|
+
// Handle inline button callbacks
|
|
230
|
+
if (context.ctx.callbackQuery?.data === 'go_back') {
|
|
231
|
+
await context.ctx.answerCallbackQuery();
|
|
232
|
+
return 'welcome';
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// return 'invalid'; // ❌ Type error - not in transitions
|
|
228
236
|
});
|
|
229
237
|
```
|
|
230
238
|
|
|
@@ -238,8 +246,8 @@ interface BotHandlerContext<TState> {
|
|
|
238
246
|
chatId: number;
|
|
239
247
|
currentState: TState;
|
|
240
248
|
|
|
241
|
-
//
|
|
242
|
-
|
|
249
|
+
// Grammy context - full Telegram API access
|
|
250
|
+
ctx: Context; // See https://grammy.dev/guide/context
|
|
243
251
|
|
|
244
252
|
// Data persistence (per-user)
|
|
245
253
|
setData: <T>(key: string, value: T) => void;
|
|
@@ -250,21 +258,55 @@ interface BotHandlerContext<TState> {
|
|
|
250
258
|
}
|
|
251
259
|
```
|
|
252
260
|
|
|
261
|
+
The `ctx` property provides full access to Grammy's Context API:
|
|
262
|
+
- `ctx.reply()`, `ctx.replyWithPhoto()`, `ctx.replyWithPoll()`, etc.
|
|
263
|
+
- `ctx.message?.text` - Text messages
|
|
264
|
+
- `ctx.callbackQuery?.data` - Inline button callbacks
|
|
265
|
+
- `ctx.message?.photo` - Photo messages
|
|
266
|
+
- `ctx.pollAnswer` - Poll responses
|
|
267
|
+
- See [Grammy docs](https://grammy.dev/guide/context) for full API
|
|
268
|
+
|
|
253
269
|
### Handler Types
|
|
254
270
|
|
|
255
271
|
```typescript
|
|
256
272
|
// Called when entering a state
|
|
257
273
|
.onEnter(async (context) => {
|
|
258
|
-
|
|
274
|
+
// Access Grammy via context.ctx
|
|
275
|
+
await context.ctx.reply("Welcome!", {
|
|
276
|
+
reply_markup: {
|
|
277
|
+
inline_keyboard: [[{ text: 'Click', callback_data: 'click' }]]
|
|
278
|
+
}
|
|
279
|
+
});
|
|
259
280
|
// Optionally return a state for immediate transition
|
|
260
281
|
return "anotherState";
|
|
261
282
|
})
|
|
262
283
|
|
|
263
|
-
// Called when user sends
|
|
264
|
-
.onResponse(async (context
|
|
265
|
-
//
|
|
266
|
-
if (
|
|
267
|
-
|
|
284
|
+
// Called when user sends any update (message, callback, poll, etc.)
|
|
285
|
+
.onResponse(async (context) => {
|
|
286
|
+
// Text message
|
|
287
|
+
if (context.ctx.message?.text === "yes") {
|
|
288
|
+
await context.ctx.reply("Confirmed!");
|
|
289
|
+
return "confirmed";
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// Inline button callback
|
|
293
|
+
if (context.ctx.callbackQuery?.data === "click") {
|
|
294
|
+
await context.ctx.answerCallbackQuery();
|
|
295
|
+
await context.ctx.reply("Button clicked!");
|
|
296
|
+
return "clicked";
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Photo message
|
|
300
|
+
if (context.ctx.message?.photo) {
|
|
301
|
+
await context.ctx.replyWithPhoto(context.ctx.message.photo[0].file_id);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Poll response
|
|
305
|
+
if (context.ctx.pollAnswer) {
|
|
306
|
+
// Handle poll answer
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// Return void to stay in current state
|
|
268
310
|
})
|
|
269
311
|
```
|
|
270
312
|
|