1pub use contracts::AdapterAfterHook;
2pub use contracts::AdapterEvent;
3pub use contracts::SessionCreatedHook;
4pub(crate) use contracts::UserCreateTransform;
5pub use contracts::UserCreationDefaults;
6use contracts::create_data;
7pub(crate) use decorated::AdapterCallbacks;
8pub(crate) use decorated::PluginStore;
9pub(crate) use decorated::SessionCreatedCallbacks;
10pub(crate) use decorated::UserTransforms;
11mod contracts;
12mod decorated;
13
14pub use contracts::AccountStore;
15pub use contracts::ApiKeyStore;
16pub use contracts::AuthTransaction;
17pub use contracts::BoxedTransactionValue;
18pub use contracts::ConsumeApiKeyResult;
19pub use contracts::DeviceCodeStore;
20pub use contracts::InvitationCreateOptions;
21pub use contracts::InvitationStore;
22pub use contracts::ListOrganizationMembersParams;
23pub use contracts::MemberPageQuery;
24pub use contracts::MemberStore;
25pub use contracts::NumericTextInput;
26pub use contracts::OrganizationStore;
27pub use contracts::PasskeyStore;
28pub use contracts::SessionStore;
29pub use contracts::TransactionFuture;
30pub use contracts::TransactionStore;
31pub use contracts::TransactionWork;
32pub use contracts::TwoFactorStore;
33pub use contracts::TypedTransactionFuture;
34pub use contracts::UserStore;
35pub use contracts::VerificationStore;
36pub use contracts::transaction;
37pub use contracts::verification_reservation_key;
38pub mod adapter;
39pub mod secondary_storage;
40pub mod stateless;
41
42mod database_hooks;
43mod migrations;
44mod org_extensions;
45mod secondary_sessions;
46
47mod jwks;
48
49mod wallets;
50
51use crate::error::{AuthError, AuthResult};
52use crate::schema::AuthSchema;
53use crate::types::{
54 AddTeamMemberResult, CreateJwk, CreateOrganizationRole, CreateTeam, CreateWalletAddress, Jwk,
55 OrganizationRole, OrganizationRoleSelector, Team, TeamMember, UpdateOrganizationRole,
56 UpdateTeam, WalletAddress,
57};
58use crate::types::{
59 ApiKey, CreateAccount, CreateApiKey, CreateDeviceCode, CreateInvitation, CreateMember,
60 CreateOrganization, CreatePasskey, CreateSession, CreateTwoFactor, CreateUser,
61 CreateVerification, DeviceCode, Invitation, InvitationStatus, ListUsersParams, Member,
62 Organization, Passkey, TwoFactor, UpdateAccount, UpdateApiKey, UpdateDeviceCode,
63 UpdateOrganization, UpdatePasskeyAuthentication, UpdateTwoFactor, UpdateUser,
64};
65use crate::user_validation::{PreparedUserCreation, UserValidationSource, prepare_creation};
66use crate::verification::{VerificationCreation, VerificationPublication, VerificationSnapshot};
67use async_trait::async_trait;
68pub use database_hooks::{DatabaseHookContext, DatabaseHooks, HookBackend, HookControl};
69pub use jwks::JwkStore;
70pub use migrations::SchemaMigrator;
71pub use org_extensions::{OrganizationRoleStore, TeamStore, team_membership_key};
72#[cfg(feature = "redis-cache")]
73pub use secondary_storage::RedisAdapter;
74pub use secondary_storage::{CacheAdapter, MemoryCacheAdapter};
75use std::sync::Arc;
76pub use wallets::WalletAddressStore;
77
78pub trait AuthStore<S: AuthSchema>:
79 UserStore<S>
80 + SessionStore<S>
81 + AccountStore<S>
82 + VerificationStore<S>
83 + OrganizationStore
84 + MemberStore
85 + InvitationStore
86 + TeamStore
87 + OrganizationRoleStore
88 + WalletAddressStore
89 + TwoFactorStore
90 + ApiKeyStore
91 + PasskeyStore
92 + DeviceCodeStore
93 + JwkStore
94 + TransactionStore<S>
95 + Send
96 + Sync
97{
98}
99
100impl<S, T> AuthStore<S> for T
101where
102 S: AuthSchema,
103 T: UserStore<S>
104 + SessionStore<S>
105 + AccountStore<S>
106 + VerificationStore<S>
107 + OrganizationStore
108 + MemberStore
109 + InvitationStore
110 + TeamStore
111 + OrganizationRoleStore
112 + WalletAddressStore
113 + TwoFactorStore
114 + ApiKeyStore
115 + PasskeyStore
116 + DeviceCodeStore
117 + JwkStore
118 + TransactionStore<S>
119 + Send
120 + Sync,
121{
122}