pub mod config;
pub mod epoch;
pub mod error;
pub mod header;
pub mod owner;
pub mod ref_scope;
pub mod statement;
pub mod text;
pub mod verify;
pub mod visibility;
pub mod webauthn;
pub use config::{AcceptedSchemes, VerifierConfig, is_loopback_origin};
pub use epoch::{EpochStatement, EpochTransition, epoch_transition};
pub use error::GrantError;
pub use header::{OwnerScheme, SignedHeader};
pub use mkit_core::repo_identity::{Namespace, RepositoryIdentity};
pub use owner::verify_owner_signature;
pub use ref_scope::{RefFlags, RefPattern, RefScopes, head_packmap, packmap_head};
pub use statement::{Capabilities, Capability, Grant, RepoScope};
pub use verify::{
GrantRequest, OwnerVerified, VerifiedEpoch, VerifiedGrant, VerifiedVisibility,
verify_epoch_statement, verify_for_registration, verify_grant_owner,
verify_visibility_statement,
};
pub use visibility::{Visibility, VisibilityStatement};
pub use webauthn::{MAX_CLIENT_DATA_DEPTH, RelyingParty, WebAuthnAssertion, webauthn_challenge};
pub const DOMAIN_GRANT: &str = "mkit-write-grant:v1";
pub const DOMAIN_EPOCH: &str = "mkit-write-epoch:v1";
pub const DOMAIN_VISIBILITY: &str = "mkit-repo-visibility:v1";
pub const GRANT_MAX_LIFETIME_MS: i64 = 2_592_000_000;
pub const EPOCH_STATEMENT_MAX_LIFETIME_MS: i64 = 2_592_000_000;
pub const MAX_EPOCH_STEP: u64 = 1024;
pub const MAX_CLOCK_LEAD_MS: i64 = mkit_core::write_auth::MAX_CLOCK_LEAD_MS;
pub const MAX_AUDIENCES: usize = 8;
pub const MAX_REF_SCOPES: usize = 16;
pub const MAX_STATEMENT_BYTES: usize = 4096;
pub const MAX_GRANT_HEADER_BYTES: usize = 8192;
const _: () = assert!(MAX_CLOCK_LEAD_MS == 30_000);