cli-jaw 2.17.9 → 2.17.10

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.
Files changed (38) hide show
  1. package/dist/src/core/config.js +34 -3
  2. package/dist/src/core/config.js.map +1 -1
  3. package/dist/src/core/settings-merge.js +40 -0
  4. package/dist/src/core/settings-merge.js.map +1 -1
  5. package/dist/src/discord/bot.js +140 -26
  6. package/dist/src/discord/bot.js.map +1 -1
  7. package/dist/src/discord/reactions.js +92 -0
  8. package/dist/src/discord/reactions.js.map +1 -0
  9. package/dist/src/messaging/ack-reaction.js +192 -0
  10. package/dist/src/messaging/ack-reaction.js.map +1 -0
  11. package/dist/src/messaging/channel-capabilities.js +9 -3
  12. package/dist/src/messaging/channel-capabilities.js.map +1 -1
  13. package/dist/src/messaging/channel-validate.js +12 -0
  14. package/dist/src/messaging/channel-validate.js.map +1 -1
  15. package/dist/src/messaging/queue-notice.js +164 -0
  16. package/dist/src/messaging/queue-notice.js.map +1 -0
  17. package/dist/src/slack/api.js +93 -0
  18. package/dist/src/slack/api.js.map +1 -1
  19. package/dist/src/slack/auto-join.js +330 -0
  20. package/dist/src/slack/auto-join.js.map +1 -0
  21. package/dist/src/slack/bot.js +237 -21
  22. package/dist/src/slack/bot.js.map +1 -1
  23. package/dist/src/slack/manifest.js +12 -0
  24. package/dist/src/slack/manifest.js.map +1 -1
  25. package/dist/src/slack/send-only-client.js +14 -2
  26. package/dist/src/slack/send-only-client.js.map +1 -1
  27. package/dist/src/telegram/bot.js +146 -64
  28. package/dist/src/telegram/bot.js.map +1 -1
  29. package/dist/src/telegram/ipv4-fetch.js +74 -0
  30. package/dist/src/telegram/ipv4-fetch.js.map +1 -0
  31. package/dist/src/telegram/reactions.js +126 -0
  32. package/dist/src/telegram/reactions.js.map +1 -0
  33. package/package.json +1 -1
  34. package/public/locales/en.json +1 -0
  35. package/public/locales/ja.json +1 -0
  36. package/public/locales/ko.json +1 -0
  37. package/public/locales/zh.json +1 -0
  38. package/scripts/check-redaction-sinks.mjs +5 -0
@@ -1,5 +1,4 @@
1
1
  // ─── Telegram Bot ────────────────────────────────────
2
- import https from 'node:https';
3
2
  import nodeFetch from 'node-fetch';
4
3
  import { Bot } from 'grammy';
5
4
  import { sequentialize } from '@grammyjs/runner';
@@ -38,6 +37,10 @@ export { escapeHtmlTg, markdownToTelegramHtml, chunkTelegramMessage, createForwa
38
37
  // Re-exported from collect.ts (extracted in Phase B)
39
38
  import { orchestrateAndCollect, orchestrateAndCollectData } from '../orchestrator/collect.js';
40
39
  import { log } from '../core/logger.js';
40
+ import { createIpv4Fetch } from './ipv4-fetch.js';
41
+ import { createAckHandle, resolveAckConfig, shouldAck, TELEGRAM_ACK_DEFAULTS, } from '../messaging/ack-reaction.js';
42
+ import { createQueueNotice, QueueNoticeRegistry } from '../messaging/queue-notice.js';
43
+ import { createTelegramAckTransport, createTelegramNoticeTransport, TELEGRAM_REACTION_TIMEOUT_MS, } from './reactions.js';
41
44
  export { orchestrateAndCollect };
42
45
  import { startPendingElicitation, handleElicitationCallback, discardPendingElicitation, } from './elicitation-buttons.js';
43
46
  import { redactOutboundPayload, redactOutboundText, logErrorText, userErrorText } from '../messaging/redact.js';
@@ -176,6 +179,32 @@ function installTelegramTargetReplyForwarder() {
176
179
  });
177
180
  });
178
181
  }
