UNPKG

@clipwhisperer/common

Version:

ClipWhisperer Common - Shared library providing core utilities, database schemas, authentication, bucket management, and common functionality across all ClipWhisperer microservices

288 lines (287 loc) 9.35 kB
import { z } from 'zod'; /** * Environment validation schema */ export declare const EnvironmentSchema: z.ZodEnum<["development", "staging", "production", "test"]>; /** * Restart policy schema */ export declare const RestartPolicySchema: z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; maxAttempts: z.ZodDefault<z.ZodNumber>; delay: z.ZodDefault<z.ZodNumber>; backoffMultiplier: z.ZodDefault<z.ZodNumber>; maxDelay: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }, { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }>; /** * Service configuration schema */ export declare const ServiceConfigItemSchema: z.ZodObject<{ name: z.ZodString; port: z.ZodNumber; healthEndpoint: z.ZodString; startCommand: z.ZodString; workingDirectory: z.ZodOptional<z.ZodString>; dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; restartPolicy: z.ZodOptional<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; maxAttempts: z.ZodDefault<z.ZodNumber>; delay: z.ZodDefault<z.ZodNumber>; backoffMultiplier: z.ZodDefault<z.ZodNumber>; maxDelay: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }, { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }>>; timeout: z.ZodDefault<z.ZodNumber>; healthCheckInterval: z.ZodDefault<z.ZodNumber>; gracefulShutdownTimeout: z.ZodDefault<z.ZodNumber>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, "strip", z.ZodTypeAny, { name?: string; port?: number; dependencies?: string[]; timeout?: number; healthEndpoint?: string; startCommand?: string; workingDirectory?: string; restartPolicy?: { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }; healthCheckInterval?: number; gracefulShutdownTimeout?: number; env?: Record<string, string>; }, { name?: string; port?: number; dependencies?: string[]; timeout?: number; healthEndpoint?: string; startCommand?: string; workingDirectory?: string; restartPolicy?: { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }; healthCheckInterval?: number; gracefulShutdownTimeout?: number; env?: Record<string, string>; }>; /** * Manager configuration schema */ export declare const ManagerConfigSchema: z.ZodObject<{ environment: z.ZodDefault<z.ZodEnum<["development", "staging", "production", "test"]>>; logLevel: z.ZodDefault<z.ZodEnum<["error", "warn", "info", "debug", "trace"]>>; maxConcurrentServices: z.ZodDefault<z.ZodNumber>; globalTimeout: z.ZodDefault<z.ZodNumber>; healthCheckInterval: z.ZodDefault<z.ZodNumber>; enableMetrics: z.ZodDefault<z.ZodBoolean>; enableAutoRestart: z.ZodDefault<z.ZodBoolean>; services: z.ZodDefault<z.ZodArray<z.ZodObject<{ name: z.ZodString; port: z.ZodNumber; healthEndpoint: z.ZodString; startCommand: z.ZodString; workingDirectory: z.ZodOptional<z.ZodString>; dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; restartPolicy: z.ZodOptional<z.ZodObject<{ enabled: z.ZodDefault<z.ZodBoolean>; maxAttempts: z.ZodDefault<z.ZodNumber>; delay: z.ZodDefault<z.ZodNumber>; backoffMultiplier: z.ZodDefault<z.ZodNumber>; maxDelay: z.ZodDefault<z.ZodNumber>; }, "strip", z.ZodTypeAny, { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }, { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }>>; timeout: z.ZodDefault<z.ZodNumber>; healthCheckInterval: z.ZodDefault<z.ZodNumber>; gracefulShutdownTimeout: z.ZodDefault<z.ZodNumber>; env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; }, "strip", z.ZodTypeAny, { name?: string; port?: number; dependencies?: string[]; timeout?: number; healthEndpoint?: string; startCommand?: string; workingDirectory?: string; restartPolicy?: { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }; healthCheckInterval?: number; gracefulShutdownTimeout?: number; env?: Record<string, string>; }, { name?: string; port?: number; dependencies?: string[]; timeout?: number; healthEndpoint?: string; startCommand?: string; workingDirectory?: string; restartPolicy?: { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }; healthCheckInterval?: number; gracefulShutdownTimeout?: number; env?: Record<string, string>; }>, "many">>; }, "strip", z.ZodTypeAny, { healthCheckInterval?: number; environment?: "production" | "development" | "staging" | "test"; logLevel?: "error" | "warn" | "info" | "debug" | "trace"; maxConcurrentServices?: number; globalTimeout?: number; enableMetrics?: boolean; enableAutoRestart?: boolean; services?: { name?: string; port?: number; dependencies?: string[]; timeout?: number; healthEndpoint?: string; startCommand?: string; workingDirectory?: string; restartPolicy?: { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }; healthCheckInterval?: number; gracefulShutdownTimeout?: number; env?: Record<string, string>; }[]; }, { healthCheckInterval?: number; environment?: "production" | "development" | "staging" | "test"; logLevel?: "error" | "warn" | "info" | "debug" | "trace"; maxConcurrentServices?: number; globalTimeout?: number; enableMetrics?: boolean; enableAutoRestart?: boolean; services?: { name?: string; port?: number; dependencies?: string[]; timeout?: number; healthEndpoint?: string; startCommand?: string; workingDirectory?: string; restartPolicy?: { delay?: number; enabled?: boolean; maxAttempts?: number; backoffMultiplier?: number; maxDelay?: number; }; healthCheckInterval?: number; gracefulShutdownTimeout?: number; env?: Record<string, string>; }[]; }>; /** * CLI configuration schema */ export declare const CLIConfigSchema: z.ZodObject<{ interactive: z.ZodDefault<z.ZodBoolean>; watch: z.ZodDefault<z.ZodBoolean>; verbose: z.ZodDefault<z.ZodBoolean>; colors: z.ZodDefault<z.ZodBoolean>; updateInterval: z.ZodDefault<z.ZodNumber>; maxLogLines: z.ZodDefault<z.ZodNumber>; theme: z.ZodDefault<z.ZodEnum<["default", "minimal", "compact"]>>; }, "strip", z.ZodTypeAny, { interactive?: boolean; watch?: boolean; verbose?: boolean; colors?: boolean; updateInterval?: number; maxLogLines?: number; theme?: "default" | "minimal" | "compact"; }, { interactive?: boolean; watch?: boolean; verbose?: boolean; colors?: boolean; updateInterval?: number; maxLogLines?: number; theme?: "default" | "minimal" | "compact"; }>; export type Environment = z.infer<typeof EnvironmentSchema>; export type ServiceConfigItem = z.infer<typeof ServiceConfigItemSchema>; export type ManagerConfig = z.infer<typeof ManagerConfigSchema>; export type CLIConfig = z.infer<typeof CLIConfigSchema>; export type RestartPolicy = z.infer<typeof RestartPolicySchema>; /** * Default service configurations for ClipWhisperer */ export declare const DefaultServiceConfigs: ServiceConfigItem[]; /** * Simple configuration manager for service orchestration */ export declare class ServiceConfig { private managerConfig; constructor(config?: Partial<ManagerConfig>); getEnvironment(): Environment; getServices(): ServiceConfigItem[]; getService(serviceName: string): ServiceConfigItem | undefined; getManagerConfig(): ManagerConfig; isDevelopment(): boolean; isProduction(): boolean; isTest(): boolean; addService(service: ServiceConfigItem): void; removeService(serviceName: string): boolean; validateDependencies(): { valid: boolean; errors: string[]; }; }