@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.
- package/README.md +47 -3
- package/dist/bot/admin.d.ts.map +1 -1
- package/dist/bot/admin.js.map +1 -1
- package/dist/bot/create.d.ts +110 -0
- package/dist/bot/create.d.ts.map +1 -0
- package/dist/bot/create.js +228 -0
- package/dist/bot/create.js.map +1 -0
- package/dist/bot/kit.d.ts +1 -2
- package/dist/bot/kit.d.ts.map +1 -1
- package/dist/bot/kit.js.map +1 -1
- package/dist/bot/language.d.ts +8 -0
- package/dist/bot/language.d.ts.map +1 -1
- package/dist/bot/language.js +9 -2
- package/dist/bot/language.js.map +1 -1
- package/dist/bot/menu.d.ts +30 -5
- package/dist/bot/menu.d.ts.map +1 -1
- package/dist/bot/menu.js +47 -31
- package/dist/bot/menu.js.map +1 -1
- package/dist/bot/payments/derive.d.ts +1 -1
- package/dist/bot/payments/derive.js +1 -1
- package/dist/bot/payments/plugin.d.ts +6 -0
- package/dist/bot/payments/plugin.d.ts.map +1 -1
- package/dist/bot/payments/plugin.js +5 -2
- package/dist/bot/payments/plugin.js.map +1 -1
- package/dist/bot/storage-d1.d.ts +50 -0
- package/dist/bot/storage-d1.d.ts.map +1 -0
- package/dist/bot/storage-d1.js +68 -0
- package/dist/bot/storage-d1.js.map +1 -0
- package/dist/bot/worker.d.ts +57 -0
- package/dist/bot/worker.d.ts.map +1 -0
- package/dist/bot/worker.js +235 -0
- package/dist/bot/worker.js.map +1 -0
- package/package.json +15 -2
package/dist/bot/menu.d.ts
CHANGED
|
@@ -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
|
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,EAAE,YAAY,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAE,KAAK,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAMrD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,GAAG;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,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;IAI9C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D,CAAC;AAEF
|
|
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
|
-
? {
|
|
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
|
-
|
|
275
|
-
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
607
|
+
await ctx.editText(await labelOf(header, ctx), headerParams(menu, kb));
|
|
592
608
|
}
|
|
593
609
|
catch {
|
|
594
610
|
// message too old to edit
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AAGH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9D,OAAO,EAAiB,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsG3C,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,0EAA0E;AAC1E,4EAA4E;AAC5E,2DAA2D;AAC3D,MAAM,OAAO,GAAG,CAAC,GAAY,EAAU,EAAE,CACxC,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,aAAa,CAAC;AAE9E,MAAM,OAAO,GAAG,KAAK,EACpB,CAA4B,EAC5B,GAAY,EACuB,EAAE;IACrC,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,OAAO,CAAC,KAAK,UAAU;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC;AACV,CAAC,CAAC;AAsKF,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACjD,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAC/D,MAAM,cAAc,GAAqB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;AAEjF,sEAAsE;AAEtE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjE,iEAAiE;AACjE,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtD;wDACwD;AACxD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9D,MAAM,eAAe,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAClD,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AACjD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAC1C,8DAA8D;AAC9D,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAoBzC,yEAAyE;AACzE,oEAAoE;AACpE,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAkB,EAAU,EAAE,CAAC,CAAC;IACpE,YAAY,EAAE,EAAE;IAChB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACrE,CAAC,CAAC;AAEH,qEAAqE;AACrE,qEAAqE;AACrE,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,CAC3B,KAA8B,EAC9B,KAAa,EACN,EAAE;IACT,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACd,0BAA0B,IAAI,CAAC,EAAE,0CAA0C;gBAC1E,MAAM,KAAK,yDAAyD;gBACpE,iDAAiD,CAClD,CAAC;QACH,CAAC;QACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACvB,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,OAAO,OAAO;IACnB,gBAAgB;IACP,MAAM,CAAa;IAC5B,gBAAgB;IACP,KAAK,CAAe;IAE7B,YAAY,IAAoB;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACtC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,eAAe;YACxC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,mBAAmB;YACpD,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,mBAAmB;YAC5C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC9B,CAAC,CAAC;oBACA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;oBAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI;iBAC5C;gBACF,CAAC,CAAC,IAAI;YACP,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;SACjC,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,GAAG,CAAC,IAAc;QACjB,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,8EAA8E;IAC9E,IAAI,MAAM;QACT,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACD;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAoB,EAAW,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAyC5E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAA2B,EAAY,EAAE,CAAC,CAAC;IACzE,EAAE,EAAE,IAAI,CAAC,EAAE;IACX,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,OAAO,EAAE,IAAI,CAAC,OAAO;IACrB,6DAA6D;IAC7D,8DAA8D;IAC9D,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,iEAAiE;IACjE,+DAA+D;IAC/D,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAClE,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEhC,sDAAsD;QACtD,6DAA6D;QAC7D,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;QACtD,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO;QAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD,CAAC,CAAC;AAEH,sEAAsE;AAEtE,MAAM,OAAO,GAAG,KAAK,EAAE,CAAQ,EAAE,GAAY,EAAmB,EAAE;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAClD,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAE,IAAc,EAAqB,EAAE;IAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAgB,EAAE,IAAc,EAAmB,EAAE;IACzE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,GAA2B,IAAI,CAAC;IAC3C,IAAI,IAA0B,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,IAAI,IAAI,CAAC;AACrB,CAAC,CAAC;AAEF,iEAAiE;AACjE,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAE,GAAY,EAAkB,EAAE;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;IAChC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CACN,GAAG,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,sBAAsB,EAAE,EAAE,IAAI,CAAC,EAClE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC/B,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB,CAAC;QACF,EAAE,CAAC,GAAG,EAAE,CAAC;QACT,EAAE,CAAC,IAAI,CACN,GAAG,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,IAAI,CAAC,EACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CACjB,CAAC;QACF,EAAE,CAAC,GAAG,EAAE,CAAC;IACV,CAAC;IACD,EAAE,CAAC,GAAG,CACL,GAAG,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,2BAA2B,EAAE,EAAE,IAAI,CAAC,EACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAClB,CAAC;IACF,EAAE,CAAC,GAAG,EAAE,CAAC;IACT,0CAA0C;IAC1C,EAAE,CAAC,IAAI,CACN,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAC7B,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC3B,KAAiB,EACjB,GAAY,EACZ,UAAoB,EACM,EAAE;IAC5B,MAAM,EAAE,GAAG,IAAI,cAAc,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;IAEvC,0EAA0E;IAC1E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACrD,CAAC;IACF,MAAM,MAAM,GAAG,KAAK;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3C,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACtB,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,2EAA2E;IAC3E,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS;YAAE,SAAS;QACvC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,EAAE,CAAC;QACZ,+DAA+D;QAC/D,sCAAsC;QACtC,EAAE,CAAC,IAAI,CACN,GAAG,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,IAAI,CAAC,EACrE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAClC,CAAC;QACF,EAAE,CAAC,GAAG,EAAE,CAAC;QACT,kFAAkF;QAClF,KAAK,MAAM,IAAI,IAAI,MAAM;YAAE,IAAI,IAAI,CAAC,SAAS;gBAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,6CAA6C;QAC7C,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACP,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,EAAE,CAAC,IAAI,CACN,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC,CACzC,CAAC;QACF,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAkB,EAAE,CAC5D,IAAI,cAAc,EAAE;KAClB,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,IAAI,CAAC,EAChE,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EACxB,EAAE,KAAK,EAAE,QAAQ,EAAE,CACnB;KACA,GAAG,EAAE;KACL,IAAI,CACJ,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,EACjD,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CACvB,CAAC;AAEJ,MAAM,eAAe,GAAG,CAAC,IAAa,EAAE,EAAE;IACzC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GACjE,IAAI,CAAC,KAAK,CAAC;IACZ,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CACxC,GAAG,CACF;QACC,EAAE,EAAE,+CAA+C;QACnD,EAAE,EAAE,mEAAmE;KACvE,EACD,IAAI,CACJ,CAAC;IACH,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAAW,EAAE;QAClD,MAAM,eAAe,GACpB,GAAG,CAAC,OACJ,EAAE,IAAI,EAAE,IAAI,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,eAAe,CAAC,KAAK,SAAS,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAoB,EAAE;QAC7D,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,gBAAgB,CAAC,GAAG,CAAC;YACrE,OAAO,IAAI,CAAC;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CACN,IAAI,MAAM,CAAC,+BAA+B,CAAC;SACzC,OAAO,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC;QACF,4BAA4B;SAC3B,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,4DAA4D;QAC5D,yCAAyC;QACzC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,0BAA0B;YAC3B,CAAC;YACD,OAAO;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,CAAC;aAClE,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,0BAA0B;QAC3B,CAAC;IACF,CAAC,CAAC;QACF,6CAA6C;SAC5C,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,GAAG,CACF;oBACC,EAAE,EACD,8BAA8B;wBAC9B,oDAAoD;wBACpD,uDAAuD;oBACxD,EAAE,EACD,iCAAiC;wBACjC,4DAA4D;wBAC5D,oEAAoE;iBACrE,EACD,IAAI,CACJ,EACD,EAAE,YAAY,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAC3C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,0BAA0B;YAC3B,CAAC;YACD,OAAO;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CACR,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,yBAAyB,EAAE,EACxD,IAAI,CACJ;aACD,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,gEAAgE;QAChE,2DAA2D;QAC3D,8DAA8D;QAC9D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;gBAC7C,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;gBAC/C,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW;gBAC3C,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;gBAC9C,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC9B,YAAY,EAAE,IAAI,cAAc,EAAE;yBAChC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE;wBACrD,KAAK,EAAE,QAAQ;qBACf,CAAC;yBACD,GAAG,EAAE;yBACL,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBAClD,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,0BAA0B;YAC3B,CAAC;YACD,OAAO;QACR,CAAC;QAED,gEAAgE;QAChE,6DAA6D;QAC7D,uDAAuD;QACvD,+DAA+D;QAC/D,iDAAiD;QACjD,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,yDAAyD;YACzD,+DAA+D;YAC/D,eAAe;YACf,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;YACpC,CAAC;YACD,MAAM,CAAC,CAAC;QACT,CAAC;QAED,MAAM,IAAI,GACT,OAAO,KAAK,KAAK,QAAQ;YACxB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,KAAK,SAAS;gBACpB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,kEAAkE;QAClE,+DAA+D;QAC/D,iEAAiE;QACjE,uCAAuC;QACvC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACpD,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACxD,IAAI,CAAC;oBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACR,0BAA0B;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,CAAC;QACF,6DAA6D;QAC7D,4DAA4D;QAC5D,iEAAiE;SAChE,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1C,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CACR,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,yBAAyB,EAAE,EACxD,IAAI,CACJ;aACD,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QAED,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACR,mCAAmC;YACpC,CAAC;YACD,MAAM,CAAC,CAAC;QACT,CAAC;QAED,MAAM,IAAI,GACT,OAAO,KAAK,KAAK,QAAQ;YACxB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,KAAK,KAAK,SAAS;gBACpB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtB,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,6DAA6D;QAC7D,8DAA8D;QAC9D,0BAA0B;QAC1B,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,0BAA0B;QAC3B,CAAC;IACF,CAAC,CAAC;QACF,wBAAwB;SACvB,aAAa,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC;gBACjE,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS;YACvB,OAAO,GAAG,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC;aACvD,CAAC,CAAC;QAEJ,IAAI,CAAC;YACJ,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAC9D,2DAA2D;YAC3D,4DAA4D;YAC5D,yDAAyD;YACzD,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC;aACnD,CAAC,CAAC;YACH,IAAI,CAAC;gBACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,GAAG,CACF;oBACC,EAAE,EAAE,+BAA+B;oBACnC,EAAE,EAAE,gCAAgC;iBACpC,EACD,IAAI,CACJ,CACD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACR,0BAA0B;YAC3B,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC;aAChD,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CACb,GAAG,CACF;gBACC,EAAE,EAAE,mDAAmD,YAAY,GAAG;gBACtE,EAAE,EAAE,wDAAwD,YAAY,GAAG;aAC3E,EACD,IAAI,CACJ,CACD,CAAC;QACH,CAAC;IACF,CAAC,CAAC;SACD,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5C,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,2DAA2D;QAC3D,sDAAsD;QACtD,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,QAAQ,CACjB,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,0BAA0B;QAC3B,CAAC;IACF,CAAC,CAAC;QACF,0DAA0D;SACzD,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACtC,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC;gBACjE,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS;YACvB,OAAO,GAAG,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC;aACvD,CAAC,CAAC;QAEJ,MAAM,MAAM,GACX,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,IAAI,CACpB;YACC,IAAI,CAAC,SAAS,CACb,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAChD,IAAI,EACJ,CAAC,CACD;SACD,EACD,WAAW,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAC5B,CAAC;QAEF,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;gBAC5B,OAAO,EAAE,GAAG,CACX,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,6BAA6B,EAAE,EAChE,IAAI,CACJ;aACD,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC,IAAI,CACb,GAAG,CACF;gBACC,EAAE,EAAE,wDAAwD,YAAY,GAAG;gBAC3E,EAAE,EAAE,yEAAyE,YAAY,GAAG;aAC5F,EACD,IAAI,CACJ,CACD,CAAC;QACH,CAAC;IACF,CAAC,CAAC;QACF,iDAAiD;SAChD,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrC,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO;QACvC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACR,+BAA+B;QAChC,CAAC;IACF,CAAC,CAAC,CACH,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -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
|
-
.
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,EAA0B,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EACN,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAwB,MAAM,aAAa,CAAC;AACxE,OAAO,EACN,uBAAuB,EACvB,6BAA6B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAmB,MAAM,cAAc,CAAC;AAChE,OAAO,EACN,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAuB,MAAM,aAAa,CAAC;AAU/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqF9D,sEAAsE;AAEtE,MAAM,WAAW,GAAG,CAAC,IAUpB,EAAE,EAAE;IACJ,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAI9E,MAAM,cAAc,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAE7D,6DAA6D;IAC7D,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;QAC9D,MAAM;QACN,GAAG;QACH,OAAO;QACP,yEAAyE;QACzE,WAAW,EAAE,cAGZ;KACD,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;QACtD,MAAM;QACN,OAAO;QACP,GAAG;KACH,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;QACtD,MAAM;QACN,OAAO;QACP,GAAG;KACH,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,MAAM,mBAAmB,GAAG,wBAAwB,EAAE,CAAC;IACvD,MAAM,kBAAkB,GAAG,uBAAuB,EAAE,CAAC;IACrD,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAEtD,OAAO,CACN,IAAI,MAAM,CAGR,mCAAmC,EAAE;QACtC,YAAY,EAAE,CAAC,gCAAgC,CAAC;KAChD,CAAC;QACD,8DAA8D;QAC9D,yDAAyD;SACxD,MAAM,CAAC,aAAa,CAAC;QACtB,
|
|
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
|