/** * VCR request extraction helpers for adapters * * Provides type definitions and interfaces for implementing VCR-style * request extraction and cassette recording in adapters. * * ## What is VCR? * VCR stands for "Video Cassette Recorder" - a testing pattern that records * interactions with external services and replays them in tests. This enables: * - Faster test runs (no network calls) * - Deterministic tests (no flaky external services) * - Offline testing (works without service access) * - Cost savings (fewer API calls) * * ## Key Types * - **RequestExtractor**: Interface for extracting request data from test specs * - **OperationData**: Normalized request data format for cassettes * - **Cassette**: Container for recorded interactions * - **Interaction**: Single request/response pair * * ## Usage * Adapters implement RequestExtractor to define how their requests are extracted: * * ```typescript * import { RequestExtractor, OperationData } from "@wavespec/kit/vcr"; * import type { TestSpec } from "@wavespec/types"; * * export class MyAdapterRequestExtractor implements RequestExtractor { * extract(spec: TestSpec): OperationData { * return { * operation: spec.operation, * data: { ... } * }; * } * } * ``` * * @module @wavespec/kit/vcr * @see RequestExtractor for implementation guide * @see OperationData for data structure */ export type { OperationData, RequestExtractor, ExtractorConfig, Cassette, CassetteMetadata, Interaction, ResponseData, } from "./types.js"; export { BaseRequestExtractor, extractOperationData, } from "./extractor.js"; //# sourceMappingURL=index.d.ts.map