module WebAuthn

def self.configuration

def self.configuration
  @configuration ||= Configuration.new
end

def self.configure

def self.configure
  yield(configuration)
end

def self.credential_creation_options(rp_name: nil, user_name: "web-user", display_name: "web-user", user_id: "1")

def self.credential_creation_options(rp_name: nil, user_name: "web-user", display_name: "web-user", user_id: "1")
  warn(
    "DEPRECATION WARNING: `WebAuthn.credential_creation_options` is deprecated."\
    " Please use `WebAuthn::Credential.options_for_create` instead."
  )
  CredentialCreationOptions.new(
    rp_name: rp_name, user_id: user_id, user_name: user_name, user_display_name: display_name
  ).to_h
end

def self.credential_request_options

def self.credential_request_options
  warn(
    "DEPRECATION WARNING: `WebAuthn.credential_request_options` is deprecated."\
    " Please use `WebAuthn::Credential.options_for_get` instead."
  )
  CredentialRequestOptions.new.to_h
end

def self.generate_user_id

def self.generate_user_id
  configuration.encoder.encode(SecureRandom.random_bytes(64))
end

def self.standard_encoder

def self.standard_encoder
  @standard_encoder ||= Encoder.new
end