mod config;
mod cli;
mod from_file;
mod filestore;
mod session;
#[cfg(feature = "authstore")]
mod authz;
mod appdbs;
mod req_headermap;
mod req_handler;
mod tracedata;
mod local;
mod mailer;
mod totp_mode;
mod totp_algorithm;
mod app_connect_info;
mod openid;

pub(crate) use appdbs::AppDBs;
pub(crate) use session::{
    SessionStoreDB,
    AuthState,
    Random,
};
pub(crate) use from_file::{
    FromFile, 
    load_from_file,
    DictFromFile,
    load_dict_from_file,
};
pub(crate) use filestore::FileStore;
#[cfg(feature = "authstore")]
pub(crate) use authz::AuthStore;
pub(crate) use config::{ServPath,Config};
pub(crate) use cli::parse_args;
pub(crate) use req_handler::ReqHandler;
pub(crate) use req_headermap::ReqHeaderMap;
pub(crate) use tracedata::{TraceData,TraceContent, TraceLogContent};
pub(crate) use local::Local;
pub(crate) use mailer::MailMessage;

pub(crate) use totp_algorithm::{TotpAlgorithm,deserialize_totp_algorithm};
pub(crate) use totp_mode::{TotpMode, deserialize_totp_mode};

pub(crate) use app_connect_info::AppConnectInfo;

pub(crate) use openid::{OpenidConf,OpenidData,collect_openid_clients,OpenidCli};

pub const TOKEN_KEY_VALUE: &str = "tii-cl";
pub const TOKEN_AUTH_VALUE: &str = "tii-cl-token";
pub const CLAIM_UID: &str = "uid";
pub const CLAIM_AUTH: &str = "auth";
pub const CLAIM_APP_KEY: &str = "app_key";
pub const USER_DATA: &str = "user_data";
pub const BEARER: &str = "Bearer"; 
pub const USER_AGENT: &str = "user-agent"; 
pub const FILE_SCHEME: &str = "file:///"; 
pub const SESSION_ID: &str = "sid"; 
pub const ACCEPT_LANGUAGE: &str = "accept-language"; 
pub const X_INTERNAL: &str = "x-internal"; 
pub const X_REAL_IP: &str = "x-real-ip";
pub const X_FORWARDED_FOR: &str = "x-forwarded-for";
pub const AUTHORIZATION: &str = "authorization"; 
pub const REFERER: &str = "referer"; 
pub const SID_TRACE_FILE: &str = "sid_trace.json";
