const utils = require('./utils'), fileHelper = require('./file_helper'); module.exports = { AGM_PORT: process.env.AGM_PORT, PRODUCTION: utils.stringToBoolean(process.env.PRODUCTION) || false, DEBUG: process.env.DEBUG, LOG_ALL_ERRORS: process.env.LOG_ALL_ERRORS || false, MAX_REQ_BDY_MB: process.env.MAX_REQ_BDY_MB, MAX_UPLOAD_SIZE_MB: process.env.MAX_UPLOAD_SIZE_MB, MAX_UPLOAD_FILES: process.env.MAX_UPLOAD_FILES, MAX_SESSION_SECS: process.env.MAX_SESSION_SECS || 3600 * 8, ARCHIVE_JOBS_DAYS: process.env.ARCHIVE_JOBS_DAYS || 365 + 31, TOKEN_SECRET: process.env.TOKEN_SECRET, PWD_RESET_VALID_TIME: process.env.PWD_RESET_VALID_TIME, UPLOAD_DIR: fileHelper.getAppPath(process.env.UPLOAD_DIR), UNZIP_DIR: fileHelper.getAppPath(process.env.UNZIP_DIR), REPORT_DIR: fileHelper.getAppPath(process.env.REPORT_DIR), TEMP_DIR: fileHelper.getAppPath(process.env.TEMP_DIR), SSL_KEY: process.env.SSL_KEY, SSL_CERT: process.env.SSL_CERT, CAPTCHA_SITESEC: process.env.CAPTCHA_SITESEC, ENABLE_SUBSCRIPTION: utils.stringToBoolean(process.env.ENABLE_SUBSCRIPTION) || false, // Stripe STRIPE_SEC_KEY: process.env.STRIPE_SEC_KEY, STRIPE_PUB_KEY: process.env.STRIPE_PUB_KEY, STRIPE_WH_SEC: process.env.STRIPE_WH_SEC, STRIPE_API_VERSION: process.env.STRIPE_API_VERSION, PRICES: { // Essential packages ess_1: process.env.ESS_1, ess_2: process.env.ESS_2, ess_3: process.env.ESS_3, ess_4: process.env.ESS_4, // Enterprise packages ent_1: process.env.ENT_1, ent_2: process.env.ENT_2, ent_3: process.env.ENT_3, ent_4: process.env.ENT_4, addon_1: process.env.ADDON_1 }, AGN_BILL_MGT_EMAIL: process.env.AGN_BILL_MGT_EMAIL, AGM_ADM_EMAIL: process.env.AGM_ADM_EMAIL, // DB connection info DB_HOSTS: process.env.DB_HOSTS, DB_NAME: process.env.DB_NAME, DB_USR: process.env.DB_USR, DB_PWD: process.env.DB_PWD, DB_AUTH_SOURCE: process.env.DB_AUTH_SOURCE, DB_REPLSET: process.env.DB_REPLSET, DB_MAX_POOLSIZE: process.env.DB_MAX_POOLSIZE, DB_USE_TLS: utils.stringToBoolean(process.env.DB_USE_TLS), DB_TLS_CA_FILE: process.env.DB_TLS_CA_FILE, DB_TLS_CERT_FILE: process.env.DB_TLS_CERT_FILE, DB_USE_X509: utils.stringToBoolean(process.env.DB_USE_X509), // For RabbitMq queue client QUEUE_PORT: process.env.QUEUE_PORT, QUEUE_HOST: process.env.QUEUE_HOST, QUEUE_USR: process.env.QUEUE_USR, QUEUE_PWD: process.env.QUEUE_PWD, QUEUE_VHOST: process.env.QUEUE_VHOST, QUEUE_NAME_JOBS: process.env.QUEUE_NAME_JOBS, QUEUE_HEARTBEAT: Number(process.env.QUEUE_HEARTBEAT), REDIS_PWD: process.env.REDIS_PWD, SMTP_HOST: process.env.SMTP_HOST, SMTP_PORT: process.env.SMTP_PORT, SMTP_SECURE: process.env.SMTP_SECURE, SMTP_USR: process.env.SMTP_USR, SMTP_PWD: process.env.SMTP_PWD, INV_IMG_VIR_DIR: process.env.INV_IMG_VIR_DIR ?? '/uploads/invoice_settings', INV_UPLOAD_DIR: fileHelper.getAppPath(process.env.INV_UPLOAD_DIR ?? './uploads/invoice_settings'), INV_MAX_UPLOAD_SIZE_MB: process.env.INV_MAX_UPLOAD_SIZE_MB || 5, INV_PROCESS_LIMIT: Number(process.env.INV_PROCESS_LIMIT || 100), INV_OVERPAID_THRESHOLD: Math.max(1, Number(process.env.INV_OVERPAID_THRESHOLD || 5)) }