UNPKG

defect-inspection-tools-mcp-server

Version:

Defect inspection tools server handling defect detection, analysis, and reporting with AI/ML capabilities for quality control

53 lines (52 loc) 2.4 kB
import { BaseService, ServiceConfig, ServiceHealthStatus, ServiceResponse } from './base-service.js'; import { ObjectId, Document, WithId } from 'mongodb'; export interface DatabaseConfig extends ServiceConfig { uri: string; databaseName: string; maxPoolSize?: number; minPoolSize?: number; maxIdleTimeMS?: number; serverSelectionTimeoutMS?: number; } export interface QueryOptions { limit?: number; skip?: number; sort?: Record<string, 1 | -1>; projection?: Record<string, 1 | 0>; allowedFields?: string[]; sanitizeQuery?: boolean; } export interface UpdateOptions { upsert?: boolean; sanitizeUpdate?: boolean; allowedFields?: string[]; } export interface AggregationOptions { allowedStages?: string[]; maxPipelineLength?: number; sanitizePipeline?: boolean; } export declare class DatabaseService extends BaseService { private client; private db; protected config: Required<ServiceConfig> & DatabaseConfig; private isConnected; constructor(config: DatabaseConfig); initialize(): Promise<void>; private ensureConnected; healthCheck(): Promise<ServiceHealthStatus>; find<T extends Document>(collectionName: string, query: Record<string, any>, options?: QueryOptions): Promise<ServiceResponse<WithId<T>[]>>; findOne<T extends Document>(collectionName: string, query: Record<string, any>, options?: QueryOptions): Promise<ServiceResponse<WithId<T> | null>>; count(collectionName: string, query: Record<string, any>, options?: QueryOptions): Promise<ServiceResponse<number>>; insertOne<T extends Document>(collectionName: string, document: T): Promise<ServiceResponse<ObjectId>>; updateOne(collectionName: string, filter: Record<string, any>, update: Record<string, any>, options?: UpdateOptions): Promise<ServiceResponse<boolean>>; deleteOne(collectionName: string, filter: Record<string, any>, options?: QueryOptions): Promise<ServiceResponse<boolean>>; aggregate<T extends Document>(collectionName: string, pipeline: Record<string, any>[], options?: AggregationOptions): Promise<ServiceResponse<WithId<T>[]>>; getStats(): Promise<ServiceResponse<any>>; listCollections(): Promise<ServiceResponse<string[]>>; private sanitizeQuery; private sanitizeUpdate; private sanitizePipeline; close(): Promise<void>; isConnectionHealthy(): boolean; }