1pub mod error;
44pub mod types;
45pub mod vendor;
46
47#[cfg(feature = "authentication")]
53pub mod providers;
54
55#[cfg(feature = "axum")]
56pub mod middleware;
57
58#[cfg(feature = "authorization")]
59pub mod authz;
60
61pub use error::{AuthError, AuthResult};
63pub use types::{AuthProvider, AuthToken, TokenType, UserContext};
64
65#[cfg(feature = "authentication")]
66pub use providers::{AuthConfig, AuthProvider as AuthProviderTrait};
67
68#[cfg(feature = "clerk")]
69pub use providers::ClerkProvider;
70
71#[cfg(feature = "stytch")]
72pub use providers::StytchProvider;
73
74#[cfg(feature = "msal")]
75pub use providers::MsalProvider;
76
77#[cfg(feature = "axum")]
78pub use middleware::{AuthContext, AuthExtension, AuthLayer, AuthMiddleware, OptionalAuth};
79
80#[cfg(feature = "authorization")]
81pub use authz::{AuthorizationProvider, AuthorizationRouterBuilder};
82
83#[cfg(feature = "scim")]
84pub use scim::{
85 ScimAuthMethod, ScimConfig, ScimError, ScimGroup, ScimListResponse, ScimPatchOp, ScimProvider,
86 ScimServer, ScimServerBuilder, ScimUser,
87};
88
89pub const VERSION: &str = env!("CARGO_PKG_VERSION");
91
92pub mod prelude {
94 pub use crate::error::{AuthError, AuthResult};
95 pub use crate::types::{AuthProvider, AuthToken, TokenType, UserContext};
96
97 #[cfg(feature = "authentication")]
98 pub use crate::providers::{AuthConfig, AuthProvider as AuthProviderTrait};
99
100 #[cfg(feature = "clerk")]
101 pub use crate::providers::ClerkProvider;
102
103 #[cfg(feature = "stytch")]
104 pub use crate::providers::StytchProvider;
105
106 #[cfg(feature = "msal")]
107 pub use crate::providers::MsalProvider;
108
109 #[cfg(feature = "axum")]
110 pub use crate::middleware::{AuthContext, AuthExtension, AuthLayer, OptionalAuth};
111
112 #[cfg(feature = "authorization")]
113 pub use crate::authz::{AuthorizationProvider, AuthorizationRouterBuilder};
114
115 #[cfg(feature = "scim")]
116 pub use crate::scim::{
117 ScimAuthMethod, ScimConfig, ScimGroup, ScimProvider, ScimServer, ScimServerBuilder,
118 ScimUser,
119 };
120}