ai-debug-local-mcp
Version:
🎯 ENHANCED AI GUIDANCE v4.1.2: Dramatically improved tool descriptions help AI users choose the right tools instead of 'close enough' options. Ultra-fast keyboard automation (10x speed), universal recording, multi-ecosystem debugging support, and compreh
127 lines • 3.33 kB
TypeScript
import type { NetworkRequest } from '../../types.js';
export interface GraphQLOperation {
type: 'query' | 'mutation' | 'subscription' | 'unknown';
name?: string;
query: string;
variables?: any;
timestamp: Date;
duration?: number;
response?: any;
errors?: any[];
performance?: {
complexity?: number;
depth?: number;
fieldCount?: number;
resolverCount?: number;
};
client?: {
name?: string;
version?: string;
};
}
export interface GraphQLError {
message: string;
locations?: Array<{
line: number;
column: number;
}>;
path?: Array<string | number>;
extensions?: any;
timestamp: Date;
operation?: string;
}
export interface GraphQLPerformanceMetric {
operation: string;
duration: number;
timestamp: Date;
complexity?: number;
cacheHit?: boolean;
resolverStats?: {
[resolver: string]: {
count: number;
totalTime: number;
avgTime: number;
};
};
}
export interface GraphQLSchemaUsage {
field: string;
type: string;
usageCount: number;
lastUsed: Date;
deprecated?: boolean;
cost?: number;
}
export declare class GraphQLExtractionUtils {
/**
* Extract GraphQL operations from network requests
*/
static extractGraphQLOperations(requests: NetworkRequest[]): GraphQLOperation[];
/**
* Extract GraphQL errors from operations
*/
static extractGraphQLErrors(requests: NetworkRequest[]): GraphQLError[];
/**
* Analyze query performance and detect issues
*/
static analyzeQueryPerformance(requests: NetworkRequest[]): GraphQLPerformanceMetric[];
/**
* Detect N+1 query patterns
*/
static detectNPlusOneQueries(requests: NetworkRequest[]): Array<{
pattern: string;
occurrences: number;
operations: GraphQLOperation[];
suggestion: string;
}>;
/**
* Analyze schema usage patterns
*/
static analyzeSchemaUsage(requests: NetworkRequest[]): GraphQLSchemaUsage[];
/**
* Calculate query complexity metrics
*/
static calculateQueryComplexity(query: string): {
depth: number;
fieldCount: number;
complexity: number;
warnings: string[];
};
/**
* Check if request is a GraphQL request
*/
private static isGraphQLRequest;
/**
* Parse GraphQL request into operation object
*/
private static parseGraphQLRequest;
/**
* Detect GraphQL operation type from query string
*/
private static detectOperationType;
/**
* Detect GraphQL client from request headers/body
*/
private static detectGraphQLClient;
/**
* Generate query signature for pattern detection
*/
private static generateQuerySignature;
/**
* Generate N+1 query suggestion
*/
private static generateNPlusOneSuggestion;
/**
* Extract fields from GraphQL query (simplified)
*/
private static extractFieldsFromQuery;
/**
* Detect cache hit from response
*/
private static detectCacheHit;
/**
* Parse resolver statistics from tracing data
*/
private static parseResolverStats;
}
//# sourceMappingURL=graphql-utils.d.ts.map