"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const dotenv_1 = __importDefault(require("dotenv"));
const path_1 = __importDefault(require("path"));
// Check if running as MCP server (stdio mode)
const isMcpMode = process.argv[0].includes('node') && process.argv[1]?.includes('index.js');
// Load environment variables from .env file, suppress output in MCP mode
if (!isMcpMode) {
dotenv_1.default.config({ path: path_1.default.resolve(process.cwd(), '.env') });
}
else {
// Silent mode for MCP to avoid stdout pollution
dotenv_1.default.config({ path: path_1.default.resolve(process.cwd(), '.env'), debug: false });
}
const env = process.env.NODE_ENV || 'development';
// Base configuration
const baseConfig = {
env,
isProduction: env === 'production',
isDevelopment: env === 'development',
server: {
port: parseInt(process.env.PORT || '3000', 10),
host: process.env.HOST || 'localhost'
},
salesforce: {
loginUrl: process.env.SF_LOGIN_URL || 'https://login.salesforce.com',
username: process.env.SF_USERNAME,
password: process.env.SF_PASSWORD,
securityToken: process.env.SF_SECURITY_TOKEN,
clientId: process.env.SF_CLIENT_ID,
clientSecret: process.env.SF_CLIENT_SECRET,
privateKeyPath: process.env.SF_PRIVATE_KEY_PATH,
authMethod: process.env.SF_AUTH_METHOD || 'oauth'
},
logging: {
level: process.env.LOG_LEVEL || 'info'
}
};
// Environment specific configuration
let envConfig = {};
try {
envConfig = require(`./${env}`).default;
}
catch (e) {
if (!isMcpMode) {
console.warn(`No configuration found for environment: ${env}`);
}
}
// Merge configurations
const config = { ...baseConfig, ...envConfig };
exports.default = config;