/** * Resource Tester Module * * Core resource testing functionality including resource accessibility, * template testing, blob DoS testing, and polyglot file testing. * * @module assessment/resources/tester * @since v1.44.0 (Issue #180 - ResourceAssessor Modularization) */ import { ResourceTestResult } from "../../../../lib/assessmentTypes.js"; import { AssessmentContext } from "../../AssessmentOrchestrator.js"; /** * Logger interface for test execution */ export interface TestLogger { debug: (message: string, context?: Record) => void; info: (message: string, context?: Record) => void; } /** * Configuration for resource tester */ export interface ResourceTesterConfig { logger: TestLogger; executeWithTimeout: (promise: Promise, timeout: number) => Promise; incrementTestCount: () => void; extractErrorMessage: (error: unknown) => string; } /** * Resource Tester class * * Handles core resource testing including accessibility checks, * path traversal testing, blob DoS, and polyglot detection. */ export declare class ResourceTester { private logger; private executeWithTimeout; private incrementTestCount; private extractErrorMessage; constructor(config: ResourceTesterConfig); /** * Test a single resource for accessibility and security issues */ testResource(resource: { uri: string; name?: string; mimeType?: string; }, context: AssessmentContext): Promise; /** * Test a resource template with path traversal payloads */ testResourceTemplate(template: { uriTemplate: string; name?: string; mimeType?: string; }, context: AssessmentContext): Promise; /** * Issue #127, Challenge #24: Test blob resource templates for DoS vulnerabilities * Detects arbitrary size acceptance without validation/limits (CWE-400, CWE-409) */ testBlobDoS(template: { uriTemplate: string; name?: string; }, context: AssessmentContext): Promise; /** * Issue #127, Challenge #24: Test polyglot resource generation vulnerabilities * Detects dual-format file injection (CWE-434, CWE-436) */ testPolyglotResources(template: { uriTemplate: string; name?: string; }, context: AssessmentContext): Promise; } //# sourceMappingURL=ResourceTester.d.ts.map