pixivflow 2.16.1 → 2.17.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/auth/PixivAuth.d.ts +12 -0
- package/dist/auth/PixivAuth.d.ts.map +1 -1
- package/dist/auth/PixivAuth.js +26 -0
- package/dist/auth/PixivAuth.js.map +1 -1
- package/dist/batch/executionResult.d.ts +85 -0
- package/dist/batch/executionResult.d.ts.map +1 -0
- package/dist/batch/executionResult.js +102 -0
- package/dist/batch/executionResult.js.map +1 -0
- package/dist/batch/runDiagnostics.d.ts +48 -0
- package/dist/batch/runDiagnostics.d.ts.map +1 -0
- package/dist/batch/runDiagnostics.js +103 -0
- package/dist/batch/runDiagnostics.js.map +1 -0
- package/dist/commands/Command.d.ts +5 -0
- package/dist/commands/Command.d.ts.map +1 -1
- package/dist/commands/Command.js +7 -0
- package/dist/commands/Command.js.map +1 -1
- package/dist/commands/ExecuteSlotCommand.d.ts +37 -0
- package/dist/commands/ExecuteSlotCommand.d.ts.map +1 -0
- package/dist/commands/ExecuteSlotCommand.js +267 -0
- package/dist/commands/ExecuteSlotCommand.js.map +1 -0
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +4 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/scheduler-runtime.d.ts +37 -1
- package/dist/commands/scheduler-runtime.d.ts.map +1 -1
- package/dist/commands/scheduler-runtime.js +52 -19
- package/dist/commands/scheduler-runtime.js.map +1 -1
- package/dist/commands/types.d.ts +6 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/config/types.d.ts +33 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts +14 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +109 -33
- package/dist/config/validation.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/delivery/DeliveryDispatcher.d.ts.map +1 -1
- package/dist/delivery/DeliveryDispatcher.js +7 -0
- package/dist/delivery/DeliveryDispatcher.js.map +1 -1
- package/dist/delivery/HttpMultipartDelivery.d.ts +12 -0
- package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
- package/dist/delivery/HttpMultipartDelivery.js +89 -70
- package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
- package/dist/delivery/TelegramReviewDelivery.d.ts +49 -0
- package/dist/delivery/TelegramReviewDelivery.d.ts.map +1 -0
- package/dist/delivery/TelegramReviewDelivery.js +307 -0
- package/dist/delivery/TelegramReviewDelivery.js.map +1 -0
- package/dist/download/DownloadManager.d.ts +10 -0
- package/dist/download/DownloadManager.d.ts.map +1 -1
- package/dist/download/DownloadManager.js +21 -0
- package/dist/download/DownloadManager.js.map +1 -1
- package/dist/download/plan/DownloadPlanner.d.ts +10 -0
- package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
- package/dist/download/plan/DownloadPlanner.js +19 -0
- package/dist/download/plan/DownloadPlanner.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/notification/NotificationPolicy.d.ts.map +1 -1
- package/dist/notification/NotificationPolicy.js +4 -1
- package/dist/notification/NotificationPolicy.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/pixiv-token-getter-adapter.d.ts +27 -7
- package/dist/pixiv-token-getter-adapter.d.ts.map +1 -1
- package/dist/pixiv-token-getter-adapter.js +44 -27
- package/dist/pixiv-token-getter-adapter.js.map +1 -1
- package/dist/utils/concurrency.d.ts.map +1 -1
- package/dist/utils/concurrency.js +9 -2
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/config-validator-unified.d.ts.map +1 -1
- package/dist/utils/config-validator-unified.js +15 -1
- package/dist/utils/config-validator-unified.js.map +1 -1
- package/dist/utils/token-maintenance.d.ts +0 -4
- package/dist/utils/token-maintenance.d.ts.map +1 -1
- package/dist/utils/token-maintenance.js +5 -25
- package/dist/utils/token-maintenance.js.map +1 -1
- package/dist/version.js +1 -1
- package/dist/webui/package.json +1 -1
- package/package.json +2 -2
|
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.HttpMultipartDelivery = exports.redactUrl = void 0;
|
|
37
|
+
exports.buildTemplateVariables = buildTemplateVariables;
|
|
38
|
+
exports.renderDeliveryTemplate = renderDeliveryTemplate;
|
|
37
39
|
const fs = __importStar(require("node:fs"));
|
|
38
40
|
const path = __importStar(require("node:path"));
|
|
39
41
|
const node_crypto_1 = require("node:crypto");
|
|
@@ -228,78 +230,10 @@ class HttpMultipartDelivery {
|
|
|
228
230
|
return Object.fromEntries(Object.entries(headers).map(([key, value]) => [key, this.interpolateEnvironment(value)]));
|
|
229
231
|
}
|
|
230
232
|
resolveFields(fields, request) {
|
|
231
|
-
const
|
|
232
|
-
const xRestrictLabel = (() => {
|
|
233
|
-
if (xRestrict === undefined)
|
|
234
|
-
return 'unknown';
|
|
235
|
-
if (xRestrict === 0)
|
|
236
|
-
return 'all-ages';
|
|
237
|
-
if (xRestrict === 1)
|
|
238
|
-
return 'R-18';
|
|
239
|
-
if (xRestrict === 2)
|
|
240
|
-
return 'R-18G';
|
|
241
|
-
return `unknown(${xRestrict})`;
|
|
242
|
-
})();
|
|
243
|
-
const xRestrictTag = (() => {
|
|
244
|
-
if (xRestrict === undefined)
|
|
245
|
-
return '';
|
|
246
|
-
if (xRestrict === 0)
|
|
247
|
-
return 'AllAges';
|
|
248
|
-
if (xRestrict === 1)
|
|
249
|
-
return 'R18';
|
|
250
|
-
if (xRestrict === 2)
|
|
251
|
-
return 'R18G';
|
|
252
|
-
return `XRestrict${xRestrict}`;
|
|
253
|
-
})();
|
|
254
|
-
const variables = {
|
|
255
|
-
title: request.context.title,
|
|
256
|
-
pixivId: request.context.pixivId,
|
|
257
|
-
type: request.context.type,
|
|
258
|
-
targetId: request.context.targetId ?? '',
|
|
259
|
-
tag: request.context.tag ?? '',
|
|
260
|
-
topic: request.context.topic ?? '',
|
|
261
|
-
workTags: request.context.workTags?.join(',') ?? '',
|
|
262
|
-
// Canonical Pixiv permalink; generated here so templates stay type-agnostic.
|
|
263
|
-
link: request.context.type === 'novel'
|
|
264
|
-
? `https://www.pixiv.net/novel/show.php?id=${request.context.pixivId}`
|
|
265
|
-
: `https://www.pixiv.net/artworks/${request.context.pixivId}`,
|
|
266
|
-
// Non-empty topic-or-tag label for tags fields (topic targets have no tag).
|
|
267
|
-
topicTag: request.context.topic || request.context.tag || '',
|
|
268
|
-
// R-18 works are auto-spoilerized; templates can use {{spoiler}} instead
|
|
269
|
-
// of hard-coding true.
|
|
270
|
-
spoiler: request.context.spoiler === true ? 'true' : 'false',
|
|
271
|
-
// Keep Pixiv's exact rating independent from the channel's mask policy.
|
|
272
|
-
xRestrict: xRestrict === undefined ? '' : String(xRestrict),
|
|
273
|
-
xRestrictLabel,
|
|
274
|
-
xRestrictTag,
|
|
275
|
-
// Ranking day (JST YYYY-MM-DD) — which day's hot works this is.
|
|
276
|
-
rankingDate: request.context.rankingDate ?? '',
|
|
277
|
-
// Pixiv publish date, YYYY-MM-DD (create_date is JST ISO).
|
|
278
|
-
publishedDate: formatPublishedDate(request.context.publishedAt),
|
|
279
|
-
// Detected language for novels ("Chinese (Mandarin) (cmn)"); empty for
|
|
280
|
-
// illustrations or when detection was inconclusive.
|
|
281
|
-
language: request.context.language ?? '',
|
|
282
|
-
// Popularity signals. Compact localized form (e.g. 12.3k) when large,
|
|
283
|
-
// empty string when the API response carried no count.
|
|
284
|
-
bookmarkCount: formatCount(request.context.bookmarkCount),
|
|
285
|
-
viewCount: formatCount(request.context.viewCount),
|
|
286
|
-
// Schedule slot provenance (e.g. 2026-09-08 / morning / 2026-09-08:morning)
|
|
287
|
-
// so the review card can show "今日早班 · bot1 · 小说" instead of a bare post.
|
|
288
|
-
scheduleId: request.context.scheduleId ?? '',
|
|
289
|
-
executionId: request.context.executionId ?? '',
|
|
290
|
-
occurrenceAt: request.context.occurrenceAt ?? '',
|
|
291
|
-
triggerSource: request.context.triggerSource ?? '',
|
|
292
|
-
slotId: request.context.slotId ?? '',
|
|
293
|
-
slotName: request.context.slotName ?? '',
|
|
294
|
-
slotDate: request.context.slotDate ?? '',
|
|
295
|
-
// The occurrence-scoped intent key. MUST be sent so an ACK-loss retry
|
|
296
|
-
// (same key) converges remotely as idempotent_replay instead of being
|
|
297
|
-
// mistaken for a historical duplicate or, worse, double-posting.
|
|
298
|
-
idempotencyKey: request.context.idempotencyKey ?? '',
|
|
299
|
-
};
|
|
233
|
+
const variables = buildTemplateVariables(request);
|
|
300
234
|
return Object.fromEntries(Object.entries(fields).map(([name, value]) => {
|
|
301
235
|
const values = Array.isArray(value) ? value : [value];
|
|
302
|
-
const rendered = values.map((item) => String(item)
|
|
236
|
+
const rendered = values.map((item) => renderDeliveryTemplate(String(item), variables));
|
|
303
237
|
switch (this.config.arrayFormat ?? 'comma') {
|
|
304
238
|
case 'repeat':
|
|
305
239
|
return [name, rendered];
|
|
@@ -380,4 +314,89 @@ class HttpMultipartDelivery {
|
|
|
380
314
|
}
|
|
381
315
|
}
|
|
382
316
|
exports.HttpMultipartDelivery = HttpMultipartDelivery;
|
|
317
|
+
/**
|
|
318
|
+
* Template variables shared by every delivery provider.
|
|
319
|
+
*
|
|
320
|
+
* Exported so a provider that is not HTTP multipart — the Telegram review sender —
|
|
321
|
+
* renders the SAME vocabulary instead of owning a second, drifting copy of it.
|
|
322
|
+
*/
|
|
323
|
+
function buildTemplateVariables(request) {
|
|
324
|
+
const c = request.context;
|
|
325
|
+
const xRestrict = c.xRestrict;
|
|
326
|
+
const xRestrictLabel = (() => {
|
|
327
|
+
if (xRestrict === undefined)
|
|
328
|
+
return 'unknown';
|
|
329
|
+
if (xRestrict === 0)
|
|
330
|
+
return 'all-ages';
|
|
331
|
+
if (xRestrict === 1)
|
|
332
|
+
return 'R-18';
|
|
333
|
+
if (xRestrict === 2)
|
|
334
|
+
return 'R-18G';
|
|
335
|
+
return `unknown(${xRestrict})`;
|
|
336
|
+
})();
|
|
337
|
+
const xRestrictTag = (() => {
|
|
338
|
+
if (xRestrict === undefined)
|
|
339
|
+
return '';
|
|
340
|
+
if (xRestrict === 0)
|
|
341
|
+
return 'AllAges';
|
|
342
|
+
if (xRestrict === 1)
|
|
343
|
+
return 'R18';
|
|
344
|
+
if (xRestrict === 2)
|
|
345
|
+
return 'R18G';
|
|
346
|
+
return `XRestrict${xRestrict}`;
|
|
347
|
+
})();
|
|
348
|
+
return {
|
|
349
|
+
title: c.title,
|
|
350
|
+
pixivId: c.pixivId,
|
|
351
|
+
type: c.type,
|
|
352
|
+
targetId: c.targetId ?? '',
|
|
353
|
+
tag: c.tag ?? '',
|
|
354
|
+
topic: c.topic ?? '',
|
|
355
|
+
workTags: c.workTags?.join(',') ?? '',
|
|
356
|
+
// Canonical Pixiv permalink; generated here so templates stay type-agnostic.
|
|
357
|
+
link: c.type === 'novel'
|
|
358
|
+
? `https://www.pixiv.net/novel/show.php?id=${c.pixivId}`
|
|
359
|
+
: `https://www.pixiv.net/artworks/${c.pixivId}`,
|
|
360
|
+
// Non-empty topic-or-tag label for tags fields (topic targets have no tag).
|
|
361
|
+
topicTag: c.topic || c.tag || '',
|
|
362
|
+
// R-18 works are auto-spoilerized; templates can use {{spoiler}} instead of
|
|
363
|
+
// hard-coding true.
|
|
364
|
+
spoiler: c.spoiler === true ? 'true' : 'false',
|
|
365
|
+
// Keep Pixiv's exact rating independent from the channel's mask policy.
|
|
366
|
+
xRestrict: xRestrict === undefined ? '' : String(xRestrict),
|
|
367
|
+
xRestrictLabel,
|
|
368
|
+
xRestrictTag,
|
|
369
|
+
// Ranking day (JST YYYY-MM-DD) — which day's hot works this is.
|
|
370
|
+
rankingDate: c.rankingDate ?? '',
|
|
371
|
+
// Pixiv publish date, YYYY-MM-DD (create_date is JST ISO).
|
|
372
|
+
publishedDate: formatPublishedDate(c.publishedAt),
|
|
373
|
+
// Detected language for novels ("Chinese (Mandarin) (cmn)"); empty for
|
|
374
|
+
// illustrations or when detection was inconclusive.
|
|
375
|
+
language: c.language ?? '',
|
|
376
|
+
// Popularity signals. Compact localized form (e.g. 12.3k) when large, empty
|
|
377
|
+
// string when the API response carried no count.
|
|
378
|
+
bookmarkCount: formatCount(c.bookmarkCount),
|
|
379
|
+
viewCount: formatCount(c.viewCount),
|
|
380
|
+
// Schedule slot provenance (e.g. 2026-09-08 / morning / 2026-09-08:morning) so
|
|
381
|
+
// a review card can show "今日早班 · bot1 · 小说" instead of a bare post.
|
|
382
|
+
scheduleId: c.scheduleId ?? '',
|
|
383
|
+
executionId: c.executionId ?? '',
|
|
384
|
+
occurrenceAt: c.occurrenceAt ?? '',
|
|
385
|
+
triggerSource: c.triggerSource ?? '',
|
|
386
|
+
slotId: c.slotId ?? '',
|
|
387
|
+
slotName: c.slotName ?? '',
|
|
388
|
+
slotDate: c.slotDate ?? '',
|
|
389
|
+
// The occurrence-scoped intent key. MUST be sent so an ACK-loss retry (same
|
|
390
|
+
// key) converges remotely as idempotent_replay instead of being mistaken for
|
|
391
|
+
// a historical duplicate or, worse, double-posting.
|
|
392
|
+
idempotencyKey: c.idempotencyKey ?? '',
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* `{{name}}` substitution. Unknown placeholders are left literal rather than
|
|
397
|
+
* silently emptied, so a typo in a template is visible in the delivered message.
|
|
398
|
+
*/
|
|
399
|
+
function renderDeliveryTemplate(template, variables) {
|
|
400
|
+
return template.replace(/\{\{(\w+)\}\}/g, (match, key) => variables[key] ?? match);
|
|
401
|
+
}
|
|
383
402
|
//# sourceMappingURL=HttpMultipartDelivery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpMultipartDelivery.js","sourceRoot":"","sources":["../../src/delivery/HttpMultipartDelivery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,gDAAkC;AAClC,6CAAyC;AACzC,6CAAuC;AAEvC,sCAAmC;AAEnC,+CAAiD;AACjD,4CAAwE;AASxE,kEAAkE;AAClE,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACpF,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,KAAK;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC;IACxE,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC;IACtE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,iEAAiE;AACjE,wEAAwE;AACxE,0CAA4C;AAAnC,mGAAA,SAAS,OAAA;AAElB,0DAA0D;AAC1D,MAAa,qBAAqB;IAIb;IAHF,UAAU,CAAW;IAEtC,YACmB,MAAmC,EACpD,QAAiB;QADA,WAAM,GAAN,MAAM,CAA6B;QAGpD,IAAI,QAAQ,EAAE,CAAC;YACb,8DAA8D;YAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1D,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,MAAM,OAAO,GAA4B,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACtF,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,OAAsC,CAAC,CAAC;YACvG,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAI,KAA2B,EAAE,IAAI,KAAK,YAAY,CAAC;YACpE,MAAM,OAAO,GAAG,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;gBAC7C,GAAG,EAAE,IAAA,kBAAS,EAAC,GAAG,CAAC;gBACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB;gBAClD,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;QAC9E,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,OAAwB;QACpC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAA,8BAAgB,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IAChG,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,UAAU,CAAC,OAAoC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACjD,cAAc,EAAE,kBAAkB;SACnC,CAAC;QACF,MAAM,OAAO,GAA4B;YACvC,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;SACtF,CAAC;QACF,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,OAAsC,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,IAAI,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5F,eAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAAwB;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAC/B,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,EAC5D,OAAO,CACR,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC9C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAC5C,CAAC;QACF,MAAM,OAAO,GAA2B;YACtC,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YACjD,cAAc,EAAE,iCAAiC,SAAS,CAAC,QAAQ,EAAE;YACrE,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;SAClD,CAAC;QACF,MAAM,OAAO,GAA4B;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM;YACpC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO;YACP,MAAM,EAAE,MAAM;SACf,CAAC;QACF,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAC5C,OAAsC,CACvC,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;YACtE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAC3C,CAAC,CAAE,IAA2C,CAAC,IAAI;YACnD,CAAC,CAAC,SAAS,CAAC;QACd,2EAA2E;QAC3E,oDAAoD;QACpD,eAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YAC9C,GAAG,EAAE,IAAA,kBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC3B,cAAc,EAAE,IAAI,EAAE,MAAM;YAC5B,QAAQ,EAAE,IAAI,EAAE,SAAS;YACzB,MAAM,EAAE,IAAI,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IAEO,aAAa,CAAC,QAAkB,EAAE,IAAa;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;QACvD,MAAM,QAAQ,GAAG,gBAAgB;YAC/B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAChE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBAC1D,OAAQ,KAAiC,CAAC,GAAG,CAAC,CAAC;YACjD,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;gBAClF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM;gBAC7B,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACjG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,OAA+B;QACpD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CACzF,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,MAA0C,EAC1C,OAAwB;QAExB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAC5C,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE;YAC3B,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YAC9C,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,UAAU,CAAC;YACvC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC;YACnC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC;YACpC,OAAO,WAAW,SAAS,GAAG,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;YACzB,IAAI,SAAS,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YACvC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YACtC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC;YACnC,OAAO,YAAY,SAAS,EAAE,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,SAAS,GAA2B;YACxC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;YAChC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;YAC1B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;YACxC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE;YAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YAClC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACnD,6EAA6E;YAC7E,IAAI,EACF,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;gBAC9B,CAAC,CAAC,2CAA2C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBACtE,CAAC,CAAC,kCAAkC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;YACjE,4EAA4E;YAC5E,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE;YAC5D,yEAAyE;YACzE,uBAAuB;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC5D,wEAAwE;YACxE,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3D,cAAc;YACd,YAAY;YACZ,gEAAgE;YAChE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;YAC9C,2DAA2D;YAC3D,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YAC/D,uEAAuE;YACvE,oDAAoD;YACpD,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;YACxC,sEAAsE;YACtE,uDAAuD;YACvD,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YACzD,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YACjD,4EAA4E;YAC5E,yEAAyE;YACzE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;YAC5C,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE;YAC9C,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE;YAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE;YAClD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE;YACpC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;YACxC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE;YACxC,sEAAsE;YACtE,sEAAsE;YACtE,iEAAiE;YACjE,cAAc,EAAG,OAAO,CAAC,OAAO,CAAC,cAAyB,IAAI,EAAE;SACjE,CAAC;QACF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAClB,4QAA4Q,EAC5Q,CAAC,CAAC,EAAE,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CACnC,CACF,CAAC;YACF,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,OAAO,EAAE,CAAC;gBAC3C,KAAK,QAAQ;oBACX,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC1B,KAAK,MAAM;oBACT,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5C;oBACE,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,KAAa;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,iCAAiC,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE;YAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,IAAI,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,KAAe,EACf,MAAgC,EAChC,eAAyB,EAAE;QAE3B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,QAAQ,GAAG,aAAa,IAAA,wBAAU,GAAE,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;QAChF,MAAM,SAAS,GAA0D,EAAE,CAAC;QAC5E,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,KAAK,QAAQ,MAAM;gBACjB,yCAAyC,SAAS,gBAAgB,QAAQ,OAAO;gBACjF,gDAAgD,CACnD,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,aAAa,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAC9C,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,UAAU,CAC3C,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,KAAK,QAAQ,MAAM;gBACjB,yCAAyC,YAAY,gBAAgB,QAAQ,OAAO;gBACpF,gDAAgD,CACnD,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,aAAa,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,KAAK,QAAQ,MAAM;oBACjB,yCAAyC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW;oBACrF,GAAG,KAAK,MAAM,CACjB,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,QAAQ,CAAC,CAAC;QACnD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;QAEhC,MAAM,IAAI,GAAG,sBAAQ,CAAC,IAAI,CACxB,CAAC,KAAK,SAAS,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,CAAC,MAAM,CAAC;gBAClB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACtE,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,UAAU;gBAAE,MAAM,IAAI,CAAC;YAC1C,MAAM,OAAO,CAAC;QAChB,CAAC,CAAC,EAAE,CACL,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC3C,CAAC;IAEO,sBAAsB,CAAC,KAAa;QAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEO,OAAO,CAAC,IAAa;QAC3B,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF;AApVD,sDAoVC"}
|
|
1
|
+
{"version":3,"file":"HttpMultipartDelivery.js","sourceRoot":"","sources":["../../src/delivery/HttpMultipartDelivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telegram review delivery: the runner posts the work to the review group and
|
|
3
|
+
* records the review in the control plane.
|
|
4
|
+
*
|
|
5
|
+
* Why this provider exists at all: the old architecture relayed media through
|
|
6
|
+
* TelePost's HTTP API so a long-lived daemon could own the review. Here the media
|
|
7
|
+
* goes straight to Telegram (one upload, from the disposable runner) and the
|
|
8
|
+
* control plane only ever handles ids — an approve is a server-side
|
|
9
|
+
* `copyMessage`, so nothing re-uploads and a 128 MB Worker never touches bytes.
|
|
10
|
+
*
|
|
11
|
+
* The hard part is not the upload, it is not uploading TWICE:
|
|
12
|
+
*
|
|
13
|
+
* 1. before posting, ask the control plane whether this review already exists —
|
|
14
|
+
* a retry after a lost report must converge instead of posting a second copy;
|
|
15
|
+
* 2. if Telegram's answer is ambiguous (network failure), record the review as
|
|
16
|
+
* `uncertain` BEFORE returning, so the next attempt's pre-flight check finds
|
|
17
|
+
* it and stops. An unconfirmed send is never retried blindly;
|
|
18
|
+
* 3. a definitive rejection means nothing was posted, so the delivery is a
|
|
19
|
+
* visible failure rather than a silent duplicate.
|
|
20
|
+
*/
|
|
21
|
+
import type { TelegramReviewDeliveryConfig } from '../config';
|
|
22
|
+
import type { DeliveryAck } from './DeliveryAck';
|
|
23
|
+
import type { DeliveryProvider, DeliveryRequest, DeliveryResult } from './types';
|
|
24
|
+
export declare class TelegramReviewDelivery implements DeliveryProvider {
|
|
25
|
+
private readonly config;
|
|
26
|
+
private readonly fetchImpl;
|
|
27
|
+
constructor(config: TelegramReviewDeliveryConfig, fetchImpl?: typeof fetch);
|
|
28
|
+
/**
|
|
29
|
+
* Deterministic review id: the same work in the same target can only ever have
|
|
30
|
+
* one review, no matter how many attempts run.
|
|
31
|
+
*/
|
|
32
|
+
reviewId(request: DeliveryRequest): string;
|
|
33
|
+
deliver(request: DeliveryRequest): Promise<DeliveryResult>;
|
|
34
|
+
/** GET /control/reviews/<id>: does the control plane already know this review? */
|
|
35
|
+
private lookupReview;
|
|
36
|
+
private controlHeaders;
|
|
37
|
+
private trimmedControlPlane;
|
|
38
|
+
private reportReview;
|
|
39
|
+
/** Bot identity is deployment data; guessing it from a chat id would be wrong. */
|
|
40
|
+
private botId;
|
|
41
|
+
private caption;
|
|
42
|
+
private post;
|
|
43
|
+
private botApiBase;
|
|
44
|
+
}
|
|
45
|
+
/** Compile-time reminder that the ack union stays closed over these kinds. */
|
|
46
|
+
export type TelegramReviewAck = Extract<DeliveryAck, {
|
|
47
|
+
kind: 'accepted' | 'idempotent_replay' | 'retryable_failure' | 'permanent_failure';
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=TelegramReviewDelivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramReviewDelivery.d.ts","sourceRoot":"","sources":["../../src/delivery/TelegramReviewDelivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAuBjF,qBAAa,sBAAuB,YAAW,gBAAgB;IAE3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,MAAM,EAAE,4BAA4B,EACpC,SAAS,GAAE,OAAO,KAAoB;IAGzD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAOpC,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAsEhE,kFAAkF;YACpE,YAAY;IAgB1B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,mBAAmB;YAIb,YAAY;IAwC1B,kFAAkF;IAClF,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;YAKD,IAAI;IA8ElB,OAAO,CAAC,UAAU;CAGnB;AAgBD,8EAA8E;AAC9E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,WAAW,EACX;IAAE,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAA;CAAE,CACvF,CAAC"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Telegram review delivery: the runner posts the work to the review group and
|
|
4
|
+
* records the review in the control plane.
|
|
5
|
+
*
|
|
6
|
+
* Why this provider exists at all: the old architecture relayed media through
|
|
7
|
+
* TelePost's HTTP API so a long-lived daemon could own the review. Here the media
|
|
8
|
+
* goes straight to Telegram (one upload, from the disposable runner) and the
|
|
9
|
+
* control plane only ever handles ids — an approve is a server-side
|
|
10
|
+
* `copyMessage`, so nothing re-uploads and a 128 MB Worker never touches bytes.
|
|
11
|
+
*
|
|
12
|
+
* The hard part is not the upload, it is not uploading TWICE:
|
|
13
|
+
*
|
|
14
|
+
* 1. before posting, ask the control plane whether this review already exists —
|
|
15
|
+
* a retry after a lost report must converge instead of posting a second copy;
|
|
16
|
+
* 2. if Telegram's answer is ambiguous (network failure), record the review as
|
|
17
|
+
* `uncertain` BEFORE returning, so the next attempt's pre-flight check finds
|
|
18
|
+
* it and stops. An unconfirmed send is never retried blindly;
|
|
19
|
+
* 3. a definitive rejection means nothing was posted, so the delivery is a
|
|
20
|
+
* visible failure rather than a silent duplicate.
|
|
21
|
+
*/
|
|
22
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
25
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
26
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
27
|
+
}
|
|
28
|
+
Object.defineProperty(o, k2, desc);
|
|
29
|
+
}) : (function(o, m, k, k2) {
|
|
30
|
+
if (k2 === undefined) k2 = k;
|
|
31
|
+
o[k2] = m[k];
|
|
32
|
+
}));
|
|
33
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
34
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
35
|
+
}) : function(o, v) {
|
|
36
|
+
o["default"] = v;
|
|
37
|
+
});
|
|
38
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
39
|
+
var ownKeys = function(o) {
|
|
40
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
41
|
+
var ar = [];
|
|
42
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
43
|
+
return ar;
|
|
44
|
+
};
|
|
45
|
+
return ownKeys(o);
|
|
46
|
+
};
|
|
47
|
+
return function (mod) {
|
|
48
|
+
if (mod && mod.__esModule) return mod;
|
|
49
|
+
var result = {};
|
|
50
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
51
|
+
__setModuleDefault(result, mod);
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
})();
|
|
55
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
+
exports.TelegramReviewDelivery = void 0;
|
|
57
|
+
const node_crypto_1 = require("node:crypto");
|
|
58
|
+
const logger_1 = require("../logger");
|
|
59
|
+
const HttpMultipartDelivery_1 = require("./HttpMultipartDelivery");
|
|
60
|
+
/**
|
|
61
|
+
* Wrapper, not a stored reference: Cloudflare rejects a detached `fetch`, and a
|
|
62
|
+
* stored `this.fetchImpl` reproduces exactly that failure. Injected in tests.
|
|
63
|
+
*/
|
|
64
|
+
const defaultFetch = (input, init) => globalThis.fetch(input, init);
|
|
65
|
+
class TelegramReviewDelivery {
|
|
66
|
+
config;
|
|
67
|
+
fetchImpl;
|
|
68
|
+
constructor(config, fetchImpl = defaultFetch) {
|
|
69
|
+
this.config = config;
|
|
70
|
+
this.fetchImpl = fetchImpl;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Deterministic review id: the same work in the same target can only ever have
|
|
74
|
+
* one review, no matter how many attempts run.
|
|
75
|
+
*/
|
|
76
|
+
reviewId(request) {
|
|
77
|
+
const prefix = this.config.reviewIdPrefix ?? 'rv';
|
|
78
|
+
const identity = `${request.context.targetId ?? ''}|${request.context.type}|${request.context.pixivId}`;
|
|
79
|
+
const digest = (0, node_crypto_1.createHash)('sha1').update(identity).digest('hex').slice(0, 16);
|
|
80
|
+
return `${prefix}_${digest}`;
|
|
81
|
+
}
|
|
82
|
+
async deliver(request) {
|
|
83
|
+
const reviewId = this.reviewId(request);
|
|
84
|
+
// 1. Pre-flight. A review that already exists means a previous attempt's post
|
|
85
|
+
// landed (only its report was lost): converge, never post again.
|
|
86
|
+
const existing = await this.lookupReview(reviewId);
|
|
87
|
+
if (existing === 'found') {
|
|
88
|
+
logger_1.logger.info('[TelegramReview] review already recorded; not posting again', { reviewId });
|
|
89
|
+
return { ack: { kind: 'idempotent_replay', remoteId: reviewId, remoteStatus: 'review_exists' } };
|
|
90
|
+
}
|
|
91
|
+
if (existing === 'unreachable') {
|
|
92
|
+
// We cannot verify, so we must not post: an unrecorded post could never be
|
|
93
|
+
// approved and a retry would duplicate it.
|
|
94
|
+
return {
|
|
95
|
+
ack: {
|
|
96
|
+
kind: 'retryable_failure',
|
|
97
|
+
error: 'control plane unreachable before posting; postponing to avoid an unrecorded duplicate',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// 2. Post the media with the review keyboard.
|
|
102
|
+
const posted = await this.post(request, reviewId);
|
|
103
|
+
if (!posted.ok) {
|
|
104
|
+
if (posted.ambiguous) {
|
|
105
|
+
await this.reportReview(reviewId, request, {
|
|
106
|
+
status: 'uncertain',
|
|
107
|
+
error: `Telegram send outcome unconfirmed: ${posted.error}`,
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
ack: {
|
|
111
|
+
kind: 'retryable_failure',
|
|
112
|
+
error: `Telegram send outcome unconfirmed; a retry will converge via the pre-flight check (${posted.error})`,
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return { ack: { kind: 'permanent_failure', error: posted.error } };
|
|
117
|
+
}
|
|
118
|
+
// 3. Record the review (idempotent by review id).
|
|
119
|
+
const reported = await this.reportReview(reviewId, request, {
|
|
120
|
+
status: 'pending',
|
|
121
|
+
messages: posted.messages,
|
|
122
|
+
...(posted.mediaGroupId ? { mediaGroupId: posted.mediaGroupId } : {}),
|
|
123
|
+
});
|
|
124
|
+
if (!reported) {
|
|
125
|
+
// The media IS in the review chat but the control plane does not know it.
|
|
126
|
+
// Record it as uncertain so a retry converges instead of posting a copy.
|
|
127
|
+
await this.reportReview(reviewId, request, {
|
|
128
|
+
status: 'uncertain',
|
|
129
|
+
error: 'media posted but the review could not be recorded',
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
ack: {
|
|
133
|
+
kind: 'retryable_failure',
|
|
134
|
+
error: 'media posted but the review was not recorded; recorded as uncertain to prevent a duplicate post',
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
ack: {
|
|
140
|
+
kind: 'accepted',
|
|
141
|
+
remoteId: reviewId,
|
|
142
|
+
remoteStatus: 'in_review',
|
|
143
|
+
raw: { messages: posted.messages.length },
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/** GET /control/reviews/<id>: does the control plane already know this review? */
|
|
148
|
+
async lookupReview(reviewId) {
|
|
149
|
+
try {
|
|
150
|
+
const response = await this.fetchImpl(`${this.trimmedControlPlane()}/reviews/${encodeURIComponent(reviewId)}`, { method: 'GET', headers: this.controlHeaders() });
|
|
151
|
+
if (response.status === 200)
|
|
152
|
+
return 'found';
|
|
153
|
+
if (response.status === 404)
|
|
154
|
+
return 'missing';
|
|
155
|
+
// 401/5xx: treat as unknown rather than "missing" — posting on a maybe is
|
|
156
|
+
// how duplicates happen.
|
|
157
|
+
return 'unreachable';
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
return 'unreachable';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
controlHeaders() {
|
|
164
|
+
return {
|
|
165
|
+
authorization: `Bearer ${this.config.controlPlaneToken}`,
|
|
166
|
+
'content-type': 'application/json',
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
trimmedControlPlane() {
|
|
170
|
+
return this.config.controlPlaneUrl.replace(/\/+$/, '');
|
|
171
|
+
}
|
|
172
|
+
async reportReview(reviewId, request, input) {
|
|
173
|
+
const body = {
|
|
174
|
+
review_id: reviewId,
|
|
175
|
+
bot_id: this.botId(),
|
|
176
|
+
chat_id: this.config.chatId,
|
|
177
|
+
publish_chat_id: this.config.publishChatId,
|
|
178
|
+
...(this.config.publishThreadId !== undefined ? { publish_thread_id: this.config.publishThreadId } : {}),
|
|
179
|
+
slot_id: request.context.slotId ?? null,
|
|
180
|
+
target_id: request.context.targetId ?? null,
|
|
181
|
+
work_id: request.context.pixivId,
|
|
182
|
+
caption: this.caption(request),
|
|
183
|
+
status: input.status,
|
|
184
|
+
};
|
|
185
|
+
if (input.status === 'pending') {
|
|
186
|
+
body.message_id = input.messages[0]?.messageId ?? null;
|
|
187
|
+
body.message_ids = input.messages.map((message) => message.messageId);
|
|
188
|
+
body.file_ids = input.messages.map((message) => message.fileId).filter(Boolean);
|
|
189
|
+
if (input.mediaGroupId)
|
|
190
|
+
body.media_group_id = input.mediaGroupId;
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
body.error = input.error;
|
|
194
|
+
}
|
|
195
|
+
try {
|
|
196
|
+
const response = await this.fetchImpl(`${this.trimmedControlPlane()}/reviews`, {
|
|
197
|
+
method: 'POST',
|
|
198
|
+
headers: this.controlHeaders(),
|
|
199
|
+
body: JSON.stringify(body),
|
|
200
|
+
});
|
|
201
|
+
return response.ok;
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
/** Bot identity is deployment data; guessing it from a chat id would be wrong. */
|
|
208
|
+
botId() {
|
|
209
|
+
return this.config.botId;
|
|
210
|
+
}
|
|
211
|
+
caption(request) {
|
|
212
|
+
if (!this.config.caption)
|
|
213
|
+
return request.context.title;
|
|
214
|
+
return (0, HttpMultipartDelivery_1.renderDeliveryTemplate)(this.config.caption, (0, HttpMultipartDelivery_1.buildTemplateVariables)(request));
|
|
215
|
+
}
|
|
216
|
+
async post(request, reviewId) {
|
|
217
|
+
const keyboard = {
|
|
218
|
+
inline_keyboard: [
|
|
219
|
+
[
|
|
220
|
+
{ text: '✅ 发布', callback_data: `review:${reviewId}:approve` },
|
|
221
|
+
{ text: '❌ 拒绝', callback_data: `review:${reviewId}:reject` },
|
|
222
|
+
],
|
|
223
|
+
],
|
|
224
|
+
};
|
|
225
|
+
const album = (this.config.album ?? true) && request.files.length > 1;
|
|
226
|
+
const form = new FormData();
|
|
227
|
+
form.append('chat_id', this.config.chatId);
|
|
228
|
+
if (this.config.publishThreadId !== undefined) {
|
|
229
|
+
form.append('message_thread_id', String(this.config.publishThreadId));
|
|
230
|
+
}
|
|
231
|
+
form.append('reply_markup', JSON.stringify(keyboard));
|
|
232
|
+
if (album) {
|
|
233
|
+
const media = [];
|
|
234
|
+
for (const [index, file] of request.files.entries()) {
|
|
235
|
+
const buffer = await Promise.resolve().then(() => __importStar(require('node:fs/promises'))).then((fs) => fs.readFile(file));
|
|
236
|
+
form.append(`file${index}`, new Blob([new Uint8Array(buffer)]), `media${index}`);
|
|
237
|
+
media.push({ type: 'photo', media: `attach://file${index}` });
|
|
238
|
+
}
|
|
239
|
+
form.append('media', JSON.stringify(media));
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
const file = request.files[0];
|
|
243
|
+
if (!file)
|
|
244
|
+
return { ok: false, ambiguous: false, error: 'no files to deliver' };
|
|
245
|
+
const buffer = await Promise.resolve().then(() => __importStar(require('node:fs/promises'))).then((fs) => fs.readFile(file));
|
|
246
|
+
form.append(request.context.type === 'novel' ? 'document' : 'photo', new Blob([new Uint8Array(buffer)]), 'media');
|
|
247
|
+
form.append('caption', this.caption(request).slice(0, 1024));
|
|
248
|
+
}
|
|
249
|
+
const method = album ? 'sendMediaGroup' : request.context.type === 'novel' ? 'sendDocument' : 'sendPhoto';
|
|
250
|
+
let response;
|
|
251
|
+
try {
|
|
252
|
+
response = await this.fetchImpl(`${this.botApiBase()}/bot${this.config.botToken}/${method}`, {
|
|
253
|
+
method: 'POST',
|
|
254
|
+
body: form,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
return {
|
|
259
|
+
ok: false,
|
|
260
|
+
ambiguous: true,
|
|
261
|
+
error: error instanceof Error ? error.message : String(error),
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
let envelope = {};
|
|
265
|
+
try {
|
|
266
|
+
envelope = (await response.json());
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
envelope = {};
|
|
270
|
+
}
|
|
271
|
+
if (!response.ok || envelope.ok === false) {
|
|
272
|
+
return {
|
|
273
|
+
ok: false,
|
|
274
|
+
ambiguous: false,
|
|
275
|
+
error: envelope.description ?? `Telegram HTTP ${response.status}`,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
const messages = extractMessages(envelope.result);
|
|
279
|
+
if (messages.length === 0) {
|
|
280
|
+
// A 200 without message ids means we cannot point the review at anything.
|
|
281
|
+
return { ok: false, ambiguous: true, error: 'Telegram accepted the send but returned no message id' };
|
|
282
|
+
}
|
|
283
|
+
const mediaGroupId = Array.isArray(envelope.result)
|
|
284
|
+
? envelope.result[0]?.media_group_id
|
|
285
|
+
: envelope.result?.media_group_id;
|
|
286
|
+
return { ok: true, messages, ...(mediaGroupId ? { mediaGroupId } : {}) };
|
|
287
|
+
}
|
|
288
|
+
botApiBase() {
|
|
289
|
+
return process.env.TELEGRAM_API_BASE ?? 'https://api.telegram.org';
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
exports.TelegramReviewDelivery = TelegramReviewDelivery;
|
|
293
|
+
function extractMessages(result) {
|
|
294
|
+
const items = Array.isArray(result) ? result : result ? [result] : [];
|
|
295
|
+
const messages = [];
|
|
296
|
+
for (const item of items) {
|
|
297
|
+
const message = item;
|
|
298
|
+
if (typeof message.message_id !== 'number')
|
|
299
|
+
continue;
|
|
300
|
+
// The largest photo size carries the file id we would reuse later.
|
|
301
|
+
const photo = Array.isArray(message.photo) ? message.photo[message.photo.length - 1] : undefined;
|
|
302
|
+
const fileId = photo?.file_id ?? message.document?.file_id;
|
|
303
|
+
messages.push({ messageId: message.message_id, ...(fileId ? { fileId } : {}) });
|
|
304
|
+
}
|
|
305
|
+
return messages;
|
|
306
|
+
}
|
|
307
|
+
//# sourceMappingURL=TelegramReviewDelivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TelegramReviewDelivery.js","sourceRoot":"","sources":["../../src/delivery/TelegramReviewDelivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,16 @@ export declare class DownloadManager implements IDownloadManager {
|
|
|
46
46
|
private readonly deliveryService;
|
|
47
47
|
/** Per-target TYPED outcome hook (the Slot ledger maps it to cell transitions). */
|
|
48
48
|
private onTargetOutcome;
|
|
49
|
+
/**
|
|
50
|
+
* Works this bot already handled, according to durable history outside this
|
|
51
|
+
* process (empty for a normal local run, populated by a batch runner).
|
|
52
|
+
*/
|
|
53
|
+
private processedWorkIds;
|
|
54
|
+
/** Supply durable duplicate history before the run starts. */
|
|
55
|
+
setProcessedWorkIds(ids: {
|
|
56
|
+
illustration?: string[];
|
|
57
|
+
novel?: string[];
|
|
58
|
+
}): void;
|
|
49
59
|
/** Register a callback fired after each target with its explicit business outcome. */
|
|
50
60
|
setTargetOutcomeHook(fn: (target: TargetConfig, outcome: TargetOutcome) => void): void;
|
|
51
61
|
/** Expose delivery service for handlers (preflight + intent creation). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownloadManager.d.ts","sourceRoot":"","sources":["../../src/download/DownloadManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAK3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"DownloadManager.d.ts","sourceRoot":"","sources":["../../src/download/DownloadManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAU1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAK3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAsEpD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAGvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAxE9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAyB;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAGlD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,mFAAmF;IACnF,OAAO,CAAC,eAAe,CAAyE;IAChG;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAA2D;IAEnF,8DAA8D;IACvD,mBAAmB,CAAC,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI;IAOpF,sFAAsF;IAC/E,oBAAoB,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAI7F,0EAA0E;IAC1E,IAAW,UAAU,IAAI,eAAe,CAEvC;IAED,iFAAiF;IAC1E,WAAW,CAAC,EAAE;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF;;;;OAIG;IACI,MAAM,CAAC,MAAM,GAAE,MAAoB,GAAG,IAAI;IAQ1C,WAAW,IAAI,OAAO;gBAKV,MAAM,EAAE,gBAAgB,EACzC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,SAAS,EACF,WAAW,EAAE,YAAY;IA4F5C,mBAAmB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIlF,UAAU;IAIV,aAAa;YAyDZ,cAAc;IAY5B,OAAO,CAAC,cAAc;CAIvB"}
|