182
+ /**
183
+ * Queue-notice teardowns. Module scope because tgOrchestrate is a closure inside
184
+ * _initTelegramInner, and both shutdown and re-init have to reach these.
185
+ */
186
+ const telegramNoticeRegistry = new QueueNoticeRegistry();
187
+ /** Covers the worst honest chain: a notice edit plus a replace-mode reaction. */
188
+ const TELEGRAM_NOTICE_DRAIN_MS = TELEGRAM_REACTION_TIMEOUT_MS * 2 + 3000;
189
+ /**
190
+ * Stop polling and close out queued notices, in the one order that is safe.
191
+ *
192
+ * stop() aborts synchronously and only THEN awaits its running loop, so starting
193
+ * it without awaiting closes the admission window before the drain snapshots the
194
+ * registry. Draining first would let a newly-received update register after that
195
+ * snapshot, and the awaited stop would block on its undrained delivery.
196
+ *
197
+ * The catch is attached at construction, not after the drain: stop() can reject
198
+ * through its loop, and the drain in between is a window where nothing would be
199
+ * listening.
200
+ */
201
+ async function disposeTelegramRuntime(poller) {
202
+ const stopping = poller?.stop().catch((e) => {
203
+ log.warn('[telegram:poller-stop]', logErrorText(e));
204
+ });
205
+ await telegramNoticeRegistry.drain(TELEGRAM_NOTICE_DRAIN_MS);
206
+ await stopping;
207
+ }
179
208
  // ─── Transport Contract Exports ─────────────────────
180
209
  export async function shutdownTelegram() {
181
210
  if (tgRetryTimer) {
@@ -183,16 +212,9 @@ export async function shutdownTelegram() {
183
212
  tgRetryTimer = null;
184
213
  }
185
214
  detachTelegramForwarder();
186
- if (telegramPoller) {
187
- const oldPoller = telegramPoller;
188
- telegramPoller = null;
189
- try {
190
- await oldPoller.stop();
191
- }
192
- catch (e) {
193
- log.warn('[telegram:poller-stop]', logErrorText(e));
194
- }
195
- }
215
+ const oldPoller = telegramPoller;
216
+ telegramPoller = null;
217
+ await disposeTelegramRuntime(oldPoller);
196
218
  if (!telegramBot)
197
219
  return;
198
220
  const old = telegramBot;
@@ -462,11 +484,11 @@ async function _initTelegramInner() {
462
484
  await new Promise(r => setTimeout(r, 2000));
463
485
  }
464
486
  }
465
- const stoppingPoller = telegramPoller?.stop().catch((e) => {
466
- log.warn('[telegram:poller-stop]', logErrorText(e));
467
- });
487
+ const reinitPoller = telegramPoller;
468
488
  telegramPoller = null;
469
- await stoppingPoller;
489
+ // Same helper as shutdown: a re-init that skipped the drain would strand
490
+ // every queued notice from the previous run.
491
+ await disposeTelegramRuntime(reinitPoller);
470
492
  const envToken = process.env["TELEGRAM_TOKEN"];
471
493
  if (envToken)
472
494
  settings["telegram"].token = envToken;
@@ -487,41 +509,12 @@ async function _initTelegramInner() {
487
509
  telegramActiveChatIds.add(id);
488
510
  log.info(`[tg] Pre-seeded ${settings["telegram"].allowedChatIds.length} chat(s) from allowedChatIds`);
489
511
  }
490
- const ipv4Agent = new https.Agent({ family: 4 });
491
- const ipv4Fetch = (url, init = {}) => {
492
- const body = init["body"];
493
- if (requiresStreamingFetchBody(body)) {
494
- return nodeFetch(url, {
495
- ...init,
496
- agent: ipv4Agent,
497
- });
498
- }
499
- return new Promise((resolve, reject) => {
500
- const u = new URL(url);
501
- const headersInit = init["headers"];
502
- const opts = {
503
- hostname: u.hostname, port: u.port || 443, path: u.pathname + u.search,
504
- method: init["method"] || 'GET', agent: ipv4Agent,
505
- headers: headersInit instanceof Headers
506
- ? Object.fromEntries(headersInit)
507
- : (headersInit || {}),
508
- };
509
- const req = https.request(opts, (res) => {
510
- let data = '';
511
- res.on('data', (c) => data += c);
512
- res.on('end', () => resolve({
513
- ok: (res.statusCode ?? 0) >= 200 && (res.statusCode ?? 0) < 300,
514
- status: res.statusCode,
515
- json: () => Promise.resolve(JSON.parse(data)),
516
- text: () => Promise.resolve(data),
517
- }));
518
- });
519
- req.on('error', reject);
520
- if (body)
521
- req.write(typeof body === 'string' ? body : JSON.stringify(body));
522
- req.end();
523
- });
524
- };
512
+ // The factory, not an inline closure: production and the cancellation test
513
+ // must drive the same implementation, or the test proves only itself.
514
+ const ipv4Fetch = createIpv4Fetch({
515
+ streamingFetch: (url, init) => nodeFetch(url, init),
516
+ isStreamingBody: requiresStreamingFetchBody,
517
+ });
525
518
  const bot = new Bot(settings["telegram"].token, {
526
519
  client: { fetch: ipv4Fetch },
527
520
  });
@@ -603,13 +596,22 @@ async function _initTelegramInner() {
603
596
  await tgOrchestrate(ctx, result.combinedAnswer, result.combinedAnswer);
604
597
  }
605
598
  });
