pixivflow 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -2
- package/README_EN.md +15 -0
- package/config/fly-two-bots.example.json +242 -0
- package/dist/commands/SchedulerCommand.d.ts +1 -0
- package/dist/commands/SchedulerCommand.d.ts.map +1 -1
- package/dist/commands/SchedulerCommand.js +78 -22
- package/dist/commands/SchedulerCommand.js.map +1 -1
- package/dist/config/defaults.d.ts +5 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +6 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/path-resolution.d.ts.map +1 -1
- package/dist/config/path-resolution.js +4 -0
- package/dist/config/path-resolution.js.map +1 -1
- package/dist/config/types.d.ts +44 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +64 -0
- 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/DeliveryOutbox.d.ts +11 -1
- package/dist/delivery/DeliveryOutbox.d.ts.map +1 -1
- package/dist/delivery/DeliveryOutbox.js +38 -8
- package/dist/delivery/DeliveryOutbox.js.map +1 -1
- package/dist/download/DownloadManager.d.ts.map +1 -1
- package/dist/download/DownloadManager.js +7 -1
- package/dist/download/DownloadManager.js.map +1 -1
- package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
- package/dist/download/handlers/IllustrationTargetHandler.js +15 -6
- package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
- package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
- package/dist/download/handlers/NovelTargetHandler.js +13 -6
- package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/scheduler/MultiScheduleManager.d.ts +39 -0
- package/dist/scheduler/MultiScheduleManager.d.ts.map +1 -0
- package/dist/scheduler/MultiScheduleManager.js +182 -0
- package/dist/scheduler/MultiScheduleManager.js.map +1 -0
- package/dist/scheduler/Scheduler.d.ts +13 -1
- package/dist/scheduler/Scheduler.d.ts.map +1 -1
- package/dist/scheduler/Scheduler.js +31 -7
- package/dist/scheduler/Scheduler.js.map +1 -1
- package/dist/scheduler/schedules.d.ts +8 -0
- package/dist/scheduler/schedules.d.ts.map +1 -0
- package/dist/scheduler/schedules.js +32 -0
- package/dist/scheduler/schedules.js.map +1 -0
- package/dist/storage/Database.d.ts +5 -4
- package/dist/storage/Database.d.ts.map +1 -1
- package/dist/storage/Database.js +13 -9
- package/dist/storage/Database.js.map +1 -1
- package/dist/storage/DatabaseMigration.d.ts.map +1 -1
- package/dist/storage/DatabaseMigration.js +11 -0
- package/dist/storage/DatabaseMigration.js.map +1 -1
- package/dist/storage/repositories/SchedulerRepository.d.ts +4 -4
- package/dist/storage/repositories/SchedulerRepository.d.ts.map +1 -1
- package/dist/storage/repositories/SchedulerRepository.js +18 -12
- package/dist/storage/repositories/SchedulerRepository.js.map +1 -1
- package/dist/utils/config-validator-unified.d.ts.map +1 -1
- package/dist/utils/config-validator-unified.js +84 -0
- package/dist/utils/config-validator-unified.js.map +1 -1
- package/dist/webui/package.json +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../../src/scheduler/Scheduler.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgD;AAGhD,sCAAmC;AACnC,4CAAuD;
|
|
1
|
+
{"version":3,"file":"Scheduler.js","sourceRoot":"","sources":["../../src/scheduler/Scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ScheduleConfig, StandaloneConfig, TargetConfig } from '../config';
|
|
2
|
+
export declare const LEGACY_SCHEDULE_ID = "default";
|
|
3
|
+
/** Return configured plans while preserving the legacy single-cron format. */
|
|
4
|
+
export declare function resolveSchedules(config: StandaloneConfig): ScheduleConfig[];
|
|
5
|
+
/** Select a plan's targets without mutating the active config snapshot. */
|
|
6
|
+
export declare function selectScheduleTargets(targets: TargetConfig[], schedule: ScheduleConfig): TargetConfig[];
|
|
7
|
+
export declare function describeSchedule(schedule: ScheduleConfig): string;
|
|
8
|
+
//# sourceMappingURL=schedules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/scheduler/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE3E,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAa3E;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,cAAc,GACvB,YAAY,EAAE,CAOhB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAEjE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LEGACY_SCHEDULE_ID = void 0;
|
|
4
|
+
exports.resolveSchedules = resolveSchedules;
|
|
5
|
+
exports.selectScheduleTargets = selectScheduleTargets;
|
|
6
|
+
exports.describeSchedule = describeSchedule;
|
|
7
|
+
exports.LEGACY_SCHEDULE_ID = 'default';
|
|
8
|
+
/** Return configured plans while preserving the legacy single-cron format. */
|
|
9
|
+
function resolveSchedules(config) {
|
|
10
|
+
if (config.schedules !== undefined) {
|
|
11
|
+
return config.schedules.map((schedule) => ({
|
|
12
|
+
...schedule,
|
|
13
|
+
targetIds: schedule.targetIds ? [...schedule.targetIds] : undefined,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
if (!config.scheduler) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
return [{ id: exports.LEGACY_SCHEDULE_ID, name: 'Default', ...config.scheduler }];
|
|
20
|
+
}
|
|
21
|
+
/** Select a plan's targets without mutating the active config snapshot. */
|
|
22
|
+
function selectScheduleTargets(targets, schedule) {
|
|
23
|
+
if (!schedule.targetIds || schedule.targetIds.length === 0) {
|
|
24
|
+
return [...targets];
|
|
25
|
+
}
|
|
26
|
+
const selected = new Set(schedule.targetIds);
|
|
27
|
+
return targets.filter((target) => target.id && selected.has(target.id));
|
|
28
|
+
}
|
|
29
|
+
function describeSchedule(schedule) {
|
|
30
|
+
return schedule.name?.trim() || schedule.id;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=schedules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/scheduler/schedules.ts"],"names":[],"mappings":";;;AAKA,4CAaC;AAGD,sDAUC;AAED,4CAEC;AAjCY,QAAA,kBAAkB,GAAG,SAAS,CAAC;AAE5C,8EAA8E;AAC9E,SAAgB,gBAAgB,CAAC,MAAwB;IACvD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzC,GAAG,QAAQ;YACX,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC,CAAC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,EAAE,0BAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,2EAA2E;AAC3E,SAAgB,qBAAqB,CACnC,OAAuB,EACvB,QAAwB;IAExB,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAwB;IACvD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -24,6 +24,7 @@ export interface SchedulerExecutionRecord {
|
|
|
24
24
|
duration: number | null;
|
|
25
25
|
errorMessage: string | null;
|
|
26
26
|
itemsDownloaded: number;
|
|
27
|
+
scheduleId: string;
|
|
27
28
|
}
|
|
28
29
|
export declare class Database implements IDatabase {
|
|
29
30
|
private readonly databasePath;
|
|
@@ -71,10 +72,10 @@ export declare class Database implements IDatabase {
|
|
|
71
72
|
deletedCount: number;
|
|
72
73
|
message?: string;
|
|
73
74
|
};
|
|
74
|
-
getNextExecutionNumber(): number;
|
|
75
|
-
logSchedulerExecution(executionNumber: number, status: 'success' | 'failed' | 'timeout' | 'skipped', startTime: Date, endTime: Date | null, durationMs: number | null, errorMessage: string | null, itemsDownloaded?: number): void;
|
|
75
|
+
getNextExecutionNumber(scheduleId?: string): number;
|
|
76
|
+
logSchedulerExecution(executionNumber: number, status: 'success' | 'failed' | 'timeout' | 'skipped', startTime: Date, endTime: Date | null, durationMs: number | null, errorMessage: string | null, itemsDownloaded?: number, scheduleId?: string): void;
|
|
76
77
|
recordSchedulerExecution(executionNumber: number, status: 'success' | 'failed' | 'timeout' | 'skipped', startTime: Date, endTime: Date | null, duration: number | null, errorMessage: string | null, itemsDownloaded: number): void;
|
|
77
|
-
getSchedulerStats(): {
|
|
78
|
+
getSchedulerStats(scheduleId?: string): {
|
|
78
79
|
totalExecutions: number;
|
|
79
80
|
successfulExecutions: number;
|
|
80
81
|
failedExecutions: number;
|
|
@@ -84,7 +85,7 @@ export declare class Database implements IDatabase {
|
|
|
84
85
|
};
|
|
85
86
|
getRecentSchedulerExecutions(limit?: number): SchedulerExecutionRecord[];
|
|
86
87
|
getSchedulerExecutions(limit?: number): SchedulerExecutionRecord[];
|
|
87
|
-
getConsecutiveFailures(): number;
|
|
88
|
+
getConsecutiveFailures(scheduleId?: string): number;
|
|
88
89
|
getDownloadHistory(options: {
|
|
89
90
|
page?: number;
|
|
90
91
|
limit?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/storage/Database.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AASpD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/storage/Database.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/Database.js
CHANGED
|
@@ -34,7 +34,11 @@ class Database {
|
|
|
34
34
|
this.db.pragma('journal_mode = WAL');
|
|
35
35
|
// Optimize for read-heavy workloads
|
|
36
36
|
this.db.pragma('synchronous = NORMAL');
|
|
37
|
-
|
|
37
|
+
const configuredCacheKb = Number.parseInt(process.env.PIXIV_DB_CACHE_KB || '8192', 10);
|
|
38
|
+
const cacheKb = Number.isFinite(configuredCacheKb)
|
|
39
|
+
? Math.min(Math.max(configuredCacheKb, 1024), 65536)
|
|
40
|
+
: 8192;
|
|
41
|
+
this.db.pragma(`cache_size = -${cacheKb}`);
|
|
38
42
|
// Initialize repositories
|
|
39
43
|
this.migration = new DatabaseMigration_1.DatabaseMigration(this.db);
|
|
40
44
|
this.tokenRepo = new TokenRepository_1.TokenRepository(this.db);
|
|
@@ -103,17 +107,17 @@ class Database {
|
|
|
103
107
|
return this.executionRepo.deleteAllIncompleteTasks();
|
|
104
108
|
}
|
|
105
109
|
// Scheduler management - delegated to SchedulerRepository
|
|
106
|
-
getNextExecutionNumber() {
|
|
107
|
-
return this.schedulerRepo.getNextExecutionNumber();
|
|
110
|
+
getNextExecutionNumber(scheduleId) {
|
|
111
|
+
return this.schedulerRepo.getNextExecutionNumber(scheduleId);
|
|
108
112
|
}
|
|
109
|
-
logSchedulerExecution(executionNumber, status, startTime, endTime, durationMs, errorMessage, itemsDownloaded = 0) {
|
|
110
|
-
this.schedulerRepo.logSchedulerExecution(executionNumber, status, startTime, endTime, durationMs, errorMessage, itemsDownloaded);
|
|
113
|
+
logSchedulerExecution(executionNumber, status, startTime, endTime, durationMs, errorMessage, itemsDownloaded = 0, scheduleId) {
|
|
114
|
+
this.schedulerRepo.logSchedulerExecution(executionNumber, status, startTime, endTime, durationMs, errorMessage, itemsDownloaded, scheduleId);
|
|
111
115
|
}
|
|
112
116
|
recordSchedulerExecution(executionNumber, status, startTime, endTime, duration, errorMessage, itemsDownloaded) {
|
|
113
117
|
this.schedulerRepo.recordSchedulerExecution(executionNumber, status, startTime, endTime, duration, errorMessage, itemsDownloaded);
|
|
114
118
|
}
|
|
115
|
-
getSchedulerStats() {
|
|
116
|
-
return this.schedulerRepo.getSchedulerStats();
|
|
119
|
+
getSchedulerStats(scheduleId) {
|
|
120
|
+
return this.schedulerRepo.getSchedulerStats(scheduleId);
|
|
117
121
|
}
|
|
118
122
|
getRecentSchedulerExecutions(limit = 10) {
|
|
119
123
|
return this.schedulerRepo.getRecentSchedulerExecutions(limit);
|
|
@@ -121,8 +125,8 @@ class Database {
|
|
|
121
125
|
getSchedulerExecutions(limit) {
|
|
122
126
|
return this.schedulerRepo.getSchedulerExecutions(limit);
|
|
123
127
|
}
|
|
124
|
-
getConsecutiveFailures() {
|
|
125
|
-
return this.schedulerRepo.getConsecutiveFailures();
|
|
128
|
+
getConsecutiveFailures(scheduleId) {
|
|
129
|
+
return this.schedulerRepo.getConsecutiveFailures(scheduleId);
|
|
126
130
|
}
|
|
127
131
|
// Additional download methods - delegated to DownloadRepository
|
|
128
132
|
getDownloadHistory(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/storage/Database.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAC5C,qCAAoC;AACpC,yCAAoC;AACpC,4CAAgD;AAEhD,2DAAwD;AACxD,oEAAiE;AACjE,0EAAuE;AACvE,4EAAyE;AACzE,4EAAyE;AACzE,oFAAiF;AACjF,gFAA6E;
|
|
1
|
+
{"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/storage/Database.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseMigration.d.ts","sourceRoot":"","sources":["../../src/storage/DatabaseMigration.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAI5C;;GAEG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,cAAc,CAAC,QAAQ;IAExD;;OAEG;IACI,OAAO,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"DatabaseMigration.d.ts","sourceRoot":"","sources":["../../src/storage/DatabaseMigration.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAI5C;;GAEG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,cAAc,CAAC,QAAQ;IAExD;;OAEG;IACI,OAAO,IAAI,IAAI;CAsIvB"}
|
|
@@ -110,6 +110,17 @@ class DatabaseMigration {
|
|
|
110
110
|
// In SQLite, if column exists, ALTER TABLE will fail, which is fine
|
|
111
111
|
logger_1.logger.warn('Failed to add is_active column (may already exist)', { error });
|
|
112
112
|
}
|
|
113
|
+
// Scope scheduler counters/history by plan while keeping old rows valid.
|
|
114
|
+
try {
|
|
115
|
+
const tableInfo = this.db.prepare(`PRAGMA table_info(scheduler_executions)`).all();
|
|
116
|
+
if (!tableInfo.some(col => col.name === 'schedule_id')) {
|
|
117
|
+
this.db.prepare(`ALTER TABLE scheduler_executions ADD COLUMN schedule_id TEXT NOT NULL DEFAULT 'default'`).run();
|
|
118
|
+
}
|
|
119
|
+
this.db.prepare(`CREATE INDEX IF NOT EXISTS idx_scheduler_executions_schedule ON scheduler_executions(schedule_id, execution_number)`).run();
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
logger_1.logger.warn('Failed to add scheduler plan scope (may already exist)', { error });
|
|
123
|
+
}
|
|
113
124
|
// Add task_history table if it doesn't exist (for backward compatibility)
|
|
114
125
|
try {
|
|
115
126
|
const tableInfo = this.db.prepare(`PRAGMA table_info(task_history)`).all();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseMigration.js","sourceRoot":"","sources":["../../src/storage/DatabaseMigration.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAChD,sCAAmC;AAEnC;;GAEG;AACH,MAAa,iBAAiB;IACC;IAA7B,YAA6B,EAA2B;QAA3B,OAAE,GAAF,EAAE,CAAyB;IAAG,CAAC;IAE5D;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC;YACH,MAAM,UAAU,GAAG;gBACjB;;;;YAII;gBACJ;;;;;;;;;;;YAWI;gBACJ;;;;;;;YAOI;gBACJ;;;;;;;;;;YAUI;gBACJ;;;;;;;YAOI;gBACJ;;;;;;;;;;;;;YAaI;aACL,CAAC;YAEF,8CAA8C;YAC9C,MAAM,OAAO,GAAG;gBACd,qFAAqF;gBACrF,gEAAgE;gBAChE,oFAAoF;gBACpF,mFAAmF;gBACnF,sGAAsG;gBACtG,4FAA4F;gBAC5F,wFAAwF;gBACxF,8EAA8E;gBAC9E,4EAA4E;gBAC5E,oFAAoF;aACrF,CAAC;YAEF,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAe,EAAE,EAAE;gBAC1D,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,WAAW,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;YAEzC,6DAA6D;YAC7D,IAAI,CAAC;gBACH,uDAAuD;gBACvD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,EAA6B,CAAC;gBACxG,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;gBAE1E,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC3F,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC,CAAC,GAAG,EAAE,CAAC;gBAChH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,2CAA2C;gBAC3C,oEAAoE;gBACpE,eAAM,CAAC,IAAI,CAAC,oDAAoD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,CAAC;YAED,0EAA0E;YAC1E,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,EAA6B,CAAC;gBACtG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,2EAA2E;oBAC3E,8BAA8B;oBAC9B,eAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAa,CACrB,mCAAmC,EACnC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"DatabaseMigration.js","sourceRoot":"","sources":["../../src/storage/DatabaseMigration.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,11 @@ export declare class SchedulerRepository extends BaseRepository {
|
|
|
7
7
|
/**
|
|
8
8
|
* Get the next execution number for the scheduler
|
|
9
9
|
*/
|
|
10
|
-
getNextExecutionNumber(): number;
|
|
10
|
+
getNextExecutionNumber(scheduleId?: string): number;
|
|
11
11
|
/**
|
|
12
12
|
* Log a scheduler execution
|
|
13
13
|
*/
|
|
14
|
-
logSchedulerExecution(executionNumber: number, status: 'success' | 'failed' | 'timeout' | 'skipped', startTime: Date, endTime: Date | null, durationMs: number | null, errorMessage: string | null, itemsDownloaded?: number): void;
|
|
14
|
+
logSchedulerExecution(executionNumber: number, status: 'success' | 'failed' | 'timeout' | 'skipped', startTime: Date, endTime: Date | null, durationMs: number | null, errorMessage: string | null, itemsDownloaded?: number, scheduleId?: string): void;
|
|
15
15
|
/**
|
|
16
16
|
* Record scheduler execution (alias for logSchedulerExecution)
|
|
17
17
|
*/
|
|
@@ -19,7 +19,7 @@ export declare class SchedulerRepository extends BaseRepository {
|
|
|
19
19
|
/**
|
|
20
20
|
* Get scheduler execution statistics
|
|
21
21
|
*/
|
|
22
|
-
getSchedulerStats(): {
|
|
22
|
+
getSchedulerStats(scheduleId?: string): {
|
|
23
23
|
totalExecutions: number;
|
|
24
24
|
successfulExecutions: number;
|
|
25
25
|
failedExecutions: number;
|
|
@@ -38,6 +38,6 @@ export declare class SchedulerRepository extends BaseRepository {
|
|
|
38
38
|
/**
|
|
39
39
|
* Get consecutive failure count
|
|
40
40
|
*/
|
|
41
|
-
getConsecutiveFailures(): number;
|
|
41
|
+
getConsecutiveFailures(scheduleId?: string): number;
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=SchedulerRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulerRepository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/SchedulerRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD;;OAEG;IACI,sBAAsB,
|
|
1
|
+
{"version":3,"file":"SchedulerRepository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/SchedulerRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACrD;;OAEG;IACI,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAS1D;;OAEG;IACI,qBAAqB,CAC1B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,EACpD,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GAAG,IAAI,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,eAAe,GAAE,MAAU,EAC3B,UAAU,GAAE,MAAkB,GAC7B,IAAI;IAmBP;;OAEG;IACI,wBAAwB,CAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,EACpD,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GAAG,IAAI,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,eAAe,EAAE,MAAM,GACtB,IAAI;IAYP;;OAEG;IACI,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG;QAC7C,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,oBAAoB,EAAE,MAAM,CAAC;KAC9B;IAgCD;;OAEG;IACI,4BAA4B,CAAC,KAAK,GAAE,MAAW,GAAG,wBAAwB,EAAE;IA0CnF;;OAEG;IACI,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAIzE;;OAEG;IACI,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;CAqB3D"}
|
|
@@ -9,18 +9,19 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
9
9
|
/**
|
|
10
10
|
* Get the next execution number for the scheduler
|
|
11
11
|
*/
|
|
12
|
-
getNextExecutionNumber() {
|
|
13
|
-
const stmt = this.db.prepare(`SELECT COALESCE(MAX(execution_number), 0) + 1 as next FROM scheduler_executions
|
|
14
|
-
|
|
12
|
+
getNextExecutionNumber(scheduleId) {
|
|
13
|
+
const stmt = this.db.prepare(`SELECT COALESCE(MAX(execution_number), 0) + 1 as next FROM scheduler_executions
|
|
14
|
+
${scheduleId ? 'WHERE schedule_id = ?' : ''}`);
|
|
15
|
+
const row = (scheduleId ? stmt.get(scheduleId) : stmt.get());
|
|
15
16
|
return row.next;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Log a scheduler execution
|
|
19
20
|
*/
|
|
20
|
-
logSchedulerExecution(executionNumber, status, startTime, endTime, durationMs, errorMessage, itemsDownloaded = 0) {
|
|
21
|
+
logSchedulerExecution(executionNumber, status, startTime, endTime, durationMs, errorMessage, itemsDownloaded = 0, scheduleId = 'default') {
|
|
21
22
|
const stmt = this.db.prepare(`INSERT INTO scheduler_executions
|
|
22
|
-
(execution_number, status, start_time, end_time, duration_ms, error_message, items_downloaded)
|
|
23
|
-
VALUES (@execution_number, @status, @start_time, @end_time, @duration_ms, @error_message, @items_downloaded)`);
|
|
23
|
+
(execution_number, status, start_time, end_time, duration_ms, error_message, items_downloaded, schedule_id)
|
|
24
|
+
VALUES (@execution_number, @status, @start_time, @end_time, @duration_ms, @error_message, @items_downloaded, @schedule_id)`);
|
|
24
25
|
stmt.run({
|
|
25
26
|
execution_number: executionNumber,
|
|
26
27
|
status,
|
|
@@ -29,6 +30,7 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
29
30
|
duration_ms: durationMs ?? null,
|
|
30
31
|
error_message: errorMessage ?? null,
|
|
31
32
|
items_downloaded: itemsDownloaded,
|
|
33
|
+
schedule_id: scheduleId,
|
|
32
34
|
});
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
@@ -40,7 +42,7 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
40
42
|
/**
|
|
41
43
|
* Get scheduler execution statistics
|
|
42
44
|
*/
|
|
43
|
-
getSchedulerStats() {
|
|
45
|
+
getSchedulerStats(scheduleId) {
|
|
44
46
|
const statsStmt = this.db.prepare(`SELECT
|
|
45
47
|
COUNT(*) as total,
|
|
46
48
|
SUM(CASE WHEN status = 'success' THEN 1 ELSE 0 END) as successful,
|
|
@@ -48,8 +50,9 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
48
50
|
MAX(start_time) as last_execution,
|
|
49
51
|
AVG(duration_ms) as avg_duration,
|
|
50
52
|
SUM(items_downloaded) as total_items
|
|
51
|
-
FROM scheduler_executions
|
|
52
|
-
|
|
53
|
+
FROM scheduler_executions
|
|
54
|
+
${scheduleId ? 'WHERE schedule_id = ?' : ''}`);
|
|
55
|
+
const row = (scheduleId ? statsStmt.get(scheduleId) : statsStmt.get());
|
|
53
56
|
return {
|
|
54
57
|
totalExecutions: row.total ?? 0,
|
|
55
58
|
successfulExecutions: row.successful ?? 0,
|
|
@@ -71,7 +74,8 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
71
74
|
end_time,
|
|
72
75
|
duration_ms,
|
|
73
76
|
error_message,
|
|
74
|
-
|
|
77
|
+
items_downloaded
|
|
78
|
+
,schedule_id
|
|
75
79
|
FROM scheduler_executions
|
|
76
80
|
ORDER BY execution_number DESC
|
|
77
81
|
LIMIT ?`);
|
|
@@ -85,6 +89,7 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
85
89
|
duration: row.duration_ms,
|
|
86
90
|
errorMessage: row.error_message,
|
|
87
91
|
itemsDownloaded: row.items_downloaded,
|
|
92
|
+
scheduleId: row.schedule_id || 'default',
|
|
88
93
|
}));
|
|
89
94
|
}
|
|
90
95
|
/**
|
|
@@ -96,11 +101,12 @@ class SchedulerRepository extends BaseRepository_1.BaseRepository {
|
|
|
96
101
|
/**
|
|
97
102
|
* Get consecutive failure count
|
|
98
103
|
*/
|
|
99
|
-
getConsecutiveFailures() {
|
|
104
|
+
getConsecutiveFailures(scheduleId) {
|
|
100
105
|
const stmt = this.db.prepare(`SELECT status FROM scheduler_executions
|
|
106
|
+
${scheduleId ? 'WHERE schedule_id = ?' : ''}
|
|
101
107
|
ORDER BY execution_number DESC
|
|
102
108
|
LIMIT 100`);
|
|
103
|
-
const rows = stmt.all();
|
|
109
|
+
const rows = (scheduleId ? stmt.all(scheduleId) : stmt.all());
|
|
104
110
|
let count = 0;
|
|
105
111
|
for (const row of rows) {
|
|
106
112
|
if (row.status === 'failed' || row.status === 'timeout') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchedulerRepository.js","sourceRoot":"","sources":["../../../src/storage/repositories/SchedulerRepository.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAGlD;;GAEG;AACH,MAAa,mBAAoB,SAAQ,+BAAc;IACrD;;OAEG;IACI,sBAAsB;
|
|
1
|
+
{"version":3,"file":"SchedulerRepository.js","sourceRoot":"","sources":["../../../src/storage/repositories/SchedulerRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validator-unified.d.ts","sourceRoot":"","sources":["../../src/utils/config-validator-unified.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config-validator-unified.d.ts","sourceRoot":"","sources":["../../src/utils/config-validator-unified.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAgB,MAAM,WAAW,CAAC;AAK3D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,QAAQ,CACN,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACjC,OAAO,GAAE;QACP,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd,GACL,gBAAgB;IAkUnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6D3B;;OAEG;IACH,eAAe,CACb,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACjC,OAAO,GAAE;QACP,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd,GACL,IAAI;CAaR;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAGrD,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAEzE;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,gBAAgB,CAKlB"}
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
* Unified configuration validator
|
|
4
4
|
* Consolidates all configuration validation logic from different modules
|
|
5
5
|
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
10
|
exports.configValidator = exports.ConfigValidator = void 0;
|
|
8
11
|
exports.validateConfig = validateConfig;
|
|
9
12
|
exports.validateConfigWithUnifiedStorage = validateConfigWithUnifiedStorage;
|
|
13
|
+
const node_cron_1 = __importDefault(require("node-cron"));
|
|
10
14
|
const token_manager_1 = require("./token-manager");
|
|
11
15
|
const errors_1 = require("./errors");
|
|
12
16
|
/**
|
|
@@ -77,8 +81,19 @@ class ConfigValidator {
|
|
|
77
81
|
// Validate targets (targets can be empty for URL-based downloads)
|
|
78
82
|
// Only validate target structure if targets are provided
|
|
79
83
|
if (config.targets && config.targets.length > 0) {
|
|
84
|
+
const targetIds = new Set();
|
|
80
85
|
config.targets.forEach((target, index) => {
|
|
81
86
|
const targetPrefix = `targets[${index}]`;
|
|
87
|
+
if (target.id) {
|
|
88
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/.test(target.id) || targetIds.has(target.id)) {
|
|
89
|
+
errors.push({
|
|
90
|
+
code: 'CONFIG_VALIDATION_TARGET_ID_INVALID',
|
|
91
|
+
field: `${targetPrefix}.id`,
|
|
92
|
+
message: `Target ${index + 1}: Id must be unique and contain only letters, numbers, '_' or '-'`,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
targetIds.add(target.id);
|
|
96
|
+
}
|
|
82
97
|
if (!target.type) {
|
|
83
98
|
errors.push({
|
|
84
99
|
code: 'CONFIG_VALIDATION_TARGET_TYPE_REQUIRED',
|
|
@@ -163,6 +178,29 @@ class ConfigValidator {
|
|
|
163
178
|
});
|
|
164
179
|
}
|
|
165
180
|
}
|
|
181
|
+
const retryBase = config.delivery?.outboxRetryBaseMs;
|
|
182
|
+
const retryMax = config.delivery?.outboxRetryMaxMs;
|
|
183
|
+
if (retryBase !== undefined && (!Number.isInteger(retryBase) || retryBase < 0)) {
|
|
184
|
+
errors.push({
|
|
185
|
+
code: 'CONFIG_VALIDATION_OUTBOX_RETRY_BASE_INVALID',
|
|
186
|
+
field: 'delivery.outboxRetryBaseMs',
|
|
187
|
+
message: 'Delivery outbox retry base must be an integer greater than or equal to 0',
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
if (retryMax !== undefined && (!Number.isInteger(retryMax) || retryMax < 0)) {
|
|
191
|
+
errors.push({
|
|
192
|
+
code: 'CONFIG_VALIDATION_OUTBOX_RETRY_MAX_INVALID',
|
|
193
|
+
field: 'delivery.outboxRetryMaxMs',
|
|
194
|
+
message: 'Delivery outbox retry maximum must be an integer greater than or equal to 0',
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
if (retryBase !== undefined && retryMax !== undefined && retryMax < retryBase) {
|
|
198
|
+
errors.push({
|
|
199
|
+
code: 'CONFIG_VALIDATION_OUTBOX_RETRY_RANGE_INVALID',
|
|
200
|
+
field: 'delivery.outboxRetryMaxMs',
|
|
201
|
+
message: 'Delivery outbox retry maximum must be greater than or equal to the base',
|
|
202
|
+
});
|
|
203
|
+
}
|
|
166
204
|
// Validate storage config
|
|
167
205
|
if (!config.storage) {
|
|
168
206
|
errors.push({
|
|
@@ -235,6 +273,52 @@ class ConfigValidator {
|
|
|
235
273
|
}
|
|
236
274
|
}
|
|
237
275
|
}
|
|
276
|
+
if (config.schedules !== undefined) {
|
|
277
|
+
const scheduleIds = new Set();
|
|
278
|
+
const targetIds = new Set((config.targets ?? []).flatMap(target => target.id ? [target.id] : []));
|
|
279
|
+
config.schedules.forEach((schedule, index) => {
|
|
280
|
+
const prefix = `schedules[${index}]`;
|
|
281
|
+
if (!schedule.id || !/^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/.test(schedule.id) || scheduleIds.has(schedule.id)) {
|
|
282
|
+
errors.push({
|
|
283
|
+
code: 'CONFIG_VALIDATION_SCHEDULE_ID_INVALID',
|
|
284
|
+
field: `${prefix}.id`,
|
|
285
|
+
message: `Schedule ${index + 1}: Id must be unique and contain only letters, numbers, '_' or '-'`,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
scheduleIds.add(schedule.id);
|
|
289
|
+
if (schedule.enabled && (!schedule.cron || !node_cron_1.default.validate(schedule.cron))) {
|
|
290
|
+
errors.push({
|
|
291
|
+
code: 'CONFIG_VALIDATION_CRON_INVALID',
|
|
292
|
+
field: `${prefix}.cron`,
|
|
293
|
+
message: `Schedule ${index + 1}: Cron expression is invalid`,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
for (const targetId of schedule.targetIds ?? []) {
|
|
297
|
+
if (!targetIds.has(targetId)) {
|
|
298
|
+
errors.push({
|
|
299
|
+
code: 'CONFIG_VALIDATION_SCHEDULE_TARGET_UNKNOWN',
|
|
300
|
+
field: `${prefix}.targetIds`,
|
|
301
|
+
message: `Schedule ${index + 1}: Unknown target id '${targetId}'`,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
if (config.schedulerRuntime?.reloadDebounceMs !== undefined && config.schedulerRuntime.reloadDebounceMs < 100) {
|
|
308
|
+
errors.push({
|
|
309
|
+
code: 'CONFIG_VALIDATION_RELOAD_DEBOUNCE_INVALID',
|
|
310
|
+
field: 'schedulerRuntime.reloadDebounceMs',
|
|
311
|
+
message: 'Reload debounce must be at least 100ms',
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
if (config.schedulerRuntime?.queueLimit !== undefined &&
|
|
315
|
+
(!Number.isInteger(config.schedulerRuntime.queueLimit) || config.schedulerRuntime.queueLimit < 0 || config.schedulerRuntime.queueLimit > 100)) {
|
|
316
|
+
errors.push({
|
|
317
|
+
code: 'CONFIG_VALIDATION_QUEUE_LIMIT_INVALID',
|
|
318
|
+
field: 'schedulerRuntime.queueLimit',
|
|
319
|
+
message: 'Queue limit must be an integer between 0 and 100',
|
|
320
|
+
});
|
|
321
|
+
}
|
|
238
322
|
// Validate log level
|
|
239
323
|
if (config.logLevel && !['debug', 'info', 'warn', 'error'].includes(config.logLevel)) {
|
|
240
324
|
errors.push({
|