هذا الالتزام موجود في:
2026-04-20 15:12:16 +03:00
التزام 28f7241bcd
172 ملفات معدلة مع 21907 إضافات و0 حذوفات

عرض الملف

@@ -0,0 +1,69 @@
export default () => ({
nodeEnv: process.env.NODE_ENV ?? 'development',
port: Number(process.env.PORT ?? 4000),
host: process.env.HOST ?? '0.0.0.0',
publicBaseUrl:
process.env.PUBLIC_BASE_URL ??
`http://localhost:${Number(process.env.PORT ?? 4000)}`,
responseEnvelopeEnabled:
(process.env.RESPONSE_ENVELOPE_ENABLED ?? 'false').toLowerCase() === 'true',
globalPrefix: process.env.GLOBAL_PREFIX ?? 'api/v1',
cors: {
origins: (process.env.CORS_ORIGINS ?? '')
.split(',')
.map((origin) => origin.trim())
.filter((origin) => origin.length > 0),
},
mongodb: {
uri: process.env.MONGODB_URI ?? 'mongodb://127.0.0.1:27017/oudelaa',
},
jwt: {
accessSecret: process.env.JWT_ACCESS_SECRET ?? '',
accessExpiresIn: process.env.JWT_ACCESS_EXPIRES_IN ?? '15m',
refreshSecret: process.env.JWT_REFRESH_SECRET ?? '',
refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN ?? '30d',
},
superAdmin: {
email: (process.env.SUPERADMIN_EMAIL ?? '').toLowerCase(),
password: process.env.SUPERADMIN_PASSWORD ?? '',
accessSecret: process.env.SUPERADMIN_ACCESS_SECRET ?? '',
accessExpiresIn: process.env.SUPERADMIN_ACCESS_EXPIRES_IN ?? '15m',
refreshSecret: process.env.SUPERADMIN_REFRESH_SECRET ?? '',
refreshExpiresIn: process.env.SUPERADMIN_REFRESH_EXPIRES_IN ?? '30d',
},
google: {
clientId: process.env.GOOGLE_CLIENT_ID ?? '',
clientSecret: process.env.GOOGLE_CLIENT_SECRET ?? '',
callbackUrl:
process.env.GOOGLE_CALLBACK_URL ?? 'http://localhost:4000/api/v1/auth/google/callback',
},
email: {
enabled: (process.env.EMAIL_ENABLED ?? 'false').toLowerCase() === 'true',
smtpHost: process.env.EMAIL_SMTP_HOST ?? 'smtp.gmail.com',
smtpPort: Number(process.env.EMAIL_SMTP_PORT ?? 587),
smtpSecure: (process.env.EMAIL_SMTP_SECURE ?? 'false').toLowerCase() === 'true',
smtpUser: process.env.EMAIL_SMTP_USER ?? '',
smtpPass: process.env.EMAIL_SMTP_PASS ?? '',
fromName: process.env.EMAIL_FROM_NAME ?? 'Oudelaa',
fromEmail: process.env.EMAIL_FROM_EMAIL ?? process.env.EMAIL_SMTP_USER ?? '',
},
security: {
bcryptSaltRounds: Number(process.env.BCRYPT_SALT_ROUNDS ?? 12),
},
passwordReset: {
codeExpiresMinutes: Number(process.env.PASSWORD_RESET_CODE_EXPIRES_MINUTES ?? 10),
maxAttempts: Number(process.env.PASSWORD_RESET_MAX_ATTEMPTS ?? 5),
tokenSecret: process.env.PASSWORD_RESET_TOKEN_SECRET ?? process.env.JWT_ACCESS_SECRET ?? '',
tokenExpiresIn: process.env.PASSWORD_RESET_TOKEN_EXPIRES_IN ?? '15m',
},
emailVerification: {
codeExpiresMinutes: Number(process.env.EMAIL_VERIFICATION_CODE_EXPIRES_MINUTES ?? 10),
maxAttempts: Number(process.env.EMAIL_VERIFICATION_MAX_ATTEMPTS ?? 5),
},
swagger: {
title: process.env.SWAGGER_TITLE ?? 'Oudelaa API',
description: process.env.SWAGGER_DESCRIPTION ?? 'Social media backend API documentation',
version: process.env.SWAGGER_VERSION ?? '1.0.0',
path: process.env.SWAGGER_PATH ?? 'docs',
},
});