@leemour/cli-messaging 0.52.0 → 0.53.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/dist/cli/messenger/backfill-command.d.ts.map +1 -1
- package/dist/cli/messenger/backfill-command.js +1 -37
- package/dist/cli/messenger/backfill-command.js.map +1 -1
- package/dist/cli/messenger/download-command.d.ts +9 -2
- package/dist/cli/messenger/download-command.d.ts.map +1 -1
- package/dist/cli/messenger/download-command.js +158 -15
- package/dist/cli/messenger/download-command.js.map +1 -1
- package/dist/cli/messenger/patience.d.ts +9 -0
- package/dist/cli/messenger/patience.d.ts.map +1 -0
- package/dist/cli/messenger/patience.js +41 -0
- package/dist/cli/messenger/patience.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"backfill-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,cAAc,CAAA;AAOtF;;;;GAIG;AACH,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,OA6HtD,CAAA"}
|
|
@@ -13,10 +13,9 @@ import { parseDuration } from "../settings.js";
|
|
|
13
13
|
import { estimateBackfill } from "./backfill-estimate.js";
|
|
14
14
|
import { jobsDir, listJobs, readJob, saveJob, spawnDetached, stateOf, updateJob, } from "./backfill-jobs.js";
|
|
15
15
|
import { messengerContext } from "./context.js";
|
|
16
|
+
import { patiently, stopOnSignal } from "./patience.js";
|
|
16
17
|
/** The most messages a provider hands out per history request — Telegram's cap. */
|
|
17
18
|
const PAGE = 100;
|
|
18
|
-
/** Waits longer than this are not sat out: the run stops, and the next one resumes. */
|
|
19
|
-
const LONGEST_WAIT_MS = 5 * 60 * 1000;
|
|
20
19
|
/**
|
|
21
20
|
* A chat's history into the store, newest to oldest, **resumable**: after every page the stretch it
|
|
22
21
|
* covered is recorded, so a stop — Ctrl-C, `--timeout`, `--max`, a long FloodWait — loses nothing,
|
|
@@ -195,24 +194,6 @@ const startJob = (command, context, messenger, { chat, max, pace }) => {
|
|
|
195
194
|
context.renderer.result({ job: id, pid, chat, log });
|
|
196
195
|
context.renderer.note(`started — \`${app.command} backfill status ${id}\` follows it`);
|
|
197
196
|
};
|
|
198
|
-
/** Ctrl-C and SIGTERM — which `backfill cancel` sends — end the run after the page in hand. */
|
|
199
|
-
const stopOnSignal = (command) => {
|
|
200
|
-
const stop = new AbortController();
|
|
201
|
-
const given = environmentOf(command).signal;
|
|
202
|
-
const end = () => stop.abort();
|
|
203
|
-
given?.addEventListener("abort", end, { once: true });
|
|
204
|
-
const signals = given ? [] : ["SIGINT", "SIGTERM"];
|
|
205
|
-
for (const name of signals)
|
|
206
|
-
process.once(name, end);
|
|
207
|
-
return {
|
|
208
|
-
signal: stop.signal,
|
|
209
|
-
release: () => {
|
|
210
|
-
for (const name of signals)
|
|
211
|
-
process.off(name, end);
|
|
212
|
-
given?.removeEventListener("abort", end);
|
|
213
|
-
},
|
|
214
|
-
};
|
|
215
|
-
};
|
|
216
197
|
const walk = async (connection, store, account, chat, { max, pauseMs, note, stop, onPage }) => {
|
|
217
198
|
let before;
|
|
218
199
|
let chatId;
|
|
@@ -254,23 +235,6 @@ const walk = async (connection, store, account, chat, { max, pauseMs, note, stop
|
|
|
254
235
|
...(stop.aborted ? { stopped: true } : {}),
|
|
255
236
|
};
|
|
256
237
|
};
|
|
257
|
-
/** Sits out a provider's "wait N seconds" when it is short, a few times; a long one ends the run. */
|
|
258
|
-
const patiently = async (request, note, stop) => {
|
|
259
|
-
for (let attempt = 1;; attempt += 1) {
|
|
260
|
-
try {
|
|
261
|
-
return await request();
|
|
262
|
-
}
|
|
263
|
-
catch (error) {
|
|
264
|
-
const wait = isCliFailure(error) && error.code === "rate_limited" ? Number(error.details?.retryAfterMs) : NaN;
|
|
265
|
-
if (!Number.isFinite(wait) || wait > LONGEST_WAIT_MS || attempt >= 3)
|
|
266
|
-
throw error;
|
|
267
|
-
note(`asked to wait ${Math.ceil(wait / 1000)} s — waiting, then going on`);
|
|
268
|
-
await sleep(wait, undefined, { signal: stop }).catch(() => { });
|
|
269
|
-
if (stop.aborted)
|
|
270
|
-
throw error;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
238
|
const wholeNumber = (value) => {
|
|
275
239
|
const parsed = Number(value);
|
|
276
240
|
if (!Number.isInteger(parsed) || parsed < 1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backfill-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@ export interface Saved {
|
|
|
5
5
|
kind: string;
|
|
6
6
|
path: string;
|
|
7
7
|
bytes: number;
|
|
8
|
+
/** Only with `--all`: the file was already there from an earlier run, and was left as it was. */
|
|
9
|
+
existing?: true;
|
|
8
10
|
}
|
|
9
|
-
/** `messages download`: every file of one message,
|
|
11
|
+
/** `messages download`: every file of one message, or with `--all` of a whole chat, never over a file already there. */
|
|
10
12
|
export declare const downloadSubcommand: (messages: Command, messenger: Messenger) => Command;
|
|
11
13
|
/**
|
|
12
14
|
* A name another person chose cannot climb out of the folder, cannot be a dot file we would then
|
|
@@ -17,6 +19,11 @@ export declare const safeName: (name: string | undefined) => string | undefined;
|
|
|
17
19
|
* The bytes go to a temporary name first and are then hard-linked to the real one, which fails if the
|
|
18
20
|
* name is taken — so an existing file survives, and an interrupted download leaves no half file under
|
|
19
21
|
* the name somebody will open.
|
|
22
|
+
*
|
|
23
|
+
* `unique` is for a whole chat, where two messages often carry the same file name: a taken name gets the
|
|
24
|
+
* message's own prefix, and when that is taken too the file was saved by an earlier run and is `existing`.
|
|
20
25
|
*/
|
|
21
|
-
export declare const save: (file: RemoteFile, directory: string, fallbackName: string
|
|
26
|
+
export declare const save: (file: RemoteFile, directory: string, fallbackName: string, { unique }?: {
|
|
27
|
+
unique?: boolean;
|
|
28
|
+
}) => Promise<Saved>;
|
|
22
29
|
//# sourceMappingURL=download-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/download-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/download-command.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,cAAc,CAAA;AAEtF,OAAO,EAAqC,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAE9E,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,iGAAiG;IACjG,QAAQ,CAAC,EAAE,IAAI,CAAA;CAChB;AAED,wHAAwH;AACxH,eAAO,MAAM,kBAAkB,aAAc,OAAO,aAAa,SAAS,KAAG,OAiCvE,CAAA;AAsKN;;;GAGG;AACH,eAAO,MAAM,QAAQ,SAAU,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAQ5D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,SACT,UAAU,aACL,MAAM,gBACH,MAAM,eACA;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KACvC,OAAO,CAAC,KAAK,CAgCf,CAAA"}
|
|
@@ -1,21 +1,35 @@
|
|
|
1
|
-
import { createWriteStream, mkdirSync } from "node:fs";
|
|
1
|
+
import { createWriteStream, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { link, rm } from "node:fs/promises";
|
|
3
3
|
import { basename, join, resolve } from "node:path";
|
|
4
4
|
import { Readable, Transform } from "node:stream";
|
|
5
5
|
import { pipeline } from "node:stream/promises";
|
|
6
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
6
7
|
import { CliError } from "@leemour/cli-core";
|
|
8
|
+
import { parseDuration } from "../settings.js";
|
|
7
9
|
import { messengerContext } from "./context.js";
|
|
10
|
+
import { patiently, stopOnSignal } from "./patience.js";
|
|
8
11
|
import { capability } from "./port.js";
|
|
9
|
-
/** `messages download`: every file of one message,
|
|
12
|
+
/** `messages download`: every file of one message, or with `--all` of a whole chat, never over a file already there. */
|
|
10
13
|
export const downloadSubcommand = (messages, messenger) => messages
|
|
11
14
|
.command("download")
|
|
12
|
-
.description("save a message's photos, files, videos and voice notes to a folder")
|
|
15
|
+
.description("save a message's photos, files, videos and voice notes to a folder — or a whole chat's with --all")
|
|
13
16
|
.argument("<chat>", messenger.chatArgument)
|
|
14
|
-
.argument("
|
|
17
|
+
.argument("[message]", "the message id; left out with --all")
|
|
15
18
|
.option("--output <dir>", "where to save them; created if missing", ".")
|
|
19
|
+
.option("--all", "every file of the chat, newest first; run it again to continue where it stopped")
|
|
20
|
+
.option("--pace <duration>", "with --all, a pause between pages, to stay under the provider's limits", "1s")
|
|
16
21
|
.action(async function (chat, messageId) {
|
|
17
22
|
const context = messengerContext(this, messenger);
|
|
18
|
-
const { output } = this.opts();
|
|
23
|
+
const { output, all, pace } = this.opts();
|
|
24
|
+
if (all && messageId !== undefined) {
|
|
25
|
+
throw new CliError("validation_error", "--all saves the whole chat; leave out the message id");
|
|
26
|
+
}
|
|
27
|
+
if (all) {
|
|
28
|
+
await downloadChat(this, context, chat, output, parseDuration(pace, "--pace"));
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (messageId === undefined)
|
|
32
|
+
throw new CliError("validation_error", "name a message id, or use --all");
|
|
19
33
|
const id = messageId.trim();
|
|
20
34
|
const saved = await context.withMessenger(async (connection) => {
|
|
21
35
|
const { files, skipped } = await capability(connection, "download", "download attachments")(chat, id);
|
|
@@ -36,6 +50,124 @@ export const downloadSubcommand = (messages, messenger) => messages
|
|
|
36
50
|
else
|
|
37
51
|
context.renderer.result({ items: saved });
|
|
38
52
|
});
|
|
53
|
+
/** The most messages a provider hands out per history request — Telegram's cap. */
|
|
54
|
+
const PAGE = 100;
|
|
55
|
+
/** Attachments that are never a file, so their messages cost no download request. */
|
|
56
|
+
const NOT_FILES = new Set(["webpage", "share", "poll", "location", "contact"]);
|
|
57
|
+
/**
|
|
58
|
+
* Stretches of message ids already walked, in a dot file beside the files — not in the store, which
|
|
59
|
+
* this would need a migration for. Written after every message with a file, so a run cut short by
|
|
60
|
+
* `--timeout` or Ctrl-C repeats at most the file it was in the middle of.
|
|
61
|
+
*/
|
|
62
|
+
const progressFile = (output, chatId) => join(output, `.download-${chatId.replace(/[^\w-]/g, "_")}.json`);
|
|
63
|
+
const readProgress = (path) => {
|
|
64
|
+
if (!existsSync(path))
|
|
65
|
+
return [];
|
|
66
|
+
const { done } = JSON.parse(readFileSync(path, "utf8"));
|
|
67
|
+
return Array.isArray(done) ? done : [];
|
|
68
|
+
};
|
|
69
|
+
const writeProgress = (path, chatId, done) => {
|
|
70
|
+
writeFileSync(`${path}.tmp`, `${JSON.stringify({ chat: chatId, done })}\n`, { mode: 0o600 });
|
|
71
|
+
renameSync(`${path}.tmp`, path);
|
|
72
|
+
};
|
|
73
|
+
const downloadChat = async (command, context, chat, output, pauseMs) => {
|
|
74
|
+
const items = [];
|
|
75
|
+
const onSaved = (one) => {
|
|
76
|
+
if (context.format === "pretty")
|
|
77
|
+
context.streams.data(`${one.path}\n`);
|
|
78
|
+
else if (context.format === "jsonl")
|
|
79
|
+
context.renderer.stream([one]);
|
|
80
|
+
else
|
|
81
|
+
items.push(one);
|
|
82
|
+
};
|
|
83
|
+
const stop = stopOnSignal(command);
|
|
84
|
+
try {
|
|
85
|
+
mkdirSync(output, { recursive: true });
|
|
86
|
+
const result = await context.withMessenger((connection) => walkChat(connection, chat, { output, pauseMs, stop: stop.signal, note: context.renderer.note, onSaved }));
|
|
87
|
+
if (context.format === "json")
|
|
88
|
+
context.renderer.result({ items, ...result });
|
|
89
|
+
else
|
|
90
|
+
context.renderer.note(summary(result));
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
stop.release();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
const summary = ({ saved, existing, complete }) => `${saved} saved${existing > 0 ? `, ${existing} already there` : ""}${complete ? " — the whole chat" : " — run it again to continue"}`;
|
|
97
|
+
/**
|
|
98
|
+
* Newest to oldest, page by page. A stretch an earlier run walked is jumped over, and joins this run's,
|
|
99
|
+
* so the progress file stays a few stretches however often the download is cut and resumed.
|
|
100
|
+
*/
|
|
101
|
+
const walkChat = async (connection, chat, { output, pauseMs, stop, note, onSaved }) => {
|
|
102
|
+
const download = capability(connection, "download", "download attachments");
|
|
103
|
+
let before;
|
|
104
|
+
let chatId;
|
|
105
|
+
let path = "";
|
|
106
|
+
let done = [];
|
|
107
|
+
let run;
|
|
108
|
+
let saved = 0;
|
|
109
|
+
let existing = 0;
|
|
110
|
+
let complete = false;
|
|
111
|
+
const remember = () => {
|
|
112
|
+
if (chatId !== undefined)
|
|
113
|
+
writeProgress(path, chatId, run ? [...done, run] : done);
|
|
114
|
+
};
|
|
115
|
+
pages: while (!stop.aborted) {
|
|
116
|
+
const page = await patiently(() => connection.history(chat, { limit: PAGE, ...(before ? { before } : {}) }), note, stop);
|
|
117
|
+
const first = page.items[0];
|
|
118
|
+
if (!first) {
|
|
119
|
+
complete = true;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
if (chatId === undefined) {
|
|
123
|
+
chatId = first.chatId;
|
|
124
|
+
path = progressFile(output, chatId);
|
|
125
|
+
done = readProgress(path);
|
|
126
|
+
}
|
|
127
|
+
const newestFirst = page.items.map((message) => ({ message, key: Number(message.id) }));
|
|
128
|
+
if (newestFirst.some(({ key }) => !Number.isSafeInteger(key))) {
|
|
129
|
+
throw new CliError("validation_error", "this messenger's message ids do not order a chat, so --all cannot resume");
|
|
130
|
+
}
|
|
131
|
+
newestFirst.sort((a, b) => b.key - a.key);
|
|
132
|
+
for (const { message, key } of newestFirst) {
|
|
133
|
+
if (stop.aborted)
|
|
134
|
+
break pages;
|
|
135
|
+
const walked = done.find(({ from, to }) => from <= key && key <= to);
|
|
136
|
+
if (walked) {
|
|
137
|
+
done = done.filter((one) => one !== walked);
|
|
138
|
+
run = { from: walked.from, to: Math.max(run?.to ?? walked.to, walked.to) };
|
|
139
|
+
remember();
|
|
140
|
+
before = String(walked.from);
|
|
141
|
+
continue pages;
|
|
142
|
+
}
|
|
143
|
+
if (message.attachments.some(({ kind }) => !NOT_FILES.has(kind))) {
|
|
144
|
+
const { files } = await patiently(() => download(chat, message.id), note, stop);
|
|
145
|
+
for (const [index, file] of files.entries()) {
|
|
146
|
+
const one = await patiently(() => save(file, output, `${message.id}-${index + 1}`, { unique: true }), note, stop);
|
|
147
|
+
if (one.existing)
|
|
148
|
+
existing += 1;
|
|
149
|
+
else
|
|
150
|
+
saved += 1;
|
|
151
|
+
onSaved(one);
|
|
152
|
+
}
|
|
153
|
+
run = { from: key, to: run?.to ?? key };
|
|
154
|
+
remember();
|
|
155
|
+
}
|
|
156
|
+
else
|
|
157
|
+
run = { from: key, to: run?.to ?? key };
|
|
158
|
+
}
|
|
159
|
+
remember();
|
|
160
|
+
if (!page.hasMore) {
|
|
161
|
+
complete = true;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
before = String(newestFirst.at(-1)?.key);
|
|
165
|
+
note(`${saved} files so far, back to message ${before}`);
|
|
166
|
+
await sleep(pauseMs, undefined, { signal: stop }).catch(() => { });
|
|
167
|
+
}
|
|
168
|
+
remember();
|
|
169
|
+
return { chat: chatId ?? null, saved, existing, complete, ...(stop.aborted ? { stopped: true } : {}) };
|
|
170
|
+
};
|
|
39
171
|
const EXTENSIONS = {
|
|
40
172
|
"image/jpeg": "jpg",
|
|
41
173
|
"image/png": "png",
|
|
@@ -66,11 +198,15 @@ export const safeName = (name) => {
|
|
|
66
198
|
* The bytes go to a temporary name first and are then hard-linked to the real one, which fails if the
|
|
67
199
|
* name is taken — so an existing file survives, and an interrupted download leaves no half file under
|
|
68
200
|
* the name somebody will open.
|
|
201
|
+
*
|
|
202
|
+
* `unique` is for a whole chat, where two messages often carry the same file name: a taken name gets the
|
|
203
|
+
* message's own prefix, and when that is taken too the file was saved by an earlier run and is `existing`.
|
|
69
204
|
*/
|
|
70
|
-
export const save = async (file, directory, fallbackName) => {
|
|
205
|
+
export const save = async (file, directory, fallbackName, { unique = false } = {}) => {
|
|
71
206
|
const extension = EXTENSIONS[file.mime ?? ""] ?? BY_KIND[file.kind];
|
|
72
|
-
const
|
|
73
|
-
const
|
|
207
|
+
const own = safeName(file.name);
|
|
208
|
+
const name = own ?? (extension ? `${fallbackName}.${extension}` : fallbackName);
|
|
209
|
+
const names = unique && own ? [name, `${fallbackName}-${own}`] : [name];
|
|
74
210
|
const partial = join(directory, `.${name}.${process.pid}.part`);
|
|
75
211
|
let bytes = 0;
|
|
76
212
|
const counting = new Transform({
|
|
@@ -81,13 +217,20 @@ export const save = async (file, directory, fallbackName) => {
|
|
|
81
217
|
});
|
|
82
218
|
try {
|
|
83
219
|
await pipeline(Readable.from(file.bytes()), counting, createWriteStream(partial, { flags: "wx", mode: 0o600 }));
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
220
|
+
for (const candidate of names) {
|
|
221
|
+
const path = resolve(join(directory, candidate));
|
|
222
|
+
const taken = await link(partial, path).then(() => false, (error) => {
|
|
223
|
+
if (error.code === "EEXIST")
|
|
224
|
+
return true;
|
|
225
|
+
throw error;
|
|
226
|
+
});
|
|
227
|
+
if (!taken)
|
|
228
|
+
return { kind: file.kind, path, bytes };
|
|
229
|
+
}
|
|
230
|
+
const path = resolve(join(directory, names.at(-1) ?? name));
|
|
231
|
+
if (unique)
|
|
232
|
+
return { kind: file.kind, path, bytes, existing: true };
|
|
233
|
+
throw new CliError("validation_error", `${path} already exists — nothing was overwritten; choose --output`);
|
|
91
234
|
}
|
|
92
235
|
finally {
|
|
93
236
|
await rm(partial, { force: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/download-command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"download-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/download-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
/** Ctrl-C and SIGTERM — which `backfill cancel` sends — end a long run after the step in hand. */
|
|
3
|
+
export declare const stopOnSignal: (command: Command) => {
|
|
4
|
+
signal: AbortSignal;
|
|
5
|
+
release: () => void;
|
|
6
|
+
};
|
|
7
|
+
/** Sits out a provider's "wait N seconds" when it is short, a few times; a long one ends the run. */
|
|
8
|
+
export declare const patiently: <T>(request: () => Promise<T>, note: (message: string) => void, stop: AbortSignal) => Promise<T>;
|
|
9
|
+
//# sourceMappingURL=patience.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patience.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/patience.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,kGAAkG;AAClG,eAAO,MAAM,YAAY,YAAa,OAAO,KAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAczF,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,SAAS,GAAU,CAAC,WACtB,MAAM,OAAO,CAAC,CAAC,CAAC,QACnB,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,QACzB,WAAW,KAChB,OAAO,CAAC,CAAC,CAYX,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { setTimeout as sleep } from "node:timers/promises";
|
|
2
|
+
import { environmentOf } from "../context.js";
|
|
3
|
+
import { isCliFailure } from "../failures.js";
|
|
4
|
+
/** Waits longer than this are not sat out: the run stops, and the next one resumes. */
|
|
5
|
+
const LONGEST_WAIT_MS = 5 * 60 * 1000;
|
|
6
|
+
/** Ctrl-C and SIGTERM — which `backfill cancel` sends — end a long run after the step in hand. */
|
|
7
|
+
export const stopOnSignal = (command) => {
|
|
8
|
+
const stop = new AbortController();
|
|
9
|
+
const given = environmentOf(command).signal;
|
|
10
|
+
const end = () => stop.abort();
|
|
11
|
+
given?.addEventListener("abort", end, { once: true });
|
|
12
|
+
const signals = given ? [] : ["SIGINT", "SIGTERM"];
|
|
13
|
+
for (const name of signals)
|
|
14
|
+
process.once(name, end);
|
|
15
|
+
return {
|
|
16
|
+
signal: stop.signal,
|
|
17
|
+
release: () => {
|
|
18
|
+
for (const name of signals)
|
|
19
|
+
process.off(name, end);
|
|
20
|
+
given?.removeEventListener("abort", end);
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
/** Sits out a provider's "wait N seconds" when it is short, a few times; a long one ends the run. */
|
|
25
|
+
export const patiently = async (request, note, stop) => {
|
|
26
|
+
for (let attempt = 1;; attempt += 1) {
|
|
27
|
+
try {
|
|
28
|
+
return await request();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
const wait = isCliFailure(error) && error.code === "rate_limited" ? Number(error.details?.retryAfterMs) : NaN;
|
|
32
|
+
if (!Number.isFinite(wait) || wait > LONGEST_WAIT_MS || attempt >= 3)
|
|
33
|
+
throw error;
|
|
34
|
+
note(`asked to wait ${Math.ceil(wait / 1000)} s — waiting, then going on`);
|
|
35
|
+
await sleep(wait, undefined, { signal: stop }).catch(() => { });
|
|
36
|
+
if (stop.aborted)
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=patience.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patience.js","sourceRoot":"","sources":["../../../src/cli/messenger/patience.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,uFAAuF;AACvF,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAErC,kGAAkG;AAClG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAgD,EAAE;IAC7F,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IAC3C,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC9B,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,SAAS,CAAW,CAAA;IAC7D,KAAK,MAAM,IAAI,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACnD,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,MAAM,IAAI,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAClD,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC1C,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,OAAyB,EACzB,IAA+B,EAC/B,IAAiB,EACL,EAAE;IACd,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,EAAE,CAAA;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;YAC7G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,eAAe,IAAI,OAAO,IAAI,CAAC;gBAAE,MAAM,KAAK,CAAA;YACjF,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,6BAA6B,CAAC,CAAA;YAC1E,MAAM,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC9D,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,KAAK,CAAA;QAC/B,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leemour/cli-messaging",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.0",
|
|
4
4
|
"description": "The messenger-neutral half of a messaging CLI: domain model, message locators, rendering, name resolution, the SQLite seam, the command skeleton and shared read commands, the send guard, run records and the message store",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Viacheslav Ptsarev",
|