@adriangalilea/utils 1.6.1 → 1.8.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 CHANGED
@@ -440,7 +440,7 @@ Then `pnpm install`. Every `ctx.send` / `ctx.sendDocument` / `ctx.reply` / etc.
440
440
  | `@adriangalilea/utils/bot/kit` | The Node-only corner. `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>Also re-exports `botSession` / `prefixStorage` from `bot/session` so Node consumers keep one import. |
441
441
  | `@adriangalilea/utils/bot/session` | `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/D1 stay isolated by construction; every plugin in this package derives the same prefix internally via `botStorageKey(ctx, userId)` / `botSubKey(ctx, sub)` (from `bot/keys`). 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. Worker-safe. |
442
442
  | `@adriangalilea/utils/bot/notify` | Best-effort admin DMs, worker-safe (you pass the ids; no env, no process). `notifyAdmins(bot, adminIds, text, extra?)` — DM each admin, failures logged and swallowed (a notification must never take the bot down). `alertAdminError(bot, adminIds, label, error, throttle?)` — truncated `🚨 label\nName: message`, rate-limited through a caller-owned `alertThrottle(ms?)` so a failure storm sends one alert per window. `gracefulStart`'s start/stop DMs are built on this. |
443
- | `@adriangalilea/utils/bot/profile` | `syncBotProfile(bot, { name?, description?, about?, commands?, expects?, adminIds? })` — the bot's Telegram-facing identity as CODE, never BotFather: localized name / description / About / public command list, reconciled idempotently on every boot (get → compare → set per field per language; unchanged values cost one read, so cold-start firing is rate-limit-free). `expects: { inline: true }` declares the BotFather-only capabilities the code assumes — a mismatch (inline mode off on an inline-dependent bot) DMs the admins, since the API can only detect it, not fix it. Never throws; failures log and the bot keeps running. |
443
+ | `@adriangalilea/utils/bot/profile` | `syncBotProfile(bot, { name?, description?, about?, photo?, commands?, expects?, adminIds? })` — the bot's Telegram-facing identity as CODE, never BotFather: localized name / description / About / public command list, reconciled idempotently on every boot (get → compare → set per field per language; unchanged values cost one read, so cold-start firing is rate-limit-free). `expects: { inline: true }` declares the BotFather-only capabilities the code assumes — a mismatch (inline mode off on an inline-dependent bot) DMs the admins, since the API can only detect it, not fix it. Never throws; failures log and the bot keeps running. |
444
444
  | `@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. |
445
445
  | `@adriangalilea/utils/bot/allow-list` | Static allow-list by **id and/or @username** — stateless, no session/storage. `allowList({ ids?, usernames? })` is a plugin that decorates `ctx.allowed` (boolean); gate in your handlers (`if (!ctx.allowed) return`). `makeAllowList(...)` is the pure framework-free predicate. The light counterpart to `access-control` (which adds an approve/deny flow + revocable store, needing session+storage). Username caveat: a `@username` is optional and mutable, and the Bot API can't resolve username→id ahead of time — prefer `ids` when known, `usernames` is the pragmatic fallback. |
446
446
  | `@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. |
@@ -62,6 +62,16 @@ export type Flags<Spec extends Record<string, FlagSpec>> = {
62
62
  */
63
63
  set: (ctx: unknown, key: string, value: unknown) => Promise<void>;
64
64
  };
65
+ /** Scalars are never objects, so `free` presence is the whole test. Exported so
66
+ * external panels can render a tier map as per-tier inputs. */
67
+ export declare const isTierMap: (v: unknown) => v is TierMap<unknown>;
68
+ /**
69
+ * A scalar of the right kind, or a tier map whose every value is. THE write
70
+ * rule — `flags.set` enforces it, and it's exported so any external writer
71
+ * (a web console patching the same config record directly) validates with
72
+ * the SAME function instead of restating it.
73
+ */
74
+ export declare const flagValueOk: (kind: FlagKind, v: unknown) => boolean;
65
75
  export declare function defineFlags<Spec extends Record<string, FlagSpec>>(spec: Spec, backend: FlagsBackend): Flags<Spec>;
66
76
  export {};
