"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthModule = void 0; const common_1 = require("@nestjs/common"); const auth_controller_1 = require("./auth.controller"); const auth_service_1 = require("./auth.service"); const config_1 = require("@nestjs/config"); const jwt_1 = require("@nestjs/jwt"); const prisma_service_1 = require("../../shared/prisma.service"); const user_interface_1 = require("../identity/domain/repositories/user.interface"); const prisma_user_repository_1 = require("../identity/infrastructure/repositories/prisma-user.repository"); const sync_identity_handler_1 = require("../identity/application/handlers/user/sync-identity.handler"); const role_interface_1 = require("../identity/domain/repositories/role.interface"); const prisma_role_repository_1 = require("../identity/infrastructure/repositories/prisma-role.repository"); const i_auth_config_1 = require("../identity/application/config/i-auth-config"); const env_auth_config_1 = require("../identity/application/config/env-auth-config"); const redis_pkce_store_1 = require("./pkce/redis-pkce.store"); const inmemory_refresh_store_1 = require("./refresh/inmemory-refresh.store"); const oidc_service_1 = require("./oidc.service"); const role_sync_service_1 = require("./role-sync.service"); const redis_service_1 = require("../../shared/redis.service"); const group_hash_service_1 = require("./group-hash.service"); const authentication_service_1 = require("./authentication.service"); const event_bus_service_1 = require("../../core/event-bus/event-bus.service"); const audit_service_1 = require("../audit/audit.service"); const authorization_module_1 = require("../authorization/authorization.module"); let AuthModule = class AuthModule { }; exports.AuthModule = AuthModule; exports.AuthModule = AuthModule = __decorate([ (0, common_1.Module)({ imports: [ config_1.ConfigModule, authorization_module_1.AuthorizationModule, jwt_1.JwtModule.registerAsync({ imports: [config_1.ConfigModule], useFactory: async (config) => ({ secret: config.get('RAYLAB_JWT_SECRET') || 'raylab-secret', signOptions: { algorithm: 'HS256' }, }), inject: [config_1.ConfigService], }), ], controllers: [auth_controller_1.AuthController], providers: [ auth_service_1.AuthService, prisma_service_1.PrismaService, prisma_user_repository_1.PrismaUserRepository, prisma_role_repository_1.PrismaRoleRepository, sync_identity_handler_1.SyncIdentityHandler, { provide: user_interface_1.IUser, useClass: prisma_user_repository_1.PrismaUserRepository }, { provide: role_interface_1.IRole, useClass: prisma_role_repository_1.PrismaRoleRepository }, { provide: i_auth_config_1.IAuthConfig, useClass: env_auth_config_1.EnvAuthConfig }, // In-memory PKCE and Refresh stores (Redis removed) redis_pkce_store_1.RedisPkceStore, inmemory_refresh_store_1.InMemoryRefreshStore, // OIDC & Role Sync oidc_service_1.OidcService, role_sync_service_1.RoleSyncService, group_hash_service_1.GroupHashService, authentication_service_1.AuthenticationService, event_bus_service_1.EventBus, audit_service_1.AuditService, redis_service_1.RedisService, ], exports: [auth_service_1.AuthService, oidc_service_1.OidcService, role_sync_service_1.RoleSyncService, authentication_service_1.AuthenticationService, event_bus_service_1.EventBus], }) ], AuthModule); //# sourceMappingURL=auth.module.js.map