"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRouter = createRouter; /** * ABE API Router — registers all module routes. */ const express_1 = require("express"); const CrawlingController_1 = require("../modules/crawling/infrastructure/http/CrawlingController"); const FindingsController_1 = require("../modules/findings/infrastructure/http/FindingsController"); const FuzzingController_1 = require("../modules/fuzzing/infrastructure/http/FuzzingController"); const ReportingController_1 = require("../modules/reporting/infrastructure/http/ReportingController"); const AuthController_1 = require("../modules/auth/infrastructure/http/AuthController"); const AuthMiddleware_1 = require("../modules/auth/application/middleware/AuthMiddleware"); function createRouter(deps) { const router = (0, express_1.Router)(); const { authDeps } = deps; // Auth routes — public (no auth middleware) router.use('/auth', (0, AuthController_1.createAuthController)(authDeps.registerCommand, authDeps.loginCommand, authDeps.createOrgCommand, authDeps.inviteMemberCommand, authDeps.createApiKeyCommand, authDeps.getUserQuery, authDeps.listOrgMembersQuery, authDeps.sessionRepository, authDeps.apiKeyRepository, authDeps.userRepository)); // Apply auth middleware to all routes below const authMiddleware = (0, AuthMiddleware_1.createAuthMiddleware)(authDeps.userRepository, authDeps.sessionRepository, authDeps.apiKeyRepository); router.use(authMiddleware); router.use('/sessions', (0, CrawlingController_1.createCrawlingRouter)(deps.crawlingDeps)); router.use('/findings', (0, FindingsController_1.createFindingsRouter)(deps.findingsDeps)); router.use('/fuzz', (0, FuzzingController_1.createFuzzingRouter)(deps.fuzzingDeps)); router.use('/reports', (0, ReportingController_1.createReportingRouter)(deps.reportingDeps)); return router; }