1#![allow(clippy::module_name_repetitions)]
8
9use thiserror::Error;
10
11pub mod clock;
12pub(crate) mod compat;
13pub mod oauth2;
14pub(crate) mod policy_data;
15mod site_config;
16pub(crate) mod tokens;
17pub(crate) mod upstream_oauth2;
18pub(crate) mod user_agent;
19pub(crate) mod users;
20mod utils;
21mod version;
22
23#[derive(Debug, Error)]
25#[error("invalid state transition")]
26pub struct InvalidTransitionError;
27
28pub use ulid::Ulid;
29
30pub use self::{
31 clock::{Clock, SystemClock},
32 compat::{
33 CompatAccessToken, CompatRefreshToken, CompatRefreshTokenState, CompatSession,
34 CompatSessionState, CompatSsoLogin, CompatSsoLoginState, Device, ToScopeTokenError,
35 },
36 oauth2::{
37 AuthorizationCode, AuthorizationGrant, AuthorizationGrantStage, Client, DeviceCodeGrant,
38 DeviceCodeGrantState, InvalidRedirectUriError, JwksOrJwksUri, Pkce, Session, SessionState,
39 },
40 policy_data::PolicyData,
41 site_config::{CaptchaConfig, CaptchaService, SessionExpirationConfig, SiteConfig},
42 tokens::{
43 AccessToken, AccessTokenState, RefreshToken, RefreshTokenState, TokenFormatError, TokenType,
44 },
45 upstream_oauth2::{
46 UpstreamOAuthAuthorizationSession, UpstreamOAuthAuthorizationSessionState,
47 UpstreamOAuthLink, UpstreamOAuthProvider, UpstreamOAuthProviderClaimsImports,
48 UpstreamOAuthProviderDiscoveryMode, UpstreamOAuthProviderImportAction,
49 UpstreamOAuthProviderImportPreference, UpstreamOAuthProviderLocalpartPreference,
50 UpstreamOAuthProviderOnBackchannelLogout, UpstreamOAuthProviderOnConflict,
51 UpstreamOAuthProviderPkceMode, UpstreamOAuthProviderResponseMode,
52 UpstreamOAuthProviderSubjectPreference, UpstreamOAuthProviderTokenAuthMethod,
53 },
54 user_agent::{DeviceType, UserAgent},
55 users::{
56 Authentication, AuthenticationMethod, BrowserSession, Password, User, UserEmail,
57 UserEmailAuthentication, UserEmailAuthenticationCode, UserRecoverySession,
58 UserRecoveryTicket, UserRegistration, UserRegistrationPassword, UserRegistrationToken,
59 },
60 utils::{BoxClock, BoxRng},
61 version::AppVersion,
62};