grafbase_sdk/
lib.rs

1#![doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md"))]
2#![doc = "# Features"]
3#![doc = document_features::document_features!()]
4#![deny(missing_docs, unused_crate_dependencies)]
5
6mod cbor;
7mod component;
8#[doc(hidden)]
9pub mod extension;
10pub mod host_io;
11#[cfg(feature = "jq-selection")]
12pub mod jq_selection;
13#[cfg(feature = "test-utils")]
14pub mod test;
15pub mod types;
16
17pub use component::SdkError;
18pub use extension::{
19    AuthenticationExtension, AuthorizationExtension, FieldResolverExtension, IntoQueryAuthorization,
20    SelectionSetResolverExtension, Subscription,
21};
22pub use grafbase_sdk_derive::{
23    AuthenticationExtension, AuthorizationExtension, FieldResolverExtension, SelectionSetResolverExtension,
24};
25
26use component::Component;
27
28#[cfg(target_arch = "wasm32")]
29#[unsafe(link_section = "sdk:minimum-gateway-version")]
30#[doc(hidden)]
31pub static MINIMUM_GATEWAY_VERSION: [u8; 6] =
32    *include_bytes!(concat!(env!("OUT_DIR"), "/minimum_gateway_version_bytes"));
33
34#[cfg(target_arch = "wasm32")]
35#[unsafe(link_section = "sdk:version")]
36#[doc(hidden)]
37pub static SDK_VERSION: [u8; 6] = *include_bytes!(concat!(env!("OUT_DIR"), "/sdk_version_bytes"));
38
39#[doc(hidden)]
40#[allow(clippy::too_many_arguments)]
41mod wit {
42    #![expect(missing_docs)]
43
44    wit_bindgen::generate!({
45        skip: ["register-extension"],
46        path: "./wit/since_0_15_0/",
47        world: "sdk",
48        additional_derives: [
49            serde::Deserialize,
50            serde::Serialize,
51            PartialEq,
52        ]
53    });
54
55    pub use exports::grafbase::sdk::authentication::Guest as AuthenticationGuest;
56    pub use exports::grafbase::sdk::authorization::Guest as AuthorizationGuest;
57    pub use exports::grafbase::sdk::field_resolver::Guest as FieldResolverGuest;
58    pub use exports::grafbase::sdk::selection_set_resolver::Guest as SelectionSetResolverGuest;
59
60    pub use grafbase::sdk::access_log::*;
61    pub use grafbase::sdk::authorization_types::{AuthorizationDecisions, AuthorizationDecisionsDenySome};
62    pub use grafbase::sdk::cache::*;
63    pub use grafbase::sdk::directive::*;
64    pub use grafbase::sdk::error::*;
65    pub use grafbase::sdk::field_resolver_types::FieldOutput;
66    pub use grafbase::sdk::grpc::*;
67    pub use grafbase::sdk::headers::*;
68    pub use grafbase::sdk::http_client::*;
69    pub use grafbase::sdk::nats_client::*;
70    pub use grafbase::sdk::postgres::*;
71    pub use grafbase::sdk::resolver_types::*;
72    pub use grafbase::sdk::schema::*;
73    pub use grafbase::sdk::selection_set_resolver_types;
74    pub use grafbase::sdk::token::*;
75}
76
77wit::export!(Component with_types_in wit);
78
79mod sealed {
80    pub trait Sealed {}
81}