1#![doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"))]
2#![deny(missing_docs)]
3#![expect(unsafe_op_in_unsafe_fn)]
4
5#[doc(hidden)]
6pub mod extension;
7pub mod host_io;
8#[cfg(feature = "jq-selection")]
9pub mod jq_selection;
10#[cfg(feature = "test-utils")]
11pub mod test;
12pub mod types;
13
14pub use extension::{Authenticator, Extension, Resolver};
15pub use grafbase_sdk_derive::{AuthenticationExtension, ResolverExtension};
16#[doc(hidden)]
17pub use wit::ExtensionType;
18pub use wit::{Error, Headers, NatsAuth, SharedContext};
19
20struct Component;
21
22#[cfg(target_arch = "wasm32")]
23#[unsafe(link_section = "sdk:minimum-gateway-version")]
24#[doc(hidden)]
25pub static MINIMUM_GATEWAY_VERSION: [u8; 6] =
26 *include_bytes!(concat!(env!("OUT_DIR"), "/minimum_gateway_version_bytes"));
27
28#[cfg(target_arch = "wasm32")]
29#[unsafe(link_section = "sdk:version")]
30#[doc(hidden)]
31pub static SDK_VERSION: [u8; 6] = *include_bytes!(concat!(env!("OUT_DIR"), "/sdk_version_bytes"));
32
33#[doc(hidden)]
34mod wit {
35 #![expect(missing_docs)]
36
37 wit_bindgen::generate!({
38 skip: ["register-extension"],
39 path: "./wit/world.wit",
40 world: "sdk",
41 });
42
43 pub use exports::grafbase::sdk::extension::Guest;
44 pub use grafbase::sdk::types::*;
45}
46
47wit::export!(Component with_types_in wit);