"use strict";
/**
 * Утилита для валидации переменных окружения
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateEnvVar = validateEnvVar;
exports.getEnvVar = getEnvVar;
exports.validateRequiredEnvVars = validateRequiredEnvVars;
/**
 * Валидирует наличие обязательной переменной окружения
 * @param key - ключ переменной окружения
 * @param value - значение переменной окружения
 * @throws Error если переменная отсутствует или пустая
 */
function validateEnvVar(key, value) {
    if (!value || value.trim() === '') {
        throw new Error(`Обязательная переменная окружения ${key} не установлена. ` +
            `Пожалуйста, установите её в .env файле или переменных окружения системы.`);
    }
    return value;
}
/**
 * Валидирует наличие обязательной переменной окружения с fallback значением
 * @param key - ключ переменной окружения
 * @param value - значение переменной окружения
 * @param fallback - fallback значение (только для не-секретных данных)
 * @returns значение переменной или fallback
 */
function getEnvVar(key, value, fallback) {
    if (value && value.trim() !== '') {
        return value;
    }
    if (fallback !== undefined) {
        return fallback;
    }
    throw new Error(`Обязательная переменная окружения ${key} не установлена. ` +
        `Пожалуйста, установите её в .env файле или переменных окружения системы.`);
}
/**
 * Валидирует все обязательные переменные окружения для тестов
 * Вызывается при импорте Test.Data.ts
 */
function validateRequiredEnvVars() {
    const requiredVars = [
        'DEV_ADMIN_EMAIL',
        'DEV_ADMIN_PASSWORD',
        'DEV_CLIENT_EMAIL',
        'DEV_CLIENT_PASSWORD',
        'DEV_AGENT_EMAIL',
        'DEV_AGENT_PASSWORD',
        'DEV_BANK_EMAIL',
        'DEV_BANK_PASSWORD',
        'DEMO_ADMIN_EMAIL',
        'DEMO_ADMIN_PASSWORD'
    ];
    const missingVars = [];
    for (const varName of requiredVars) {
        const value = process.env[varName];
        if (!value || value.trim() === '') {
            missingVars.push(varName);
        }
    }
    if (missingVars.length > 0) {
        throw new Error(`Отсутствуют обязательные переменные окружения: ${missingVars.join(', ')}\n` +
            `Пожалуйста, создайте .env файл на основе .env.example и заполните все необходимые значения.`);
    }
}
