pixivflow 2.16.1 → 2.18.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.
Files changed (143) hide show
  1. package/{README_EN.md → README.en.md} +8 -6
  2. package/README.md +8 -6
  3. package/config/examples/README.md +218 -0
  4. package/config/examples/multi-tag-or-limit.zh.json +49 -0
  5. package/config/examples/specific-download.example.json +173 -0
  6. package/config/examples/standalone.config.example.json +167 -0
  7. package/config/examples/standalone.config.novel-chinese.json +124 -0
  8. package/config/examples/standalone.config.ranking.json +135 -0
  9. package/config/examples/standalone.config.simple.json +52 -0
  10. package/config/examples/yesterday-popular-novel.zh.json +48 -0
  11. package/config/examples/yesterday-ranking-illustration.json +43 -0
  12. package/dist/auth/PixivAuth.d.ts +12 -0
  13. package/dist/auth/PixivAuth.d.ts.map +1 -1
  14. package/dist/auth/PixivAuth.js +26 -0
  15. package/dist/auth/PixivAuth.js.map +1 -1
  16. package/dist/batch/executionResult.d.ts +85 -0
  17. package/dist/batch/executionResult.d.ts.map +1 -0
  18. package/dist/batch/executionResult.js +102 -0
  19. package/dist/batch/executionResult.js.map +1 -0
  20. package/dist/batch/runDiagnostics.d.ts +48 -0
  21. package/dist/batch/runDiagnostics.d.ts.map +1 -0
  22. package/dist/batch/runDiagnostics.js +103 -0
  23. package/dist/batch/runDiagnostics.js.map +1 -0
  24. package/dist/commands/Command.d.ts +5 -0
  25. package/dist/commands/Command.d.ts.map +1 -1
  26. package/dist/commands/Command.js +7 -0
  27. package/dist/commands/Command.js.map +1 -1
  28. package/dist/commands/DiagnoseEgressCommand.d.ts +98 -0
  29. package/dist/commands/DiagnoseEgressCommand.d.ts.map +1 -0
  30. package/dist/commands/DiagnoseEgressCommand.js +327 -0
  31. package/dist/commands/DiagnoseEgressCommand.js.map +1 -0
  32. package/dist/commands/ExecuteSlotCommand.d.ts +37 -0
  33. package/dist/commands/ExecuteSlotCommand.d.ts.map +1 -0
  34. package/dist/commands/ExecuteSlotCommand.js +267 -0
  35. package/dist/commands/ExecuteSlotCommand.js.map +1 -0
  36. package/dist/commands/MaintainCommand.d.ts.map +1 -1
  37. package/dist/commands/MaintainCommand.js +10 -15
  38. package/dist/commands/MaintainCommand.js.map +1 -1
  39. package/dist/commands/index.d.ts +3 -1
  40. package/dist/commands/index.d.ts.map +1 -1
  41. package/dist/commands/index.js +7 -1
  42. package/dist/commands/index.js.map +1 -1
  43. package/dist/commands/scheduler-runtime.d.ts +37 -1
  44. package/dist/commands/scheduler-runtime.d.ts.map +1 -1
  45. package/dist/commands/scheduler-runtime.js +52 -19
  46. package/dist/commands/scheduler-runtime.js.map +1 -1
  47. package/dist/commands/types.d.ts +6 -0
  48. package/dist/commands/types.d.ts.map +1 -1
  49. package/dist/config/types.d.ts +33 -1
  50. package/dist/config/types.d.ts.map +1 -1
  51. package/dist/config/validation.d.ts +14 -1
  52. package/dist/config/validation.d.ts.map +1 -1
  53. package/dist/config/validation.js +109 -33
  54. package/dist/config/validation.js.map +1 -1
  55. package/dist/config.d.ts +1 -1
  56. package/dist/config.d.ts.map +1 -1
  57. package/dist/config.js.map +1 -1
  58. package/dist/delivery/DeliveryDispatcher.d.ts.map +1 -1
  59. package/dist/delivery/DeliveryDispatcher.js +7 -0
  60. package/dist/delivery/DeliveryDispatcher.js.map +1 -1
  61. package/dist/delivery/HttpMultipartDelivery.d.ts +12 -0
  62. package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
  63. package/dist/delivery/HttpMultipartDelivery.js +89 -70
  64. package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
  65. package/dist/delivery/LegacyOutboxMigration.js +1 -1
  66. package/dist/delivery/LegacyOutboxMigration.js.map +1 -1
  67. package/dist/delivery/TelegramReviewDelivery.d.ts +49 -0
  68. package/dist/delivery/TelegramReviewDelivery.d.ts.map +1 -0
  69. package/dist/delivery/TelegramReviewDelivery.js +307 -0
  70. package/dist/delivery/TelegramReviewDelivery.js.map +1 -0
  71. package/dist/download/DownloadManager.d.ts +10 -0
  72. package/dist/download/DownloadManager.d.ts.map +1 -1
  73. package/dist/download/DownloadManager.js +21 -0
  74. package/dist/download/DownloadManager.js.map +1 -1
  75. package/dist/download/plan/DownloadPlanner.d.ts +10 -0
  76. package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
  77. package/dist/download/plan/DownloadPlanner.js +19 -0
  78. package/dist/download/plan/DownloadPlanner.js.map +1 -1
  79. package/dist/index.js +5 -3
  80. package/dist/index.js.map +1 -1
  81. package/dist/notification/NotificationPolicy.d.ts.map +1 -1
  82. package/dist/notification/NotificationPolicy.js +4 -1
  83. package/dist/notification/NotificationPolicy.js.map +1 -1
  84. package/dist/package.json +1 -1
  85. package/dist/pixiv-token-getter-adapter.d.ts +27 -7
  86. package/dist/pixiv-token-getter-adapter.d.ts.map +1 -1
  87. package/dist/pixiv-token-getter-adapter.js +44 -27
  88. package/dist/pixiv-token-getter-adapter.js.map +1 -1
  89. package/dist/puppeteer-login-adapter/auth-code.d.ts +1 -1
  90. package/dist/puppeteer-login-adapter/auth-code.d.ts.map +1 -1
  91. package/dist/puppeteer-login-adapter/browser-launch.d.ts +21 -0
  92. package/dist/puppeteer-login-adapter/browser-launch.d.ts.map +1 -0
  93. package/dist/puppeteer-login-adapter/browser-launch.js +46 -0
  94. package/dist/puppeteer-login-adapter/browser-launch.js.map +1 -0
  95. package/dist/puppeteer-login-adapter/environment.js +2 -2
  96. package/dist/puppeteer-login-adapter/environment.js.map +1 -1
  97. package/dist/puppeteer-login-adapter/login-headless.d.ts.map +1 -1
  98. package/dist/puppeteer-login-adapter/login-headless.js +2 -5
  99. package/dist/puppeteer-login-adapter/login-headless.js.map +1 -1
  100. package/dist/puppeteer-login-adapter/login-interactive.d.ts.map +1 -1
  101. package/dist/puppeteer-login-adapter/login-interactive.js +2 -5
  102. package/dist/puppeteer-login-adapter/login-interactive.js.map +1 -1
  103. package/dist/storage/Database.d.ts +2 -0
  104. package/dist/storage/Database.d.ts.map +1 -1
  105. package/dist/storage/Database.js +7 -6
  106. package/dist/storage/Database.js.map +1 -1
  107. package/dist/storage/DatabaseMigration.d.ts +2 -2
  108. package/dist/storage/DatabaseMigration.d.ts.map +1 -1
  109. package/dist/storage/DatabaseMigration.js.map +1 -1
  110. package/dist/storage/drivers/NodeSqliteDriver.d.ts +14 -0
  111. package/dist/storage/drivers/NodeSqliteDriver.d.ts.map +1 -0
  112. package/dist/storage/drivers/NodeSqliteDriver.js +123 -0
  113. package/dist/storage/drivers/NodeSqliteDriver.js.map +1 -0
  114. package/dist/storage/drivers/SqliteDriver.d.ts +55 -0
  115. package/dist/storage/drivers/SqliteDriver.d.ts.map +1 -0
  116. package/dist/storage/drivers/SqliteDriver.js +21 -0
  117. package/dist/storage/drivers/SqliteDriver.js.map +1 -0
  118. package/dist/storage/repositories/BaseRepository.d.ts +4 -4
  119. package/dist/storage/repositories/BaseRepository.d.ts.map +1 -1
  120. package/dist/storage/repositories/BaseRepository.js.map +1 -1
  121. package/dist/storage/repositories/DownloadRepository.d.ts +2 -1
  122. package/dist/storage/repositories/DownloadRepository.d.ts.map +1 -1
  123. package/dist/storage/repositories/DownloadRepository.js.map +1 -1
  124. package/dist/storage/repositories/RateLimitStateRepository.d.ts +1 -1
  125. package/dist/storage/repositories/RateLimitStateRepository.js +1 -1
  126. package/dist/utils/concurrency.d.ts.map +1 -1
  127. package/dist/utils/concurrency.js +9 -2
  128. package/dist/utils/concurrency.js.map +1 -1
  129. package/dist/utils/config-validator-unified.d.ts.map +1 -1
  130. package/dist/utils/config-validator-unified.js +15 -1
  131. package/dist/utils/config-validator-unified.js.map +1 -1
  132. package/dist/utils/token-maintenance.d.ts +0 -4
  133. package/dist/utils/token-maintenance.d.ts.map +1 -1
  134. package/dist/utils/token-maintenance.js +5 -25
  135. package/dist/utils/token-maintenance.js.map +1 -1
  136. package/dist/version.js +1 -1
  137. package/dist/webui/package.json +1 -1
  138. package/node_modules/@redtidev/pixiv-client/README.en.md +105 -0
  139. package/node_modules/@redtidev/pixiv-client/README.md +67 -73
  140. package/node_modules/@redtidev/pixiv-client/dist/rate-limit/RateLimitGate.d.ts +1 -1
  141. package/node_modules/@redtidev/pixiv-client/dist/rate-limit/RateLimitGate.js +1 -1
  142. package/node_modules/@redtidev/pixiv-client/src/rate-limit/RateLimitGate.ts +1 -1
  143. package/package.json +7 -8
