"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.AppModule = void 0; const common_1 = require("@nestjs/common"); const config_1 = require("@nestjs/config"); const identity_module_1 = require("./modules/identity/identity.module"); const auth_module_1 = require("./modules/auth/auth.module"); const health_module_1 = require("./modules/health/health.module"); const authorization_module_1 = require("./modules/authorization/authorization.module"); const audit_module_1 = require("./modules/audit/audit.module"); const application_module_1 = require("./modules/application/application.module"); const debt_module_1 = require("./modules/bot-debt/debt.module"); let AppModule = class AppModule { }; exports.AppModule = AppModule; exports.AppModule = AppModule = __decorate([ (0, common_1.Module)({ imports: [ config_1.ConfigModule.forRoot({ isGlobal: true, // Load .env files depending on NODE_ENV. Default to development .env envFilePath: process.env.NODE_ENV === 'production' ? '.env.production' : '.env', // Basic validation: ensure expected frontend URLs and OIDC settings are present validate: (env) => { const errors = []; const nodeEnv = env.NODE_ENV || process.env.NODE_ENV || 'development'; if (!env.FRONTEND_URL) errors.push('FRONTEND_URL is not set'); if (nodeEnv === 'production' && !env.PRODUCTION_FRONTEND_URL) errors.push('PRODUCTION_FRONTEND_URL is not set'); // OIDC required settings if (!env.AUTHENTIK_ISSUER) errors.push('AUTHENTIK_ISSUER is not set'); if (!env.AUTHENTIK_CLIENT_ID) errors.push('AUTHENTIK_CLIENT_ID is not set'); if (!env.AUTHENTIK_CLIENT_SECRET) errors.push('AUTHENTIK_CLIENT_SECRET is not set'); if (!env.AUTHENTIK_REDIRECT_URI) errors.push('AUTHENTIK_REDIRECT_URI is not set'); if (errors.length > 0) throw new Error('Environment validation error: ' + errors.join('; ')); return env; }, }), identity_module_1.IdentityModule, auth_module_1.AuthModule, health_module_1.HealthModule, // Authorization module provides permission checks and cache authorization_module_1.AuthorizationModule, audit_module_1.AuditModule, application_module_1.ApplicationModule, debt_module_1.DebtModule, ], }) ], AppModule); //# sourceMappingURL=app.module.js.map