qbo-mcp-ts
Version:
TypeScript QuickBooks Online MCP Server with enhanced features and dual transport support
147 lines • 4.1 kB
TypeScript
/**
* 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