@@ -1,7 +1,20 @@
1
1
  /**
2
2
  * Configuration validation utilities
3
3
  */
4
- import { StandaloneConfig } from './types';
4
+ import { StandaloneConfig, TelegramReviewDeliveryConfig } from './types';
5
+ /** A single unusable field, rendered by each validator in its own error shape. */
6
+ export interface DeliveryFieldError {
7
+ field: string;
8
+ code: string;
9
+ message: string;
10
+ }
11
+ /**
12
+ * Validates a `telegram` review delivery target.
13
+ *
14
+ * Both config validators call this: a required field added here can no longer be
15
+ * enforced by one and silently accepted by the other.
16
+ */
17
+ export declare function collectTelegramDeliveryErrors(name: string, target: TelegramReviewDeliveryConfig): DeliveryFieldError[];
5
18
  /**
6
19
  * Validation error with detailed information
7
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,MAAM,EAAE,MAAM,EAAE;aAChB,QAAQ,EAAE,MAAM,EAAE;gBAFlC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,GAAE,MAAM,EAAO;CAK1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAsY/G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB/G"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAKzE,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,4BAA4B,GACnC,kBAAkB,EAAE,CA4DtB;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAG5B,MAAM,EAAE,MAAM,EAAE;aAChB,QAAQ,EAAE,MAAM,EAAE;gBAFlC,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,GAAE,MAAM,EAAO;CAK1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CA8Y/G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAkB/G"}
@@ -7,6 +7,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ConfigValidationError = void 0;
10
+ exports.collectTelegramDeliveryErrors = collectTelegramDeliveryErrors;
10
11
  exports.validateConfig = validateConfig;
11
12
  exports.validateConfigFile = validateConfigFile;
12
13
  const node_cron_1 = __importDefault(require("node-cron"));
@@ -14,6 +15,72 @@ const logger_1 = require("../logger");
14
15
  const errors_1 = require("../utils/errors");
15
16
  const token_manager_1 = require("../utils/token-manager");
16
17
  const loader_1 = require("./loader");
18
+ const ENV_PLACEHOLDER = /\$\{[A-Za-z_][A-Za-z0-9_]*\}/;
19
+ /**
20
+ * Validates a `telegram` review delivery target.
21
+ *
22
+ * Both config validators call this: a required field added here can no longer be
23
+ * enforced by one and silently accepted by the other.
24
+ */
25
+ function collectTelegramDeliveryErrors(name, target) {
26
+ const errors = [];
27
+ const at = (field) => `delivery.targets.${name}.${field}`;
28
+ const required = (field) => {
29
+ const value = target[field];
30
+ if (value === undefined || value === null || String(value).trim() === '') {
31
+ errors.push({
32
+ field: at(field),
33
+ code: 'DELIVERY_FIELD_REQUIRED',
34
+ message: 'Required field is missing or empty',
35
+ });
36
+ return false;
37
+ }
38
+ return true;
39
+ };
40
+ required('botId');
41
+ if (required('botToken')) {
42
+ const token = String(target.botToken).trim();
43
+ // A literal token must look like a Bot API token; a placeholder is resolved later.
44
+ if (!ENV_PLACEHOLDER.test(token) && !/^\d+:[A-Za-z0-9_-]{20,}$/.test(token)) {
45
+ errors.push({
46
+ field: at('botToken'),
47
+ code: 'DELIVERY_BOT_TOKEN_INVALID',
48
+ message: 'Must be a Bot API token or an ${ENV_NAME} placeholder',
49
+ });
50
+ }
51
+ }
52
+ required('chatId');
53
+ required('publishChatId');
54
+ required('controlPlaneToken');
55
+ if (required('controlPlaneUrl')) {
56
+ const url = String(target.controlPlaneUrl).trim();
57
+ if (!ENV_PLACEHOLDER.test(url)) {
58
+ let valid = false;
59
+ try {
60
+ valid = ['http:', 'https:'].includes(new URL(url).protocol);
61
+ }
62
+ catch {
63
+ valid = false;
64
+ }
65
+ if (!valid) {
66
+ errors.push({
67
+ field: at('controlPlaneUrl'),
68
+ code: 'DELIVERY_CONTROL_PLANE_URL_INVALID',
69
+ message: 'Must be a valid HTTP or HTTPS URL',
70
+ });
71
+ }
72
+ }
73
+ }
74
+ if (target.publishThreadId !== undefined &&
75
+ (!Number.isInteger(target.publishThreadId) || target.publishThreadId < 0)) {
76
+ errors.push({
77
+ field: at('publishThreadId'),
78
+ code: 'DELIVERY_PUBLISH_THREAD_INVALID',
79
+ message: 'Must be a non-negative integer',
80
+ });
81
+ }
82
+ return errors;
83
+ }
17
84
  /**
18
85
  * Validation error with detailed information
19
86
  */
