barsa 9e27380069 Update TypeScript configurations, improve module imports, and clean up Dockerfiles
- Adjusted TypeScript settings in tsconfig files for better alignment with ESNext standards.
- Updated pnpm-lock.yaml to reflect dependency changes and improve package management.
- Cleaned up Dockerfiles for both BFF and Portal applications to enhance build processes.
- Modified import statements across various modules to include file extensions for consistency.
- Removed outdated SHA256 files for backend and frontend tarballs to streamline project structure.
- Enhanced health check mechanisms in Dockerfiles for improved application startup reliability.
2025-12-10 16:08:34 +09:00

62 lines
2.5 KiB
TypeScript

import { Module } from "@nestjs/common";
import { JwtModule } from "@nestjs/jwt";
import { PassportModule } from "@nestjs/passport";
import { ConfigService } from "@nestjs/config";
import { APP_GUARD } from "@nestjs/core";
import { AuthFacade } from "./application/auth.facade.js";
import { AuthController } from "./presentation/http/auth.controller.js";
import { UsersModule } from "@bff/modules/users/users.module.js";
import { MappingsModule } from "@bff/modules/id-mappings/mappings.module.js";
import { IntegrationsModule } from "@bff/integrations/integrations.module.js";
import { JwtStrategy } from "./presentation/strategies/jwt.strategy.js";
import { LocalStrategy } from "./presentation/strategies/local.strategy.js";
import { GlobalAuthGuard } from "./presentation/http/guards/global-auth.guard.js";
import { TokenBlacklistService } from "./infra/token/token-blacklist.service.js";
import { EmailModule } from "@bff/infra/email/email.module.js";
import { CacheModule } from "@bff/infra/cache/cache.module.js";
import { AuthTokenService } from "./infra/token/token.service.js";
import { SignupWorkflowService } from "./infra/workflows/workflows/signup-workflow.service.js";
import { PasswordWorkflowService } from "./infra/workflows/workflows/password-workflow.service.js";
import { WhmcsLinkWorkflowService } from "./infra/workflows/workflows/whmcs-link-workflow.service.js";
import { FailedLoginThrottleGuard } from "./presentation/http/guards/failed-login-throttle.guard.js";
import { LoginResultInterceptor } from "./presentation/http/interceptors/login-result.interceptor.js";
import { AuthRateLimitService } from "./infra/rate-limiting/auth-rate-limit.service.js";
@Module({
imports: [
PassportModule,
JwtModule.registerAsync({
useFactory: (configService: ConfigService) => ({
secret: configService.get("JWT_SECRET"),
signOptions: { expiresIn: configService.get("JWT_EXPIRES_IN", "7d") },
}),
inject: [ConfigService],
}),
UsersModule,
MappingsModule,
IntegrationsModule,
EmailModule,
CacheModule,
],
controllers: [AuthController],
providers: [
AuthFacade,
JwtStrategy,
LocalStrategy,
TokenBlacklistService,
AuthTokenService,
SignupWorkflowService,
PasswordWorkflowService,
WhmcsLinkWorkflowService,
FailedLoginThrottleGuard,
AuthRateLimitService,
LoginResultInterceptor,
{
provide: APP_GUARD,
useClass: GlobalAuthGuard,
},
],
exports: [AuthFacade, TokenBlacklistService, AuthTokenService],
})
export class AuthModule {}