fase(15): reporting module with pdf generation
This commit is contained in:
19
dist/main.js
vendored
19
dist/main.js
vendored
@@ -49,6 +49,9 @@ const CreateApiKeyCommand_1 = require("./modules/auth/application/commands/Creat
|
||||
const GetUserQuery_1 = require("./modules/auth/application/queries/GetUserQuery");
|
||||
const ListOrgMembersQuery_1 = require("./modules/auth/application/queries/ListOrgMembersQuery");
|
||||
const PasswordService_1 = require("./modules/auth/infrastructure/auth/PasswordService");
|
||||
// Reporting module
|
||||
const KyselyReportRepository_1 = require("./modules/reporting/infrastructure/repositories/KyselyReportRepository");
|
||||
const GenerateReportCommand_1 = require("./modules/reporting/application/commands/GenerateReportCommand");
|
||||
// Job queue
|
||||
const SQLiteJobQueue_1 = require("./jobs/SQLiteJobQueue");
|
||||
const ExplorationWorker_1 = require("./jobs/workers/ExplorationWorker");
|
||||
@@ -72,6 +75,7 @@ async function bootstrap() {
|
||||
const sessionRepo = new KyselyCrawlSessionRepository_1.KyselyCrawlSessionRepository(db);
|
||||
const stateRepo = new KyselyStateRepository_1.KyselyStateRepository(db);
|
||||
const findingRepo = new KyselyFindingRepository_1.KyselyFindingRepository(db);
|
||||
const reportRepo = new KyselyReportRepository_1.KyselyReportRepository(db);
|
||||
const fuzzRepo = new InMemoryFuzzSessionRepository_1.InMemoryFuzzSessionRepository();
|
||||
// Suppress unused warning for stateRepo — used by crawling infrastructure
|
||||
void stateRepo;
|
||||
@@ -108,7 +112,14 @@ async function bootstrap() {
|
||||
const createApiKeyCommand = new CreateApiKeyCommand_1.CreateApiKeyCommand(apiKeyRepo, userRepo);
|
||||
const getUserQuery = new GetUserQuery_1.GetUserQuery(userRepo);
|
||||
const listOrgMembersQuery = new ListOrgMembersQuery_1.ListOrgMembersQuery(orgRepo, userRepo);
|
||||
// 11. HTTP server
|
||||
// 11. Reporting use cases
|
||||
const generateReport = new GenerateReportCommand_1.GenerateReportCommand(reportRepo, eventBus);
|
||||
// 12. Job queue (created before HTTP server so it can be injected)
|
||||
const jobQueue = new SQLiteJobQueue_1.SQLiteJobQueue(db, logger, config.jobs.pollIntervalMs);
|
||||
jobQueue.registerHandler(ExplorationWorker_1.EXPLORATION_JOB_TYPE, (0, ExplorationWorker_1.createExplorationJobHandler)({ sessionRepo, eventBus, logger }));
|
||||
jobQueue.registerHandler(ReportWorker_1.REPORT_JOB_TYPE, (0, ReportWorker_1.createReportJobHandler)({ logger, reportRepository: reportRepo, findingRepository: findingRepo }));
|
||||
jobQueue.start();
|
||||
// 13. HTTP server
|
||||
const app = (0, server_1.createServer)({
|
||||
config,
|
||||
logger,
|
||||
@@ -116,6 +127,7 @@ async function bootstrap() {
|
||||
crawlingDeps: { startCrawl, stopCrawl, getSession, listSessions },
|
||||
findingsDeps: { getFinding, listFindings, findingStats, resolveFinding, enrichFinding },
|
||||
fuzzingDeps: { runFuzz, repository: fuzzRepo },
|
||||
reportingDeps: { generateReport, reportRepository: reportRepo, jobQueue },
|
||||
authDeps: {
|
||||
registerCommand,
|
||||
loginCommand,
|
||||
@@ -130,11 +142,6 @@ async function bootstrap() {
|
||||
},
|
||||
});
|
||||
const httpServer = http_1.default.createServer(app);
|
||||
// 11. Job queue
|
||||
const jobQueue = new SQLiteJobQueue_1.SQLiteJobQueue(db, logger, config.jobs.pollIntervalMs);
|
||||
jobQueue.registerHandler(ExplorationWorker_1.EXPLORATION_JOB_TYPE, (0, ExplorationWorker_1.createExplorationJobHandler)({ sessionRepo, eventBus, logger }));
|
||||
jobQueue.registerHandler(ReportWorker_1.REPORT_JOB_TYPE, (0, ReportWorker_1.createReportJobHandler)({ logger }));
|
||||
jobQueue.start();
|
||||
// 12. Socket.io + gateway
|
||||
const io = new socket_io_1.Server(httpServer, {
|
||||
cors: { origin: config.cors.origin, credentials: true },
|
||||
|
||||
Reference in New Issue
Block a user