1#![cfg_attr(
7 test,
8 allow(
9 unused_results,
10 unreachable_pub,
11 reason = "test code intentionally discards setup return values and exposes helpers broadly"
12 )
13)]
14
15extern crate self as better_auth;
16
17pub mod authenticated_user;
18
19pub mod adapter_record;
20
21pub mod background_tasks;
22
23pub mod config;
24
25pub mod email;
26
27pub mod endpoint;
28
29pub mod entity;
30
31pub mod error;
32
33pub mod field_policy;
34
35pub mod hooks;
36
37pub mod middleware;
38
39pub mod openapi;
40
41pub mod oauth_token_conversion;
42
43pub mod plugin;
44
45pub mod schema;
46
47pub mod session;
48
49pub mod store;
50
51#[cfg(test)]
52pub(crate) mod test_store;
53
54pub mod types;
55
56pub mod user_validation;
57
58pub mod verification;
59
60#[doc(hidden)]
61pub mod user_query;
62
63pub mod utils;
64
65pub mod wire;
66
67#[doc(hidden)]
69pub use crate as __private_core;
70pub use adapter_record::{AdapterOutput, AdapterRecord};
71pub use authenticated_user::AuthenticatedUser;
72pub use background_tasks::{
74 BackgroundTaskCompletion, BackgroundTaskHandler, start_background_task,
75};
76pub use better_auth_macros::{AuthSchema, PluginConfig};
78pub use config::{
79 AccountConfig, AccountLinkingConfig, AdvancedConfig, AdvancedDatabaseConfig, AuthConfig,
80 AwaitedNotificationErrorPolicy, CookieAttributes, CookieCacheConfig, CookieCacheStrategy,
81 CookieOverride, CookieRefreshCache, CrossSubDomainConfig, IpAddressConfig, JwtConfig,
82 ManagedSecrets, OAuthStateStrategy, PasswordConfig, SameSite, SessionConfig, UserConfig,
83 core_paths, extract_origin,
84};
85pub use email::{ConsoleEmailProvider, EmailProvider};
86pub use entity::{
87 AuthAccount, AuthApiKey, AuthInvitation, AuthMember, AuthOrganization, AuthPasskey,
88 AuthSession, AuthTwoFactor, AuthUser, AuthVerification, MemberUserView,
89};
90pub use error::{
91 AuthError, AuthResult, DatabaseError, validate_request_body, validation_error_response,
92};
93pub use hooks::{
94 CallbackContext, RequestHookContext, with_request_hook_context, with_request_hook_context_value,
95};
96pub use middleware::{
97 BodyLimitConfig, BodyLimitMiddleware, CacheRateLimitStorage, CorsConfig, CorsMiddleware,
98 CsrfConfig, CsrfMiddleware, EndpointRateLimit, MemoryRateLimitStorage, Middleware,
99 PluginRateLimit, RateLimitConfig, RateLimitDecision, RateLimitMiddleware, RateLimitResolver,
100 RateLimitRule, RateLimitStorage,
101};
102pub use openapi::{
103 OpenApiBuilder, OpenApiEndpoint, OpenApiField, OpenApiInfo, OpenApiModel, OpenApiOperation,
104 OpenApiRegistry, OpenApiResponse, OpenApiSpec, PluginOpenApiMetadata,
105};
106pub use plugin::{
107 AuthContext, AuthInitContext, AuthPlugin, AuthRoute, BeforeRequestAction, ContextExtensions,
108 HttpEndpointResponse, HttpRequestAction, VerificationEmailOverride,
109 VerificationEmailOverrideHandle,
110};
111pub use schema::AuthSchema;
112pub use session::SessionManager;
113pub use session::cookie_cache::{
114 CacheVersionContext, CacheVersionSource, CookieCacheVersion, CookieCacheVersionResolver,
115};
116pub use store::{
117 AuthStore, AuthTransaction, CacheAdapter, ConsumeApiKeyResult, MemoryCacheAdapter,
118 WalletAddressStore, transaction,
119};
120pub use types::{
121 ApiKey, ApiKeyStartText, ApiKeyStartingCharacters, AuthRequest, AuthResponse,
122 CodeMessageResponse, CreateAccount, CreateApiKey, CreateDeviceCode, CreateInvitation,
123 CreateMember, CreateOrganization, CreatePasskey, CreateSession, CreateTeam, CreateTwoFactor,
124 CreateUser, CreateVerification, CreateWalletAddress, DeviceCode, ErrorCodeMessageResponse,
125 ErrorMessageResponse, Headers, HealthCheckResponse, HttpMethod, Invitation, InvitationStatus,
126 ListUsersParams, Member, OkResponse, Organization, OrganizationPermissions, Passkey,
127 RateLimitErrorResponse, RequestMeta, StatusMessageResponse, StatusResponse,
128 SuccessMessageResponse, SuccessResponse, Team, TeamMember, TwoFactor, UpdateAccount,
129 UpdateApiKey, UpdateDeviceCode, UpdateOrganization, UpdatePasskey, UpdateTeam, UpdateTwoFactor,
130 UpdateUser, UpdateUserRequest, UpdateUserResponse, UpdateVerification, UserFilterValue,
131 ValidationErrorResponse, WalletAddress,
132};
133pub use types::{CreateJwk, Jwk};
134pub use utils::password::{
135 PasswordHashContext, PasswordHashHook, PasswordHasher, ScryptHasher, hash_password,
136 verify_password,
137};
138#[doc(hidden)]
139pub use uuid;
140pub use wire::{
141 AccountView, ApiKeyView, InvitationView, OrganizationView, PasskeyView, SessionView, UserView,
142 VerificationView,
143};