606
- async function tgOrchestrate(ctx, prompt, displayMsg) {
599
+ async function tgOrchestrate(ctx, prompt, displayMsg, ackInput = {}) {
607
600
  const chatId = ctx.chat?.id;
608
601
  if (!ctx.chat)
609
602
  return;
610
603
  const chat = ctx.chat;
611
604
  const responseTarget = buildTelegramTarget(ctx);
612
605
  const result = submitMessage(prompt, stripUndefined({ origin: 'telegram', displayText: displayMsg, skipOrchestrate: true, target: responseTarget, chatId }));
606
+ // Narrowed once so the closures below capture a definite number.
607
+ const anchorId = ackInput.anchorId;
608
+ const ackConfig = resolveAckConfig(settings["telegram"]?.ack, TELEGRAM_ACK_DEFAULTS);
609
+ const ackHandle = anchorId !== undefined && shouldAck(ackConfig, {
610
+ isDirect: chat.type === 'private',
611
+ isMention: ackInput.isMention ?? false,
612
+ })
613
+ ? createAckHandle(ackConfig, createTelegramAckTransport(ctx.api, chat.id, anchorId), (e) => log.info('[tg:ack]', logErrorText(e)))
614
+ : null;
613
615
  // Reproduce grammy ctx.reply's auto-injected routing (context.js: thread/business/DM-topic)
614
616
  // so the rich-first send helper lands replies exactly where ctx.reply would.
615
617
  const replyOptsOf = (c) => stripUndefined({
@@ -633,7 +635,25 @@ async function _initTelegramInner() {
633
635
  log.info(`[tg:queue] agent busy, queued (${result.pending} pending)`);
634
636
  // 큐 처리 후 응답을 이 채팅으로 전달 — requestId로 request-level 격리
635
637
  const requestId = result.requestId;
638
+ const notice = createQueueNotice({
639
+ expiredText: t('tg.queueExpired', {}, currentLocale()),
640
+ onError: (e) => log.info('[tg:queue-notice]', logErrorText(e)),
641
+ });
642
+ // One terminal outcome per turn, shared by whoever reaches it first.
643
+ //
644
+ // A boolean would pick a winner and let the loser return immediately —
645
+ // and the loser here is the shutdown drain, which would then stop the
646
+ // poller while the winner is still delivering. Handing back the
647
+ // winner's promise makes every path converge on one completion.
648
+ let terminal = null;
649
+ const claimTerminal = (run) => {
650
+ if (!terminal) {
651
+ terminal = run().catch(e => log.info('[tg:queue]', logErrorText(e)));
652
+ }
653
+ return terminal;
654
+ };
636
655
  const finalDeliveryControl = {};
656
+ let unregister = () => { };
637
657
  const finalDelivery = new Promise((resolve, reject) => {
638
658
  let timer;
639
659
  let settled = false;
@@ -641,13 +661,23 @@ async function _initTelegramInner() {
641
661
  clearTimeout(timer);
642
662
  removeBroadcastListener(queueHandler);
643
663
  };
644
- finalDeliveryControl.cancel = (reason) => {
664
+ // Timeout, shutdown and an explicit cancel all land here.
665
+ const expire = (reason, signal) => claimTerminal(async () => {
645
666
  if (settled)
646
667
  return;
647
668
  settled = true;
648
669
  cleanup();
670
+ // Started together rather than in sequence: awaiting the notice
671
+ // first can eat the whole drain deadline before the reaction is
672
+ // even attempted.
673
+ await Promise.allSettled([
674
+ notice.close('expired', signal),
675
+ ackHandle?.settle('failure') ?? Promise.resolve(),
676
+ ]);
677
+ unregister();
649
678
  reject(reason);
650
- };
679
+ });
680
+ finalDeliveryControl.cancel = (reason) => { void expire(reason); };
651
681
  const queueHandler = (type, data) => {
652
682
  if (type !== 'orchestrate_done' || !data["text"] || data["origin"] !== 'telegram' || data["requestId"] !== requestId)
653
683
  return;
@@ -655,25 +685,58 @@ async function _initTelegramInner() {
655
685
  return;
656
686
  settled = true;
657
687
  cleanup();
658
- void sendTelegramMarkdown(ctx.api, chat.id, String(data["text"]), replyOptsOf(ctx))
659
- .then(() => {
688
+ void claimTerminal(async () => {
689
+ const body = String(data["text"]);
690
+ try {
691
+ await sendTelegramMarkdown(ctx.api, chat.id, body, replyOptsOf(ctx));
692
+ }
693
+ catch (error) {
694
+ // The answer never landed, so the notice is not stale —
695
+ // it is the only trace this turn happened.
696
+ await Promise.allSettled([
697
+ notice.close('expired'),
698
+ ackHandle?.settle('failure') ?? Promise.resolve(),
699
+ ]);
700
+ unregister();
701
+ reject(error);
702
+ return;
703
+ }
704
+ // Only now is the notice redundant.
705
+ await Promise.allSettled([
706
+ notice.close('answered'),
707
+ ackHandle?.settle('success') ?? Promise.resolve(),
708
+ ]);
709
+ unregister();
660
710
  resolve();
661
- void relayTelegramImages(bot, chat.id, String(data["text"]), responseTarget).catch(() => { });
711
+ void relayTelegramImages(bot, chat.id, body, responseTarget).catch(() => { });
662
712
  void sendElicitationKeyboards(chat.id, data["elicitationSpecs"]).catch(() => { });
663
- })
664
- .catch(reject);
713
+ });
665
714
  };
715
+ // Armed synchronously, before any reaction call: a delayed
716
+ // setMessageReaction must not be able to outlive the completion it
717
+ // is acknowledging, or the result arrives with no listener here.
666
718
  timer = setTimeout(() => {
667
- finalDeliveryControl.cancel?.(new Error('telegram_queue_delivery_timeout'));
719
+ void expire(new Error('telegram_queue_delivery_timeout'));
668
720
  }, 300000);
669
721
  addBroadcastListener(queueHandler);
722
+ unregister = telegramNoticeRegistry.add((signal) => expire(new Error('telegram_queue_shutdown'), signal));
670
723
  });
671
724
  void finalDelivery.catch(() => { });
725
+ // Not awaited: the notice below is what the user needs to see, and the
726
+ // reaction is decoration on top of it.
727
+ void ackHandle?.to('running', { wasQueued: true });
672
728
  try {
673
- await ctx.reply(t('tg.queued', { count: result.pending }, currentLocale()));
729
+ const posted = await ctx.reply(t('tg.queued', { count: result.pending }, currentLocale()));
730
+ // The exported factory, not an inline object: tests drive the same
731
+ // binding production uses.
732
+ notice.bind(createTelegramNoticeTransport(ctx.api, chat.id, posted.message_id));
674
733
  await finalDelivery;
675
734
  }
676
735
  catch (error) {
736
+ // A failed notice post means no handle will ever arrive; without
737
+ // this a deferred close waits for a bind that cannot happen and the
738
+ // drain burns its whole deadline.
739
+ notice.abandon();
677
740
  finalDeliveryControl.cancel?.(error);
678
741
  await finalDelivery.catch(() => { });
679
742
  telegramFinalDeliveryFailures.add(ctx.update.update_id);
@@ -780,6 +843,11 @@ async function _initTelegramInner() {
780
843
  if (toolHandler)
781
844
  addBroadcastListener(toolHandler);
782
845
  let finalDeliveryStarted = false;
846
+ // The started path is the COMMON one — the agent is idle — and it never
847
+ // touched the handle, so an ACK-enabled command got no reaction at all
848
+ // unless it happened to be queued.
849
+ let ackOutcome = 'failure';
850
+ void ackHandle?.to('running');
783
851
  try {
784
852
  const { text: collectedText, data: doneData } = await orchestrateAndCollectData(prompt, stripUndefined({
785
853
  origin: 'telegram', chatId: chat.id, requestId: submitRequestId, _skipInsert: true,
@@ -800,6 +868,9 @@ async function _initTelegramInner() {
800
868
  }
801
869
  finalDeliveryStarted = true;
802
870
  await sendTelegramMarkdown(ctx.api, chat.id, collectedText, replyOptsOf(ctx));
871
+ // The text is what the user was waiting for. Image relay is
872
+ // fire-and-forget below, so it cannot hold the outcome open.
873
+ ackOutcome = 'success';
803
874
  log.info(`[tg:out] ${chat.id}: ${redactOutboundText(collectedText).slice(0, 80)}`);
804
875
  void relayTelegramImages(bot, chat.id, collectedText, responseTarget).catch(() => { });
805
876
  void sendElicitationKeyboards(chat.id, doneData["elicitationSpecs"]).catch(() => { });
@@ -820,12 +891,19 @@ async function _initTelegramInner() {
820
891
  if (finalDeliveryStarted)
821
892
  telegramFinalDeliveryFailures.add(ctx.update.update_id);
822
893
  }
894
+ finally {
895
+ // Exactly one settle per turn, whichever way the body exited.
896
+ await ackHandle?.settle(ackOutcome);
897
+ }
823
898
  }
824
899
  bot.on('message:text', async (ctx) => {
825
900
  if (!ctx.chat)
826
901
  return;
827
902
  markChatActive(ctx.chat.id, ctx);
828
903
  let text = ctx.message.text;
904
+ // Captured BEFORE the mention is stripped below — afterwards there is
905
+ // nothing left to detect, and the ACK scope gate needs to know.
906
+ const isMention = !!botUsername && text.includes(`@${botUsername}`);
829
907
  if (botUsername) {
830
908
  text = text.replace(new RegExp(`@${escapeRegExp(botUsername)}\\b`, 'g'), '').trim();
831
909
  }
@@ -890,7 +968,7 @@ async function _initTelegramInner() {
890
968
  }
891
969
  return;
892
970
  }
893
- await tgOrchestrate(ctx, text, text);
971
+ await tgOrchestrate(ctx, text, text, { anchorId: ctx.message.message_id, isMention });
894
972
  });
895
973
  bot.on('message:photo', async (ctx) => {
896
974
  const photos = ctx.message.photo;
@@ -905,7 +983,7 @@ async function _initTelegramInner() {
905
983
  }));
906
984
  const filePath = saveUpload(dlResult["buffer"], `photo${dlResult["ext"]}`);
907
985
  const prompt = buildMediaPrompt(filePath, caption);
908
- await tgOrchestrate(ctx, prompt, `${t('tg.imageCaption', { caption }, currentLocale())}`);
986
+ await tgOrchestrate(ctx, prompt, `${t('tg.imageCaption', { caption }, currentLocale())}`, { anchorId: ctx.message.message_id });
909
987
  }
910
988
  catch (err) {
911
989
  log.error('[tg:photo:error]', logErrorText(err));
@@ -924,14 +1002,18 @@ async function _initTelegramInner() {
924
1002
  }));
925
1003
  const filePath = saveUpload(dlResult["buffer"], doc.file_name || 'document');
926
1004
  const prompt = buildMediaPrompt(filePath, caption);
927
- await tgOrchestrate(ctx, prompt, `[📎 ${doc.file_name || 'file'}] ${caption}`);
1005
+ await tgOrchestrate(ctx, prompt, `[📎 ${doc.file_name || 'file'}] ${caption}`, { anchorId: ctx.message.message_id });
928
1006
  }
929
1007
  catch (err) {
930
1008
  log.error('[tg:doc:error]', logErrorText(err));
931
1009
  await ctx.reply(t('tg.fileFail', { msg: userErrorText(err) }, currentLocale()));
932
1010
  }
933
1011
  });
934
- bot.on('message:voice', async (ctx) => { await handleVoice(ctx, currentLocale, tgOrchestrate); });
1012
+ bot.on('message:voice', async (ctx) => {
1013
+ // handleVoice's callback contract is three parameters, so the anchor is
1014
+ // injected here rather than widening that module's signature.
1015
+ await handleVoice(ctx, currentLocale, (c, prompt, display) => tgOrchestrate(c, prompt, display, { anchorId: ctx.message?.message_id }));
1016
+ });
935
1017
  // Identity first: the self-echo guard needs it, and the refusal below has
936
1018
  // to happen BEFORE anything is attached. Returning after attaching left the
937
1019
  // forwarder wired to a bot that never starts, still trying to send.
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/telegram/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/telegram/bot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ // ─── Telegram IPv4 fetch ─────────────────────────────
2
+ // grammY's client fetch is replaced to force IPv4 (some hosts resolve AAAA and
3
+ // then hang). Two things that replacement must not lose:
4
+ //
5
+ // 1. init.signal — grammY passes a per-call AbortSignal, and dropping it makes
6
+ // every "bounded" call a lie: the promise settles while the socket keeps
7
+ // running, so a shutdown drain returns with work still in flight. grammY's
8
+ // own default API timeout is 500 seconds.
9
+ // 2. streaming bodies — file uploads need the real fetch, not this one.
10
+ //
11
+ // Exported as a factory so production and tests drive the SAME implementation.
12
+ import https from 'https';
13
+ /**
14
+ * Build the IPv4 fetch grammY will call.
15
+ *
16
+ * The abort wiring is the load-bearing part: on abort the request is DESTROYED,
17
+ * not merely rejected. Rejecting stops the waiting; destroying stops the work.
18
+ */
19
+ export function createIpv4Fetch(deps = {}) {
20
+ const request = deps.request ?? https.request;
21
+ // An https.Agent cannot serve an injected http.request, so a caller that
22
+ // supplies its own request factory may also pass `agent: null` to opt out
23
+ // rather than inherit one that rejects its protocol.
24
+ const agent = 'agent' in deps ? deps.agent : new https.Agent({ family: 4 });
25
+ return (url, init = {}) => {
26
+ const body = init['body'];
27
+ if (deps.isStreamingBody?.(body) && deps.streamingFetch) {
28
+ return deps.streamingFetch(url, { ...init, agent });
29
+ }
30
+ return new Promise((resolve, reject) => {
31
+ const u = new URL(url);
32
+ const signal = init['signal'];
33
+ if (signal?.aborted) {
34
+ reject(new Error('telegram_request_aborted'));
35
+ return;
36
+ }
37
+ const headersInit = init['headers'];
38
+ const opts = {
39
+ hostname: u.hostname,
40
+ port: u.port || 443,
41
+ path: u.pathname + u.search,
42
+ method: init['method'] || 'GET',
43
+ agent,
44
+ headers: headersInit instanceof Headers
45
+ ? Object.fromEntries(headersInit)
46
+ : (headersInit || {}),
47
+ };
48
+ const req = request(opts, (res) => {
49
+ let data = '';
50
+ res.on('data', (c) => data += c);
51
+ res.on('end', () => resolve({
52
+ ok: (res.statusCode ?? 0) >= 200 && (res.statusCode ?? 0) < 300,
53
+ status: res.statusCode,
54
+ json: () => Promise.resolve(JSON.parse(data)),
55
+ text: () => Promise.resolve(data),
56
+ }));
57
+ });
58
+ req.on('error', reject);
59
+ if (signal) {
60
+ const onAbort = () => {
61
+ // destroy(), not just reject: the point is to stop the work,
62
+ // not merely to stop waiting for it.
63
+ req.destroy(new Error('telegram_request_aborted'));
64
+ };
65
+ signal.addEventListener('abort', onAbort, { once: true });
66
+ req.on('close', () => signal.removeEventListener('abort', onAbort));
67
+ }
68
+ if (body)
69
+ req.write(typeof body === 'string' ? body : JSON.stringify(body));
70
+ req.end();
71
+ });
72
+ };
73
+ }
74
+ //# sourceMappingURL=ipv4-fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipv4-fetch.js","sourceRoot":"","sources":["../../../src/telegram/ipv4-fetch.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+EAA+E;AAC/E,yDAAyD;AACzD,EAAE;AACF,iFAAiF;AACjF,8EAA8E;AAC9E,gFAAgF;AAChF,+CAA+C;AAC/C,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAE/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAuB1B;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB,EAAE;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAK,KAAK,CAAC,OAAqC,CAAC;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAW,EAAE,OAAgC,EAAE,EAAoB,EAAE;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAA4B,CAAC;YACzD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBAC9C,OAAO;YACX,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG;gBACT,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG;gBACnB,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM;gBAC3B,MAAM,EAAG,IAAI,CAAC,QAAQ,CAAY,IAAI,KAAK;gBAC3C,KAAK;gBACL,OAAO,EAAE,WAAW,YAAY,OAAO;oBACnC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;oBACjC,CAAC,CAAC,CAAE,WAAsC,IAAI,EAAE,CAAC;aACxD,CAAC;YACF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBACzC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;oBACxB,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG;oBAC/D,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7C,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;iBACpC,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,OAAO,GAAG,GAAG,EAAE;oBACjB,6DAA6D;oBAC7D,qCAAqC;oBACrC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC;gBACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1D,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,IAAI;gBAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5E,GAAG,CAAC,GAAG,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC"}