sfcc-dev-mcp
Version:
MCP server for Salesforce B2C Commerce Cloud development assistance including logs, debugging, and development tools
76 lines • 2.72 kB
TypeScript
/**
* Configuration factory for SFCC MCP Server
*
* Centralized configuration management with validation and defaults.
* This factory creates SFCCConfig objects from various sources while
* leveraging secure file loading from the config module.
*/
import { SFCCConfig, DwJsonConfig } from '../types/types.js';
export declare class ConfigurationFactory {
/**
* Create configuration from various sources with proper validation
*/
static create(options: {
dwJsonPath?: string;
hostname?: string;
username?: string;
password?: string;
clientId?: string;
clientSecret?: string;
siteId?: string;
}): SFCCConfig;
/**
* Load configuration from dw.json file using secure file loading
*
* @param dwJsonPath - Path to the dw.json file
* @returns Parsed dw.json configuration
* @throws Error if file cannot be loaded or is invalid
*/
private static loadFromDwJson;
/**
* Map dw.json structure to SFCCConfig
*
* Transforms the dw.json format (with kebab-case properties) to the
* internal SFCCConfig format (with camelCase properties).
*
* @param dwConfig - The parsed dw.json configuration
* @returns Mapped SFCCConfig object
*/
static mapDwJsonToConfig(dwConfig: DwJsonConfig): SFCCConfig;
/**
* Validate configuration for different operating modes
*
* This validation supports both documentation-only mode (no credentials required)
* and full mode (credentials required for API access).
*
* @param config - The configuration to validate
* @throws Error if configuration is invalid for any supported mode
*/
private static validate;
/**
* Check if configuration supports specific features
*
* This method analyzes the provided configuration to determine what
* capabilities are available based on the credentials and hostname provided.
*
* @param config - The configuration to analyze
* @returns Object describing available capabilities
*/
static getCapabilities(config: SFCCConfig): {
canAccessLogs: boolean;
canAccessOCAPI: boolean;
canAccessWebDAV: boolean;
canGenerateCartridges: boolean;
isLocalMode: boolean;
};
/**
* Create a configuration for local development mode
*
* This creates a minimal configuration that only provides access to
* documentation and best practices without requiring any SFCC credentials.
*
* @returns Configuration for local/documentation-only mode
*/
static createLocalMode(): SFCCConfig;
}
//# sourceMappingURL=configuration-factory.d.ts.map