@adriangalilea/utils 7.1.0 → 9.0.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 +95 -56
- package/dist/bot/access-control.d.ts +89 -31
- package/dist/bot/access-control.d.ts.map +1 -1
- package/dist/bot/access-control.js +10 -28
- package/dist/bot/access-control.js.map +1 -1
- package/dist/bot/callbacks.d.ts +0 -13
- package/dist/bot/callbacks.d.ts.map +1 -1
- package/dist/bot/callbacks.js +0 -16
- package/dist/bot/callbacks.js.map +1 -1
- package/dist/bot/create.d.ts.map +1 -1
- package/dist/bot/create.js +8 -5
- package/dist/bot/create.js.map +1 -1
- package/dist/bot/kit.d.ts +4 -9
- package/dist/bot/kit.d.ts.map +1 -1
- package/dist/bot/kit.js +0 -1
- package/dist/bot/kit.js.map +1 -1
- package/dist/bot/lang.d.ts +46 -0
- package/dist/bot/lang.d.ts.map +1 -0
- package/dist/bot/lang.js +29 -0
- package/dist/bot/lang.js.map +1 -0
- package/dist/bot/language.d.ts +0 -2
- package/dist/bot/language.d.ts.map +1 -1
- package/dist/bot/language.js +0 -12
- package/dist/bot/language.js.map +1 -1
- package/dist/bot/llm.d.ts +1 -2
- package/dist/bot/llm.d.ts.map +1 -1
- package/dist/bot/llm.js +1 -2
- package/dist/bot/llm.js.map +1 -1
- package/dist/bot/menu.d.ts +7 -0
- package/dist/bot/menu.d.ts.map +1 -1
- package/dist/bot/menu.js +8 -2
- package/dist/bot/menu.js.map +1 -1
- package/dist/bot/payments/callbacks.d.ts +1 -1
- package/dist/bot/payments/callbacks.d.ts.map +1 -1
- package/dist/bot/payments/callbacks.js +9 -11
- package/dist/bot/payments/callbacks.js.map +1 -1
- package/dist/bot/payments/commands.d.ts +1 -1
- package/dist/bot/payments/commands.d.ts.map +1 -1
- package/dist/bot/payments/commands.js +2 -2
- package/dist/bot/payments/commands.js.map +1 -1
- package/dist/bot/payments/derive.d.ts.map +1 -1
- package/dist/bot/payments/derive.js +7 -6
- package/dist/bot/payments/derive.js.map +1 -1
- package/dist/bot/payments/handlers.d.ts +1 -5
- package/dist/bot/payments/handlers.d.ts.map +1 -1
- package/dist/bot/payments/handlers.js +59 -20
- package/dist/bot/payments/handlers.js.map +1 -1
- package/dist/bot/payments/invoice.d.ts.map +1 -1
- package/dist/bot/payments/invoice.js +27 -10
- package/dist/bot/payments/invoice.js.map +1 -1
- package/dist/bot/payments/menu-item.d.ts.map +1 -1
- package/dist/bot/payments/menu-item.js +2 -2
- package/dist/bot/payments/menu-item.js.map +1 -1
- package/dist/bot/payments/payouts.d.ts +3 -3
- package/dist/bot/payments/payouts.js +3 -3
- package/dist/bot/payments/plugin.d.ts +87 -29
- package/dist/bot/payments/plugin.d.ts.map +1 -1
- package/dist/bot/payments/refund.d.ts +1 -5
- package/dist/bot/payments/refund.d.ts.map +1 -1
- package/dist/bot/payments/refund.js +24 -42
- package/dist/bot/payments/refund.js.map +1 -1
- package/dist/bot/payments/types.d.ts +2 -9
- package/dist/bot/payments/types.d.ts.map +1 -1
- package/dist/bot/payments/types.js +0 -7
- package/dist/bot/payments/types.js.map +1 -1
- package/dist/bot/payments/waiver.d.ts +1 -17
- package/dist/bot/payments/waiver.d.ts.map +1 -1
- package/dist/bot/payments/waiver.js +5 -33
- package/dist/bot/payments/waiver.js.map +1 -1
- package/dist/bot/profile.d.ts.map +1 -1
- package/dist/bot/profile.js +18 -11
- package/dist/bot/profile.js.map +1 -1
- package/dist/bot/reactions.d.ts +0 -2
- package/dist/bot/reactions.d.ts.map +1 -1
- package/dist/bot/reactions.js +0 -16
- package/dist/bot/reactions.js.map +1 -1
- package/dist/bot/session.d.ts +1 -21
- package/dist/bot/session.d.ts.map +1 -1
- package/dist/bot/session.js +1 -29
- package/dist/bot/session.js.map +1 -1
- package/dist/bot/storage-d1.d.ts.map +1 -1
- package/dist/bot/storage-d1.js +4 -4
- package/dist/bot/storage-d1.js.map +1 -1
- package/dist/bot/storage.d.ts +1 -1
- package/dist/bot/storage.js +6 -6
- package/dist/bot/storage.js.map +1 -1
- package/dist/bot/worker.d.ts.map +1 -1
- package/dist/bot/worker.js +24 -15
- package/dist/bot/worker.js.map +1 -1
- package/dist/cli/text.d.ts.map +1 -1
- package/dist/cli/text.js +2 -3
- package/dist/cli/text.js.map +1 -1
- package/dist/llm/index.js +5 -5
- package/dist/llm/index.js.map +1 -1
- package/dist/offensive.d.ts.map +1 -1
- package/dist/offensive.js +3 -4
- package/dist/offensive.js.map +1 -1
- package/dist/runtime.d.ts +6 -4
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +12 -17
- package/dist/runtime.js.map +1 -1
- package/dist/tg-html/index.d.ts +11 -4
- package/dist/tg-html/index.d.ts.map +1 -1
- package/dist/tg-html/index.js +13 -8
- package/dist/tg-html/index.js.map +1 -1
- package/dist/tg-md/index.d.ts +6 -6
- package/dist/tg-md/index.d.ts.map +1 -1
- package/dist/tg-md/index.js +9 -19
- package/dist/tg-md/index.js.map +1 -1
- package/dist/universal/format.d.ts +3 -2
- package/dist/universal/format.d.ts.map +1 -1
- package/dist/universal/format.js +3 -2
- package/dist/universal/format.js.map +1 -1
- package/dist/universal/log.d.ts +176 -95
- package/dist/universal/log.d.ts.map +1 -1
- package/dist/universal/log.js +677 -217
- package/dist/universal/log.js.map +1 -1
- package/dist/universal/time.d.ts +11 -2
- package/dist/universal/time.d.ts.map +1 -1
- package/dist/universal/time.js +22 -2
- package/dist/universal/time.js.map +1 -1
- package/package.json +9 -15
- package/dist/bot/index.d.ts +0 -31
- package/dist/bot/index.d.ts.map +0 -1
- package/dist/bot/index.js +0 -31
- package/dist/bot/index.js.map +0 -1
- package/dist/universal/currency/download-crypto-list.d.ts +0 -10
- package/dist/universal/currency/download-crypto-list.d.ts.map +0 -1
- package/dist/universal/currency/download-crypto-list.js +0 -69
- package/dist/universal/currency/download-crypto-list.js.map +0 -1
- package/dist/universal/url/update-rules.d.ts +0 -15
- package/dist/universal/url/update-rules.d.ts.map +0 -1
- package/dist/universal/url/update-rules.js +0 -122
- package/dist/universal/url/update-rules.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/bot/payments/derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAA2C,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAEN,
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/bot/payments/derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
import { SourcedError } from "../../offensive.js";
|
|
24
24
|
import type { BotPaymentCtx, BotPreCheckoutCtx } from "../ctx.js";
|
|
25
25
|
import type { PaymentsStores } from "./stores.js";
|
|
26
|
-
import type { BotPaymentsConfig, FulfillmentEvent,
|
|
26
|
+
import type { BotPaymentsConfig, FulfillmentEvent, ProductCatalog, SessionLike } from "./types.js";
|
|
27
27
|
/**
|
|
28
28
|
* Strict bot.api shape for this plugin. Composes with the canonical
|
|
29
29
|
* `BotMessageCtx` / `BotPreCheckoutCtx` / `BotPaymentCtx` via their
|
|
@@ -48,10 +48,6 @@ type PaymentBotApi = {
|
|
|
48
48
|
reply_markup?: unknown;
|
|
49
49
|
}) => Promise<unknown>;
|
|
50
50
|
};
|
|
51
|
-
type SessionLike = {
|
|
52
|
-
pay?: PaymentsSession;
|
|
53
|
-
language?: string;
|
|
54
|
-
};
|
|
55
51
|
/**
|
|
56
52
|
* Pre-checkout event ctx (Telegram's 10s deadline). Strict bot.api;
|
|
57
53
|
* everything else is structural. No session on this event scope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAS,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAS,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAIlE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EACX,iBAAiB,EAGjB,gBAAgB,EAEhB,cAAc,EACd,WAAW,EAEX,MAAM,YAAY,CAAC;AAMpB;;;;;GAKG;AACH,KAAK,aAAa,GAAG;IACpB,sBAAsB,EAAE,CAAC,MAAM,EAAE;QAChC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,EAAE,EAAE,OAAO,CAAC;QACZ,aAAa,CAAC,EAAE,MAAM,CAAC;KACvB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,wBAAwB,EAAE,CAAC,MAAM,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,0BAA0B,EAAE,MAAM,CAAC;QACnC,WAAW,EAAE,OAAO,CAAC;KACrB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;KACvB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,KAAK,cAAc,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,KAAK,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAkB5D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,cAAc,MACjB,KAAK,cAAc,KAAG,OAAO,CAAC,IAAI,CAqExC,CAAC;AA4CH,MAAM,MAAM,+BAA+B,GAAG;IAC7C,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB;;;;;;;;OAQG;IACH,WAAW,EAAE,WAAW,CACvB,MAAM,EACN,aAAa,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,CACjE,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GACxC,MAAM,+BAA+B,MAC/B,KAAK,UAAU,KAAG,OAAO,CAAC,IAAI,CA6KpC,CAAC;AAmDH,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -22,12 +22,11 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import { panic, SourcedError } from "../../offensive.js";
|
|
24
24
|
import { say } from "../../say/index.js";
|
|
25
|
-
import {
|
|
25
|
+
import { log as root } from "../../universal/log.js";
|
|
26
|
+
import { ctxLang, FALLBACK_LANG } from "../lang.js";
|
|
26
27
|
import { decodePayload } from "./payload.js";
|
|
27
28
|
import { applyCharge } from "./state.js";
|
|
28
|
-
const log = scope("bot/payments");
|
|
29
|
-
const FALLBACK_LANG = "en";
|
|
30
|
-
const ctxLang = (ctx) => ctx.session?.language ?? FALLBACK_LANG;
|
|
29
|
+
const log = root.scope("bot/payments");
|
|
31
30
|
// Single-sourced product discriminator. Order (vip, credits, perk-default)
|
|
32
31
|
// is load-bearing: it mirrors the prefix checks both builders rely on.
|
|
33
32
|
const kindOf = (product) => product.id.startsWith("vip.")
|
|
@@ -51,9 +50,15 @@ const kindOf = (product) => product.id.startsWith("vip.")
|
|
|
51
50
|
* user sees Telegram's "Payment failed" sheet with that reason.
|
|
52
51
|
*/
|
|
53
52
|
export const buildPreCheckoutHandler = (catalog) => async (ctx) => {
|
|
54
|
-
log.success(
|
|
53
|
+
log.success("pre_checkout_query received", {
|
|
54
|
+
user: ctx.from.id,
|
|
55
|
+
currency: ctx.currency,
|
|
56
|
+
amount: ctx.totalAmount,
|
|
57
|
+
payload: ctx.invoicePayload,
|
|
58
|
+
id: ctx.id,
|
|
59
|
+
});
|
|
55
60
|
const reject = async (reasonEn, reasonEs) => {
|
|
56
|
-
log.warn(
|
|
61
|
+
log.warn("pre_checkout rejecting", { reason: reasonEn, id: ctx.id });
|
|
57
62
|
try {
|
|
58
63
|
await ctx.bot.api.answerPreCheckoutQuery({
|
|
59
64
|
pre_checkout_query_id: ctx.id,
|
|
@@ -65,7 +70,7 @@ export const buildPreCheckoutHandler = (catalog) => async (ctx) => {
|
|
|
65
70
|
});
|
|
66
71
|
}
|
|
67
72
|
catch (e) {
|
|
68
|
-
log.error(
|
|
73
|
+
log.error("answerPreCheckoutQuery failed", { ok: false, err: e });
|
|
69
74
|
}
|
|
70
75
|
};
|
|
71
76
|
if (ctx.currency !== "XTR") {
|
|
@@ -90,7 +95,11 @@ export const buildPreCheckoutHandler = (catalog) => async (ctx) => {
|
|
|
90
95
|
await reject(`Price changed (expected ${product.xtr}, got ${ctx.totalAmount}).`, "Precio cambiado.");
|
|
91
96
|
return;
|
|
92
97
|
}
|
|
93
|
-
log.success(
|
|
98
|
+
log.success("pre_checkout approving", {
|
|
99
|
+
product: decoded.productKey,
|
|
100
|
+
user: ctx.from.id,
|
|
101
|
+
amount: ctx.totalAmount,
|
|
102
|
+
});
|
|
94
103
|
try {
|
|
95
104
|
await ctx.bot.api.answerPreCheckoutQuery({
|
|
96
105
|
pre_checkout_query_id: ctx.id,
|
|
@@ -98,7 +107,7 @@ export const buildPreCheckoutHandler = (catalog) => async (ctx) => {
|
|
|
98
107
|
});
|
|
99
108
|
}
|
|
100
109
|
catch (e) {
|
|
101
|
-
log.error(
|
|
110
|
+
log.error("answerPreCheckoutQuery failed", { ok: true, err: e });
|
|
102
111
|
}
|
|
103
112
|
};
|
|
104
113
|
// ─── successful_payment handler ────────────────────────────────────
|
|
@@ -151,15 +160,23 @@ const buildChargeRecord = (product, userId, payment, waiverSnapshot) => {
|
|
|
151
160
|
export const buildSuccessfulPaymentHandler = (opts) => async (ctx) => {
|
|
152
161
|
const payment = ctx.eventPayment?.payload;
|
|
153
162
|
if (!payment) {
|
|
154
|
-
log.warn("successful_payment
|
|
163
|
+
log.warn("successful_payment without ctx.eventPayment.payload, gramio context shape changed?");
|
|
155
164
|
return;
|
|
156
165
|
}
|
|
157
166
|
if (payment.currency !== "XTR")
|
|
158
167
|
return; // fiat — not ours
|
|
159
|
-
log.success(
|
|
168
|
+
log.success("successful_payment received", {
|
|
169
|
+
charge_id: payment.telegram_payment_charge_id,
|
|
170
|
+
amount: payment.total_amount,
|
|
171
|
+
payload: payment.invoice_payload,
|
|
172
|
+
subscription_expires: payment.subscription_expiration_date,
|
|
173
|
+
});
|
|
160
174
|
const decoded = decodePayload(payment.invoice_payload);
|
|
161
175
|
if (!decoded) {
|
|
162
|
-
log.error(
|
|
176
|
+
log.error("successful_payment payload undecodable, fulfillment skipped", {
|
|
177
|
+
charge_id: payment.telegram_payment_charge_id,
|
|
178
|
+
payload: payment.invoice_payload,
|
|
179
|
+
});
|
|
163
180
|
return;
|
|
164
181
|
}
|
|
165
182
|
const userId = ctx.from?.id ?? decoded.userId;
|
|
@@ -171,12 +188,17 @@ export const buildSuccessfulPaymentHandler = (opts) => async (ctx) => {
|
|
|
171
188
|
// bounded by Telegram's retry delay and acceptable for v1.
|
|
172
189
|
const claimed = await opts.stores.idempotency.claim(ctx, payment.telegram_payment_charge_id);
|
|
173
190
|
if (!claimed) {
|
|
174
|
-
log.info(
|
|
191
|
+
log.info("successful_payment already fulfilled, no-op", {
|
|
192
|
+
charge_id: payment.telegram_payment_charge_id,
|
|
193
|
+
});
|
|
175
194
|
return;
|
|
176
195
|
}
|
|
177
196
|
const product = opts.catalog.byKey.get(decoded.productKey);
|
|
178
197
|
if (!product) {
|
|
179
|
-
log.error(
|
|
198
|
+
log.error("successful_payment for unknown productKey, config drift?", {
|
|
199
|
+
product_key: decoded.productKey,
|
|
200
|
+
charge_id: payment.telegram_payment_charge_id,
|
|
201
|
+
});
|
|
180
202
|
return;
|
|
181
203
|
}
|
|
182
204
|
const waiverSnapshot = ctx.session.pay?.waiver;
|
|
@@ -188,7 +210,10 @@ export const buildSuccessfulPaymentHandler = (opts) => async (ctx) => {
|
|
|
188
210
|
// snapshot" entry that's auditable. The `panic` is
|
|
189
211
|
// intentionally after the persistence path on purpose to keep
|
|
190
212
|
// the user whole; the next event will crash.
|
|
191
|
-
log.error(
|
|
213
|
+
log.error("CRITICAL: successful_payment without prior waiver, gate bypassed?", {
|
|
214
|
+
user: userId,
|
|
215
|
+
charge_id: payment.telegram_payment_charge_id,
|
|
216
|
+
});
|
|
192
217
|
}
|
|
193
218
|
const charge = buildChargeRecord(product, userId, payment, waiverSnapshot ?? {
|
|
194
219
|
at: Date.now(),
|
|
@@ -199,7 +224,13 @@ export const buildSuccessfulPaymentHandler = (opts) => async (ctx) => {
|
|
|
199
224
|
// (Idempotency sentinel was already claimed above.)
|
|
200
225
|
await opts.stores.charges.set(ctx, charge.chargeId, charge);
|
|
201
226
|
await opts.stores.userCharges(userId).prepend(ctx, charge.chargeId);
|
|
202
|
-
log.info(
|
|
227
|
+
log.info("charge persisted", {
|
|
228
|
+
charge_id: charge.chargeId,
|
|
229
|
+
product: charge.productKey,
|
|
230
|
+
user: userId,
|
|
231
|
+
xtr: charge.xtr,
|
|
232
|
+
credits_granted: charge.creditsGranted,
|
|
233
|
+
});
|
|
203
234
|
// 2. Apply to session (cache). Capture the previous vip chargeId
|
|
204
235
|
// FIRST so we can cancel its renewal below if this was an upgrade.
|
|
205
236
|
const previousVipChargeId = ctx.session.pay?.vip?.chargeId;
|
|
@@ -222,11 +253,15 @@ export const buildSuccessfulPaymentHandler = (opts) => async (ctx) => {
|
|
|
222
253
|
telegram_payment_charge_id: previousVipChargeId,
|
|
223
254
|
is_canceled: true,
|
|
224
255
|
});
|
|
225
|
-
log.info(
|
|
256
|
+
log.info("auto-canceled previous vip rung on upgrade", {
|
|
257
|
+
from_rung: previousVipRung,
|
|
258
|
+
to_rung: charge.vipRung,
|
|
259
|
+
user: userId,
|
|
260
|
+
});
|
|
226
261
|
}
|
|
227
262
|
catch (e) {
|
|
228
263
|
// Already canceled, expired, etc. Log; don't block fulfillment.
|
|
229
|
-
log.warn(
|
|
264
|
+
log.warn("auto-cancel of the previous vip subscription failed, likely already canceled or expired", { user: userId, previous_charge_id: previousVipChargeId, err: e });
|
|
230
265
|
}
|
|
231
266
|
}
|
|
232
267
|
// 4. User-facing confirmation
|
|
@@ -249,13 +284,17 @@ export const buildSuccessfulPaymentHandler = (opts) => async (ctx) => {
|
|
|
249
284
|
fn(event, ctx);
|
|
250
285
|
}
|
|
251
286
|
catch (e) {
|
|
252
|
-
log.error(
|
|
287
|
+
log.error("onFulfilled handler threw", { key, err: e });
|
|
253
288
|
}
|
|
254
289
|
}
|
|
255
290
|
};
|
|
256
291
|
fireBucket(product.id);
|
|
257
292
|
fireBucket("*");
|
|
258
|
-
log.success(
|
|
293
|
+
log.success("fulfillment complete", {
|
|
294
|
+
product: product.id,
|
|
295
|
+
user: userId,
|
|
296
|
+
charge_id: charge.chargeId,
|
|
297
|
+
});
|
|
259
298
|
// 6. Sanity-fail AFTER everything has been persisted + the user
|
|
260
299
|
// has their confirmation — defensive, see CRITICAL log above.
|
|
261
300
|
if (!waiverSnapshot) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/bot/payments/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/bot/payments/handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAazC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAgDvC,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,MAAM,GAAG,CACd,OAA6D,EAChC,EAAE,CAC/B,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5B,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAClC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC;AAEZ,sEAAsE;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GACnC,CAAC,OAAuB,EAAE,EAAE,CAC5B,KAAK,EAAE,GAAmB,EAAiB,EAAE;IAC5C,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE;QAC1C,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,WAAW;QACvB,OAAO,EAAE,GAAG,CAAC,cAAc;QAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;KACV,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,KAAK,EACnB,QAAgB,EAChB,QAAgB,EACA,EAAE;QAClB,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC;gBACxC,qBAAqB,EAAE,GAAG,CAAC,EAAE;gBAC7B,EAAE,EAAE,KAAK;gBACT,8DAA8D;gBAC9D,+DAA+D;gBAC/D,gEAAgE;gBAChE,aAAa,EAAE,GAAG,QAAQ,MAAM,QAAQ,EAAE;aAC1C,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC5B,MAAM,MAAM,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;QAC9D,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;QACxD,OAAO;IACR,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;QACvD,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;QAC1D,OAAO;IACR,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,CACX,2BAA2B,OAAO,CAAC,GAAG,SAAS,GAAG,CAAC,WAAW,IAAI,EAClE,kBAAkB,CAClB,CAAC;QACF,OAAO;IACR,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE;QACrC,OAAO,EAAE,OAAO,CAAC,UAAU;QAC3B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,EAAE,GAAG,CAAC,WAAW;KACvB,CAAC,CAAC;IACH,IAAI,CAAC;QACJ,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC;YACxC,qBAAqB,EAAE,GAAG,CAAC,EAAE;YAC7B,EAAE,EAAE,IAAI;SACR,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;AACF,CAAC,CAAC;AAEH,sEAAsE;AAEtE,MAAM,iBAAiB,GAAG,CACzB,OAA6D,EAC7D,MAAc,EACd,OAA0B,EAC1B,cAA8C,EAC/B,EAAE;IACjB,MAAM,IAAI,GAAiB;QAC1B,QAAQ,EAAE,OAAO,CAAC,0BAA0B;QAC5C,MAAM;QACN,UAAU,EAAE,OAAO,CAAC,EAAE;QACtB,GAAG,EAAE,OAAO,CAAC,YAAY;QACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC,eAAe;QAChC,cAAc;QACd,eAAe,EAAE,MAAM;QACvB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,CAAC;KACjB,CAAC;IACF,QAAQ,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,KAAK,KAAK,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,OAA0B,CAAC;YACrC,OAAO;gBACN,GAAG,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,qBAAqB,EAAE,OAAO,CAAC,4BAA4B;gBAC3D,cAAc,EAAE,CAAC,CAAC,cAAc;aAChC,CAAC;QACH,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,OAA8B,CAAC;YACzC,OAAO,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,CAAC,GAAG,OAAuB,CAAC;YAClC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAqBF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACzC,CAAC,IAAqC,EAAE,EAAE,CAC1C,KAAK,EAAE,GAAe,EAAiB,EAAE;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,CACP,oFAAoF,CACpF,CAAC;QACF,OAAO;IACR,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO,CAAC,kBAAkB;IAE1D,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE;QAC1C,SAAS,EAAE,OAAO,CAAC,0BAA0B;QAC7C,MAAM,EAAE,OAAO,CAAC,YAAY;QAC5B,OAAO,EAAE,OAAO,CAAC,eAAe;QAChC,oBAAoB,EAAE,OAAO,CAAC,4BAA4B;KAC1D,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,CAAC,6DAA6D,EAAE;YACxE,SAAS,EAAE,OAAO,CAAC,0BAA0B;YAC7C,OAAO,EAAE,OAAO,CAAC,eAAe;SAChC,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;IAE9C,8DAA8D;IAC9D,+DAA+D;IAC/D,2DAA2D;IAC3D,2DAA2D;IAC3D,gEAAgE;IAChE,2DAA2D;IAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAClD,GAAG,EACH,OAAO,CAAC,0BAA0B,CAClC,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAE;YACvD,SAAS,EAAE,OAAO,CAAC,0BAA0B;SAC7C,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,GAAG,CAAC,KAAK,CAAC,0DAA0D,EAAE;YACrE,WAAW,EAAE,OAAO,CAAC,UAAU;YAC/B,SAAS,EAAE,OAAO,CAAC,0BAA0B;SAC7C,CAAC,CAAC;QACH,OAAO;IACR,CAAC;IAED,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;IAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,0DAA0D;QAC1D,8DAA8D;QAC9D,6DAA6D;QAC7D,uDAAuD;QACvD,mDAAmD;QACnD,8DAA8D;QAC9D,6CAA6C;QAC7C,GAAG,CAAC,KAAK,CACR,mEAAmE,EACnE;YACC,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,OAAO,CAAC,0BAA0B;SAC7C,CACD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAC/B,OAAO,EACP,MAAM,EACN,OAAO,EACP,cAAc,IAAI;QACjB,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;QACd,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;KACpB,CACD,CAAC;IAEF,4CAA4C;IAC5C,oDAAoD;IACpD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpE,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAC5B,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,eAAe,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;IAEH,iEAAiE;IACjE,mEAAmE;IACnE,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC;IAC3D,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;IAEnD,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEjC,gEAAgE;IAChE,mEAAmE;IACnE,mEAAmE;IACnE,kEAAkE;IAClE,+DAA+D;IAC/D,uDAAuD;IACvD,IACC,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,mBAAmB;QACnB,mBAAmB,KAAK,MAAM,CAAC,QAAQ;QACvC,eAAe,KAAK,SAAS;QAC7B,eAAe,GAAG,MAAM,CAAC,OAAO,EAC/B,CAAC;QACF,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC;gBAC1C,OAAO,EAAE,MAAM;gBACf,0BAA0B,EAAE,mBAAmB;gBAC/C,WAAW,EAAE,IAAI;aACjB,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBACtD,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,IAAI,EAAE,MAAM;aACZ,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,gEAAgE;YAChE,GAAG,CAAC,IAAI,CACP,yFAAyF,EACzF,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,CACjE,CAAC;QACH,CAAC;IACF,CAAC;IAED,8BAA8B;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7D,8CAA8C;IAC9C,MAAM,KAAK,GAAqB;QAC/B,UAAU,EAAE,OAAO,CAAC,EAAE;QACtB,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,UAAU,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC;gBACJ,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;IACF,CAAC,CAAC;IACF,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvB,UAAU,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE;QACnC,OAAO,EAAE,OAAO,CAAC,EAAE;QACnB,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,gEAAgE;IAChE,8DAA8D;IAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;QACrB,KAAK,CACJ,qEAAqE;YACpE,oEAAoE,CACrE,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAC3B,OAA6D,EAC7D,GAA8B,EAC9B,IAAY,EACH,EAAE;IACX,QAAQ,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,KAAK,KAAK,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,OAA0B,CAAC;YACrC,MAAM,IAAI,GACR,CAAC,CAAC,IAA+B,CAAC,IAAI,CAAC;gBACvC,CAAC,CAAC,IAA+B,CAAC,aAAa,CAAC;gBACjD,KAAK,CAAC;YACP,OAAO,GAAG,CACT;gBACC,EAAE,EAAE,gBAAgB,IAAI,uBAAuB;gBAC/C,EAAE,EAAE,mBAAmB,IAAI,2BAA2B;aACtD,EACD,IAAI,CACJ,CAAC;QACH,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,OAA8B,CAAC;YACzC,MAAM,IAAI,GACR,GAAG,CAAC,OAAO,EAAE,IAA2C,EAAE,CAAC,IAAI,CAAC;gBACjE,SAAS,CAAC;YACX,OAAO,GAAG,CACT;gBACC,EAAE,EAAE,MAAM,CAAC,CAAC,cAAc,IAAI,IAAI,yBAAyB;gBAC3D,EAAE,EAAE,MAAM,CAAC,CAAC,cAAc,IAAI,IAAI,uBAAuB;aACzD,EACD,IAAI,CACJ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACT,MAAM,CAAC,GAAG,OAAuB,CAAC;YAClC,MAAM,IAAI,GACR,CAAC,CAAC,IAA+B,CAAC,IAAI,CAAC;gBACvC,CAAC,CAAC,IAA+B,CAAC,aAAa,CAAC;gBACjD,CAAC,CAAC,GAAG,CAAC;YACP,OAAO,GAAG,CACT,EAAE,EAAE,EAAE,eAAe,IAAI,GAAG,EAAE,EAAE,EAAE,mBAAmB,IAAI,GAAG,EAAE,EAC9D,IAAI,CACJ,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,qEAAqE;AAErE,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/invoice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/invoice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EACX,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,eAAe,EACf,MAAM,YAAY,CAAC;AASpB;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,GAAG,EAAE;QACJ,GAAG,EAAE;YACJ,WAAW,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC7D,CAAC;KACF,CAAC;IACF,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtB,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACvD,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,eAAe,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD,CAAC;AAEF,qEAAqE;AACrE,KAAK,iBAAiB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAyHF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GACjC,KAAK,UAAU,EACf,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAC9B,SAAS,eAAe,GAAG,mBAAmB,GAAG,YAAY,EAC7D,QAAQ,MAAM,KACZ,OAAO,CAAC,IAAI,CA2Dd,CAAC;AAIF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAC7B,cAAc,GACd,oBAAoB,GACpB,iBAAiB,CAAC;AAErB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,GAC1B,KAAK,UAAU,GAAG;IACjB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,EACD,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAC9B,SAAS,cAAc,EACvB,YAAY,MAAM,KAChB,OAAO,CAAC,oBAAoB,CA4C9B,CAAC"}
|
|
@@ -18,18 +18,17 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { panic, SourcedError } from "../../offensive.js";
|
|
20
20
|
import { say } from "../../say/index.js";
|
|
21
|
-
import {
|
|
21
|
+
import { log as root } from "../../universal/log.js";
|
|
22
|
+
import { ctxLang, FALLBACK_LANG } from "../lang.js";
|
|
22
23
|
import { encodePayload } from "./payload.js";
|
|
23
24
|
import { renderConsentBody, waiverKeyboard } from "./waiver.js";
|
|
24
|
-
const log = scope("bot/payments");
|
|
25
|
+
const log = root.scope("bot/payments");
|
|
25
26
|
// Telegram caps from the Bot API (sendInvoice §):
|
|
26
27
|
const TITLE_MAX = 32;
|
|
27
28
|
const DESCRIPTION_MAX = 255;
|
|
28
|
-
const FALLBACK_LANG = "en";
|
|
29
29
|
// ─── small helpers ─────────────────────────────────────────────────
|
|
30
30
|
// Single-source the Telegram length cap so each call site can't drift.
|
|
31
31
|
const cap = (s, max) => s.length > max ? s.slice(0, max) : s;
|
|
32
|
-
const ctxLang = (ctx) => ctx.session?.language ?? FALLBACK_LANG;
|
|
33
32
|
const ctxChatId = (ctx) => {
|
|
34
33
|
const id = ctx.chat?.id ?? ctx.message?.chat?.id;
|
|
35
34
|
if (id === undefined) {
|
|
@@ -141,14 +140,23 @@ export const sendInvoiceForProduct = async (ctx, cfg, product, userId) => {
|
|
|
141
140
|
if (product.id.startsWith("vip.")) {
|
|
142
141
|
params.subscription_period = product.periodSeconds;
|
|
143
142
|
}
|
|
144
|
-
log.success(
|
|
143
|
+
log.success("sendInvoice sent to telegram", {
|
|
144
|
+
product: product.id,
|
|
145
|
+
user: userId,
|
|
146
|
+
xtr: product.xtr,
|
|
147
|
+
title,
|
|
148
|
+
subscription_period: params.subscription_period,
|
|
149
|
+
});
|
|
145
150
|
try {
|
|
146
151
|
await ctx.bot.api.sendInvoice(params);
|
|
147
|
-
log.success(
|
|
152
|
+
log.success("sendInvoice accepted by telegram", {
|
|
153
|
+
product: product.id,
|
|
154
|
+
user: userId,
|
|
155
|
+
});
|
|
148
156
|
}
|
|
149
157
|
catch (e) {
|
|
150
158
|
const msg = e instanceof Error ? e.message : String(e);
|
|
151
|
-
log.error(
|
|
159
|
+
log.error("sendInvoice rejected by telegram", { err: e });
|
|
152
160
|
// Hint on the specific subscription-export setup gotcha — there's
|
|
153
161
|
// no documented fix path in gramio/telegram docs, so surface ours.
|
|
154
162
|
if (msg.includes("SUBSCRIPTION_EXPORT_MISSING")) {
|
|
@@ -180,7 +188,7 @@ export const sendInvoiceForProduct = async (ctx, cfg, product, userId) => {
|
|
|
180
188
|
export const presentInvoice = async (ctx, cfg, catalog, productKey) => {
|
|
181
189
|
const product = catalog.byKey.get(productKey);
|
|
182
190
|
if (!product) {
|
|
183
|
-
log.warn(
|
|
191
|
+
log.warn("presentInvoice unknown productKey", { product_key: productKey });
|
|
184
192
|
const lang = ctxLang(ctx);
|
|
185
193
|
await ctx.send(say({
|
|
186
194
|
en: `❌ Unknown product "${productKey}".`,
|
|
@@ -195,14 +203,23 @@ export const presentInvoice = async (ctx, cfg, catalog, productKey) => {
|
|
|
195
203
|
const stored = ctx.session?.pay?.waiver;
|
|
196
204
|
const fresh = stored && stored.version === cfg.waiver.version;
|
|
197
205
|
if (!fresh) {
|
|
198
|
-
log.info(
|
|
206
|
+
log.info("presentInvoice sending waiver consent prompt", {
|
|
207
|
+
waiver: stored ? "stale" : "missing",
|
|
208
|
+
stored_version: stored?.version,
|
|
209
|
+
current_version: cfg.waiver.version,
|
|
210
|
+
product: product.id,
|
|
211
|
+
user: userId,
|
|
212
|
+
});
|
|
199
213
|
const lang = ctxLang(ctx);
|
|
200
214
|
await ctx.send(renderConsentBody(cfg, lang), {
|
|
201
215
|
reply_markup: waiverKeyboard(cfg, product.id, lang),
|
|
202
216
|
});
|
|
203
217
|
return "waiver_prompt_sent";
|
|
204
218
|
}
|
|
205
|
-
log.info(
|
|
219
|
+
log.info("presentInvoice waiver fresh, sending invoice", {
|
|
220
|
+
product: product.id,
|
|
221
|
+
user: userId,
|
|
222
|
+
});
|
|
206
223
|
await sendInvoiceForProduct(ctx, cfg, product, userId);
|
|
207
224
|
return "invoice_sent";
|
|
208
225
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../../src/bot/payments/invoice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../../src/bot/payments/invoice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/menu-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;
|
|
1
|
+
{"version":3,"file":"menu-item.d.ts","sourceRoot":"","sources":["../../../src/bot/payments/menu-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH,OAAO,KAAK,EAAW,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,KAAK,EACX,iBAAiB,EAEjB,cAAc,EACd,MAAM,YAAY,CAAC;AAsCpB,eAAO,MAAM,qBAAqB,GAAI,MAAM;IAC3C,GAAG,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,cAAc,CAAC;CACxB,KAAG,QAiRH,CAAC"}
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
*/
|
|
35
35
|
import { say } from "../../say/index.js";
|
|
36
36
|
import { narrow } from "../ctx.js";
|
|
37
|
+
import { FALLBACK_LANG, ctxLang as sessionLang } from "../lang.js";
|
|
37
38
|
import { presentInvoice } from "./invoice.js";
|
|
38
|
-
const
|
|
39
|
-
const ctxLang = (ctx) => narrow(ctx).session?.language ?? FALLBACK_LANG;
|
|
39
|
+
const ctxLang = (ctx) => sessionLang(narrow(ctx));
|
|
40
40
|
// Treat an expired VIP as free everywhere in the menu. derive.ts does lazy expiry
|
|
41
41
|
// without clearing the session cache, so `pay.vip` lingers after expiresAt; a raw read would label
|
|
42
42
|
// the lapsed rung "current" and hide its renew button (visible: rung !== rank). Strip the expired
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.js","sourceRoot":"","sources":["../../../src/bot/payments/menu-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAGH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"menu-item.js","sourceRoot":"","sources":["../../../src/bot/payments/menu-item.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,9 +66,9 @@ export type ExportResult = {
|
|
|
66
66
|
* Build the payout-only dataset for a time window. Returns every
|
|
67
67
|
* `PayoutRecord` whose `[fromMs, toMs]` overlaps the requested window.
|
|
68
68
|
*
|
|
69
|
-
* The `charges` field is
|
|
70
|
-
*
|
|
71
|
-
*
|
|
69
|
+
* The `charges` field is empty: charge indexes are per user, so no
|
|
70
|
+
* single call can enumerate everybody's. Use `exportPayoutsForUsers`
|
|
71
|
+
* with an explicit user-id list.
|
|
72
72
|
*/
|
|
73
73
|
export declare const exportPayouts: (bot: AnyBot, stores: PaymentsStores, input: ExportInput) => Promise<ExportResult>;
|
|
74
74
|
/**
|
|
@@ -87,9 +87,9 @@ const filterPayoutsInWindow = (payouts, from, to) => payouts.filter((p) => !(p.t
|
|
|
87
87
|
* Build the payout-only dataset for a time window. Returns every
|
|
88
88
|
* `PayoutRecord` whose `[fromMs, toMs]` overlaps the requested window.
|
|
89
89
|
*
|
|
90
|
-
* The `charges` field is
|
|
91
|
-
*
|
|
92
|
-
*
|
|
90
|
+
* The `charges` field is empty: charge indexes are per user, so no
|
|
91
|
+
* single call can enumerate everybody's. Use `exportPayoutsForUsers`
|
|
92
|
+
* with an explicit user-id list.
|
|
93
93
|
*/
|
|
94
94
|
export const exportPayouts = async (bot, stores, input) => {
|
|
95
95
|
if (input.from >= input.to) {
|