first commit

This commit is contained in:
Bivekich
2025-06-26 06:59:19 +03:00
commit 18e1f3ffb1
124 changed files with 52448 additions and 0 deletions

View File

@ -0,0 +1,93 @@
#!/usr/bin/env node
import { readFileSync } from 'fs'
import { join } from 'path'
// Функция для загрузки .env файла
function loadEnv() {
try {
const envPath = join(process.cwd(), '.env')
const envContent = readFileSync(envPath, 'utf8')
envContent.split('\n').forEach(line => {
line = line.trim()
if (line && !line.startsWith('#')) {
const [key, ...valueParts] = line.split('=')
const value = valueParts.join('=').replace(/^["']|["']$/g, '')
if (key && value) {
process.env[key] = value
}
}
})
} catch (error) {
console.warn('⚠️ Не удалось загрузить .env файл, используем переменные окружения')
}
}
// Загружаем переменные окружения
loadEnv()
console.log('🔍 Проверка конфигурации SMS API...')
const requiredSmsVars = [
'BEELINE_SMS_USER',
'BEELINE_SMS_PASS'
]
const optionalSmsVars = [
'BEELINE_SMS_SENDER'
]
let hasErrors = false
// Проверяем обязательные переменные
requiredSmsVars.forEach(varName => {
if (!process.env[varName]) {
console.error(`❌ Отсутствует обязательная переменная: ${varName}`)
hasErrors = true
} else {
console.log(`${varName}: настроен`)
}
})
// Проверяем опциональные переменные
optionalSmsVars.forEach(varName => {
if (!process.env[varName]) {
console.warn(`⚠️ Опциональная переменная отсутствует: ${varName} (будет использовано значение по умолчанию)`)
} else {
console.log(`${varName}: ${process.env[varName]}`)
}
})
// Проверяем формат логина (должен быть числовым)
const smsUser = process.env.BEELINE_SMS_USER
if (smsUser && !/^\d+$/.test(smsUser)) {
console.error(`❌ BEELINE_SMS_USER должен быть числовым: ${smsUser}`)
hasErrors = true
}
// Проверяем длину пароля
const smsPass = process.env.BEELINE_SMS_PASS
if (smsPass && smsPass.length < 6) {
console.error(`❌ BEELINE_SMS_PASS слишком короткий (минимум 6 символов)`)
hasErrors = true
}
// Проверяем, находимся ли мы в Docker окружении
const isDocker = process.env.DOCKER_BUILD === 'true' ||
process.env.CI === 'true' ||
!process.env.BEELINE_SMS_USER
if (hasErrors) {
if (isDocker) {
console.warn('\n⚠ SMS переменные не настроены во время сборки')
console.warn('📝 Убедитесь, что они будут доступны во время выполнения')
process.exit(0) // Не блокируем сборку
} else {
console.error('\n❌ Обнаружены ошибки в конфигурации SMS API')
process.exit(1)
}
} else {
console.log('\n✅ Конфигурация SMS API корректна')
process.exit(0)
}