UNPKG

qbo-mcp-ts

Version:

TypeScript QuickBooks Online MCP Server with enhanced features and dual transport support

147 lines 4.1 kB
/** * Configuration management for QBOMCP-TS */ import { QBOConfig, TransportConfig } from '../types'; import { z } from 'zod'; /** * Environment variable schema for validation */ declare const EnvSchema: z.ZodObject<{ QBO_CLIENT_ID: z.ZodString; QBO_CLIENT_SECRET: z.ZodString; QBO_COMPANY_ID: z.ZodString; QBO_REFRESH_TOKEN: z.ZodString; QBO_ENVIRONMENT: z.ZodDefault<z.ZodEnum<{ sandbox: "sandbox"; production: "production"; }>>; QBO_REDIRECT_URI: z.ZodOptional<z.ZodString>; NODE_ENV: z.ZodDefault<z.ZodEnum<{ production: "production"; development: "development"; test: "test"; }>>; LOG_LEVEL: z.ZodDefault<z.ZodEnum<{ error: "error"; warn: "warn"; info: "info"; http: "http"; verbose: "verbose"; debug: "debug"; }>>; TRANSPORT_TYPE: z.ZodDefault<z.ZodEnum<{ stdio: "stdio"; sse: "sse"; }>>; SSE_PORT: z.ZodDefault<z.ZodCoercedNumber<unknown>>; SSE_HOST: z.ZodDefault<z.ZodString>; CACHE_TTL: z.ZodDefault<z.ZodCoercedNumber<unknown>>; CACHE_MAX_SIZE: z.ZodDefault<z.ZodCoercedNumber<unknown>>; API_RETRY_ATTEMPTS: z.ZodDefault<z.ZodCoercedNumber<unknown>>; API_RETRY_DELAY: z.ZodDefault<z.ZodCoercedNumber<unknown>>; API_TIMEOUT: z.ZodDefault<z.ZodCoercedNumber<unknown>>; API_RATE_LIMIT_PER_MINUTE: z.ZodDefault<z.ZodCoercedNumber<unknown>>; CORS_ORIGIN: z.ZodDefault<z.ZodString>; RATE_LIMIT_WINDOW_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>; RATE_LIMIT_MAX_REQUESTS: z.ZodDefault<z.ZodCoercedNumber<unknown>>; ENABLE_CACHE: z.ZodDefault<z.ZodCoercedBoolean<unknown>>; ENABLE_RETRY: z.ZodDefault<z.ZodCoercedBoolean<unknown>>; ENABLE_HEALTH_CHECK: z.ZodDefault<z.ZodCoercedBoolean<unknown>>; ENABLE_METRICS: z.ZodDefault<z.ZodCoercedBoolean<unknown>>; LOG_DIR: z.ZodDefault<z.ZodString>; CACHE_DIR: z.ZodDefault<z.ZodString>; }, z.core.$strip>; export type EnvConfig = z.infer<typeof EnvSchema>; /** * Configuration class for managing application settings */ export declare class Config { private static instance; private env; private configFile?; private constructor(); /** * Get singleton instance */ static getInstance(): Config; /** * Load configuration from JSON file if it exists */ private loadConfigFile; /** * Ensure required directories exist */ private ensureDirectories; /** * Get QuickBooks configuration */ getQBOConfig(): QBOConfig; /** * Get transport configuration */ getTransportConfig(): TransportConfig; /** * Get cache configuration */ getCacheConfig(): { enabled: boolean; ttl: number; maxSize: number; dir: string; }; /** * Get API configuration */ getAPIConfig(): { retryAttempts: number; retryDelay: number; timeout: number; rateLimitPerMinute: number; enableRetry: boolean; }; /** * Get logger configuration */ getLoggerConfig(): { level: "error" | "warn" | "info" | "http" | "verbose" | "debug"; dir: string; enableConsole: boolean; enableFile: boolean; }; /** * Get feature flags */ getFeatureFlags(): { cache: boolean; retry: boolean; healthCheck: boolean; metrics: boolean; }; /** * Get environment */ getEnv(): 'development' | 'production' | 'test'; /** * Check if in development mode */ isDevelopment(): boolean; /** * Check if in production mode */ isProduction(): boolean; /** * Check if in test mode */ isTest(): boolean; /** * Get a custom config value from config.json */ getCustom<T = any>(path: string, defaultValue?: T): T | undefined; /** * Get all configuration (for debugging) */ getAll(): any; } export declare const config: Config; export {}; //# sourceMappingURL=config.d.ts.map