mockforge_recorder/
lib.rs

1//! MockForge API Flight Recorder
2//!
3//! Records all API requests and responses for analysis, replay, and debugging.
4//! Provides a queryable SQLite database of all interactions.
5
6pub mod api;
7pub mod database;
8pub mod diff;
9pub mod har_export;
10pub mod integration_testing;
11pub mod middleware;
12pub mod models;
13pub mod protocols;
14pub mod query;
15pub mod recorder;
16pub mod replay;
17pub mod test_generation;
18
19pub use api::create_api_router;
20pub use database::RecorderDatabase;
21pub use diff::{ComparisonResult, Difference, DifferenceType, ResponseComparator};
22pub use har_export::export_to_har;
23pub use integration_testing::{
24    IntegrationTestGenerator, IntegrationWorkflow, StepCondition, StepRequest, StepValidation,
25    VariableExtraction, WorkflowSetup, WorkflowStep,
26};
27pub use middleware::recording_middleware;
28pub use models::{Protocol, RecordedRequest, RecordedResponse};
29pub use query::{QueryFilter, QueryResult};
30pub use recorder::Recorder;
31pub use replay::ReplayEngine;
32pub use test_generation::{
33    GeneratedTest, LlmConfig, TestFormat, TestGenerationConfig, TestGenerationResult,
34    TestGenerator, TestSuiteMetadata,
35};
36
37use thiserror::Error;
38
39/// Recorder errors
40#[derive(Error, Debug)]
41pub enum RecorderError {
42    #[error("Database error: {0}")]
43    Database(#[from] sqlx::Error),
44
45    #[error("Serialization error: {0}")]
46    Serialization(#[from] serde_json::Error),
47
48    #[error("IO error: {0}")]
49    Io(#[from] std::io::Error),
50
51    #[error("Request not found: {0}")]
52    NotFound(String),
53
54    #[error("Invalid filter: {0}")]
55    InvalidFilter(String),
56
57    #[error("Replay error: {0}")]
58    Replay(String),
59
60    #[error("Test generation error: {0}")]
61    TestGeneration(String),
62}
63
64pub type Result<T> = std::result::Result<T, RecorderError>;