@@ -175,7 +242,9 @@ function validateConfig(config, location, databasePath) {
175
242
  }
176
243
  if (target.noMatchPolicy?.notify === true) {
177
244
  const deliveryTarget = target.delivery?.target?.trim();
178
- if (!deliveryTarget || !config.delivery?.targets?.[deliveryTarget]?.notificationUrl?.trim()) {
245
+ const notifyTarget = deliveryTarget ? config.delivery?.targets?.[deliveryTarget] : undefined;
246
+ const hasNotificationUrl = notifyTarget?.type === 'httpMultipart' && Boolean(notifyTarget.notificationUrl?.trim());
247
+ if (!hasNotificationUrl) {
179
248
  errors.push(`targets[${index}].noMatchPolicy.notify: Delivery target must configure notificationUrl`);
180
249
  }
181
250
  }
@@ -204,45 +273,52 @@ function validateConfig(config, location, databasePath) {
204
273
  }
205
274
  for (const [name, delivery] of Object.entries(config.delivery?.targets ?? {})) {
206
275
  const prefix = `delivery.targets.${name}`;
207
- if (delivery.type !== 'httpMultipart') {
208
- errors.push(`${prefix}.type: Unsupported delivery type "${delivery.type}"`);
209
- continue;
210
- }
211
- if (!delivery.url?.trim()) {
212
- errors.push(`${prefix}.url: Required field is missing or empty`);
213
- }
214
- else if (!/\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(delivery.url)) {
215
- try {
216
- const url = new URL(delivery.url);
217
- if (!['http:', 'https:'].includes(url.protocol))
218
- throw new Error('unsupported protocol');
219
- }
220
- catch {
221
- errors.push(`${prefix}.url: Must be a valid HTTP or HTTPS URL`);
276
+ if (delivery.type === 'telegram') {
277
+ for (const error of collectTelegramDeliveryErrors(name, delivery)) {
278
+ errors.push(`${error.field}: ${error.message}`);
222
279
  }
223
280
  }
224
- if (delivery.notificationUrl && !/\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(delivery.notificationUrl)) {
225
- try {
226
- const url = new URL(delivery.notificationUrl);
227
- if (!['http:', 'https:'].includes(url.protocol))
228
- throw new Error('unsupported protocol');
281
+ else if (delivery.type === 'httpMultipart') {
282
+ if (!delivery.url?.trim()) {
283
+ errors.push(`${prefix}.url: Required field is missing or empty`);
229
284
  }
230
- catch {
231
- errors.push(`${prefix}.notificationUrl: Must be a valid HTTP or HTTPS URL`);
285
+ else if (!/\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(delivery.url)) {
286
+ try {
287
+ const url = new URL(delivery.url);
288
+ if (!['http:', 'https:'].includes(url.protocol))
289
+ throw new Error('unsupported protocol');
290
+ }
291
+ catch {
292
+ errors.push(`${prefix}.url: Must be a valid HTTP or HTTPS URL`);
293
+ }
232
294
  }
233
- }
234
- if (delivery.readinessUrl && !/\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(delivery.readinessUrl)) {
235
- try {
236
- const url = new URL(delivery.readinessUrl);
237
- if (!['http:', 'https:'].includes(url.protocol))
238
- throw new Error('unsupported protocol');
295
+ if (delivery.notificationUrl && !/\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(delivery.notificationUrl)) {
296
+ try {
297
+ const url = new URL(delivery.notificationUrl);
298
+ if (!['http:', 'https:'].includes(url.protocol))
299
+ throw new Error('unsupported protocol');
300
+ }
301
+ catch {
302
+ errors.push(`${prefix}.notificationUrl: Must be a valid HTTP or HTTPS URL`);
303
+ }
239
304
  }
240
- catch {
241
- errors.push(`${prefix}.readinessUrl: Must be a valid HTTP or HTTPS URL`);
305
+ if (delivery.readinessUrl && !/\$\{[A-Za-z_][A-Za-z0-9_]*\}/.test(delivery.readinessUrl)) {
306
+ try {
307
+ const url = new URL(delivery.readinessUrl);
308
+ if (!['http:', 'https:'].includes(url.protocol))
309
+ throw new Error('unsupported protocol');
310
+ }
311
+ catch {
312
+ errors.push(`${prefix}.readinessUrl: Must be a valid HTTP or HTTPS URL`);
313
+ }
314
+ }
315
+ if (delivery.method && !['POST', 'PUT'].includes(delivery.method)) {
316
+ errors.push(`${prefix}.method: Must be "POST" or "PUT"`);
242
317
  }
243
318
  }
244
- if (delivery.method && !['POST', 'PUT'].includes(delivery.method)) {
245
- errors.push(`${prefix}.method: Must be "POST" or "PUT"`);
319
+ else {
320
+ errors.push(`${prefix}.type: Unsupported delivery type "${delivery.type}"`);
321
+ continue;
246
322
  }
247
323
  if (delivery.maxAttempts !== undefined && (!Number.isInteger(delivery.maxAttempts) || delivery.maxAttempts < 1)) {
248
324
  errors.push(`${prefix}.maxAttempts: Must be an integer greater than 0`);
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * This module re-exports all configuration types and functions from sub-modules
5
5
  * to maintain backward compatibility with existing code.
6
6
  */
7
- export type { TargetType, TargetConfig, DeliveryFieldValue, TargetDeliveryConfig, PixivCredentialConfig, NetworkConfig, OrganizationMode, StorageConfig, SchedulerConfig, ScheduleConfig, SchedulerRuntimeConfig, HttpMultipartSuccessConfig, HttpMultipartDeliveryConfig, DeliveryTargetConfig, DeliveryConfig, StandaloneConfig, } from './config/types';
7
+ export type { TargetType, TargetConfig, DeliveryFieldValue, TargetDeliveryConfig, PixivCredentialConfig, NetworkConfig, OrganizationMode, StorageConfig, SchedulerConfig, ScheduleConfig, SchedulerRuntimeConfig, HttpMultipartSuccessConfig, HttpMultipartDeliveryConfig, TelegramReviewDeliveryConfig, DeliveryTargetConfig, DeliveryConfig, StandaloneConfig, } from './config/types';
8
8
  export { loadConfig, getConfigPath } from './config/loader';
9
9
  export { generateDefaultConfig, DEFAULT_CONFIG } from './config/defaults';
10
10
  export { validateConfigFile, ConfigValidationError } from './config/validation';
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAsBH,iCAAiC;AACjC,0CAA4D;AAAnD,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAClC,8CAA0E;AAAjE,iHAAA,qBAAqB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAC9C,kDAAgF;AAAvE,gHAAA,kBAAkB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAClD,oDAA+G;AAAtG,wHAAA,yBAAyB,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAChF,sDAAkE;AAAzD,yHAAA,yBAAyB,OAAA;AAClC,4DAAyD;AAAhD,gHAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAuBH,iCAAiC;AACjC,0CAA4D;AAAnD,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAClC,8CAA0E;AAAjE,iHAAA,qBAAqB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAC9C,kDAAgF;AAAvE,gHAAA,kBAAkB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAClD,oDAA+G;AAAtG,wHAAA,yBAAyB,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAAE,gHAAA,iBAAiB,OAAA;AAChF,sDAAkE;AAAzD,yHAAA,yBAAyB,OAAA;AAClC,4DAAyD;AAAhD,gHAAA,aAAa,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryDispatcher.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAyB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvF,iFAAiF;AACjF,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,CAAC,EAAE,MAAM,YAAA;IAGpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,yEAAyE;IACnE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQ3D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAaxE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;CAa1F"}
1
+ {"version":3,"file":"DeliveryDispatcher.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAyB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvF,iFAAiF;AACjF,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,CAAC,EAAE,MAAM,YAAA;IAGpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7C,yEAAyE;IACnE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAW3D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAexE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;CAa1F"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeliveryDispatcher = void 0;
4
4
  const errors_1 = require("../utils/errors");
5
5
  const HttpMultipartDelivery_1 = require("./HttpMultipartDelivery");
6
+ const TelegramReviewDelivery_1 = require("./TelegramReviewDelivery");
6
7
  /** Resolves named delivery targets without coupling the outbox to a provider. */
7
8
  class DeliveryDispatcher {
8
9
  config;
@@ -24,6 +25,10 @@ class DeliveryDispatcher {
24
25
  // deliver/notify so the durable outbox records the normal retry error.
25
26
  if (!target)
26
27
  return { ready: true };
28
+ // Only the HTTP provider exposes a readiness endpoint. A Telegram review
29
+ // target has nothing to probe: its delivery fails visibly instead.
30
+ if (target.type !== 'httpMultipart')
31
+ return { ready: true };
27
32
  return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).readinessProbe();
28
33
  }
29
34
  async deliver(name, request) {
@@ -34,6 +39,8 @@ class DeliveryDispatcher {
34
39
  switch (target.type) {
35
40
  case 'httpMultipart':
36
41
  return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).deliver(request);
42
+ case 'telegram':
43
+ return new TelegramReviewDelivery_1.TelegramReviewDelivery(target).deliver(request);
37
44
  default:
38
45
  throw new errors_1.ConfigError(`Unsupported delivery target type: ${target.type}`);
39
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryDispatcher.js","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAC9C,mEAAsF;AAGtF,iFAAiF;AACjF,MAAa,kBAAkB;IAEV;IACA;IAFnB,YACmB,MAAkC,EAClC,QAAiB;QADjB,WAAM,GAAN,MAAM,CAA4B;QAClC,aAAQ,GAAR,QAAQ,CAAS;IACjC,CAAC;IAEJ,SAAS,CAAC,IAAY;QACpB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpC,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAwB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe;gBAClB,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3E;gBACE,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAoC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;CACF;AAjDD,gDAiDC"}
1
+ {"version":3,"file":"DeliveryDispatcher.js","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAC9C,mEAAsF;AACtF,qEAAkE;AAGlE,iFAAiF;AACjF,MAAa,kBAAkB;IAEV;IACA;IAFnB,YACmB,MAAkC,EAClC,QAAiB;QADjB,WAAM,GAAN,MAAM,CAA4B;QAClC,aAAQ,GAAR,QAAQ,CAAS;IACjC,CAAC;IAEJ,SAAS,CAAC,IAAY;QACpB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpC,yEAAyE;QACzE,mEAAmE;QACnE,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5D,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAwB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe;gBAClB,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3E,KAAK,UAAU;gBACb,OAAO,IAAI,+CAAsB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7D;gBACE,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAoC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;CACF;AAtDD,gDAsDC"}
@@ -39,4 +39,16 @@ export declare class HttpMultipartDelivery implements DeliveryProvider {
39
39
  private escapeDispositionValue;
40
40
  private preview;
41
41
  }
42
+ /**
43
+ * Template variables shared by every delivery provider.
44
+ *
45
+ * Exported so a provider that is not HTTP multipart — the Telegram review sender —
46
+ * renders the SAME vocabulary instead of owning a second, drifting copy of it.
47
+ */
48
+ export declare function buildTemplateVariables(request: DeliveryRequest): Record<string, string>;
49
+ /**
50
+ * `{{name}}` substitution. Unknown placeholders are left literal rather than
51
+ * silently emptied, so a typo in a template is visible in the delivered message.
52
+ */
53
+ export declare function renderDeliveryTemplate(template: string, variables: Record<string, string>): string;
42
54
  //# sourceMappingURL=HttpMultipartDelivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpMultipartDelivery.d.ts","sourceRoot":"","sources":["../../src/delivery/HttpMultipartDelivery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzG,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD,iEAAiE;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,0DAA0D;AAC1D,qBAAa,qBAAsB,YAAW,gBAAgB;IAI1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAU;gBAGnB,MAAM,EAAE,2BAA2B,EACpD,QAAQ,CAAC,EAAE,MAAM;IASb,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA0BrD;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAShE,4DAA4D;IACtD,UAAU,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;YAsBpF,OAAO;IAkDrB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IAuFrB,OAAO,CAAC,sBAAsB;YAUhB,mBAAmB;IAoEjC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,OAAO;CAIhB"}
1
+ {"version":3,"file":"HttpMultipartDelivery.d.ts","sourceRoot":"","sources":["../../src/delivery/HttpMultipartDelivery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzG,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD,iEAAiE;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,0DAA0D;AAC1D,qBAAa,qBAAsB,YAAW,gBAAgB;IAI1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAU;gBAGnB,MAAM,EAAE,2BAA2B,EACpD,QAAQ,CAAC,EAAE,MAAM;IASb,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA0BrD;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAShE,4DAA4D;IACtD,UAAU,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;YAsBpF,OAAO;IAkDrB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,sBAAsB;YAUhB,mBAAmB;IAoEjC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,OAAO;CAIhB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiEvF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAElG"}
@@ -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 xRestrict = request.context.xRestrict;
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).replace(/\{\{(title|pixivId|type|targetId|tag|topic|workTags|link|topicTag|spoiler|xRestrict|xRestrictLabel|xRestrictTag|rankingDate|publishedDate|language|bookmarkCount|viewCount|scheduleId|executionId|occurrenceAt|triggerSource|slotId|slotName|slotDate|idempotencyKey)\}\}/g, (_, key) => variables[key]));
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