67
77
  //# sourceMappingURL=flags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/bot/flags.ts"],"names":[],"mappings":"AA4DA,iEAAiE;AACjE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG;IAC/C,CAAC,IAAI,EAAE,OAAO,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B,CAAC;AAEF,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI;IACrD,IAAI,EAAE,CAAC,CAAC;IACR,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,iEAAiE;IACjE,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC;AAIF,KAAK,QAAQ,CAAC,CAAC,SAAS,QAAQ,IAAI,CACnC,GAAG,EAAE,OAAO,KACR,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI;KACzD,CAAC,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACpC,GAAG;IACH,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,cAAc,EAAE,CAAC;IACjC,qEAAqE;IACrE,SAAS,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D;;;;OAIG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD;;;;;OAKG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE,CAAC;AA6CF,wBAAgB,WAAW,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAChE,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,YAAY,GACnB,KAAK,CAAC,IAAI,CAAC,CA4Eb"}
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/bot/flags.ts"],"names":[],"mappings":"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"}
package/dist/bot/flags.js CHANGED
@@ -57,8 +57,9 @@
57
57
  import { SourcedError, panic } from "../offensive.js";
58
58
  // ─── internals ───────────────────────────────────────────────────────
59
59
  const RESERVED = new Set(["describe", "overrides", "get", "set"]);
60
- /** Scalars are never objects, so `free` presence is the whole test. */
61
- const isTierMap = (v) => typeof v === "object" && v !== null && "free" in v;
60
+ /** Scalars are never objects, so `free` presence is the whole test. Exported so
61
+ * external panels can render a tier map as per-tier inputs. */
62
+ export const isTierMap = (v) => typeof v === "object" && v !== null && "free" in v;
62
63
  /** `ctx.payments.tier()` when bot/payments is wired; `free` otherwise. */
63
64
  const tierOf = (ctx) => {
64
65
  const payments = ctx?.payments;
@@ -86,8 +87,13 @@ const resolveTiered = (value, tier) => {
86
87
  return value.free;
87
88
  };
88
89
  const kindOk = (kind, v) => kind === "bool" ? typeof v === "boolean" : typeof v === kind;
89
- /** A scalar of the right kind, or a tier map whose every value is. */
90
- const valueOk = (kind, v) => {
90
+ /**
91
+ * A scalar of the right kind, or a tier map whose every value is. THE write
92
+ * rule — `flags.set` enforces it, and it's exported so any external writer
93
+ * (a web console patching the same config record directly) validates with
94
+ * the SAME function instead of restating it.
95
+ */
96
+ export const flagValueOk = (kind, v) => {
91
97
  if (isTierMap(v))
92
98
  return Object.values(v).every((t) => kindOk(kind, t));
93
99
  return kindOk(kind, v);
@@ -97,7 +103,7 @@ export function defineFlags(spec, backend) {
97
103
  for (const [key, s] of Object.entries(spec)) {
98
104
  if (RESERVED.has(key))
99
105
  panic(`flags: "${key}" is a reserved name`);
100
- if (!valueOk(s.kind, s.default))
106
+ if (!flagValueOk(s.kind, s.default))
101
107
  panic(`flags: "${key}" default doesn't match kind "${s.kind}":`, s.default);
102
108
  }
103
109
  // One config read per update: multiple flag reads on the same ctx share
@@ -117,7 +123,7 @@ export function defineFlags(spec, backend) {
117
123
  const s = spec[key];
118
124
  const stored = (await configFor(ctx))[key];
119
125
  const declared = stored !== undefined && stored !== null ? stored : s.default;
120
- if (!valueOk(s.kind, declared))
126
+ if (!flagValueOk(s.kind, declared))
121
127
  throw new SourcedError({
122
128
  source: "flags",
123
129
  operation: "resolve",
@@ -150,7 +156,7 @@ export function defineFlags(spec, backend) {
150
156
  const s = spec[key] ?? panic(`flags: unknown flag "${key}"`);
151
157
  if (!backend.write)
152
158
  panic("flags: set() needs a write backend");
153
- if (value !== null && !valueOk(s.kind, value))
159
+ if (value !== null && !flagValueOk(s.kind, value))
154
160
  throw new SourcedError({
155
161
  source: "flags",
156
162
  operation: "set",
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/bot/flags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/bot/flags.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,14 @@ export type ProfileBot = {
17
17
  supports_inline_queries?: boolean;
18
18
  };
19
19
  api: {
20
+ /** Optional in the type: needs gramio with Bot API 10.1+ types (declaring `photo` on an
21
+ * older client logs an error instead of silently doing nothing). */
22
+ setMyProfilePhoto?: (p: {
23
+ photo: {
24
+ type: "static";
25
+ photo: Blob;
26
+ };
27
+ }) => Promise<unknown>;
20
28
  getMyName: (p: Lang) => Promise<{
21
29
  name?: string;
22
30
  }>;
@@ -54,6 +62,24 @@ export interface BotProfileOptions {
54
62
  about?: Localized<string>;
55
63
  /** Public command list per language (admin commands stay out — they're behavior, not menu). */
56
64
  commands?: Localized<ReadonlyArray<BotCommandEntry>>;
65
+ /**
66
+ * Profile photo as CODE (`setMyProfilePhoto`, Bot API 10.1+): commit the art, declare it
67
+ * here, and a fresh token (or a garbage BotFather upload) heals on the next boot. Telegram
68
+ * re-encodes uploads, so bytes can't be diffed against the current photo — `version` IS the
69
+ * identity: it's persisted via `applied` after a successful set, and the sync re-uploads
70
+ * only when the declared version differs from the stored one. Bump it when the art changes.
71
+ */
72
+ photo?: {
73
+ /** JPEG bytes, square, ≥512px (Workers: bundle the asset via a wrangler `Data` rule). */
74
+ data: ArrayBuffer | Uint8Array;
75
+ /** The art's identity ("ghost-v1") — bump to force a re-upload. */
76
+ version: string;
77
+ /** Where the applied-version marker persists (the bot's own config record). */
78
+ applied: {
79
+ get: () => Promise<string | undefined>;
80
+ set: (version: string) => Promise<void>;
81
+ };
82
+ };
57
83
  /**
58
84
  * BotFather-only capabilities this bot's features assume. Checked against `getMe` on every
59
85
  * sync; a mismatch WARNS the admins (it can't be fixed over the API, only surfaced).
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/bot/profile.ts"],"names":[],"mappings":"AA0CA,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAE7C;;kFAEkF;AAClF,KAAK,IAAI,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvC,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChE,GAAG,EAAE;QACJ,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnD,SAAS,EAAE,CAAC,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,gBAAgB,EAAE,CAAC,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,qBAAqB,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC;YAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5E,qBAAqB,EAAE,CACtB,CAAC,EAAE;YAAE,iBAAiB,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,KACnC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QACpE,aAAa,EAAE,CACd,CAAC,EAAE;YAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;SAAE,GAAG,IAAI,KACrC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,WAAW,EAAE,CAAC,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACxE,CAAC;CACF,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1B,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;IACrD;;;OAGG;IACH,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,EACN,SAAS,MAAM,EAAE,GACjB,CAAC,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;CAC1D;AAqCD;;;GAGG;AACH,wBAAsB,cAAc,CACnC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,iBAAiB,GACrB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/bot/profile.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,22 @@ export async function syncBotProfile(bot, opts) {
113
113
  log.info(`commands synced${lang ? ` (${lang})` : ""} (${list.length})`);
114
114
  });
115
115
  }
116
+ const photo = opts.photo;
117
+ if (photo) {
118
+ jobs.push((async () => {
119
+ const setPhoto = bot.api.setMyProfilePhoto;
120
+ if (!setPhoto) {
121
+ log.error("photo declared but the client lacks setMyProfilePhoto (Bot API 10.1+)");
122
+ return;
123
+ }
124
+ if ((await photo.applied.get()) === photo.version)
125
+ return;
126
+ const blob = new Blob([photo.data instanceof Uint8Array ? photo.data : new Uint8Array(photo.data)], { type: "image/jpeg" });
127
+ await setPhoto({ photo: { type: "static", photo: blob } });
128
+ await photo.applied.set(photo.version);
129
+ log.info(`profile photo synced (${photo.version})`);
130
+ })());
131
+ }
116
132
  try {
117
133
  await Promise.all(jobs);
118
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/bot/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/bot/profile.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adriangalilea/utils",
3
- "version": "1.6.1",
3
+ "version": "1.8.0",
4
4
  "description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",