@adriangalilea/utils 9.2.1 → 9.4.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 +11 -1
- package/dist/bot/access-control.d.ts +7 -7
- package/dist/bot/language.d.ts +5 -5
- package/dist/bot/llm.d.ts +5 -5
- package/dist/bot/payments/plugin.d.ts +7 -7
- package/dist/bot/worker.d.ts +14 -0
- package/dist/bot/worker.d.ts.map +1 -1
- package/dist/bot/worker.js +88 -14
- package/dist/bot/worker.js.map +1 -1
- package/dist/universal/log.d.ts +24 -0
- package/dist/universal/log.d.ts.map +1 -1
- package/dist/universal/log.js +226 -44
- package/dist/universal/log.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -160,6 +160,16 @@ Node, Bun and Deno write every event through `console.error` (stdout stays data,
|
|
|
160
160
|
| `LOG_TIME` | `setLogTime` | `1`, `0` | off. Puts a dim local `HH:MM:SS` before human lines; json always carries `time` |
|
|
161
161
|
| `LOG_LEVEL`, `{SCOPE}_LOG_LEVEL` | `setLogLevel` | the levels | `info` |
|
|
162
162
|
| `LOG_SERVICE` | `setLogService` | a name | the entry script's name without extension. A Worker or browser has none: set it, or the first json event panics |
|
|
163
|
+
| `LOG_SHIP` | `setLogShip` | an http(s) URL | unset. Every event that passes its threshold is also POSTed there (Shipping) |
|
|
164
|
+
| `LOG_SHIP_TOKEN` | `setLogShipToken` | a token | unset. Sent as `Authorization: Bearer` with each batch; a browser sends none, and `setLogShipToken` in one panics |
|
|
165
|
+
|
|
166
|
+
**Shipping.** With `LOG_SHIP` set, the logger also POSTs its events to that URL, so a process ships its stream with no code:
|
|
167
|
+
|
|
168
|
+
```sh
|
|
169
|
+
LOG_SHIP=https://events.untitled.garden/ingest LOG_SHIP_TOKEN=… node server.js
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
What ships is the stream's json line, byte for byte, whatever the console renders (human at a terminal included). A batch is lines joined by `\n`, `Content-Type: text/plain;charset=utf-8`, at most 64 KB and 50 events. It leaves 2s after its first event, at 50 events, when a span opened outside any local span ends (a root span, or a request joined from its caller: its whole trace leaves together), before a Node or Bun process exits on its own (`beforeExit`), and in a browser on `visibilitychange: hidden` and `pagehide` through `sendBeacon`. `flushLog()` sends what waits and resolves when nothing is in flight: a Worker hands it to `ctx.waitUntil(flushLog())`, a serverless function to its runtime's `after`, and a process that calls `process.exit()` awaits it first (nothing else runs after `exit`). Shipping never throws and never blocks a write: a refused or lost batch is one `warnOnce` under scope `ship`, an event over 64 KB stays on the console and warns once. The wire and the collector's answers are the contract's, in [utils](https://github.com/adriangalilea/utils#shipping).
|
|
163
173
|
|
|
164
174
|
**Reading the stream.** `LogEvent` is the wire shape as a type (a line, a span start, an ok end or a failed end, discriminated by `phase` and `status`), and `parseEvent(line)` reads one line back: an event, `null` for a line that is not one (pass it through), or a `Panic` for a JSON object with a `verb` key that breaks the shape.
|
|
165
175
|
|
|
@@ -750,7 +760,7 @@ Telegram's [Threaded Mode](https://telegram.org/blog/threaded-conversations) for
|
|
|
750
760
|
| `@adriangalilea/utils/bot/menu` | `botMenu({ command, description, items, privacy?, personalData?, adminContact })` — `/settings` command + InlineKeyboard router. Root view always renders a `🛡️ Privacy & data` submenu button that wraps the privacy policy link plus (if `personalData: { storage }`) 🗑 Forget + 📥 Export buttons. Items take `keepRow` (render on the same row as the next item — e.g. a two-per-row language picker) and `rootExtra` (render at the bottom of the root menu, below Privacy & data). `label` / `header` / `style` / `visible` resolvers may be **async** (read your db at render time — never cache render strings in the session); `parseMode: 'HTML'` renders the header formatted (you own escaping); `personalData.onForget(ctx, userId)` wipes YOUR tables inside the same try as the session delete, so Forget either forgets everything or reports failure. `toggleMenuItem({ id, read, write, label: { off, on }, toast? })` — convenience factory for boolean-toggle items with dynamic label + optional toast, storage-agnostic via `read`/`write` closures. |
|
|
751
761
|
| `@adriangalilea/utils/bot/payments` | `botPayments({ session, storage, paysupport, paysupportHint?, legal, waiver, vip?, credits?, perks? })` — Telegram Stars monetization in one drop-in plugin. **Three axes, all optional:** `vip` (positional tier ladder — single rung in v1 is just `vip: [{...}]`, ladder is `vip: [{...}, {...}]`; ids are `vip.1`, `vip.2`, …), `credits` (consumable balance + top-up packs `credits.1`, `credits.2`, …), `perks` (orthogonal one-shot unlocks `perks.<key>`). **Surface:** `ctx.payments.atLeast('vip')` / `atLeast('vip.2')` (typed rank check), `ctx.payments.tier()` / `.tier.level()` / `.tier.label()`, `ctx.payments.credits.{balance, consume, tryConsume}` (throws `InsufficientCredits`), `ctx.payments.has(perkId)`, `await ctx.payments.require('vip', { feature? })` (gate that sends a localized upgrade prompt deep-linked to `/settings → 💎 VIP`), `await ctx.payments.invoice(productKey)` (threads Art. 103(m) TRLGDCU consent inline before `sendInvoice`). **Owns:** waiver consent flow (versioned text → forces re-consent on bump, snapshotted on every charge for audit), `/paysupport` slash command (Telegram ToS §6.5; `paysupportHint` overrides the where-to-manage-charges line when your menu isn't `/settings`), idempotent `successful_payment` fulfillment via `pay:idempotency:{chargeId}` sentinel, lazy subscription expiry (no cron needed), tier upgrade auto-cancel of the lower rung's renewal, and admin-DM refund approval (mirror of `accessControl`'s [✅ Aprobar][❌ Denegar] pattern). **Returns:** `{ plugin, menuItem, payouts, admin, onFulfilled, onRefunded }` — `menuItem` is the drop-in `💎 VIP` entry for `botMenu`; `admin.{listCharges, getCharge}` backs custom admin commands; `payouts.{record, list, export, exportForUsers}` is the Fragment payout ledger (you receive TON, log the EUR conversion, export time-windowed CSV/JSON for your gestor); `onFulfilled(productKey \| '*', handler)` / `onRefunded(...)` register fire-and-forget hooks (purchase applied / admin-approved refund — a revenue ledger writes on one, reverses on the other). **Stars-only by design** — Telegram ToS §6.2 forbids third-party payment providers for digital goods. Crypto Pay deferred (MiCA risk); Stripe-outside-Telegram is a future v2 channel. Full compliance memo (Spanish-autónomo seller-of-record analysis, Verifactu vs Crea y Crece, MiCA, Art. 103(m) waiver text, GDPR retention) in `src/bot/payments/CLAUDE.md`. |
|
|
752
762
|
| `@adriangalilea/utils/bot/create` | `createBot<S>({ token?, storage?, initial?, admins?, language?, menu?, access?, payments?, handlers?, worker? })` — the composer (see "One bot file, ideation → production" above). Returns `{ build, session, poll, isMain, fetch }`: `poll()` long-polls, `export default app` is a complete Worker, `app.session(ctx)` / the `handlers` callback's `session(ctx)` is the TYPED accessor for your `S` fields. Owns storage+session wiring; resolves storage per environment (D1 binding → `bot/storage-d1`; `BOT_PERSIST` path → sqlite, `redis://` → redis, lazily-imported optional peers; else announced-ephemeral memory) — or pass `storage: (env) => Storage` when the choice is env-dependent (e.g. a D1 binding not named `DB`). Boot NARRATES the composition (`session storage kind="memory (ephemeral …)"`, `features features=["language(en,es)","menu(/settings)"]`) so every implicit decision is visible where you're looking. Runnable demo: `pnpm demo:bot`. |
|
|
753
|
-
| `@adriangalilea/utils/bot/worker` | `botWorkerFetch(resolve)` — the Cloudflare Worker cap: secret-checked webhook (ack fast, work + storage flush ride `ctx.waitUntil`, errors DM admins throttled), `POST /setup` (webhook registration with handler-derived `allowed_updates` + a commit-narrating 🚀 deploy DM from the request body), `POST /deploy-started` (the 🛳 "what is shipping" DM — curl it from your deploy script on the still-live version, body `{sha, author, message, etaSeconds?}`), operator-authed `/pause` `/resume` `/webhook-status` (+ `statusExtra`), and a `routes` escape hatch tried before the built-ins. Structural bot type — no workers-types dependency. |
|
|
763
|
+
| `@adriangalilea/utils/bot/worker` | `botWorkerFetch(resolve)` — the Cloudflare Worker cap: secret-checked webhook (ack fast, work + storage flush ride `ctx.waitUntil`, errors DM admins throttled), `POST /setup` (webhook registration with handler-derived `allowed_updates` + a commit-narrating 🚀 deploy DM from the request body), `POST /deploy-started` (the 🛳 "what is shipping" DM — curl it from your deploy script on the still-live version, body `{sha, author, message, etaSeconds?}`), operator-authed `/pause` `/resume` `/webhook-status` (+ `statusExtra`), and a `routes` escape hatch tried before the built-ins. `afterUpdate(ctx.updateId, work)` hands off work the reply does not wait for (a cache warm-up): the update ends without it, so it never holds the conversation's next update or counts toward the durable runner's attempt bound, and the Worker stays alive until it settles (`afterWorkMs` on the runner). Structural bot type — no workers-types dependency. |
|
|
754
764
|
| `@adriangalilea/utils/bot/flags` | `defineFlags(spec, { read, write? })` — feature flags declared ONCE in code, resolved LIVE from the bot's operator-config record (D1 json row, Redis hash — storage-agnostic, Worker-safe, zero deps). Each flag: `{ kind: 'bool'\|'number'\|'string', label, help?, default }`, where `default` is a scalar or a **tier map** `{ free, vip?, 'vip.N'? }` resolved off `ctx.payments.tier()` — "free users get this limit, premium users get that model" is one declaration, zero branching at the call site (ladder walks down: exact rung → lower rungs → `vip` → `free`). Read sites: `await flags.<key>(ctx)` — stored override wins over the code default, per-ctx reads coalesce into one config fetch. `flags.describe()` is the JSON schema admin panels render generically, so a new flag appears in every panel with zero panel edits; `flags.set(ctx, key, value)` writes a kind-checked live override (`null` clears it — RFC 7386 null-delete, matching SQLite `json_patch`); `flags.overrides(ctx)` lists what's overridden. Corrupt stored values scream (`SourcedError`); bad specs panic at construction. |
|
|
755
765
|
| `@adriangalilea/utils/bot/storage-d1` | `d1Storage({ db, table? })` — `@gramio/storage` adapter over a D1 `session` table (schema in the module doc). `flush()` matters: the session plugin writes un-awaited and workerd freezes the isolate the instant `fetch()` returns — hand `flush` to `bot/worker` (automatic via `createBot`) so writes survive. |
|
|
756
766
|
|
|
@@ -318,6 +318,13 @@ export declare const accessControl: (opts: AccessControlOptions) => Plugin<Recor
|
|
|
318
318
|
$clear: () => Promise<void>;
|
|
319
319
|
};
|
|
320
320
|
};
|
|
321
|
+
location: {
|
|
322
|
+
session: {
|
|
323
|
+
access?: AccessRecord;
|
|
324
|
+
} & LangSession & {
|
|
325
|
+
$clear: () => Promise<void>;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
321
328
|
channel_post: {
|
|
322
329
|
session: {
|
|
323
330
|
access?: AccessRecord;
|
|
@@ -500,13 +507,6 @@ export declare const accessControl: (opts: AccessControlOptions) => Plugin<Recor
|
|
|
500
507
|
$clear: () => Promise<void>;
|
|
501
508
|
};
|
|
502
509
|
};
|
|
503
|
-
location: {
|
|
504
|
-
session: {
|
|
505
|
-
access?: AccessRecord;
|
|
506
|
-
} & LangSession & {
|
|
507
|
-
$clear: () => Promise<void>;
|
|
508
|
-
};
|
|
509
|
-
};
|
|
510
510
|
passport_data: {
|
|
511
511
|
session: {
|
|
512
512
|
access?: AccessRecord;
|
package/dist/bot/language.d.ts
CHANGED
|
@@ -228,6 +228,11 @@ declare const buildLanguagePlugin: <Lang extends string>(args: {
|
|
|
228
228
|
$clear: () => Promise<void>;
|
|
229
229
|
};
|
|
230
230
|
};
|
|
231
|
+
location: {
|
|
232
|
+
session: SessionLike & {
|
|
233
|
+
$clear: () => Promise<void>;
|
|
234
|
+
};
|
|
235
|
+
};
|
|
231
236
|
channel_post: {
|
|
232
237
|
session: SessionLike & {
|
|
233
238
|
$clear: () => Promise<void>;
|
|
@@ -358,11 +363,6 @@ declare const buildLanguagePlugin: <Lang extends string>(args: {
|
|
|
358
363
|
$clear: () => Promise<void>;
|
|
359
364
|
};
|
|
360
365
|
};
|
|
361
|
-
location: {
|
|
362
|
-
session: SessionLike & {
|
|
363
|
-
$clear: () => Promise<void>;
|
|
364
|
-
};
|
|
365
|
-
};
|
|
366
366
|
passport_data: {
|
|
367
367
|
session: SessionLike & {
|
|
368
368
|
$clear: () => Promise<void>;
|
package/dist/bot/llm.d.ts
CHANGED
|
@@ -243,6 +243,11 @@ declare const buildHistoryPlugin: (args: {
|
|
|
243
243
|
$clear: () => Promise<void>;
|
|
244
244
|
};
|
|
245
245
|
};
|
|
246
|
+
location: {
|
|
247
|
+
session: LLMSessionLike & {
|
|
248
|
+
$clear: () => Promise<void>;
|
|
249
|
+
};
|
|
250
|
+
};
|
|
246
251
|
channel_post: {
|
|
247
252
|
session: LLMSessionLike & {
|
|
248
253
|
$clear: () => Promise<void>;
|
|
@@ -373,11 +378,6 @@ declare const buildHistoryPlugin: (args: {
|
|
|
373
378
|
$clear: () => Promise<void>;
|
|
374
379
|
};
|
|
375
380
|
};
|
|
376
|
-
location: {
|
|
377
|
-
session: LLMSessionLike & {
|
|
378
|
-
$clear: () => Promise<void>;
|
|
379
|
-
};
|
|
380
|
-
};
|
|
381
381
|
passport_data: {
|
|
382
382
|
session: LLMSessionLike & {
|
|
383
383
|
$clear: () => Promise<void>;
|
|
@@ -118,6 +118,13 @@ declare const buildPlugin: (args: {
|
|
|
118
118
|
$clear: () => Promise<void>;
|
|
119
119
|
};
|
|
120
120
|
};
|
|
121
|
+
location: {
|
|
122
|
+
session: {
|
|
123
|
+
pay?: import("./types.js").PaymentsSession;
|
|
124
|
+
} & import("../lang.js").LangSession & {
|
|
125
|
+
$clear: () => Promise<void>;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
121
128
|
channel_post: {
|
|
122
129
|
session: {
|
|
123
130
|
pay?: import("./types.js").PaymentsSession;
|
|
@@ -300,13 +307,6 @@ declare const buildPlugin: (args: {
|
|
|
300
307
|
$clear: () => Promise<void>;
|
|
301
308
|
};
|
|
302
309
|
};
|
|
303
|
-
location: {
|
|
304
|
-
session: {
|
|
305
|
-
pay?: import("./types.js").PaymentsSession;
|
|
306
|
-
} & import("../lang.js").LangSession & {
|
|
307
|
-
$clear: () => Promise<void>;
|
|
308
|
-
};
|
|
309
|
-
};
|
|
310
310
|
passport_data: {
|
|
311
311
|
session: {
|
|
312
312
|
pay?: import("./types.js").PaymentsSession;
|
package/dist/bot/worker.d.ts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { type AlertThrottle } from "./notify.js";
|
|
2
|
+
/**
|
|
3
|
+
* Hand off work that need not finish before the update does: a cache warm-up, a
|
|
4
|
+
* prefetch, anything the reply does not wait for. The update ends without it, so it
|
|
5
|
+
* never holds the conversation's next update back and never counts toward the
|
|
6
|
+
* runner's attempt bound; the dispatcher keeps the Worker alive until it settles
|
|
7
|
+
* (`waitUntil` on the plain webhook, the runner's own alarm when durable). Outside
|
|
8
|
+
* those dispatchers (long-poll, a test) the work simply runs. It should handle its
|
|
9
|
+
* own failures; one that rejects is logged.
|
|
10
|
+
*/
|
|
11
|
+
export declare function afterUpdate(updateId: number, work: Promise<unknown>): void;
|
|
2
12
|
/** The slice of a gramio `Bot` the worker cap drives — structural, so versions don't pin. */
|
|
3
13
|
export type WorkerBot = {
|
|
4
14
|
info?: {
|
|
@@ -113,6 +123,10 @@ export interface UpdateRunnerOptions {
|
|
|
113
123
|
* eventually-dropped failure. Generous by default (slow transcript/LLM work is the point
|
|
114
124
|
* of the alarm design). Default 180s. */
|
|
115
125
|
attemptTimeoutMs?: number;
|
|
126
|
+
/** How long an idle runner stays alive for work its updates handed off (`afterUpdate`).
|
|
127
|
+
* A new update ends the wait at once; work still running past it may be evicted with
|
|
128
|
+
* the object. Default 10 min (an alarm invocation may run 15). */
|
|
129
|
+
afterWorkMs?: number;
|
|
116
130
|
}
|
|
117
131
|
/** The Durable Object surface the factory-built runner class exposes. */
|
|
118
132
|
export type TelegramUpdateRunnerClass<Env> = new (state: UpdateRunnerState, env: Env) => {
|
package/dist/bot/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"AAkDA,OAAO,EACN,KAAK,aAAa,EAIlB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/worker.js
CHANGED
|
@@ -51,6 +51,46 @@ import { log as root } from "../universal/log.js";
|
|
|
51
51
|
import { alertAdminError, alertThrottle, notifyAdmins, } from "./notify.js";
|
|
52
52
|
import { telegramUpdateId, telegramUpdatePartition, } from "./update-identity.js";
|
|
53
53
|
const log = root.scope("bot").scope("worker");
|
|
54
|
+
// --- work after the update -------------------------------------------------
|
|
55
|
+
/** Work handed off by the update being dispatched, by update id. A slot exists only while a
|
|
56
|
+
* dispatcher here runs that update, so nothing is kept for an update nobody collects. */
|
|
57
|
+
const handedOff = new Map();
|
|
58
|
+
/**
|
|
59
|
+
* Hand off work that need not finish before the update does: a cache warm-up, a
|
|
60
|
+
* prefetch, anything the reply does not wait for. The update ends without it, so it
|
|
61
|
+
* never holds the conversation's next update back and never counts toward the
|
|
62
|
+
* runner's attempt bound; the dispatcher keeps the Worker alive until it settles
|
|
63
|
+
* (`waitUntil` on the plain webhook, the runner's own alarm when durable). Outside
|
|
64
|
+
* those dispatchers (long-poll, a test) the work simply runs. It should handle its
|
|
65
|
+
* own failures; one that rejects is logged.
|
|
66
|
+
*/
|
|
67
|
+
export function afterUpdate(updateId, work) {
|
|
68
|
+
handedOff.get(updateId)?.push(work);
|
|
69
|
+
}
|
|
70
|
+
/** One update run with its hand-off slot open: `done` settles with the update, `after` then
|
|
71
|
+
* resolves to the work it handed off (each logging its own failure). */
|
|
72
|
+
function dispatchUpdate(bot, flush, update) {
|
|
73
|
+
const updateId = telegramUpdateId(update);
|
|
74
|
+
if (updateId !== null)
|
|
75
|
+
handedOff.set(updateId, []);
|
|
76
|
+
const done = (async () => {
|
|
77
|
+
await bot.updates.handleUpdate(update);
|
|
78
|
+
if (flush)
|
|
79
|
+
await flush();
|
|
80
|
+
})();
|
|
81
|
+
const take = () => takeHandedOff(updateId);
|
|
82
|
+
return { done, after: done.then(take, take) };
|
|
83
|
+
}
|
|
84
|
+
function takeHandedOff(updateId) {
|
|
85
|
+
if (updateId === null)
|
|
86
|
+
return [];
|
|
87
|
+
const work = handedOff.get(updateId) ?? [];
|
|
88
|
+
handedOff.delete(updateId);
|
|
89
|
+
return work.map((w) => w.catch((error) => log.error("work after the update failed", {
|
|
90
|
+
update_id: updateId,
|
|
91
|
+
err: error,
|
|
92
|
+
})));
|
|
93
|
+
}
|
|
54
94
|
const MESSAGE_KEYS = [
|
|
55
95
|
"message",
|
|
56
96
|
"edited_message",
|
|
@@ -152,11 +192,9 @@ export function botWorkerFetch(resolve) {
|
|
|
152
192
|
}
|
|
153
193
|
// Ack Telegram immediately, then keep the Worker alive for the slow
|
|
154
194
|
// work (avoids GramIO's 30s webhook timeout).
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
await rt.flush();
|
|
159
|
-
})().catch(async (error) => {
|
|
195
|
+
const { done, after } = dispatchUpdate(bot, rt.flush, update);
|
|
196
|
+
ctx.waitUntil(after.then((work) => Promise.all(work)));
|
|
197
|
+
ctx.waitUntil(done.catch(async (error) => {
|
|
160
198
|
log.error("update failed", { err: error });
|
|
161
199
|
// awaited so the DM rides the same waitUntil, not a frozen isolate
|
|
162
200
|
await alertAdminError(bot, await adminIds(), "webhook update failed", error, throttle);
|
|
@@ -325,12 +363,17 @@ export function telegramUpdateRunner(resolve, options = {}) {
|
|
|
325
363
|
const retryMs = options.retryMs ?? [5_000, 30_000];
|
|
326
364
|
const dedupeLimit = options.dedupeLimit ?? 512;
|
|
327
365
|
const attemptTimeoutMs = options.attemptTimeoutMs ?? 180_000;
|
|
366
|
+
const afterWorkMs = options.afterWorkMs ?? 600_000;
|
|
328
367
|
const fallbackThrottle = alertThrottle();
|
|
329
368
|
return class TelegramUpdateRunner {
|
|
330
369
|
state;
|
|
331
370
|
env;
|
|
332
371
|
/** Attempts still running in this instance, by update id; a timed-out one stays until it settles. */
|
|
333
372
|
running = new Map();
|
|
373
|
+
/** Work handed off by finished updates (`afterUpdate`), until it settles. */
|
|
374
|
+
handedOff = new Set();
|
|
375
|
+
/** Ends an idle runner's wait on handed-off work: a new update was enqueued. */
|
|
376
|
+
wake;
|
|
334
377
|
constructor(state, env) {
|
|
335
378
|
this.state = state;
|
|
336
379
|
this.env = env;
|
|
@@ -351,15 +394,43 @@ export function telegramUpdateRunner(resolve, options = {}) {
|
|
|
351
394
|
});
|
|
352
395
|
return running;
|
|
353
396
|
}
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
397
|
+
const { done, after } = dispatchUpdate(runtime.bot, runtime.flush, job.update);
|
|
398
|
+
this.running.set(job.updateId, done);
|
|
399
|
+
void after.then((work) => {
|
|
400
|
+
this.running.delete(job.updateId);
|
|
401
|
+
for (const w of work) {
|
|
402
|
+
this.handedOff.add(w);
|
|
403
|
+
void w.then(() => this.handedOff.delete(w));
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
return done;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* With no update queued, keep this invocation (and so the object) alive while
|
|
410
|
+
* handed-off work runs, until it settles, a new update arrives, or afterWorkMs.
|
|
411
|
+
*/
|
|
412
|
+
async holdForHandedOff() {
|
|
413
|
+
if (this.handedOff.size === 0)
|
|
414
|
+
return;
|
|
415
|
+
// Armed before the queue is read: an update enqueued in between still wakes it.
|
|
416
|
+
const woken = new Promise((resolve) => {
|
|
417
|
+
this.wake = resolve;
|
|
418
|
+
});
|
|
419
|
+
let timer;
|
|
420
|
+
if ((await this.state.storage.get(HEAD_KEY)) === undefined) {
|
|
421
|
+
runnerLog.debug("holding for handed-off work", {
|
|
422
|
+
work: this.handedOff.size,
|
|
423
|
+
});
|
|
424
|
+
await Promise.race([
|
|
425
|
+
Promise.all([...this.handedOff]),
|
|
426
|
+
woken,
|
|
427
|
+
new Promise((resolve) => {
|
|
428
|
+
timer = setTimeout(resolve, afterWorkMs);
|
|
429
|
+
}),
|
|
430
|
+
]);
|
|
431
|
+
}
|
|
432
|
+
clearTimeout(timer);
|
|
433
|
+
this.wake = undefined;
|
|
363
434
|
}
|
|
364
435
|
async fetch(request) {
|
|
365
436
|
if (request.method !== "POST" ||
|
|
@@ -394,6 +465,8 @@ export function telegramUpdateRunner(resolve, options = {}) {
|
|
|
394
465
|
(await this.state.storage.getAlarm()) === null) {
|
|
395
466
|
await this.state.storage.setAlarm(Date.now());
|
|
396
467
|
}
|
|
468
|
+
if (enqueued)
|
|
469
|
+
this.wake?.();
|
|
397
470
|
return new Response(JSON.stringify({ enqueued, duplicate: !enqueued }), {
|
|
398
471
|
headers: { "content-type": "application/json" },
|
|
399
472
|
});
|
|
@@ -459,6 +532,7 @@ export function telegramUpdateRunner(resolve, options = {}) {
|
|
|
459
532
|
queued_ms: Date.now() - job.enqueuedAt,
|
|
460
533
|
});
|
|
461
534
|
await this.scheduleNext();
|
|
535
|
+
await this.holdForHandedOff();
|
|
462
536
|
}
|
|
463
537
|
/** Retire the head job and retain a bounded completed-id window for webhook de-duplication. */
|
|
464
538
|
async finish(sequence, updateId) {
|
package/dist/bot/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/universal/log.d.ts
CHANGED
|
@@ -76,6 +76,20 @@
|
|
|
76
76
|
* log, stdout stays data, and cli/live's console patch keeps lines above
|
|
77
77
|
* a live region. Browsers and Workers use the level's console method.
|
|
78
78
|
*
|
|
79
|
+
* Shipping
|
|
80
|
+
* LOG_SHIP=<url> (setLogShip) also POSTs every event that passes its
|
|
81
|
+
* threshold there: the json line, whatever the console renders, in
|
|
82
|
+
* batches of lines joined by "\n" (text/plain;charset=utf-8, at most
|
|
83
|
+
* 64 KB and 50 events). A batch leaves 2s after its first event, at 50,
|
|
84
|
+
* when a span opened outside any local span ends (a request's trace
|
|
85
|
+
* leaves together), before a Node/Bun process exits (beforeExit), and in
|
|
86
|
+
* a browser on hidden or pagehide (sendBeacon). LOG_SHIP_TOKEN
|
|
87
|
+
* (setLogShipToken) is a bearer for servers; a browser sends none.
|
|
88
|
+
* flushLog() sends what waits and resolves when nothing is in flight:
|
|
89
|
+
* a Worker hands it to waitUntil, a process that calls process.exit()
|
|
90
|
+
* awaits it first. Shipping never throws and never blocks a write: a
|
|
91
|
+
* refused or lost batch is one warnOnce, scope ["ship"].
|
|
92
|
+
*
|
|
79
93
|
* The wire shape is exported as LogEvent, and parseEvent(line) reads one back.
|
|
80
94
|
*/
|
|
81
95
|
export type LogLevel = "silent" | "error" | "warn" | "info" | "debug" | "trace";
|
|
@@ -147,6 +161,16 @@ export declare function setLogFormat(format: LogFormat): void;
|
|
|
147
161
|
export declare function setLogTime(on: boolean): void;
|
|
148
162
|
/** The program's name in every event. LOG_SERVICE overrides it. */
|
|
149
163
|
export declare function setLogService(name: string): void;
|
|
164
|
+
/** Where events are also POSTed, in batches. LOG_SHIP overrides it. */
|
|
165
|
+
export declare function setLogShip(url: string): void;
|
|
166
|
+
/** The bearer sent with each batch (servers only). LOG_SHIP_TOKEN overrides it. */
|
|
167
|
+
export declare function setLogShipToken(token: string): void;
|
|
168
|
+
/**
|
|
169
|
+
* Send what waits to LOG_SHIP and resolve when no batch is in flight. A
|
|
170
|
+
* Worker hands it to waitUntil; a process that calls process.exit() awaits it
|
|
171
|
+
* first. Never rejects: a lost batch is a warnOnce.
|
|
172
|
+
*/
|
|
173
|
+
export declare function flushLog(): Promise<void>;
|
|
150
174
|
export interface Logger {
|
|
151
175
|
error(message: string, fields?: Fields): void;
|
|
152
176
|
fail(message: string, fields?: Fields): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/universal/log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/universal/log.ts"],"names":[],"mappings":"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"}
|
package/dist/universal/log.js
CHANGED
|
@@ -76,6 +76,20 @@
|
|
|
76
76
|
* log, stdout stays data, and cli/live's console patch keeps lines above
|
|
77
77
|
* a live region. Browsers and Workers use the level's console method.
|
|
78
78
|
*
|
|
79
|
+
* Shipping
|
|
80
|
+
* LOG_SHIP=<url> (setLogShip) also POSTs every event that passes its
|
|
81
|
+
* threshold there: the json line, whatever the console renders, in
|
|
82
|
+
* batches of lines joined by "\n" (text/plain;charset=utf-8, at most
|
|
83
|
+
* 64 KB and 50 events). A batch leaves 2s after its first event, at 50,
|
|
84
|
+
* when a span opened outside any local span ends (a request's trace
|
|
85
|
+
* leaves together), before a Node/Bun process exits (beforeExit), and in
|
|
86
|
+
* a browser on hidden or pagehide (sendBeacon). LOG_SHIP_TOKEN
|
|
87
|
+
* (setLogShipToken) is a bearer for servers; a browser sends none.
|
|
88
|
+
* flushLog() sends what waits and resolves when nothing is in flight:
|
|
89
|
+
* a Worker hands it to waitUntil, a process that calls process.exit()
|
|
90
|
+
* awaits it first. Shipping never throws and never blocks a write: a
|
|
91
|
+
* refused or lost batch is one warnOnce, scope ["ship"].
|
|
92
|
+
*
|
|
79
93
|
* The wire shape is exported as LogEvent, and parseEvent(line) reads one back.
|
|
80
94
|
*/
|
|
81
95
|
import { assert, panic, SourcedError } from "../offensive.js";
|
|
@@ -468,6 +482,7 @@ function emit(d) {
|
|
|
468
482
|
// Every knob is read on every event, so a bad value screams whichever rendering is on.
|
|
469
483
|
const format = currentFormat();
|
|
470
484
|
const clock = timeEnabled();
|
|
485
|
+
const target = shipTarget();
|
|
471
486
|
const text = format === "json" ? json(d, now) : human(d, now, clock);
|
|
472
487
|
// Node: everything to stderr through console.error, which cli/live patches
|
|
473
488
|
// to keep lines above an active region. Elsewhere the level's method, so
|
|
@@ -476,6 +491,166 @@ function emit(d) {
|
|
|
476
491
|
console.error(text);
|
|
477
492
|
else
|
|
478
493
|
console[CONSOLE_METHOD[VERBS[d.verb].level]](text);
|
|
494
|
+
// What ships is the stream's json line, whatever the console renders.
|
|
495
|
+
if (target !== undefined)
|
|
496
|
+
ship(target, format === "json" ? text : json(d, now));
|
|
497
|
+
}
|
|
498
|
+
// --- shipping ----------------------------------------------------------------
|
|
499
|
+
/** A batch's ceiling in UTF-8 bytes: navigator.sendBeacon's. */
|
|
500
|
+
const SHIP_MAX_BYTES = 64 * 1024;
|
|
501
|
+
const SHIP_MAX_EVENTS = 50;
|
|
502
|
+
const SHIP_AFTER_MS = 2000;
|
|
503
|
+
let shipSetting;
|
|
504
|
+
let shipTokenSetting;
|
|
505
|
+
function parseShip(raw, source) {
|
|
506
|
+
if (!URL.canParse(raw))
|
|
507
|
+
panic(`unknown ${source}:`, raw, "(want a URL)");
|
|
508
|
+
const url = new URL(raw);
|
|
509
|
+
if (url.protocol !== "https:" && url.protocol !== "http:")
|
|
510
|
+
panic(`unknown ${source}:`, raw, "(want an http(s) URL)");
|
|
511
|
+
return url.href;
|
|
512
|
+
}
|
|
513
|
+
/** Where events are also POSTed, in batches. LOG_SHIP overrides it. */
|
|
514
|
+
export function setLogShip(url) {
|
|
515
|
+
shipSetting = parseShip(url, "log ship");
|
|
516
|
+
}
|
|
517
|
+
/** The bearer sent with each batch (servers only). LOG_SHIP_TOKEN overrides it. */
|
|
518
|
+
export function setLogShipToken(token) {
|
|
519
|
+
assert(sink !== "browser", "a browser ships without a token: any token in a page is public");
|
|
520
|
+
if (typeof token !== "string" || token.length === 0)
|
|
521
|
+
panic("setLogShipToken wants a non-empty token, got:", token);
|
|
522
|
+
shipTokenSetting = token;
|
|
523
|
+
}
|
|
524
|
+
// LOG_SHIP is read live like every variable; the parse is kept per value.
|
|
525
|
+
let shipParsed;
|
|
526
|
+
function shipTarget() {
|
|
527
|
+
const fromEnv = env("LOG_SHIP");
|
|
528
|
+
const raw = fromEnv ?? shipSetting;
|
|
529
|
+
if (raw === undefined)
|
|
530
|
+
return undefined;
|
|
531
|
+
if (shipParsed?.raw !== raw)
|
|
532
|
+
shipParsed = {
|
|
533
|
+
raw,
|
|
534
|
+
href: fromEnv === undefined ? raw : parseShip(raw, "LOG_SHIP"),
|
|
535
|
+
};
|
|
536
|
+
return shipParsed.href;
|
|
537
|
+
}
|
|
538
|
+
const shipLog = () => log.scope("ship");
|
|
539
|
+
const utf8 = new TextEncoder();
|
|
540
|
+
let batch;
|
|
541
|
+
let batchTimer;
|
|
542
|
+
const inflight = new Set();
|
|
543
|
+
let exitHooked = false;
|
|
544
|
+
function ship(target, text) {
|
|
545
|
+
hookExit();
|
|
546
|
+
const bytes = utf8.encode(text).length;
|
|
547
|
+
if (bytes > SHIP_MAX_BYTES) {
|
|
548
|
+
shipLog().warnOnce("event too large to ship", {
|
|
549
|
+
bytes,
|
|
550
|
+
limit: SHIP_MAX_BYTES,
|
|
551
|
+
});
|
|
552
|
+
return;
|
|
553
|
+
}
|
|
554
|
+
if (batch !== undefined &&
|
|
555
|
+
(batch.target !== target || batch.bytes + 1 + bytes > SHIP_MAX_BYTES))
|
|
556
|
+
send();
|
|
557
|
+
if (batch === undefined) {
|
|
558
|
+
batch = { target, lines: [], bytes: -1 };
|
|
559
|
+
// A pending batch never keeps a process alive: beforeExit sends it.
|
|
560
|
+
const timer = setTimeout(send, SHIP_AFTER_MS);
|
|
561
|
+
timer.unref?.();
|
|
562
|
+
batchTimer = timer;
|
|
563
|
+
}
|
|
564
|
+
batch.lines.push(text);
|
|
565
|
+
batch.bytes += 1 + bytes;
|
|
566
|
+
if (batch.lines.length >= SHIP_MAX_EVENTS)
|
|
567
|
+
send();
|
|
568
|
+
}
|
|
569
|
+
/** Take the waiting batch, if any, and stop its timer. */
|
|
570
|
+
function takeBatch() {
|
|
571
|
+
if (batchTimer !== undefined)
|
|
572
|
+
clearTimeout(batchTimer);
|
|
573
|
+
batchTimer = undefined;
|
|
574
|
+
const taken = batch;
|
|
575
|
+
batch = undefined;
|
|
576
|
+
return taken;
|
|
577
|
+
}
|
|
578
|
+
function send() {
|
|
579
|
+
const b = takeBatch();
|
|
580
|
+
if (b === undefined)
|
|
581
|
+
return;
|
|
582
|
+
const p = post(b.target, b.lines.join("\n")).finally(() => inflight.delete(p));
|
|
583
|
+
inflight.add(p);
|
|
584
|
+
}
|
|
585
|
+
async function post(target, body) {
|
|
586
|
+
const token = sink === "browser"
|
|
587
|
+
? undefined
|
|
588
|
+
: (env("LOG_SHIP_TOKEN") ?? shipTokenSetting);
|
|
589
|
+
const headers = {
|
|
590
|
+
"content-type": "text/plain;charset=utf-8",
|
|
591
|
+
};
|
|
592
|
+
if (token !== undefined)
|
|
593
|
+
headers.authorization = `Bearer ${token}`;
|
|
594
|
+
try {
|
|
595
|
+
const res = await fetch(target, {
|
|
596
|
+
method: "POST",
|
|
597
|
+
headers,
|
|
598
|
+
body,
|
|
599
|
+
keepalive: sink === "browser",
|
|
600
|
+
});
|
|
601
|
+
if (res.status === 204)
|
|
602
|
+
return;
|
|
603
|
+
shipLog().warnOnce("log batch refused", {
|
|
604
|
+
status: res.status,
|
|
605
|
+
answer: (await res.text()).slice(0, 1000),
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
catch (err) {
|
|
609
|
+
shipLog().warnOnce("log batch not delivered", { err });
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
// Hidden is the last moment a page reliably sends anything; sendBeacon is the
|
|
613
|
+
// one request the browser finishes after the page is gone.
|
|
614
|
+
function beacon() {
|
|
615
|
+
const b = takeBatch();
|
|
616
|
+
if (b === undefined)
|
|
617
|
+
return;
|
|
618
|
+
const page = globalThis;
|
|
619
|
+
if (!page.navigator.sendBeacon(b.target, b.lines.join("\n")))
|
|
620
|
+
shipLog().warnOnce("log batch refused by the browser", {
|
|
621
|
+
events: b.lines.length,
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
// Hooked on the first shipped event, so importing the logger has no effect.
|
|
625
|
+
function hookExit() {
|
|
626
|
+
if (exitHooked)
|
|
627
|
+
return;
|
|
628
|
+
exitHooked = true;
|
|
629
|
+
if (runtime.isNode || runtime.isBun) {
|
|
630
|
+
process.on("beforeExit", () => send());
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
633
|
+
if (sink !== "browser")
|
|
634
|
+
return;
|
|
635
|
+
const page = globalThis;
|
|
636
|
+
page.document.addEventListener("visibilitychange", () => {
|
|
637
|
+
if (page.document.visibilityState === "hidden")
|
|
638
|
+
beacon();
|
|
639
|
+
});
|
|
640
|
+
page.addEventListener("pagehide", beacon);
|
|
641
|
+
}
|
|
642
|
+
/**
|
|
643
|
+
* Send what waits to LOG_SHIP and resolve when no batch is in flight. A
|
|
644
|
+
* Worker hands it to waitUntil; a process that calls process.exit() awaits it
|
|
645
|
+
* first. Never rejects: a lost batch is a warnOnce.
|
|
646
|
+
*/
|
|
647
|
+
export async function flushLog() {
|
|
648
|
+
send();
|
|
649
|
+
while (inflight.size > 0) {
|
|
650
|
+
await Promise.all(inflight);
|
|
651
|
+
// A refused batch's warning is an event too: it ships next.
|
|
652
|
+
send();
|
|
653
|
+
}
|
|
479
654
|
}
|
|
480
655
|
const BOUND = 1024;
|
|
481
656
|
const warned = new Set();
|
|
@@ -531,6 +706,52 @@ function open(ctx, name, initial) {
|
|
|
531
706
|
parent,
|
|
532
707
|
fields,
|
|
533
708
|
});
|
|
709
|
+
function finish(err) {
|
|
710
|
+
const dur = performance.now() - began;
|
|
711
|
+
const failed = err !== undefined && err !== null;
|
|
712
|
+
const printed = err instanceof Error && caught.has(err) ? err : undefined;
|
|
713
|
+
// What spans inside this one printed stays printed for the spans around it.
|
|
714
|
+
for (const e of caught)
|
|
715
|
+
ctx.caught?.add(e);
|
|
716
|
+
if (!shown) {
|
|
717
|
+
// The end follows the decision made at begin: no end without its
|
|
718
|
+
// start. A failure is never lost to it: one line of the nearest
|
|
719
|
+
// shown span says the span failed.
|
|
720
|
+
if (!failed || !admits(ctx.scope, "error"))
|
|
721
|
+
return;
|
|
722
|
+
if (err instanceof Error)
|
|
723
|
+
ctx.caught?.add(err);
|
|
724
|
+
emit({
|
|
725
|
+
verb: "fail",
|
|
726
|
+
msg: name,
|
|
727
|
+
scope: ctx.scope,
|
|
728
|
+
depth: inner.depth,
|
|
729
|
+
trace: inner.owner === undefined ? undefined : trace,
|
|
730
|
+
span: inner.owner,
|
|
731
|
+
fields: { ...fields, ...added, err, dur_ms: round3(dur) },
|
|
732
|
+
printed,
|
|
733
|
+
});
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
if (failed && err instanceof Error)
|
|
737
|
+
ctx.caught?.add(err);
|
|
738
|
+
const shows = failed ? { ...added, err } : added;
|
|
739
|
+
emit({
|
|
740
|
+
verb: failed ? "fail" : "success",
|
|
741
|
+
msg: name,
|
|
742
|
+
scope: ctx.scope,
|
|
743
|
+
depth: ctx.depth,
|
|
744
|
+
phase: "end",
|
|
745
|
+
trace,
|
|
746
|
+
span: id,
|
|
747
|
+
parent,
|
|
748
|
+
status: failed ? "error" : "ok",
|
|
749
|
+
dur,
|
|
750
|
+
fields: { ...fields, ...shows },
|
|
751
|
+
shows,
|
|
752
|
+
printed,
|
|
753
|
+
});
|
|
754
|
+
}
|
|
534
755
|
// A hidden span is transparent: its lines and children attach to the nearest
|
|
535
756
|
// shown span, a joined remote one included (it is shown in its own process's
|
|
536
757
|
// stream). With none, its lines carry no ids, as lines outside any span.
|
|
@@ -565,50 +786,11 @@ function open(ctx, name, initial) {
|
|
|
565
786
|
end(err) {
|
|
566
787
|
assert(!ended, "span", name, "ended twice");
|
|
567
788
|
ended = true;
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
ctx.caught?.add(e);
|
|
574
|
-
if (!shown) {
|
|
575
|
-
// The end follows the decision made at begin: no end without its
|
|
576
|
-
// start. A failure is never lost to it: one line of the nearest
|
|
577
|
-
// shown span says the span failed.
|
|
578
|
-
if (!failed || !admits(ctx.scope, "error"))
|
|
579
|
-
return;
|
|
580
|
-
if (err instanceof Error)
|
|
581
|
-
ctx.caught?.add(err);
|
|
582
|
-
emit({
|
|
583
|
-
verb: "fail",
|
|
584
|
-
msg: name,
|
|
585
|
-
scope: ctx.scope,
|
|
586
|
-
depth: inner.depth,
|
|
587
|
-
trace: inner.owner === undefined ? undefined : trace,
|
|
588
|
-
span: inner.owner,
|
|
589
|
-
fields: { ...fields, ...added, err, dur_ms: round3(dur) },
|
|
590
|
-
printed,
|
|
591
|
-
});
|
|
592
|
-
return;
|
|
593
|
-
}
|
|
594
|
-
if (failed && err instanceof Error)
|
|
595
|
-
ctx.caught?.add(err);
|
|
596
|
-
const shows = failed ? { ...added, err } : added;
|
|
597
|
-
emit({
|
|
598
|
-
verb: failed ? "fail" : "success",
|
|
599
|
-
msg: name,
|
|
600
|
-
scope: ctx.scope,
|
|
601
|
-
depth: ctx.depth,
|
|
602
|
-
phase: "end",
|
|
603
|
-
trace,
|
|
604
|
-
span: id,
|
|
605
|
-
parent,
|
|
606
|
-
status: failed ? "error" : "ok",
|
|
607
|
-
dur,
|
|
608
|
-
fields: { ...fields, ...shows },
|
|
609
|
-
shows,
|
|
610
|
-
printed,
|
|
611
|
-
});
|
|
789
|
+
finish(err);
|
|
790
|
+
// A span opened outside any local span (a root, or a request joined
|
|
791
|
+
// from its caller) ends its trace here: what it wrote ships together.
|
|
792
|
+
if (ctx.caught === undefined)
|
|
793
|
+
send();
|
|
612
794
|
},
|
|
613
795
|
});
|
|
614
796
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/universal/log.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/universal/log.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adriangalilea/utils",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0",
|
|
4
4
|
"description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -223,8 +223,9 @@
|
|
|
223
223
|
"scripts": {
|
|
224
224
|
"build": "rm -rf dist && tsc",
|
|
225
225
|
"test": "tsx tests/metrics-test.ts",
|
|
226
|
-
"test:all": "pnpm run test && pnpm run test:log && pnpm run test:runtime && pnpm run test:text && pnpm run test:tg-html && pnpm run test:tg-md && pnpm run test:flags && pnpm run test:groups && pnpm run test:user && pnpm run test:language-picker && pnpm run test:self-echo && pnpm run test:update-identity && pnpm run test:update-runner &&pnpm run test:bot-text && pnpm run test:url && pnpm run test:bot-urls && pnpm run test:bot-updates && pnpm run test:bot-announce && pnpm run test:reactions && pnpm run test:llm-reset && pnpm run test:raw-writes && pnpm run test:worker-safe",
|
|
226
|
+
"test:all": "pnpm run test && pnpm run test:log && pnpm run test:log-ship && pnpm run test:runtime && pnpm run test:text && pnpm run test:tg-html && pnpm run test:tg-md && pnpm run test:flags && pnpm run test:groups && pnpm run test:user && pnpm run test:language-picker && pnpm run test:self-echo && pnpm run test:update-identity && pnpm run test:update-runner &&pnpm run test:bot-text && pnpm run test:url && pnpm run test:bot-urls && pnpm run test:bot-updates && pnpm run test:bot-announce && pnpm run test:reactions && pnpm run test:llm-reset && pnpm run test:raw-writes && pnpm run test:worker-safe",
|
|
227
227
|
"test:log": "tsx tests/log-test.ts",
|
|
228
|
+
"test:log-ship": "tsx tests/log-ship-test.ts",
|
|
228
229
|
"test:runtime": "tsx tests/runtime-test.ts",
|
|
229
230
|
"test:text": "tsx tests/text-test.ts",
|
|
230
231
|
"example": "tsx tests/example.ts",
|