@adriangalilea/utils 0.17.0 → 0.18.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.
- package/README.md +7 -8
- package/dist/bot/access-control.d.ts.map +1 -1
- package/dist/bot/access-control.js +46 -45
- package/dist/bot/access-control.js.map +1 -1
- package/dist/bot/kit.d.ts +93 -41
- package/dist/bot/kit.d.ts.map +1 -1
- package/dist/bot/kit.js +149 -28
- package/dist/bot/kit.js.map +1 -1
- package/dist/bot/menu.d.ts +8 -10
- package/dist/bot/menu.d.ts.map +1 -1
- package/dist/bot/menu.js +9 -13
- package/dist/bot/menu.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -302,7 +302,7 @@ Then `pnpm install`. Every `ctx.send` / `ctx.sendDocument` / `ctx.reply` / etc.
|
|
|
302
302
|
|
|
303
303
|
| Subpath | What it does |
|
|
304
304
|
|---|---|
|
|
305
|
-
| `@adriangalilea/utils/bot/kit` | `gracefulStart(bot, opts?)` — SIGINT/SIGTERM → `bot.stop()` → exit; force-kills if shutdown hangs. DMs the admin `@<bot> started.` / `@<bot> shutting down.` by default when `KEV.TELEGRAM_ADMIN_ID` is set (graceful only — crashes don't trigger `onStop`); pass `notifyAdmin: false` to disable or `notifyAdmin: 12345` for an explicit chat id.<br>`adminContext({ adminId? })` — reads `TELEGRAM_ADMIN_ID` from `kev` (with optional hardcoded fallback), decorates `ctx.adminId` + `ctx.isAdmin`.<br>`
|
|
305
|
+
| `@adriangalilea/utils/bot/kit` | `gracefulStart(bot, opts?)` — SIGINT/SIGTERM → `bot.stop()` → exit; force-kills if shutdown hangs. DMs the admin `@<bot> started.` / `@<bot> shutting down.` by default when `KEV.TELEGRAM_ADMIN_ID` is set (graceful only — crashes don't trigger `onStop`); pass `notifyAdmin: false` to disable or `notifyAdmin: 12345` for an explicit chat id.<br>`adminContext({ adminId? })` — reads `TELEGRAM_ADMIN_ID` from `kev` (with optional hardcoded fallback), decorates `ctx.adminId` + `ctx.isAdmin`.<br>`botSession(opts)` — **drop-in replacement for `@gramio/session`'s `session()`** that auto-namespaces every key as `bot-<id>:<senderId>` using `ctx.bot.info.id` (populated by `getMe()` at startup). Use this instead of `session()` — full stop. Multiple bots sharing one Redis stay isolated by construction; every plugin in this package derives the same prefix internally via `botStorageKey(ctx, userId)` / `botSubKey(ctx, sub)`. No regex, no manual prefix argument, no way to forget.<br>`prefixStorage(storage, prefix)` — escape hatch for adding a top-level prefix on top of the bot-id namespace; almost never needed. |
|
|
306
306
|
| `@adriangalilea/utils/bot/access-control` | Personal-bot ACL — gates non-admin/non-default users; admin gets DM with `[✅ Aprobar][❌ Denegar]` on first attempt; `/access` opens a persistent menu (revoke / reapprove / list pending). Backed by `@gramio/session` per-user + a small index. **Native alternative**: BotFather → Bot Settings → Access → "Restrict bot usage" — flat allow-list at Telegram. Use this plugin when you want in-bot approval flow instead of a BotFather round-trip; both can coexist. |
|
|
307
307
|
| `@adriangalilea/utils/bot/coalesce` | Joins client-split inbound messages back into one. When a user pastes >4096 chars, Telegram clients fragment it into separate `message` updates with no marker. Middleware detects the burst and emits one combined event. |
|
|
308
308
|
| `@adriangalilea/utils/bot/llm` | The full LLM-chatbot pipeline in one module. **Input:** `streamChat(response)` parses OpenAI-compatible SSE (OpenAI, vllm, mlx-lm, llama.cpp, Together, Groq, …) into a typed `AsyncGenerator<{type: 'content' \| 'reasoning', text}>`. **Output:** `ctx.startStream()` (low-level: debounced markdown to Telegram, 4000-char split, exposes `wasPartial` after `.end()`). `ctx.startChatStream(response)` (high-level: consumes the stream, renders reasoning as a Telegram `expandable_blockquote` entity + content as streamed markdown — both go through `markdownToFormattable` with graceful degradation — returns `{ content, reasoning }`). **History:** `llmHistory({...})` returns `.plugin` (decorates `ctx.llm` with `.add() / .get() / .clear() / .all() / .clearAll()`, per-(user, thread) OpenAI `ChatMessage` shape, persisted in the shared session record so the menu's 🗑 Forget wipes it automatically) AND `.menuItem` (drop-in "🗑 Delete this thread" for `botMenu` — wipes the LLM history AND calls `deleteForumTopic` so the Telegram thread + all its messages disappear from the chat; falls back to Redis-only clear when no `threadId` is present). |
|
|
@@ -313,16 +313,15 @@ Standard wiring:
|
|
|
313
313
|
```typescript
|
|
314
314
|
import { Bot } from 'gramio'
|
|
315
315
|
import { redisStorage } from '@gramio/storage-redis'
|
|
316
|
-
import { adminContext,
|
|
316
|
+
import { adminContext, botSession, gracefulStart } from '@adriangalilea/utils/bot/kit'
|
|
317
317
|
import { accessControl } from '@adriangalilea/utils/bot/access-control'
|
|
318
|
-
import { session } from '@gramio/session'
|
|
319
318
|
import { llmStream, llmHistory } from '@adriangalilea/utils/bot/llm'
|
|
320
319
|
|
|
321
|
-
//
|
|
322
|
-
//
|
|
323
|
-
//
|
|
324
|
-
const storage =
|
|
325
|
-
const userSession =
|
|
320
|
+
// Raw redis is fine — bot-id namespacing happens inside botSession +
|
|
321
|
+
// every plugin via ctx.bot.info.id. Multiple bots sharing this Redis
|
|
322
|
+
// stay isolated by construction. No manual prefix to remember.
|
|
323
|
+
const storage = redisStorage()
|
|
324
|
+
const userSession = botSession({ storage, key: 'session', initial: () => ({}) })
|
|
326
325
|
const chat = llmHistory({ session: userSession, maxTurns: 20, retentionDays: 7 })
|
|
327
326
|
|
|
328
327
|
const bot = new Bot(process.env.BOT_TOKEN!)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACN,KAAK,MAAM,EAEX,KAAK,iBAAiB,EAEtB,MAAM,EACN,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"access-control.d.ts","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,12 +93,10 @@
|
|
|
93
93
|
*/
|
|
94
94
|
import { CallbackData, InlineKeyboard, Plugin, } from "gramio";
|
|
95
95
|
import { say } from "../say/index.js";
|
|
96
|
-
|
|
96
|
+
import { botStorageKey, botSubKey } from "./kit.js";
|
|
97
97
|
const FIRST_MSG_LIMIT = 200;
|
|
98
98
|
const DEFAULT_THROTTLE_MS = 6 * 60 * 60 * 1000;
|
|
99
99
|
const FALLBACK_LANG = "en";
|
|
100
|
-
/** gramio's `@gramio/session` default `getSessionKey` is `String(senderId)`. */
|
|
101
|
-
const sessionKey = (userId) => String(userId);
|
|
102
100
|
// ─── callback schemas ──────────────────────────────────────────────
|
|
103
101
|
//
|
|
104
102
|
// Short `nameId`s keep callback_data under Telegram's 64-byte cap.
|
|
@@ -155,23 +153,24 @@ const requestKeyboard = (uid, lang) => new InlineKeyboard()
|
|
|
155
153
|
.text(say({ en: "✅ Approve", es: "✅ Aprobar" }, lang), acApprove.pack({ uid }), { style: "success" })
|
|
156
154
|
.text(say({ en: "❌ Deny", es: "❌ Denegar" }, lang), acDeny.pack({ uid }), { style: "danger" });
|
|
157
155
|
// ─── index helpers ─────────────────────────────────────────────────
|
|
158
|
-
const
|
|
159
|
-
|
|
156
|
+
const indexKey = (ctx) => botSubKey(ctx, "ac:index");
|
|
157
|
+
const loadIndex = async (storage, ctx) => {
|
|
158
|
+
const raw = (await storage.get(indexKey(ctx)));
|
|
160
159
|
return {
|
|
161
160
|
pending: raw?.pending ?? [],
|
|
162
161
|
approved: raw?.approved ?? [],
|
|
163
162
|
denied: raw?.denied ?? [],
|
|
164
163
|
};
|
|
165
164
|
};
|
|
166
|
-
const saveIndex = (storage, idx) => storage.set(
|
|
167
|
-
const indexAdd = async (storage, bucket, uid) => {
|
|
168
|
-
const idx = await loadIndex(storage);
|
|
165
|
+
const saveIndex = (storage, ctx, idx) => storage.set(indexKey(ctx), idx);
|
|
166
|
+
const indexAdd = async (storage, ctx, bucket, uid) => {
|
|
167
|
+
const idx = await loadIndex(storage, ctx);
|
|
169
168
|
if (!idx[bucket].includes(uid))
|
|
170
169
|
idx[bucket].push(uid);
|
|
171
|
-
await saveIndex(storage, idx);
|
|
170
|
+
await saveIndex(storage, ctx, idx);
|
|
172
171
|
};
|
|
173
|
-
const indexMove = async (storage, uid, from, to) => {
|
|
174
|
-
const idx = await loadIndex(storage);
|
|
172
|
+
const indexMove = async (storage, ctx, uid, from, to) => {
|
|
173
|
+
const idx = await loadIndex(storage, ctx);
|
|
175
174
|
const remove = (list) => {
|
|
176
175
|
const i = list.indexOf(uid);
|
|
177
176
|
if (i >= 0)
|
|
@@ -187,22 +186,21 @@ const indexMove = async (storage, uid, from, to) => {
|
|
|
187
186
|
}
|
|
188
187
|
if (!idx[to].includes(uid))
|
|
189
188
|
idx[to].push(uid);
|
|
190
|
-
await saveIndex(storage, idx);
|
|
189
|
+
await saveIndex(storage, ctx, idx);
|
|
191
190
|
};
|
|
192
|
-
const loadFullRecord = async (storage, userId) => (await storage.get(
|
|
193
|
-
|
|
194
|
-
const
|
|
195
|
-
const full = await loadFullRecord(storage, userId);
|
|
191
|
+
const loadFullRecord = async (storage, ctx, userId) => (await storage.get(botStorageKey(ctx, userId))) ?? {};
|
|
192
|
+
const saveAccess = async (storage, ctx, userId, rec) => {
|
|
193
|
+
const full = await loadFullRecord(storage, ctx, userId);
|
|
196
194
|
full.access = rec;
|
|
197
|
-
await storage.set(
|
|
195
|
+
await storage.set(botStorageKey(ctx, userId), full);
|
|
198
196
|
};
|
|
199
|
-
const loadAccess = async (storage, userId) => {
|
|
200
|
-
const full = await loadFullRecord(storage, userId);
|
|
197
|
+
const loadAccess = async (storage, ctx, userId) => {
|
|
198
|
+
const full = await loadFullRecord(storage, ctx, userId);
|
|
201
199
|
return full.access;
|
|
202
200
|
};
|
|
203
201
|
/** Read recipient's stored language (set by bot/language); fallback to en. */
|
|
204
|
-
const langOfUser = async (storage, userId) => {
|
|
205
|
-
const full = await loadFullRecord(storage, userId);
|
|
202
|
+
const langOfUser = async (storage, ctx, userId) => {
|
|
203
|
+
const full = await loadFullRecord(storage, ctx, userId);
|
|
206
204
|
return full.language ?? FALLBACK_LANG;
|
|
207
205
|
};
|
|
208
206
|
/** Read current ctx's lang. */
|
|
@@ -315,7 +313,7 @@ export const accessControl = (opts) => {
|
|
|
315
313
|
rejectedAttempts: 0,
|
|
316
314
|
};
|
|
317
315
|
if (isFirstRequest) {
|
|
318
|
-
await indexAdd(storage, "pending", userId);
|
|
316
|
+
await indexAdd(storage, ctx, "pending", userId);
|
|
319
317
|
}
|
|
320
318
|
else {
|
|
321
319
|
rec.rejectedAttempts = (rec.rejectedAttempts ?? 0) + 1;
|
|
@@ -324,7 +322,7 @@ export const accessControl = (opts) => {
|
|
|
324
322
|
if (shouldNotify) {
|
|
325
323
|
rec.lastNotifiedAt = now;
|
|
326
324
|
try {
|
|
327
|
-
const adminLang = await langOfUser(storage, ctx.adminId);
|
|
325
|
+
const adminLang = await langOfUser(storage, ctx, ctx.adminId);
|
|
328
326
|
await ctx.bot.api.sendMessage({
|
|
329
327
|
chat_id: ctx.adminId,
|
|
330
328
|
text: requestNotificationText(userId, rec, !isFirstRequest, adminLang),
|
|
@@ -363,7 +361,7 @@ export const accessControl = (opts) => {
|
|
|
363
361
|
show_alert: true,
|
|
364
362
|
});
|
|
365
363
|
const uid = ctx.queryData.uid;
|
|
366
|
-
const rec = await loadAccess(storage, uid);
|
|
364
|
+
const rec = await loadAccess(storage, ctx, uid);
|
|
367
365
|
if (!rec)
|
|
368
366
|
return ctx.answer({
|
|
369
367
|
text: say({ en: "Not found.", es: "No encontrado." }, aLang),
|
|
@@ -375,11 +373,11 @@ export const accessControl = (opts) => {
|
|
|
375
373
|
rec.approvedBy = ctx.adminId;
|
|
376
374
|
rec.deniedAt = undefined;
|
|
377
375
|
rec.deniedBy = undefined;
|
|
378
|
-
await saveAccess(storage, uid, rec);
|
|
379
|
-
await indexMove(storage, uid, wasPending ? "pending" : wasDenied ? "denied" : "any", "approved");
|
|
376
|
+
await saveAccess(storage, ctx, uid, rec);
|
|
377
|
+
await indexMove(storage, ctx, uid, wasPending ? "pending" : wasDenied ? "denied" : "any", "approved");
|
|
380
378
|
if (rec.chatId !== undefined) {
|
|
381
379
|
try {
|
|
382
|
-
const sLang = await langOfUser(storage, uid);
|
|
380
|
+
const sLang = await langOfUser(storage, ctx, uid);
|
|
383
381
|
await ctx.bot.api.sendMessage({
|
|
384
382
|
chat_id: rec.chatId,
|
|
385
383
|
text: say(wasDenied
|
|
@@ -421,7 +419,7 @@ export const accessControl = (opts) => {
|
|
|
421
419
|
show_alert: true,
|
|
422
420
|
});
|
|
423
421
|
const uid = ctx.queryData.uid;
|
|
424
|
-
const rec = await loadAccess(storage, uid);
|
|
422
|
+
const rec = await loadAccess(storage, ctx, uid);
|
|
425
423
|
if (!rec)
|
|
426
424
|
return ctx.answer({
|
|
427
425
|
text: say({ en: "Not found.", es: "No encontrado." }, aLang),
|
|
@@ -430,11 +428,11 @@ export const accessControl = (opts) => {
|
|
|
430
428
|
rec.status = "denied";
|
|
431
429
|
rec.deniedAt = Date.now();
|
|
432
430
|
rec.deniedBy = ctx.adminId;
|
|
433
|
-
await saveAccess(storage, uid, rec);
|
|
434
|
-
await indexMove(storage, uid, wasPending ? "pending" : "any", "denied");
|
|
431
|
+
await saveAccess(storage, ctx, uid, rec);
|
|
432
|
+
await indexMove(storage, ctx, uid, wasPending ? "pending" : "any", "denied");
|
|
435
433
|
if (rec.chatId !== undefined) {
|
|
436
434
|
try {
|
|
437
|
-
const sLang = await langOfUser(storage, uid);
|
|
435
|
+
const sLang = await langOfUser(storage, ctx, uid);
|
|
438
436
|
await ctx.bot.api.sendMessage({
|
|
439
437
|
chat_id: rec.chatId,
|
|
440
438
|
text: say({ en: "❌ Access denied.", es: "❌ Acceso denegado." }, sLang),
|
|
@@ -468,7 +466,7 @@ export const accessControl = (opts) => {
|
|
|
468
466
|
show_alert: true,
|
|
469
467
|
});
|
|
470
468
|
const uid = ctx.queryData.uid;
|
|
471
|
-
const rec = await loadAccess(storage, uid);
|
|
469
|
+
const rec = await loadAccess(storage, ctx, uid);
|
|
472
470
|
if (!rec)
|
|
473
471
|
return ctx.answer({
|
|
474
472
|
text: say({ en: "Not found.", es: "No encontrado." }, aLang),
|
|
@@ -476,11 +474,11 @@ export const accessControl = (opts) => {
|
|
|
476
474
|
rec.status = "denied";
|
|
477
475
|
rec.deniedAt = Date.now();
|
|
478
476
|
rec.deniedBy = ctx.adminId;
|
|
479
|
-
await saveAccess(storage, uid, rec);
|
|
480
|
-
await indexMove(storage, uid, "approved", "denied");
|
|
477
|
+
await saveAccess(storage, ctx, uid, rec);
|
|
478
|
+
await indexMove(storage, ctx, uid, "approved", "denied");
|
|
481
479
|
if (rec.chatId !== undefined) {
|
|
482
480
|
try {
|
|
483
|
-
const sLang = await langOfUser(storage, uid);
|
|
481
|
+
const sLang = await langOfUser(storage, ctx, uid);
|
|
484
482
|
await ctx.bot.api.sendMessage({
|
|
485
483
|
chat_id: rec.chatId,
|
|
486
484
|
text: say({
|
|
@@ -536,18 +534,18 @@ export const accessControl = (opts) => {
|
|
|
536
534
|
if (!ctx.isAdmin)
|
|
537
535
|
return;
|
|
538
536
|
const aLang = ctxLang(ctx);
|
|
539
|
-
const v = mainView(await loadIndex(storage), defaults, aLang);
|
|
537
|
+
const v = mainView(await loadIndex(storage, ctx), defaults, aLang);
|
|
540
538
|
await ctx.send(v.text, { reply_markup: v.keyboard });
|
|
541
539
|
}));
|
|
542
540
|
};
|
|
543
541
|
const renderView = async (ctx, storage, defaults, view, lang) => {
|
|
544
|
-
const idx = await loadIndex(storage);
|
|
542
|
+
const idx = await loadIndex(storage, ctx);
|
|
545
543
|
const v = view === "approved"
|
|
546
|
-
? await listView(storage, idx, "approved", defaults, lang)
|
|
544
|
+
? await listView(storage, ctx, idx, "approved", defaults, lang)
|
|
547
545
|
: view === "pending"
|
|
548
|
-
? await listView(storage, idx, "pending", defaults, lang)
|
|
546
|
+
? await listView(storage, ctx, idx, "pending", defaults, lang)
|
|
549
547
|
: view === "denied"
|
|
550
|
-
? await listView(storage, idx, "denied", defaults, lang)
|
|
548
|
+
? await listView(storage, ctx, idx, "denied", defaults, lang)
|
|
551
549
|
: mainView(idx, defaults, lang);
|
|
552
550
|
try {
|
|
553
551
|
await ctx.editText(v.text, { reply_markup: v.keyboard });
|
|
@@ -578,11 +576,11 @@ const mainView = (idx, defaults, lang) => {
|
|
|
578
576
|
.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), acClose.pack({}));
|
|
579
577
|
return { text, keyboard };
|
|
580
578
|
};
|
|
581
|
-
const listView = async (storage, idx, filter, defaults, lang) => {
|
|
579
|
+
const listView = async (storage, ctx, idx, filter, defaults, lang) => {
|
|
582
580
|
const ids = idx[filter];
|
|
583
581
|
// Cap at 20 to keep callback_data + rendering sane.
|
|
584
582
|
const shownIds = ids.slice(0, 20);
|
|
585
|
-
const records = await Promise.all(shownIds.map(async (id) => ({ id, rec: await loadAccess(storage, id) })));
|
|
583
|
+
const records = await Promise.all(shownIds.map(async (id) => ({ id, rec: await loadAccess(storage, ctx, id) })));
|
|
586
584
|
const headerEmoji = filter === "approved" ? "✅" : filter === "pending" ? "⏳" : "❌";
|
|
587
585
|
const headerLabel = filter === "approved"
|
|
588
586
|
? say({ en: "Approved", es: "Aprobados" }, lang)
|
|
@@ -661,9 +659,12 @@ export const simulateAccessRequest = async (bot, storage, adminId, fakeUser, mes
|
|
|
661
659
|
rejectedAttempts: 0,
|
|
662
660
|
lastNotifiedAt: now,
|
|
663
661
|
};
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
const
|
|
662
|
+
// `BotCtx` shape (`{ bot: { info } }`) — `bot` here is the Bot
|
|
663
|
+
// instance itself, which exposes `info` directly after `bot.start`.
|
|
664
|
+
const botCtx = { bot: { info: bot.info } };
|
|
665
|
+
await saveAccess(storage, botCtx, fakeUser.id, rec);
|
|
666
|
+
await indexAdd(storage, botCtx, "pending", fakeUser.id);
|
|
667
|
+
const adminLang = await langOfUser(storage, botCtx, adminId);
|
|
667
668
|
await bot.api.sendMessage({
|
|
668
669
|
chat_id: adminId,
|
|
669
670
|
text: requestNotificationText(fakeUser.id, rec, false, adminLang),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../src/bot/access-control.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/kit.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Foundational helpers every bot wants.
|
|
2
|
+
* Foundational helpers every bot wants.
|
|
3
3
|
*
|
|
4
4
|
* `gracefulStart(bot, opts?)` — wires SIGINT/SIGTERM to bot.stop(),
|
|
5
5
|
* runs an optional shutdown hook, force-kills if it hangs. DMs the
|
|
@@ -12,31 +12,37 @@
|
|
|
12
12
|
* every context with `ctx.adminId` (number) and `ctx.isAdmin`
|
|
13
13
|
* (boolean). Throws at startup if neither source provides an id.
|
|
14
14
|
*
|
|
15
|
-
* `
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
15
|
+
* `botSession(opts)` — drop-in replacement for `@gramio/session`'s
|
|
16
|
+
* `session()` that AUTOMATICALLY namespaces every key with the
|
|
17
|
+
* calling bot's id (parsed from `ctx.bot.options.token`). When
|
|
18
|
+
* several bots share one Redis instance, each writes to a disjoint
|
|
19
|
+
* keyspace (`bot-<id>:<senderId>`) with no manual wiring. Every
|
|
20
|
+
* plugin in this package (`accessControl`, `botMenu`,
|
|
21
|
+
* `llmHistory`, …) derives the SAME prefix from `ctx.bot` for its
|
|
22
|
+
* own storage access, so the whole package stays isolated by
|
|
23
|
+
* construction. Use this instead of `session()` — full stop.
|
|
20
24
|
*
|
|
21
|
-
* Peer deps: `gramio`, `@gramio/storage`.
|
|
25
|
+
* Peer deps: `gramio`, `@gramio/session`, `@gramio/storage`.
|
|
22
26
|
*
|
|
23
27
|
* @example
|
|
24
28
|
* import { Bot } from 'gramio'
|
|
25
29
|
* import { redisStorage } from '@gramio/storage-redis'
|
|
26
|
-
* import { adminContext, gracefulStart,
|
|
30
|
+
* import { adminContext, gracefulStart, botSession } from '@adriangalilea/utils/bot/kit'
|
|
27
31
|
*
|
|
28
|
-
*
|
|
29
|
-
* const
|
|
32
|
+
* const storage = redisStorage() // share across bots, safe
|
|
33
|
+
* const userSession = botSession({ storage, initial: () => ({}) })
|
|
30
34
|
*
|
|
31
35
|
* const bot = new Bot(process.env.BOT_TOKEN!)
|
|
32
|
-
* .extend(adminContext({ adminId: 190202471 }))
|
|
36
|
+
* .extend(adminContext({ adminId: 190202471 })) // KEV wins, 190… is fallback
|
|
37
|
+
* .extend(userSession)
|
|
33
38
|
* .command('whoami', (ctx) => ctx.send(`admin? ${ctx.isAdmin}`))
|
|
34
39
|
*
|
|
35
40
|
* await gracefulStart(bot, { onShutdown: () => db.end() })
|
|
36
41
|
*/
|
|
42
|
+
import { session, type SessionOptions } from "@gramio/session";
|
|
37
43
|
import type { Storage } from "@gramio/storage";
|
|
38
|
-
import type {
|
|
39
|
-
import {
|
|
44
|
+
import type { Plugin as PluginType } from "gramio";
|
|
45
|
+
import { type AnyBot } from "gramio";
|
|
40
46
|
export type GracefulStartOptions = {
|
|
41
47
|
/** Runs after `bot.stop()` resolves, before `process.exit`. Close DBs, flush logs. */
|
|
42
48
|
onShutdown?: () => Promise<void> | void;
|
|
@@ -73,7 +79,7 @@ export type AdminContextOptions = {
|
|
|
73
79
|
/** Hardcoded fallback used when `KEV.TELEGRAM_ADMIN_ID` is unset. */
|
|
74
80
|
adminId?: number;
|
|
75
81
|
};
|
|
76
|
-
export declare const adminContext: (opts?: AdminContextOptions) =>
|
|
82
|
+
export declare const adminContext: (opts?: AdminContextOptions) => PluginType<{}, import("gramio").DeriveDefinitions & {
|
|
77
83
|
global: {
|
|
78
84
|
adminId: number;
|
|
79
85
|
};
|
|
@@ -83,42 +89,88 @@ export declare const adminContext: (opts?: AdminContextOptions) => Plugin<{}, im
|
|
|
83
89
|
};
|
|
84
90
|
}, {}>;
|
|
85
91
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
92
|
+
* Returns the calling bot's numeric id from `ctx.bot.info.id`. Throws
|
|
93
|
+
* if called before `bot.start()` / `bot.init()` populates it — should
|
|
94
|
+
* never happen from inside an event handler, where gramio guarantees
|
|
95
|
+
* `bot.info` is set.
|
|
96
|
+
*
|
|
97
|
+
* Note on the structural cast: gramio's `BotLike` (the interface
|
|
98
|
+
* contexts are typed against) intentionally omits `info` to decouple
|
|
99
|
+
* Context types from the full Bot class. At runtime `ctx.bot` IS the
|
|
100
|
+
* full Bot, so the cast is sound — just papering over a deliberate
|
|
101
|
+
* type-vs-runtime gap.
|
|
102
|
+
*/
|
|
103
|
+
export declare const botId: (ctx: {
|
|
104
|
+
bot: unknown;
|
|
105
|
+
}) => number;
|
|
106
|
+
/**
|
|
107
|
+
* Computes the storage key for an arbitrary user under the CALLING
|
|
108
|
+
* bot's namespace. Use whenever a plugin needs to read or write
|
|
109
|
+
* **another user's** session record from inside a handler (typical:
|
|
110
|
+
* admin approves a stranger, /forget wipes a stranger after a takedown
|
|
111
|
+
* request). For the current user, the session plugin handles keying
|
|
112
|
+
* automatically when wired via `botSession`.
|
|
113
|
+
*/
|
|
114
|
+
export declare const botStorageKey: (ctx: {
|
|
115
|
+
bot: unknown;
|
|
116
|
+
}, userId: number) => string;
|
|
117
|
+
/**
|
|
118
|
+
* Static-key variant — namespace an arbitrary sub-key (e.g. an admin
|
|
119
|
+
* index, a feature flag, a counter) under the calling bot's prefix.
|
|
120
|
+
* Use this for bot-side state that isn't keyed by a specific user.
|
|
90
121
|
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
122
|
+
* botSubKey(ctx, 'ac:index') → 'bot-<id>:ac:index'
|
|
123
|
+
* botSubKey(ctx, 'metrics') → 'bot-<id>:metrics'
|
|
124
|
+
*/
|
|
125
|
+
export declare const botSubKey: (ctx: {
|
|
126
|
+
bot: unknown;
|
|
127
|
+
}, subKey: string) => string;
|
|
128
|
+
/**
|
|
129
|
+
* Drop-in replacement for `@gramio/session`'s `session()` that forces
|
|
130
|
+
* the storage key to include the calling bot's id. Equivalent to
|
|
131
|
+
* passing `getSessionKey: (ctx) => bot-${id}:${senderId}` explicitly,
|
|
132
|
+
* but baked in so no consumer can forget.
|
|
97
133
|
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
* - `'<bot-id>:'` — Telegram's numeric bot id from `getMe`.
|
|
134
|
+
* Returns a plain `@gramio/session` plugin — same shape, same derives,
|
|
135
|
+
* fully interchangeable in `.extend(userSession)` chains and plugin
|
|
136
|
+
* options like `accessControl({ session: userSession, … })`.
|
|
102
137
|
*
|
|
103
|
-
*
|
|
138
|
+
* `getSessionKey` can still be overridden for advanced cases (e.g. a
|
|
139
|
+
* per-chat session in groups); the override is wrapped so it still
|
|
140
|
+
* receives the `bot-<id>:` prefix. Don't override unless you know what
|
|
141
|
+
* you're doing — every plugin in this package expects the
|
|
142
|
+
* `bot-<id>:<userId>` shape for cross-user storage reads.
|
|
104
143
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
144
|
+
* @example
|
|
145
|
+
* import { redisStorage } from '@gramio/storage-redis'
|
|
146
|
+
* import { botSession } from '@adriangalilea/utils/bot/kit'
|
|
107
147
|
*
|
|
108
|
-
*
|
|
148
|
+
* const storage = redisStorage() // shared across N bots, safe
|
|
109
149
|
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
150
|
+
* const userSession = botSession({
|
|
151
|
+
* storage,
|
|
152
|
+
* key: 'session',
|
|
153
|
+
* initial: () => ({}),
|
|
154
|
+
* })
|
|
112
155
|
*
|
|
113
|
-
*
|
|
114
|
-
|
|
115
|
-
|
|
156
|
+
* bot.extend(userSession)
|
|
157
|
+
*/
|
|
158
|
+
export declare const botSession: <Data = unknown, Key extends string = "session", Lazy extends boolean = false>(opts: SessionOptions<Data, Key, Lazy>) => ReturnType<typeof session<Data, Key, Lazy>>;
|
|
159
|
+
/**
|
|
160
|
+
* Wraps any `@gramio/storage` adapter so every key gets a fixed
|
|
161
|
+
* `${prefix}` prepended.
|
|
162
|
+
*
|
|
163
|
+
* **You almost never need this.** The library's plugins are isolated
|
|
164
|
+
* by bot id automatically when you wire `botSession` (see above) —
|
|
165
|
+
* `prefixStorage` exists for edge cases:
|
|
116
166
|
*
|
|
117
|
-
*
|
|
167
|
+
* - Sharing a Redis instance with a NON-bot system, and you want a
|
|
168
|
+
* top-level prefix on top of the bot-id namespace.
|
|
169
|
+
* - Migrating from an older deployment that used a custom prefix.
|
|
118
170
|
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* bot.extend(accessControl({ session: userSession, storage, defaults: [] }))
|
|
171
|
+
* In those cases the wrapper composes cleanly with `botSession`'s
|
|
172
|
+
* internal prefix: final keys look like `${prefix}bot-<id>:<userId>`.
|
|
122
173
|
*/
|
|
123
174
|
export declare const prefixStorage: (storage: Storage, prefix: string) => Storage;
|
|
175
|
+
export type { PluginType };
|
|
124
176
|
//# sourceMappingURL=kit.d.ts.map
|
package/dist/bot/kit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../../src/bot/kit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../../src/bot/kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAU,MAAM,QAAQ,CAAC;AAK7C,MAAM,MAAM,oBAAoB,GAAG;IAClC,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,OAAM,oBAAyB,KAC7B,OAAO,CAAC,IAAI,CA+Ed,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IACjC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAM,mBAAwB;;;;;;;;MAqB1D,CAAC;AAiBF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,KAAG,MAO7C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GACzB,KAAK;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EACrB,QAAQ,MAAM,KACZ,MAAuC,CAAC;AAE3C;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACrB,KAAK;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EACrB,QAAQ,MAAM,KACZ,MAAuC,CAAC;AAI3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,UAAU,GACtB,IAAI,GAAG,OAAO,EACd,GAAG,SAAS,MAAM,GAAG,SAAS,EAC9B,IAAI,SAAS,OAAO,GAAG,KAAK,EAE5B,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,KACnC,UAAU,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CA0B5C,CAAC;AAIF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,EAAE,QAAQ,MAAM,KAAG,OAQhE,CAAC;AAIF,YAAY,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/bot/kit.js
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foundational helpers every bot wants.
|
|
3
|
+
*
|
|
4
|
+
* `gracefulStart(bot, opts?)` — wires SIGINT/SIGTERM to bot.stop(),
|
|
5
|
+
* runs an optional shutdown hook, force-kills if it hangs. DMs the
|
|
6
|
+
* admin on start/stop by default (`@<bot> started.` /
|
|
7
|
+
* `@<bot> shutting down.`) when `KEV.TELEGRAM_ADMIN_ID` is set —
|
|
8
|
+
* pass `notifyAdmin: false` to disable.
|
|
9
|
+
*
|
|
10
|
+
* `adminContext({ adminId? })` — reads admin Telegram id from KEV
|
|
11
|
+
* (`TELEGRAM_ADMIN_ID`) with optional hardcoded fallback. Decorates
|
|
12
|
+
* every context with `ctx.adminId` (number) and `ctx.isAdmin`
|
|
13
|
+
* (boolean). Throws at startup if neither source provides an id.
|
|
14
|
+
*
|
|
15
|
+
* `botSession(opts)` — drop-in replacement for `@gramio/session`'s
|
|
16
|
+
* `session()` that AUTOMATICALLY namespaces every key with the
|
|
17
|
+
* calling bot's id (parsed from `ctx.bot.options.token`). When
|
|
18
|
+
* several bots share one Redis instance, each writes to a disjoint
|
|
19
|
+
* keyspace (`bot-<id>:<senderId>`) with no manual wiring. Every
|
|
20
|
+
* plugin in this package (`accessControl`, `botMenu`,
|
|
21
|
+
* `llmHistory`, …) derives the SAME prefix from `ctx.bot` for its
|
|
22
|
+
* own storage access, so the whole package stays isolated by
|
|
23
|
+
* construction. Use this instead of `session()` — full stop.
|
|
24
|
+
*
|
|
25
|
+
* Peer deps: `gramio`, `@gramio/session`, `@gramio/storage`.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* import { Bot } from 'gramio'
|
|
29
|
+
* import { redisStorage } from '@gramio/storage-redis'
|
|
30
|
+
* import { adminContext, gracefulStart, botSession } from '@adriangalilea/utils/bot/kit'
|
|
31
|
+
*
|
|
32
|
+
* const storage = redisStorage() // share across bots, safe
|
|
33
|
+
* const userSession = botSession({ storage, initial: () => ({}) })
|
|
34
|
+
*
|
|
35
|
+
* const bot = new Bot(process.env.BOT_TOKEN!)
|
|
36
|
+
* .extend(adminContext({ adminId: 190202471 })) // KEV wins, 190… is fallback
|
|
37
|
+
* .extend(userSession)
|
|
38
|
+
* .command('whoami', (ctx) => ctx.send(`admin? ${ctx.isAdmin}`))
|
|
39
|
+
*
|
|
40
|
+
* await gracefulStart(bot, { onShutdown: () => db.end() })
|
|
41
|
+
*/
|
|
42
|
+
import { session } from "@gramio/session";
|
|
1
43
|
import { Plugin } from "gramio";
|
|
2
44
|
import { kev } from "../platform/kev.js";
|
|
3
45
|
export const gracefulStart = async (bot, opts = {}) => {
|
|
@@ -91,44 +133,123 @@ export const adminContext = (opts = {}) => {
|
|
|
91
133
|
isAdmin: "senderId" in ctx && ctx.senderId === adminId,
|
|
92
134
|
}));
|
|
93
135
|
};
|
|
94
|
-
// ───
|
|
136
|
+
// ─── bot-id-namespaced keys ────────────────────────────────────────
|
|
137
|
+
//
|
|
138
|
+
// gramio fills `bot.info` from `getMe()` during `bot.init` / `bot.start`,
|
|
139
|
+
// so by the time any handler runs `ctx.bot.info.id` is the bot's stable
|
|
140
|
+
// numeric id. We use it to prefix every storage key the library writes:
|
|
141
|
+
// `bot-<id>:<userId>` (per-user) or `bot-<id>:<subKey>` (bot-side).
|
|
142
|
+
//
|
|
143
|
+
// Why this exists: `@gramio/session` defaults `getSessionKey` to
|
|
144
|
+
// `String(senderId)`. If two bots share one Redis (the canonical
|
|
145
|
+
// "personal bot fleet" setup), every user id collides across bots and
|
|
146
|
+
// the last writer wins — silently corrupting state and leaking
|
|
147
|
+
// neighbouring bots' data on /export. Putting the bot id in the key
|
|
148
|
+
// removes the collision entirely without forcing the user to remember
|
|
149
|
+
// to wrap storage manually.
|
|
95
150
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
151
|
+
* Returns the calling bot's numeric id from `ctx.bot.info.id`. Throws
|
|
152
|
+
* if called before `bot.start()` / `bot.init()` populates it — should
|
|
153
|
+
* never happen from inside an event handler, where gramio guarantees
|
|
154
|
+
* `bot.info` is set.
|
|
100
155
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
156
|
+
* Note on the structural cast: gramio's `BotLike` (the interface
|
|
157
|
+
* contexts are typed against) intentionally omits `info` to decouple
|
|
158
|
+
* Context types from the full Bot class. At runtime `ctx.bot` IS the
|
|
159
|
+
* full Bot, so the cast is sound — just papering over a deliberate
|
|
160
|
+
* type-vs-runtime gap.
|
|
161
|
+
*/
|
|
162
|
+
export const botId = (ctx) => {
|
|
163
|
+
const id = ctx.bot.info?.id;
|
|
164
|
+
if (id === undefined)
|
|
165
|
+
throw new Error("bot/kit: ctx.bot.info.id is undefined — botId() called before bot.start()/bot.init() ran.");
|
|
166
|
+
return id;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Computes the storage key for an arbitrary user under the CALLING
|
|
170
|
+
* bot's namespace. Use whenever a plugin needs to read or write
|
|
171
|
+
* **another user's** session record from inside a handler (typical:
|
|
172
|
+
* admin approves a stranger, /forget wipes a stranger after a takedown
|
|
173
|
+
* request). For the current user, the session plugin handles keying
|
|
174
|
+
* automatically when wired via `botSession`.
|
|
175
|
+
*/
|
|
176
|
+
export const botStorageKey = (ctx, userId) => `bot-${botId(ctx)}:${userId}`;
|
|
177
|
+
/**
|
|
178
|
+
* Static-key variant — namespace an arbitrary sub-key (e.g. an admin
|
|
179
|
+
* index, a feature flag, a counter) under the calling bot's prefix.
|
|
180
|
+
* Use this for bot-side state that isn't keyed by a specific user.
|
|
114
181
|
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
182
|
+
* botSubKey(ctx, 'ac:index') → 'bot-<id>:ac:index'
|
|
183
|
+
* botSubKey(ctx, 'metrics') → 'bot-<id>:metrics'
|
|
184
|
+
*/
|
|
185
|
+
export const botSubKey = (ctx, subKey) => `bot-${botId(ctx)}:${subKey}`;
|
|
186
|
+
// ─── botSession ────────────────────────────────────────────────────
|
|
187
|
+
/**
|
|
188
|
+
* Drop-in replacement for `@gramio/session`'s `session()` that forces
|
|
189
|
+
* the storage key to include the calling bot's id. Equivalent to
|
|
190
|
+
* passing `getSessionKey: (ctx) => bot-${id}:${senderId}` explicitly,
|
|
191
|
+
* but baked in so no consumer can forget.
|
|
117
192
|
*
|
|
118
|
-
*
|
|
193
|
+
* Returns a plain `@gramio/session` plugin — same shape, same derives,
|
|
194
|
+
* fully interchangeable in `.extend(userSession)` chains and plugin
|
|
195
|
+
* options like `accessControl({ session: userSession, … })`.
|
|
119
196
|
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
197
|
+
* `getSessionKey` can still be overridden for advanced cases (e.g. a
|
|
198
|
+
* per-chat session in groups); the override is wrapped so it still
|
|
199
|
+
* receives the `bot-<id>:` prefix. Don't override unless you know what
|
|
200
|
+
* you're doing — every plugin in this package expects the
|
|
201
|
+
* `bot-<id>:<userId>` shape for cross-user storage reads.
|
|
122
202
|
*
|
|
123
203
|
* @example
|
|
124
|
-
* import { prefixStorage } from '@adriangalilea/utils/bot/kit'
|
|
125
204
|
* import { redisStorage } from '@gramio/storage-redis'
|
|
205
|
+
* import { botSession } from '@adriangalilea/utils/bot/kit'
|
|
206
|
+
*
|
|
207
|
+
* const storage = redisStorage() // shared across N bots, safe
|
|
208
|
+
*
|
|
209
|
+
* const userSession = botSession({
|
|
210
|
+
* storage,
|
|
211
|
+
* key: 'session',
|
|
212
|
+
* initial: () => ({}),
|
|
213
|
+
* })
|
|
214
|
+
*
|
|
215
|
+
* bot.extend(userSession)
|
|
216
|
+
*/
|
|
217
|
+
export const botSession = (opts) => {
|
|
218
|
+
const userKeyer = opts.getSessionKey;
|
|
219
|
+
return session({
|
|
220
|
+
...opts,
|
|
221
|
+
// The session plugin types `getSessionKey` against `ContextType<BotLike, Events>`
|
|
222
|
+
// — too narrow for our generic wrapper. We only need `bot.info.id` +
|
|
223
|
+
// `senderId`, both of which gramio guarantees on every event the session
|
|
224
|
+
// plugin processes (bot.info is populated by bot.start / bot.init before
|
|
225
|
+
// any handler fires). Structural cast at the boundary keeps the public
|
|
226
|
+
// API generic-friendly without forcing consumers to specify Event unions.
|
|
227
|
+
getSessionKey: (async (ctxRaw) => {
|
|
228
|
+
const ctx = ctxRaw;
|
|
229
|
+
const prefix = `bot-${botId(ctx)}:`;
|
|
230
|
+
if (userKeyer) {
|
|
231
|
+
const inner = await userKeyer(ctx);
|
|
232
|
+
return `${prefix}${inner}`;
|
|
233
|
+
}
|
|
234
|
+
return `${prefix}${ctx.senderId ?? ""}`;
|
|
235
|
+
}),
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
// ─── prefixStorage (escape hatch) ──────────────────────────────────
|
|
239
|
+
/**
|
|
240
|
+
* Wraps any `@gramio/storage` adapter so every key gets a fixed
|
|
241
|
+
* `${prefix}` prepended.
|
|
242
|
+
*
|
|
243
|
+
* **You almost never need this.** The library's plugins are isolated
|
|
244
|
+
* by bot id automatically when you wire `botSession` (see above) —
|
|
245
|
+
* `prefixStorage` exists for edge cases:
|
|
126
246
|
*
|
|
127
|
-
*
|
|
247
|
+
* - Sharing a Redis instance with a NON-bot system, and you want a
|
|
248
|
+
* top-level prefix on top of the bot-id namespace.
|
|
249
|
+
* - Migrating from an older deployment that used a custom prefix.
|
|
128
250
|
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
* bot.extend(accessControl({ session: userSession, storage, defaults: [] }))
|
|
251
|
+
* In those cases the wrapper composes cleanly with `botSession`'s
|
|
252
|
+
* internal prefix: final keys look like `${prefix}bot-<id>:<userId>`.
|
|
132
253
|
*/
|
|
133
254
|
export const prefixStorage = (storage, prefix) => {
|
|
134
255
|
const k = (key) => `${prefix}${String(key)}`;
|
package/dist/bot/kit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/bot/kit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/bot/kit.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/menu.d.ts
CHANGED
|
@@ -233,17 +233,16 @@ export type MenuItem = {
|
|
|
233
233
|
export type PersonalDataOptions = {
|
|
234
234
|
/**
|
|
235
235
|
* Storage backend where each user's data lives. Must be the SAME
|
|
236
|
-
* instance you passed to your `session(...)`
|
|
237
|
-
* /forget and /export reach the right keys.
|
|
236
|
+
* instance you passed to your `session(...)` (or `botSession(...)`)
|
|
237
|
+
* plugin — that's how /forget and /export reach the right keys.
|
|
238
|
+
*
|
|
239
|
+
* The storage key for the calling user is derived as
|
|
240
|
+
* `bot-<botId>:<userId>` via `botStorageKey(ctx, userId)`, matching
|
|
241
|
+
* the namespace `botSession` uses by default. No `sessionKey`
|
|
242
|
+
* override exists because every plugin in this package shares the
|
|
243
|
+
* same key shape by construction.
|
|
238
244
|
*/
|
|
239
245
|
storage: Storage;
|
|
240
|
-
/**
|
|
241
|
-
* How to compute the storage key for a given user id. Defaults to
|
|
242
|
-
* `String(userId)` — matching `@gramio/session`'s default
|
|
243
|
-
* `getSessionKey`. Override if your session uses a custom
|
|
244
|
-
* `getSessionKey`.
|
|
245
|
-
*/
|
|
246
|
-
sessionKey?: (userId: number) => string;
|
|
247
246
|
};
|
|
248
247
|
export type BotMenuOptions = {
|
|
249
248
|
/** Slash command that opens the menu. Default `'settings'`. */
|
|
@@ -280,7 +279,6 @@ export type BotMenuOptions = {
|
|
|
280
279
|
};
|
|
281
280
|
type ResolvedPersonalData = {
|
|
282
281
|
storage: Storage;
|
|
283
|
-
sessionKey: (userId: number) => string;
|
|
284
282
|
};
|
|
285
283
|
type ResolvedOpts = {
|
|
286
284
|
command: string;
|
package/dist/bot/menu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/bot/menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAgC,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,KAAK,QAAQ,EAAO,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/bot/menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAgC,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,KAAK,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAKrD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,GAAG;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,IAAI,CAAC,EAAE,CACN,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,EACrC,MAAM,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,CACP,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,EACrC,MAAM,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,GAAG;QAAE,QAAQ,IAAI,MAAM,CAAA;KAAE,EACrC,MAAM,CAAC,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,KAAK,KAAK,GACP,MAAM,GACN,QAAQ,CAAC,MAAM,CAAC,GAChB,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACjD,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1D,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3D,KAAK,aAAa,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,CAAC,CAAC;AAe/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,QAAQ,GACjB;IACA,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE;QACT,2DAA2D;QAC3D,MAAM,EAAE,KAAK,CAAC;QACd,2DAA2D;QAC3D,YAAY,CAAC,EAAE,KAAK,CAAC;QACrB,2DAA2D;QAC3D,WAAW,CAAC,EAAE,KAAK,CAAC;KACpB,CAAC;CACD,GACD;IACA,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;CACrB,GACD;IACA,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;CACrB,CAAC;AAEL,MAAM,MAAM,mBAAmB,GAAG;IACjC;;;;;;;;;;OAUG;IACH,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;IACf;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACnC,CAAC;AAsBF,KAAK,oBAAoB,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,qBAAa,OAAO;IACnB,gBAAgB;IAChB,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5B,gBAAgB;IAChB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;gBAEjB,IAAI,EAAE,cAAc;IAchC,8CAA8C;IAC9C,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKzB,8EAA8E;IAC9E,IAAI,MAAM,uDAET;CACD;AAED,eAAO,MAAM,OAAO,GAAI,MAAM,cAAc,KAAG,OAA4B,CAAC;AAI5E,MAAM,MAAM,qBAAqB,GAAG;IACnC,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IAChC;;;;OAIG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;OAKG;IACH,KAAK,EAAE;QACN,GAAG,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,KAAK,CAAC;KACV,CAAC;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,CAAC,EAAE,KAAK,CAAC;KACX,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,qBAAqB,KAAG,QA0B3D,CAAC"}
|
package/dist/bot/menu.js
CHANGED
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
*/
|
|
78
78
|
import { CallbackData, InlineKeyboard, Plugin } from "gramio";
|
|
79
79
|
import { say } from "../say/index.js";
|
|
80
|
+
import { botStorageKey } from "./kit.js";
|
|
80
81
|
const FALLBACK_LANG = "en";
|
|
81
82
|
const ctxLang = (ctx) => ctx.session?.language ?? FALLBACK_LANG;
|
|
82
83
|
const styleOf = (s, ctx) => {
|
|
@@ -90,7 +91,6 @@ const DEFAULT_COMMAND = "settings";
|
|
|
90
91
|
const DEFAULT_DESCRIPTION = "Open settings menu";
|
|
91
92
|
const DEFAULT_PRIVACY_URL = "https://telegram.org/privacy-tpa";
|
|
92
93
|
const DEFAULT_HEADER = { en: "⚙️ Settings", es: "⚙️ Ajustes" };
|
|
93
|
-
const DEFAULT_SESSION_KEY = (userId) => String(userId);
|
|
94
94
|
// ─── callback data schemas ─────────────────────────────────────────
|
|
95
95
|
const navCb = new CallbackData("mNav").string("path");
|
|
96
96
|
const actCb = new CallbackData("mAct").string("path");
|
|
@@ -116,10 +116,7 @@ export class BotMenu {
|
|
|
116
116
|
header: opts.header ?? DEFAULT_HEADER,
|
|
117
117
|
adminContact: opts.adminContact,
|
|
118
118
|
personalData: opts.personalData
|
|
119
|
-
? {
|
|
120
|
-
storage: opts.personalData.storage,
|
|
121
|
-
sessionKey: opts.personalData.sessionKey ?? DEFAULT_SESSION_KEY,
|
|
122
|
-
}
|
|
119
|
+
? { storage: opts.personalData.storage }
|
|
123
120
|
: null,
|
|
124
121
|
};
|
|
125
122
|
}
|
|
@@ -232,8 +229,8 @@ const renderPrivacySubmenu = (menu, ctx) => {
|
|
|
232
229
|
}
|
|
233
230
|
kb.url(say({ en: "📖 Privacy policy", es: "📖 Política de privacidad" }, lang), menu._opts.privacy);
|
|
234
231
|
kb.row();
|
|
232
|
+
// Submenu — Back and Close share one row.
|
|
235
233
|
kb.text(say({ en: "⬅️ Back", es: "⬅️ Volver" }, lang), navCb.pack({ path: "_root" }));
|
|
236
|
-
kb.row();
|
|
237
234
|
kb.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), closeCb.pack({}));
|
|
238
235
|
return kb;
|
|
239
236
|
};
|
|
@@ -264,15 +261,15 @@ const renderKeyboard = (_menu, items, ctx, parentPath) => {
|
|
|
264
261
|
// view focused on user-defined items.
|
|
265
262
|
kb.text(say({ en: "🔒 Privacy & data", es: "🔒 Privacidad y datos" }, lang), navCb.pack({ path: PRIVACY_PATH }));
|
|
266
263
|
kb.row();
|
|
264
|
+
// Root has no Back — Close gets its own row.
|
|
265
|
+
kb.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), closeCb.pack({}));
|
|
267
266
|
}
|
|
268
267
|
else {
|
|
268
|
+
// Submenus: Back and Close share one row.
|
|
269
269
|
const backPath = parentPath.slice(0, -1).join(".");
|
|
270
270
|
kb.text(say({ en: "⬅️ Back", es: "⬅️ Volver" }, lang), navCb.pack({ path: backPath || "_root" }));
|
|
271
|
-
kb.
|
|
271
|
+
kb.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), closeCb.pack({}));
|
|
272
272
|
}
|
|
273
|
-
// Close is always available — taps delete the settings message so
|
|
274
|
-
// it doesn't linger in the chat history. Neutral (unstyled) button.
|
|
275
|
-
kb.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), closeCb.pack({}));
|
|
276
273
|
return kb;
|
|
277
274
|
};
|
|
278
275
|
const renderConfirmForget = (lang) => new InlineKeyboard()
|
|
@@ -481,7 +478,7 @@ const buildMenuPlugin = (menu) => {
|
|
|
481
478
|
text: say({ en: "No user.", es: "Sin usuario." }, lang),
|
|
482
479
|
});
|
|
483
480
|
try {
|
|
484
|
-
await personalData.storage.delete(
|
|
481
|
+
await personalData.storage.delete(botStorageKey(ctx, userId));
|
|
485
482
|
await ctx.answer({
|
|
486
483
|
text: say({ en: "Deleted.", es: "Borrado." }, lang),
|
|
487
484
|
});
|
|
@@ -533,8 +530,7 @@ const buildMenuPlugin = (menu) => {
|
|
|
533
530
|
return ctx.answer({
|
|
534
531
|
text: say({ en: "No user.", es: "Sin usuario." }, lang),
|
|
535
532
|
});
|
|
536
|
-
const record = (await personalData.storage.get(
|
|
537
|
-
{};
|
|
533
|
+
const record = (await personalData.storage.get(botStorageKey(ctx, userId))) ?? {};
|
|
538
534
|
const file = new File([
|
|
539
535
|
JSON.stringify({ userId, exportedAt: Date.now(), data: record }, null, 2),
|
|
540
536
|
], `my-data-${userId}-${Date.now()}.json`, { type: "application/json" });
|
package/dist/bot/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/bot/menu.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/bot/menu.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED