@adriangalilea/utils 0.31.0 → 1.1.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.
@@ -127,9 +127,14 @@ export type MenuCtx = {
127
127
  * label: { en: 'Settings', es: 'Ajustes' }
128
128
  * label: (ctx) => `Hi ${ctx.from?.firstName}`
129
129
  * label: (ctx) => ({ en: `Hi ${name}`, es: `Hola ${name}` })
130
+ * label: async (ctx) => `📊 ${await store.readCount(ctx)} left`
131
+ *
132
+ * Resolvers may be ASYNC (labels, headers, styles, visibility): the menu
133
+ * awaits them at render time, so state can come straight from a database —
134
+ * never cache render strings into the session to satisfy a sync signature.
130
135
  */
131
- type Label = string | Polyglot<string> | ((ctx: MenuCtx) => string | Polyglot<string>);
132
- type Predicate = (ctx: MenuCtx) => boolean;
136
+ type Label = string | Polyglot<string> | ((ctx: MenuCtx) => string | Polyglot<string> | Promise<string | Polyglot<string>>);
137
+ type Predicate = (ctx: MenuCtx) => boolean | Promise<boolean>;
133
138
  /**
134
139
  * What a menu action's return value means:
135
140
  *
@@ -161,7 +166,7 @@ type Action = (ctx: MenuCtx) => Promise<ActionResult> | ActionResult;
161
166
  * is consistent with how Telegram itself surfaces selection state.
162
167
  */
163
168
  export type ButtonStyle = "primary" | "success" | "danger";
164
- type StyleResolver = ButtonStyle | ((ctx: MenuCtx) => ButtonStyle | undefined);
169
+ type StyleResolver = ButtonStyle | ((ctx: MenuCtx) => ButtonStyle | undefined | Promise<ButtonStyle | undefined>);
165
170
  /**
166
171
  * An entry in the menu. Three variants:
167
172
  *
@@ -261,6 +266,15 @@ export type PersonalDataOptions = {
261
266
  * same key shape by construction.
262
267
  */
263
268
  storage: Storage;
269
+ /**
270
+ * Forget must actually forget. The storage delete above only wipes the
271
+ * SESSION record — if your bot keeps per-user state anywhere else
272
+ * (message logs, metrics tables, credit rows), wipe it HERE. Runs after
273
+ * the session delete, inside the same try: a failing onForget reports
274
+ * "Failed" + your admin contact to the user instead of lying about a
275
+ * partial erasure.
276
+ */
277
+ onForget?: (ctx: MenuCtx, userId: number) => void | Promise<void>;
264
278
  };
265
279
  export type BotMenuOptions = {
266
280
  /** Slash command that opens the menu. Default `'settings'`. */
@@ -276,7 +290,9 @@ export type BotMenuOptions = {
276
290
  */
277
291
  privacy?: string;
278
292
  /**
279
- * Header text rendered above the keyboard.
293
+ * Header text rendered above the keyboard. May be an ASYNC resolver —
294
+ * read your database here instead of caching render strings in the
295
+ * session. Rendered with `parseMode` when set.
280
296
  */
281
297
  header?: Label;
282
298
  /**
@@ -294,6 +310,13 @@ export type BotMenuOptions = {
294
310
  * no per-user state beyond what Telegram's standard policy covers).
295
311
  */
296
312
  personalData?: PersonalDataOptions;
313
+ /**
314
+ * Parse mode for the HEADER text (`"HTML"` or `"MarkdownV2"`). Off by
315
+ * default (plain text). With it set, your header owns escaping — user
316
+ * content interpolated into an HTML header must be entity-escaped by you.
317
+ * Button labels are never parsed (Telegram renders them plain).
318
+ */
319
+ parseMode?: "HTML" | "MarkdownV2";
297
320
  /**
298
321
  * Allow the menu to open and operate in group chats. Off by default: with
299
322
  * `personalData` set the menu is private-only (data controls shouldn't surface
@@ -319,6 +342,7 @@ export declare const menuNavCb: CallbackData<{
319
342
  }>;
320
343
  type ResolvedPersonalData = {
321
344
  storage: Storage;
345
+ onForget: ((ctx: MenuCtx, userId: number) => void | Promise<void>) | null;
322
346
  };
323
347
  type ResolvedOpts = {
324
348
  command: string;
@@ -328,6 +352,7 @@ type ResolvedOpts = {
328
352
  adminContact: string;
329
353
  personalData: ResolvedPersonalData | null;
330
354
  allowInGroups: boolean;
355
+ parseMode: "HTML" | "MarkdownV2" | null;
331
356
  };
332
357
  export declare class BotMenu {
333
358
  /** @internal */
@@ -349,7 +374,7 @@ export type ToggleMenuItemOptions = {
349
374
  * ctx.session?.someField ?? false`. Storage-agnostic — return
350
375
  * `false` by default so the toggle starts in the OFF state.
351
376
  */
352
- read: (ctx: MenuCtx) => boolean;
377
+ read: (ctx: MenuCtx) => boolean | Promise<boolean>;
353
378
  /**
354
379
  * Persists the new value. Typically `(ctx, v) => {
355
380
  * (ctx.session as any).someField = v }`. The menu plugin does NOT
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/bot/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/bot/menu.ts"],"names":[],"mappings":"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"}
package/dist/bot/menu.js CHANGED
@@ -84,7 +84,7 @@ const FALLBACK_LANG = "en";
84
84
  // hint's primary subtag (never persisted), else English. `say()` falls back
85
85
  // per-polyglot when a catalog lacks the resolved language.
86
86
  const ctxLang = (ctx) => ctx.session?.language ?? langHintOf(ctx.from?.languageCode) ?? FALLBACK_LANG;
87
- const styleOf = (s, ctx) => {
87
+ const styleOf = async (s, ctx) => {
88
88
  if (s === undefined)
89
89
  return undefined;
90
90
  if (typeof s === "function")
@@ -118,6 +118,12 @@ const forgetCancelCb = new CallbackData("mFcnl");
118
118
  const exportCb = new CallbackData("mExp");
119
119
  /** Close button — dismisses the settings message entirely. */
120
120
  const closeCb = new CallbackData("mCls");
121
+ // send/editText params for a header render: the keyboard plus the menu's
122
+ // parse mode (headers only — chrome strings and toasts stay plain).
123
+ const headerParams = (menu, kb) => ({
124
+ reply_markup: kb,
125
+ ...(menu._opts.parseMode ? { parse_mode: menu._opts.parseMode } : {}),
126
+ });
121
127
  // Recursively validate that no MenuItem id contains `.` — the menu's
122
128
  // callback paths are dot-joined, so a dot in an id collides with the
123
129
  // separator and silently mis-routes. Fail loud at construction.
@@ -148,9 +154,13 @@ export class BotMenu {
148
154
  header: opts.header ?? DEFAULT_HEADER,
149
155
  adminContact: opts.adminContact,
150
156
  personalData: opts.personalData
151
- ? { storage: opts.personalData.storage }
157
+ ? {
158
+ storage: opts.personalData.storage,
159
+ onForget: opts.personalData.onForget ?? null,
160
+ }
152
161
  : null,
153
162
  allowInGroups: opts.allowInGroups ?? false,
163
+ parseMode: opts.parseMode ?? null,
154
164
  };
155
165
  }
156
166
  /** Append a custom item. Mutates the menu. */
@@ -196,16 +206,16 @@ export const toggleMenuItem = (opts) => ({
196
206
  visible: opts.visible,
197
207
  // ON state is the active state → 'primary' (blue, Telegram's
198
208
  // "selected" colour). OFF state stays unstyled (app default).
199
- style: (ctx) => (opts.read(ctx) ? "primary" : undefined),
209
+ style: async (ctx) => ((await opts.read(ctx)) ? "primary" : undefined),
200
210
  // Re-render the menu after the tap so the user sees the colour /
201
211
  // label flip immediately, without having to re-open /settings.
202
212
  refresh: true,
203
- label: (ctx) => {
204
- const l = opts.read(ctx) ? opts.label.on : opts.label.off;
205
- return typeof l === "function" ? l(ctx) : l;
213
+ label: async (ctx) => {
214
+ const l = (await opts.read(ctx)) ? opts.label.on : opts.label.off;
215
+ return typeof l === "function" ? await l(ctx) : l;
206
216
  },
207
217
  action: async (ctx) => {
208
- const wasOn = opts.read(ctx);
218
+ const wasOn = await opts.read(ctx);
209
219
  const willBeOn = !wasOn;
210
220
  await opts.write(ctx, willBeOn);
211
221
  // Return the toast for the menu to send as the single
@@ -213,13 +223,13 @@ export const toggleMenuItem = (opts) => ({
213
223
  const t = willBeOn ? opts.toast?.on : opts.toast?.off;
214
224
  if (t === undefined)
215
225
  return;
216
- const resolved = typeof t === "function" ? t(ctx) : t;
226
+ const resolved = typeof t === "function" ? await t(ctx) : t;
217
227
  return resolved;
218
228
  },
219
229
  });
220
230
  // ─── internal: rendering + plugin ──────────────────────────────────
221
- const labelOf = (l, ctx) => {
222
- const resolved = typeof l === "function" ? l(ctx) : l;
231
+ const labelOf = async (l, ctx) => {
232
+ const resolved = typeof l === "function" ? await l(ctx) : l;
223
233
  if (typeof resolved === "string")
224
234
  return resolved;
225
235
  return say(resolved, ctxLang(ctx));
@@ -268,16 +278,18 @@ const renderPrivacySubmenu = (menu, ctx) => {
268
278
  kb.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), closeCb.pack({}));
269
279
  return kb;
270
280
  };
271
- const renderKeyboard = (items, ctx, parentPath) => {
281
+ const renderKeyboard = async (items, ctx, parentPath) => {
272
282
  const kb = new InlineKeyboard();
273
283
  const isRoot = parentPath.length === 0;
274
- const sorted = [...items]
275
- .filter((i) => (i.visible ? i.visible(ctx) : true))
284
+ // Visibility resolves concurrently (it may be async); order stays stable.
285
+ const visibility = await Promise.all(items.map((i) => (i.visible ? i.visible(ctx) : true)));
286
+ const sorted = items
287
+ .filter((_, idx) => visibility[idx])
276
288
  .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
277
- const addButton = (item) => {
289
+ const addButton = async (item) => {
278
290
  const path = [...parentPath, item.id].join(".");
279
- const label = labelOf(item.label, ctx);
280
- const style = styleOf(item.style, ctx);
291
+ const label = await labelOf(item.label, ctx);
292
+ const style = await styleOf(item.style, ctx);
281
293
  const opts = style ? { style } : undefined;
282
294
  if ("action" in item) {
283
295
  kb.text(label, actCb.pack({ path }), opts);
@@ -296,7 +308,7 @@ const renderKeyboard = (items, ctx, parentPath) => {
296
308
  for (const item of sorted) {
297
309
  if (isRoot && item.rootExtra)
298
310
  continue;
299
- addButton(item);
311
+ await addButton(item);
300
312
  }
301
313
  const lang = ctxLang(ctx);
302
314
  if (isRoot) {
@@ -307,7 +319,7 @@ const renderKeyboard = (items, ctx, parentPath) => {
307
319
  // Bot-supplied bottom rows (e.g. group-scoped controls) sit below Privacy & data.
308
320
  for (const item of sorted)
309
321
  if (item.rootExtra)
310
- addButton(item);
322
+ await addButton(item);
311
323
  // Root has no Back — Close gets its own row.
312
324
  kb.text(say({ en: "✖️ Close", es: "✖️ Cerrar" }, lang), closeCb.pack({}));
313
325
  }
@@ -349,8 +361,8 @@ const buildMenuPlugin = (menu) => {
349
361
  .command(command, { description }, async (ctx) => {
350
362
  if (!(await guardPrivate(ctx)))
351
363
  return;
352
- const kb = renderKeyboard(menu._items, ctx, []);
353
- await ctx.send(labelOf(header, ctx), { reply_markup: kb });
364
+ const kb = await renderKeyboard(menu._items, ctx, []);
365
+ await ctx.send(await labelOf(header, ctx), headerParams(menu, kb));
354
366
  })
355
367
  // Navigate (root / submenu)
356
368
  .callbackQuery(navCb, async (ctx) => {
@@ -364,7 +376,7 @@ const buildMenuPlugin = (menu) => {
364
376
  await ctx.answer({});
365
377
  const kb = renderPrivacySubmenu(menu, ctx);
366
378
  try {
367
- await ctx.editText(labelOf(header, ctx), { reply_markup: kb });
379
+ await ctx.editText(await labelOf(header, ctx), headerParams(menu, kb));
368
380
  }
369
381
  catch {
370
382
  // message too old to edit
@@ -380,9 +392,9 @@ const buildMenuPlugin = (menu) => {
380
392
  return;
381
393
  }
382
394
  await ctx.answer({});
383
- const kb = renderKeyboard(items, ctx, segments);
395
+ const kb = await renderKeyboard(items, ctx, segments);
384
396
  try {
385
- await ctx.editText(labelOf(header, ctx), { reply_markup: kb });
397
+ await ctx.editText(await labelOf(header, ctx), headerParams(menu, kb));
386
398
  }
387
399
  catch {
388
400
  // message too old to edit
@@ -424,12 +436,12 @@ const buildMenuPlugin = (menu) => {
424
436
  // action. The real action runs on actConfirmCb (Confirm tap).
425
437
  if (item.confirm) {
426
438
  await ctx.answer({});
427
- const promptText = labelOf(item.confirm.prompt, ctx);
439
+ const promptText = await labelOf(item.confirm.prompt, ctx);
428
440
  const confirmLabel = item.confirm.confirmLabel
429
- ? labelOf(item.confirm.confirmLabel, ctx)
441
+ ? await labelOf(item.confirm.confirmLabel, ctx)
430
442
  : say({ en: "✅ Confirm", es: "✅ Confirmar" }, lang);
431
443
  const cancelLabel = item.confirm.cancelLabel
432
- ? labelOf(item.confirm.cancelLabel, ctx)
444
+ ? await labelOf(item.confirm.cancelLabel, ctx)
433
445
  : say({ en: "⬅️ Cancel", es: "⬅️ Cancelar" }, lang);
434
446
  try {
435
447
  await ctx.editText(promptText, {
@@ -481,9 +493,9 @@ const buildMenuPlugin = (menu) => {
481
493
  const parentPath = segments.slice(0, -1);
482
494
  const items = itemsForPath(menu._items, parentPath);
483
495
  if (items) {
484
- const kb = renderKeyboard(items, ctx, parentPath);
496
+ const kb = await renderKeyboard(items, ctx, parentPath);
485
497
  try {
486
- await ctx.editText(labelOf(header, ctx), { reply_markup: kb });
498
+ await ctx.editText(await labelOf(header, ctx), headerParams(menu, kb));
487
499
  }
488
500
  catch {
489
501
  // message too old to edit
@@ -529,9 +541,9 @@ const buildMenuPlugin = (menu) => {
529
541
  // Always navigate back to root after a confirmed destructive
530
542
  // action — the previous context (where the user tapped) might
531
543
  // not make sense anymore.
532
- const kb = renderKeyboard(menu._items, ctx, []);
544
+ const kb = await renderKeyboard(menu._items, ctx, []);
533
545
  try {
534
- await ctx.editText(labelOf(header, ctx), { reply_markup: kb });
546
+ await ctx.editText(await labelOf(header, ctx), headerParams(menu, kb));
535
547
  }
536
548
  catch {
537
549
  // message too old to edit
@@ -556,6 +568,10 @@ const buildMenuPlugin = (menu) => {
556
568
  });
557
569
  try {
558
570
  await personalData.storage.delete(botStorageKey(ctx, userId));
571
+ // The consumer's own tables (message logs, metrics, …) — a
572
+ // failure lands in the catch below and the user is told the
573
+ // truth instead of a partial erasure reading as success.
574
+ await personalData.onForget?.(ctx, userId);
559
575
  await ctx.answer({
560
576
  text: say({ en: "Deleted.", es: "Borrado." }, lang),
561
577
  });
@@ -588,7 +604,7 @@ const buildMenuPlugin = (menu) => {
588
604
  // came from), not root — saves the re-navigation tap.
589
605
  const kb = renderPrivacySubmenu(menu, ctx);
590
606
  try {
591
- await ctx.editText(labelOf(header, ctx), { reply_markup: kb });
607
+ await ctx.editText(await labelOf(header, ctx), headerParams(menu, kb));
592
608
  }
593
609
  catch {
594
610
  // message too old to edit
@@ -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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"}
@@ -16,7 +16,7 @@
16
16
  * - `ctx.payments.invoice(key)` — purchase entry (waiver-gated)
17
17
  *
18
18
  * Returned shape is a function so `plugin.ts` can drop it directly
19
- * into `.derive(["message", "callback_query"], buildPaymentsDerive({...}))`.
19
+ * into `.derive(["message", "callback_query", "inline_query", "chosen_inline_result"], buildPaymentsDerive({...}))`.
20
20
  */
21
21
  import { type BotPaymentsConfig, type ProductCatalog } from "./types.js";
22
22
  type TierKey = "free" | `vip.${number}`;
@@ -16,7 +16,7 @@
16
16
  * - `ctx.payments.invoice(key)` — purchase entry (waiver-gated)
17
17
  *
18
18
  * Returned shape is a function so `plugin.ts` can drop it directly
19
- * into `.derive(["message", "callback_query"], buildPaymentsDerive({...}))`.
19
+ * into `.derive(["message", "callback_query", "inline_query", "chosen_inline_result"], buildPaymentsDerive({...}))`.
20
20
  */
21
21
  import { say } from "../../say/index.js";
22
22
  import { narrow } from "../ctx.js";
@@ -258,6 +258,12 @@ declare const buildPlugin: (args: {
258
258
  message: {
259
259
  payments: PaymentsCtx<BotPaymentsConfig<string>>;
260
260
  };
261
+ inline_query: {
262
+ payments: PaymentsCtx<BotPaymentsConfig<string>>;
263
+ };
264
+ chosen_inline_result: {
265
+ payments: PaymentsCtx<BotPaymentsConfig<string>>;
266
+ };
261
267
  callback_query: {
262
268
  payments: PaymentsCtx<BotPaymentsConfig<string>>;
263
269
  };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/plugin.ts"],"names":[],"mappings":"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"}
@@ -70,8 +70,11 @@ const buildPlugin = (args) => {
70
70
  // Declare the shared session as a dep so types flow + runtime
71
71
  // dedup ensures the session derive runs once per update.
72
72
  .extend(sessionPlugin)
73
- // ctx.payments builder — see derive.ts
74
- .derive(["message", "callback_query"], paymentsDerive)
73
+ // ctx.payments builder — see derive.ts. Inline events included:
74
+ // an inline summary must read the SAME ctx.payments as a DM one —
75
+ // consumers forking session.pay reads because the derive skipped
76
+ // inline updates is exactly the confusion this prevents.
77
+ .derive(["message", "callback_query", "inline_query", "chosen_inline_result"], paymentsDerive)
75
78
  // pre_checkout_query — synchronous gate, 10s deadline
76
79
  .on("pre_checkout_query", async (ctx, next) => {
77
80
  await preCheckoutHandler(narrow(ctx));
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/bot/payments/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/bot/payments/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * A `@gramio/storage` adapter over a Cloudflare D1 table — the per-user
3
+ * session blobs (language pick, consent, menu position, payments cache).
4
+ * Follows gramio's own write-your-adapter recipe (4 methods over JSON).
5
+ *
6
+ * Battle-tested in production (xtldrbot) before moving here.
7
+ *
8
+ * `flush()` exists because `@gramio/session` calls `storage.set()` without
9
+ * awaiting it, and a Worker freezes the isolate the instant `fetch()`
10
+ * returns, killing in-flight writes (consent wouldn't stick). Every write
11
+ * is tracked; hand `flush()` to `ctx.waitUntil()` — `bot/worker` does this
12
+ * automatically when you pass it a `flush`.
13
+ *
14
+ * Table schema (create it in your migrations):
15
+ *
16
+ * CREATE TABLE session (
17
+ * key TEXT PRIMARY KEY,
18
+ * value TEXT NOT NULL,
19
+ * expires INTEGER -- reserved for future TTL use
20
+ * );
21
+ *
22
+ * No `@cloudflare/workers-types` dependency: the db is typed structurally
23
+ * (prepare → bind → first/run), so any D1-shaped binding satisfies it.
24
+ */
25
+ import type { Storage } from "@gramio/storage";
26
+ /** The slice of D1's API this adapter touches — satisfied by a real D1Database binding. */
27
+ export type D1Like = {
28
+ prepare(sql: string): {
29
+ bind(...values: unknown[]): {
30
+ first<T = unknown>(): Promise<T | null>;
31
+ run(): Promise<{
32
+ meta: {
33
+ changes?: number;
34
+ };
35
+ }>;
36
+ };
37
+ };
38
+ };
39
+ /** A {@link Storage} that also lets the Worker await its in-flight writes. */
40
+ export interface FlushableStorage extends Storage {
41
+ /** Resolves once every write issued so far has settled. Never rejects. */
42
+ flush(): Promise<void>;
43
+ }
44
+ export type D1StorageOptions = {
45
+ db: D1Like;
46
+ /** Table name (default `"session"`). Identifier-validated — SQL can't be injected through it. */
47
+ table?: string;
48
+ };
49
+ export declare function d1Storage(opts: D1StorageOptions): FlushableStorage;
50
+ //# sourceMappingURL=storage-d1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-d1.d.ts","sourceRoot":"","sources":["../../src/bot/storage-d1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/C,2FAA2F;AAC3F,MAAM,MAAM,MAAM,GAAG;IACpB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACrB,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;YAC3B,KAAK,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACxC,GAAG,IAAI,OAAO,CAAC;gBAAE,IAAI,EAAE;oBAAE,OAAO,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SAC/C,CAAC;KACF,CAAC;CACF,CAAC;AAEF,8EAA8E;AAC9E,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAChD,0EAA0E;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CA2ElE"}
@@ -0,0 +1,68 @@
1
+ import { createLogger } from "../universal/log.js";
2
+ const log = createLogger("bot/storage-d1");
3
+ export function d1Storage(opts) {
4
+ const table = opts.table ?? "session";
5
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(table)) {
6
+ throw new Error(`bot/storage-d1: invalid table name "${table}"`);
7
+ }
8
+ const db = opts.db;
9
+ // In-flight writes, awaited by flush(). Stored already error-swallowed so
10
+ // flush() never rejects; a failed write degrades to "looks like a new
11
+ // user", never a crash mid-update.
12
+ const pending = new Set();
13
+ const track = (promise) => {
14
+ const settled = promise.catch((error) => {
15
+ log.error("write failed:", error instanceof Error ? error.message : error);
16
+ return undefined;
17
+ });
18
+ pending.add(settled);
19
+ settled.finally(() => pending.delete(settled));
20
+ return settled;
21
+ };
22
+ return {
23
+ async get(key) {
24
+ try {
25
+ const row = await db
26
+ .prepare(`SELECT value FROM ${table} WHERE key = ?1`)
27
+ .bind(String(key))
28
+ .first();
29
+ if (!row)
30
+ return undefined;
31
+ return JSON.parse(row.value);
32
+ }
33
+ catch (error) {
34
+ log.error("read failed:", error instanceof Error ? error.message : error);
35
+ return undefined;
36
+ }
37
+ },
38
+ async has(key) {
39
+ try {
40
+ const row = await db
41
+ .prepare(`SELECT 1 AS one FROM ${table} WHERE key = ?1`)
42
+ .bind(String(key))
43
+ .first();
44
+ return row !== null;
45
+ }
46
+ catch {
47
+ return false;
48
+ }
49
+ },
50
+ async set(key, value) {
51
+ await track(db
52
+ .prepare(`INSERT INTO ${table} (key, value) VALUES (?1, ?2) ON CONFLICT (key) DO UPDATE SET value = ?2`)
53
+ .bind(String(key), JSON.stringify(value))
54
+ .run());
55
+ },
56
+ async delete(key) {
57
+ const res = await track(db
58
+ .prepare(`DELETE FROM ${table} WHERE key = ?1`)
59
+ .bind(String(key))
60
+ .run());
61
+ return (res?.meta.changes ?? 0) > 0;
62
+ },
63
+ async flush() {
64
+ await Promise.all([...pending]);
65
+ },
66
+ };
67
+ }
68
+ //# sourceMappingURL=storage-d1.js.map