/** * Agentic QE v3 - Contract Validator Service * Implements IContractValidationService for API contract validation (Pact-style) */ import { Result } from '../../../shared/types/index.js'; import type { MemoryBackend } from '../../../kernel/interfaces.js'; import type { IContractValidationService, ApiContract, SchemaDefinition, ValidationReport, SchemaValidationResult, OpenAPIValidationResult } from '../interfaces.js'; /** * Configuration for the contract validator */ export interface ContractValidatorConfig { strictMode: boolean; validateExamples: boolean; maxSchemaDepth: number; cacheValidations: boolean; } /** * Contract Validation Service Implementation * Validates API contracts against schemas and specifications */ export declare class ContractValidatorService implements IContractValidationService { private readonly memory; private readonly config; private readonly validationCache; constructor(memory: MemoryBackend, config?: Partial); /** * Validate contract structure */ validateContract(contract: ApiContract): Promise>; /** * Validate request against schema */ validateRequest(request: unknown, schema: SchemaDefinition): Promise>; /** * Validate response against schema */ validateResponse(response: unknown, schema: SchemaDefinition): Promise>; /** * Validate OpenAPI/Swagger specification */ validateOpenAPI(spec: string): Promise>; private getCacheKey; private validateContractStructure; private validateServiceInfo; private validateEndpoint; private validateSchemaDefinition; private validateJsonSchemaContent; private validateGraphQLSchemaContent; private validateProtobufContent; private validateAvroContent; private validateEndpointExamples; private validateAgainstJsonSchema; private validateAgainstOpenAPISchema; private validateAgainstGraphQLSchema; /** * Parse GraphQL schema to extract type definitions */ private parseGraphQLSchema; /** * Parse GraphQL operation (query/mutation/subscription) */ private parseGraphQLOperation; /** * Parse GraphQL selection set into field list */ private parseGraphQLSelectionSet; /** * Parse a single GraphQL field */ private parseGraphQLField; /** * Parse GraphQL arguments */ private parseGraphQLArguments; /** * Get root type name for operation type */ private getRootTypeForOperation; /** * Unwrap GraphQL type (remove [], !) */ private unwrapGraphQLType; /** * Validate nested field selections */ private validateGraphQLSelections; /** * Validate variable type matches expected GraphQL type */ private validateGraphQLVariableType; private basicTypeValidation; private validateStringConstraints; private validateNumberConstraints; private validateArrayConstraints; private getJsonType; private validateOpenAPI3Structure; private validateSwagger2Structure; private storeValidationHistory; } //# sourceMappingURL=contract-validator.d.ts.map