@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 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;
@@ -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;
@@ -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) => {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"AAkDA,OAAO,EACN,KAAK,aAAa,EAIlB,MAAM,aAAa,CAAC;AAcrB;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAE1E;AAiCD,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,OAAO,EAAE;QAAE,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAC7D,GAAG,EAAE;QACJ,UAAU,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,MAAM,CAAC;YACZ,YAAY,EAAE,MAAM,CAAC;YACrB,eAAe,EAAE,MAAM,EAAE,CAAC;SAC1B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,cAAc,IAAI,OAAO,CAAC;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC,CAAC;QAClE,+DAA+D;QAC/D,WAAW,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACzE,CAAC;CACF,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC;AAgBnE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CASnE;AAED,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG;IACnC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG;QACjB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;KAC5D,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,8EAA8E;IAC9E,SAAS,EAAE,qBAAqB,CAAC;IACjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5C,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,mFAAmF;IACnF,MAAM,CAAC,EAAE,CACR,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,YAAY,KACb,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;IAChD,qFAAqF;IACrF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oFAAoF;IACpF,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EACjC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GACjE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CA4MtE;AAwFD,4EAA4E;AAC5E,KAAK,SAAS,GAAG;IAChB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD,CAAC;AAEF,0FAA0F;AAC1F,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS,GAAG;QACpB,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;KAC/D,CAAC;CACF,CAAC;AASF,MAAM,WAAW,mBAAmB;IACnC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;8CAI0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;uEAEmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,CAAC,GAAG,IAAI,KAC5C,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,GAAG,KACJ;IACJ,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AASF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EACvC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,EACnE,OAAO,GAAE,mBAAwB,GAC/B,yBAAyB,CAAC,GAAG,CAAC,CA0OhC"}
@@ -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
- ctx.waitUntil((async () => {
156
- await bot.updates.handleUpdate(update);
157
- if (rt.flush)
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 run = (async () => {
355
- await runtime.bot.updates.handleUpdate(job.update);
356
- if (runtime.flush)
357
- await runtime.flush();
358
- })();
359
- this.running.set(job.updateId, run);
360
- const settle = () => this.running.delete(job.updateId);
361
- run.then(settle, settle);
362
- return run;
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAEN,eAAe,EACf,aAAa,EACb,YAAY,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,gBAAgB,EAChB,uBAAuB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAqB9C,MAAM,YAAY,GAAG;IACpB,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,kBAAkB;IAClB,yBAAyB;CAChB,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAe,EAAE,MAAc;IACzD,MAAM,CAAC,GAAG,MAA6D,CAAC;IACxE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAuDD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC7B,OAAmE;IAEnE,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACzC,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC;YACJ,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC;YAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,IAAI,gBAAgB,CAAC;YACtD,MAAM,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;YAE/C,uEAAuE;YACvE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,OAAO;oBAAE,OAAO,OAAO,CAAC;YAC7B,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACtD,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;YACrC,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACvD,IAAI,CAAC,aAAa;oBACjB,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,IACC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC;oBACtD,aAAa,EACZ,CAAC;oBACF,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,MAAe,CAAC;gBACpB,IAAI,CAAC;oBACJ,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,kEAAkE;gBAClE,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBACD,qEAAqE;gBACrE,iEAAiE;gBACjE,0BAA0B;gBAC1B,IAAI,EAAE,CAAC,cAAc,EAAE,CAAC;oBACvB,MAAM,SAAS,GACd,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;wBACrC,uBAAuB,CAAC,MAAM,CAAC,CAAC;oBACjC,IAAI,CAAC,SAAS;wBAAE,OAAO,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBACpE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC;oBACxC,IAAI,CAAC;wBACJ,MAAM,MAAM,GAAG,MAAM,SAAS;6BAC5B,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;6BACpC,KAAK,CAAC,wCAAwC,EAAE;4BAChD,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;yBAC5B,CAAC,CAAC;wBACJ,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;4BAChB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC9D,OAAO,IAAI,QAAQ,CAAC,0BAA0B,EAAE;gCAC/C,MAAM,EAAE,GAAG;6BACX,CAAC,CAAC;wBACJ,CAAC;wBACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;wBACnD,OAAO,IAAI,QAAQ,CAAC,0BAA0B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBAClE,CAAC;gBACF,CAAC;gBACD,oEAAoE;gBACpE,8CAA8C;gBAC9C,GAAG,CAAC,SAAS,CACZ,CAAC,KAAK,IAAI,EAAE;oBACX,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAI,EAAE,CAAC,KAAK;wBAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1B,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC3C,mEAAmE;oBACnE,MAAM,eAAe,CACpB,GAAG,EACH,MAAM,QAAQ,EAAE,EAChB,uBAAuB,EACvB,KAAK,EACL,QAAQ,CACR,CAAC;gBACH,CAAC,CAAC,CACF,CAAC;gBACF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,sFAAsF;YACtF,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;gBACrE,IAAI,CAAC,aAAa;oBACjB,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,IACC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,aAAa,EAClE,CAAC;oBACF,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC7B,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBAC1B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACnD,CAAC,CAAC;gBACH,GAAG,CAAC,SAAS,CACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACvB,YAAY,CACX,GAAG,EACH,GAAG,EACH,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,iBAAiB,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,EACpG,gBAAgB,CAChB,CACD,CACD,CAAC;gBACF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,uEAAuE;YACvE,uEAAuE;YACvE,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC5D,IAAI,CAAC,aAAa;oBACjB,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnE,MAAM,KAAK,GACV,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBACjD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,aAAa;oBAC1B,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,cAAc,GAAG,MAAM,eAAe,CAC3C,GAAG,EACH,GAAG,CAAC,MAAM,EACV,aAAa,CACb,CAAC;gBACF,GAAG,CAAC,OAAO,CAAC,8BAA8B,EAAE;oBAC3C,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACnD,CAAC,CAAC;gBACH,GAAG,CAAC,SAAS,CACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACvB,YAAY,CACX,GAAG,EACH,GAAG,EACH,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,qCAAqC,UAAU,CAAC,MAAM,CAAC,EAAE,EACrF,gBAAgB,CAChB,CACD,CACD,CAAC;gBACF,OAAO,IAAI,QAAQ,CAClB,IAAI,IAAI,oBAAoB,GAAG,CAAC,MAAM,eAAe,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjF,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,gEAAgE;YAChE,IACC,GAAG,CAAC,QAAQ,KAAK,QAAQ;gBACzB,GAAG,CAAC,QAAQ,KAAK,SAAS;gBAC1B,GAAG,CAAC,QAAQ,KAAK,iBAAiB,EACjC,CAAC;gBACF,MAAM,MAAM,GAAG,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,GAAG,CAAC,CAAC;gBAClE,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,UAAU,MAAM,EAAE,EAAE,CAAC;oBACjE,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC5D,MAAM,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;oBAC9B,GAAG,CAAC,SAAS,CACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACvB,YAAY,CACX,GAAG,EACH,GAAG,EACH,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,mDAAmD,CACrF,CACD,CACD,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,aAAa;wBACjB,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;oBACnE,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBACtD,GAAG,CAAC,SAAS,CACZ,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACvB,YAAY,CACX,GAAG,EACH,GAAG,EACH,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,oCAAoC,CACtE,CACD,CACD,CAAC;gBACH,CAAC;qBAAM,IACN,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,CAAC,EAChE,CAAC;oBACF,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACnD,OAAO,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;IACF,CAAC,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,uCAAuC;AACvC,KAAK,UAAU,eAAe,CAC7B,GAAc,EACd,MAAc,EACd,aAAqB;IAErB,MAAM,cAAc,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAY,CAAC,CAAC,CAAC;IAC9D,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;QACxB,GAAG,EAAE,GAAG,MAAM,GAAG;QACjB,YAAY,EAAE,aAAa;QAC3B,eAAe,EAAE,cAAc;KAC/B,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,SAAS,WAAW,CAAC,MAAqB;IACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACpD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AACnC,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,MAAM,GAAG,GAAG;IACzC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QAC1C,MAAM;QACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAC/C,CAAC,CAAC;AACJ,CAAC;AAMD,SAAS,eAAe,CAAC,IAAa;IACrC,MAAM,CAAC,GAAG,IAAkE,CAAC;IAC7E,MAAM,MAAM,GAAe;QAC1B,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/D,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC5D,OAAO,EACN,OAAO,CAAC,EAAE,OAAO,KAAK,QAAQ;YAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACxD,CAAC,CAAC,EAAE;KACN,CAAC;IACF,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,qEAAqE;AACrE,SAAS,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,CAAoB;IACvC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG;QACZ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QAChD,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;KACpB;SACC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO;QACtB,CAAC,CAAC,iBAAiB,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe;QACvD,CAAC,CAAC,EAAE,CAAC;IACN,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG;IACxB,UAAU,EAAE,MAAM;IAClB,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;CAClC,CAAC;AAEX,yFAAyF;AACzF,SAAS,UAAU,CAAC,IAAa;IAChC,MAAM,CAAC,GAAG,MAAM,CAAE,IAAwC,EAAE,UAAU,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AA0CD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AAW3D,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE,CACnC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;AAChD,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CACnC,OAAmE,EACnE,UAA+B,EAAE;IAEjC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC;IAC/C,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC;IAC7D,MAAM,gBAAgB,GAAG,aAAa,EAAE,CAAC;IAEzC,OAAO,MAAM,oBAAoB;QAKd;QACA;QALlB,qGAAqG;QACpF,OAAO,GAAG,IAAI,GAAG,EAAyB,CAAC;QAE5D,YACkB,KAAwB,EACxB,GAAQ;YADR,UAAK,GAAL,KAAK,CAAmB;YACxB,QAAG,GAAH,GAAG,CAAK;QACvB,CAAC;QAEJ;;;;;;WAMG;QACK,IAAI,CAAC,OAAyB,EAAE,GAAc;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACb,SAAS,CAAC,IAAI,CAAC,2CAA2C,EAAE;oBAC3D,SAAS,EAAE,GAAG,CAAC,QAAQ;oBACvB,OAAO,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC;iBACzB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,OAAO,CAAC,KAAK;oBAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1C,CAAC,CAAC,EAAE,CAAC;YACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACZ,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAgB;YAC3B,IACC,OAAO,CAAC,MAAM,KAAK,MAAM;gBACzB,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,EAC3C,CAAC;gBACF,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,QAAQ,KAAK,IAAI;gBACpB,OAAO,IAAI,QAAQ,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACnE,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACrD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;gBAC7C,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBAC3B,QAAQ;oBACR,MAAM;oBACN,QAAQ,EAAE,CAAC;oBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;iBACF,CAAC,CAAC;gBACvB,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC9B,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,CAAC;YACH,qEAAqE;YACrE,wEAAwE;YACxE,iDAAiD;YACjD,IACC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC,KAAK,SAAS;gBAC9D,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EAC7C,CAAC;gBACF,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACvE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;aAC/C,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,KAAK;YACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;YAChE,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO;YACnC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAY,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO;YACR,CAAC;YAED,IAAI,EAAgC,CAAC;YACrC,IAAI,KAAgD,CAAC;YACrD,IAAI,CAAC;gBACJ,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,6EAA6E;gBAC7E,2EAA2E;gBAC3E,MAAM,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;oBAClB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;wBACzB,KAAK,GAAG,UAAU,CACjB,GAAG,EAAE,CACJ,MAAM,CACL,IAAI,KAAK,CACR,oBAAoB,gBAAgB,kBAAkB,CACtD,CACD,EACF,gBAAgB,CAChB,CAAC;oBACH,CAAC,CAAC;iBACF,CAAC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAClB,SAAS,CAAC,KAAK,CAAC,sBAAsB,EAAE;oBACvC,SAAS,EAAE,GAAG,CAAC,QAAQ;oBACvB,OAAO,EAAE,GAAG,CAAC,QAAQ;oBACrB,YAAY,EAAE,WAAW;oBACzB,GAAG,EAAE,KAAK;iBACV,CAAC,CAAC;gBACH,IAAI,EAAE,EAAE,CAAC;oBACR,MAAM,OAAO,GAAG,EAAE,CAAC;oBACnB,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;yBACjD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACb,eAAe,CACd,OAAO,CAAC,GAAG,EACX,GAAG,EACH,0BAA0B,GAAG,CAAC,QAAQ,SAAS,EAC/C,KAAK,EACL,OAAO,CAAC,aAAa,IAAI,gBAAgB,CACzC,CACD;yBACA,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;gBACD,IAAI,GAAG,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC1C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC1B,OAAO;gBACR,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAChC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CACpE,CAAC;gBACF,OAAO;YACR,CAAC;oBAAS,CAAC;gBACV,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;YAED,oEAAoE;YACpE,yEAAyE;YACzE,sEAAsE;YACtE,oDAAoD;YACpD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBACzC,SAAS,EAAE,GAAG,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU;aACtC,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;QAED,+FAA+F;QACvF,KAAK,CAAC,MAAM,CACnB,QAAgB,EAChB,QAAuB;YAEvB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClD,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACvB,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;oBAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAW,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACpB,OAAO,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;wBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC7B,IAAI,OAAO,KAAK,SAAS;4BAAE,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjE,CAAC;oBACD,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/B,CAAC;gBACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC;gBAC3D,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;oBACtB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACP,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAEO,KAAK,CAAC,YAAY;YACzB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/bot/worker.ts"],"names":[],"mappings":"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"}
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AAQH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAChF,KAAK,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE9C,MAAM,MAAM,OAAO,GAChB,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEX,MAAM,MAAM,SAAS,GAClB,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,SAAS,EAAE,GACpB;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEzC,yGAAyG;AACzG,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvD,UAAU,SAAS;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;CACxD;AAED,kFAAkF;AAClF,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAChD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,UAAU,WAAY,SAAQ,SAAS;IACtC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;CACtB;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAc,SAAQ,WAAW;IACjD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;AAEvD,kFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AA2DjE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AA8BzC,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAG5C;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAIhD;AAsYD,MAAM,WAAW,MAAM;IACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,4BAA4B;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,uFAAuF;IACvF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7D,uFAAuF;IACvF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C;;;OAGG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;CACrD;AAED,MAAM,WAAW,IAAK,SAAQ,MAAM;IACnC,oEAAoE;IACpE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,WAAW,IAAI,MAAM,CAAC;IACtB,qFAAqF;IACrF,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAmQD,uBAAuB;AACvB,eAAO,MAAM,GAAG,EAAE,MAOhB,CAAC;AAQH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAkExD"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/universal/log.ts"],"names":[],"mappings":"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"}
@@ -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
- const dur = performance.now() - began;
569
- const failed = err !== undefined && err !== null;
570
- const printed = err instanceof Error && caught.has(err) ? err : undefined;
571
- // What spans inside this one printed stays printed for the spans around it.
572
- for (const e of caught)
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.2.1",
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",