1pub mod error;
7pub mod connection;
8pub mod browser;
9pub mod page;
10pub mod element;
11pub mod stealth;
12
13pub use error::{XcelerateError, XcelerateResult};
14pub use browser::{Browser, BrowserConfig};
15pub use page::Page;
16pub use element::Element;
17pub use connection::{CdpClient, CdpHandler};
18
19uniffi::setup_scaffolding!("xcelerate_core");
20
21pub use connection::client::CdpCommand;
23
24macro_rules! impl_cdp_command {
25 ($params:ty, $returns:ty, $method:expr) => {
26 impl CdpCommand for $params {
27 type Response = $returns;
28 const METHOD: &'static str = $method;
29 }
30 };
31}
32
33impl_cdp_command!(browser_protocol::page::NavigateParams, browser_protocol::page::NavigateReturns, "Page.navigate");
34impl_cdp_command!(browser_protocol::page::EnableParams, serde_json::Value, "Page.enable");
35impl_cdp_command!(browser_protocol::target::CreateTargetParams, browser_protocol::target::CreateTargetReturns, "Target.createTarget");
36impl_cdp_command!(browser_protocol::target::AttachToTargetParams, browser_protocol::target::AttachToTargetReturns, "Target.attachToTarget");
37impl_cdp_command!(js_protocol::runtime::EvaluateParams, js_protocol::runtime::EvaluateReturns, "Runtime.evaluate");
38impl_cdp_command!(js_protocol::runtime::CallFunctionOnParams, js_protocol::runtime::CallFunctionOnReturns, "Runtime.callFunctionOn");
39impl_cdp_command!(browser_protocol::browser::GetVersionParams, browser_protocol::browser::GetVersionReturns, "Browser.getVersion");
40impl_cdp_command!(browser_protocol::browser::CloseParams, serde_json::Value, "Browser.close");
41impl_cdp_command!(browser_protocol::page::ReloadParams, serde_json::Value, "Page.reload");
42impl_cdp_command!(browser_protocol::page::CaptureScreenshotParams, browser_protocol::page::CaptureScreenshotReturns, "Page.captureScreenshot");
43impl_cdp_command!(browser_protocol::page::PrintToPDFParams, browser_protocol::page::PrintToPDFReturns, "Page.printToPDF");
44impl_cdp_command!(browser_protocol::page::GetNavigationHistoryParams, browser_protocol::page::GetNavigationHistoryReturns, "Page.getNavigationHistory");
45impl_cdp_command!(browser_protocol::page::NavigateToHistoryEntryParams, serde_json::Value, "Page.navigateToHistoryEntry");
46impl_cdp_command!(browser_protocol::network::EnableParams, serde_json::Value, "Network.enable");
47impl_cdp_command!(browser_protocol::target::GetTargetsParams, browser_protocol::target::GetTargetsReturns, "Target.getTargets");
48impl_cdp_command!(browser_protocol::page::AddScriptToEvaluateOnNewDocumentParams, browser_protocol::page::AddScriptToEvaluateOnNewDocumentReturns, "Page.addScriptToEvaluateOnNewDocument");
49impl_cdp_command!(browser_protocol::page::GetLayoutMetricsParams, browser_protocol::page::GetLayoutMetricsReturns, "Page.getLayoutMetrics");
50impl_cdp_command!(browser_protocol::emulation::SetDeviceMetricsOverrideParams, serde_json::Value, "Emulation.setDeviceMetricsOverride");
51impl_cdp_command!(browser_protocol::emulation::ClearDeviceMetricsOverrideParams, serde_json::Value, "Emulation.clearDeviceMetricsOverride");
52impl_cdp_command!(browser_protocol::input::DispatchKeyEventParams, serde_json::Value, "Input.dispatchKeyEvent");