# -*- encoding: utf-8 -*- # stub: rodauth 2.32.0 ruby lib Gem::Specification.new do |s| s.name = "rodauth".freeze s.version = "2.32.0".freeze s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.metadata = { "bug_tracker_uri" => "https://github.com/jeremyevans/rodauth/issues", "changelog_uri" => "https://rodauth.jeremyevans.net/rdoc/files/CHANGELOG.html", "documentation_uri" => "https://rodauth.jeremyevans.net/documentation.html", "mailing_list_uri" => "https://github.com/jeremyevans/rodauth/discussions", "source_code_uri" => "https://github.com/jeremyevans/rodauth" } if s.respond_to? :metadata= s.require_paths = ["lib".freeze] s.authors = ["Jeremy Evans".freeze] s.date = "2023-10-23" s.description = "Rodauth is Ruby's most advanced authentication framework, designed\nto work in all rack applications. It's built using Roda and Sequel,\nbut it can be used as middleware in front of web applications that use\nother web frameworks and database libraries.\n\nRodauth aims to provide strong security for password storage by\nutilizing separate database accounts if possible on PostgreSQL,\nMySQL, and Microsoft SQL Server. Configuration is done via\na DSL that makes it easy to override any part of the authentication\nprocess.\n\nRodauth supports typical authentication features: such as login and\nlogout, changing logins and passwords, and creating, verifying,\nunlocking, and resetting passwords for accounts. Rodauth also\nsupports many advanced authentication features:\n\n* Secure password storage using security definer database functions\n* Multiple primary multifactor authentication methods (WebAuthn and\n TOTP), as well as backup multifactor authentication methods (SMS\n and recovery codes).\n* Passwordless authentication using email links and WebAuthn\n authenticators.\n* Both standard HTML form and JSON API support for all features.\n".freeze s.email = "code@jeremyevans.net".freeze s.extra_rdoc_files = ["README.rdoc".freeze, "CHANGELOG".freeze, "MIT-LICENSE".freeze, "doc/account_expiration.rdoc".freeze, "doc/active_sessions.rdoc".freeze, "doc/argon2.rdoc".freeze, "doc/audit_logging.rdoc".freeze, "doc/base.rdoc".freeze, "doc/change_login.rdoc".freeze, "doc/change_password.rdoc".freeze, "doc/change_password_notify.rdoc".freeze, "doc/close_account.rdoc".freeze, "doc/confirm_password.rdoc".freeze, "doc/create_account.rdoc".freeze, "doc/disallow_common_passwords.rdoc".freeze, "doc/disallow_password_reuse.rdoc".freeze, "doc/email_auth.rdoc".freeze, "doc/email_base.rdoc".freeze, "doc/error_reasons.rdoc".freeze, "doc/http_basic_auth.rdoc".freeze, "doc/internal_request.rdoc".freeze, "doc/json.rdoc".freeze, "doc/jwt.rdoc".freeze, "doc/jwt_cors.rdoc".freeze, "doc/jwt_refresh.rdoc".freeze, "doc/lockout.rdoc".freeze, "doc/login.rdoc".freeze, "doc/login_password_requirements_base.rdoc".freeze, "doc/logout.rdoc".freeze, "doc/otp.rdoc".freeze, "doc/password_complexity.rdoc".freeze, "doc/password_expiration.rdoc".freeze, "doc/password_grace_period.rdoc".freeze, "doc/password_pepper.rdoc".freeze, "doc/path_class_methods.rdoc".freeze, "doc/recovery_codes.rdoc".freeze, "doc/remember.rdoc".freeze, "doc/reset_password.rdoc".freeze, "doc/reset_password_notify.rdoc".freeze, "doc/session_expiration.rdoc".freeze, "doc/single_session.rdoc".freeze, "doc/sms_codes.rdoc".freeze, "doc/two_factor_base.rdoc".freeze, "doc/update_password_hash.rdoc".freeze, "doc/verify_account.rdoc".freeze, "doc/verify_account_grace_period.rdoc".freeze, "doc/verify_login_change.rdoc".freeze, "doc/webauthn.rdoc".freeze, "doc/webauthn_autofill.rdoc".freeze, "doc/webauthn_login.rdoc".freeze, "doc/webauthn_verify_account.rdoc".freeze, "doc/release_notes/1.0.0.txt".freeze, "doc/release_notes/1.1.0.txt".freeze, "doc/release_notes/1.10.0.txt".freeze, "doc/release_notes/1.11.0.txt".freeze, "doc/release_notes/1.12.0.txt".freeze, "doc/release_notes/1.13.0.txt".freeze, "doc/release_notes/1.14.0.txt".freeze, "doc/release_notes/1.15.0.txt".freeze, "doc/release_notes/1.16.0.txt".freeze, "doc/release_notes/1.17.0.txt".freeze, "doc/release_notes/1.18.0.txt".freeze, "doc/release_notes/1.19.0.txt".freeze, "doc/release_notes/1.2.0.txt".freeze, "doc/release_notes/1.20.0.txt".freeze, "doc/release_notes/1.21.0.txt".freeze, "doc/release_notes/1.22.0.txt".freeze, "doc/release_notes/1.23.0.txt".freeze, "doc/release_notes/1.3.0.txt".freeze, "doc/release_notes/1.4.0.txt".freeze, "doc/release_notes/1.5.0.txt".freeze, "doc/release_notes/1.6.0.txt".freeze, "doc/release_notes/1.7.0.txt".freeze, "doc/release_notes/1.8.0.txt".freeze, "doc/release_notes/1.9.0.txt".freeze, "doc/release_notes/2.0.0.txt".freeze, "doc/release_notes/2.1.0.txt".freeze, "doc/release_notes/2.10.0.txt".freeze, "doc/release_notes/2.11.0.txt".freeze, "doc/release_notes/2.12.0.txt".freeze, "doc/release_notes/2.13.0.txt".freeze, "doc/release_notes/2.14.0.txt".freeze, "doc/release_notes/2.15.0.txt".freeze, "doc/release_notes/2.16.0.txt".freeze, "doc/release_notes/2.17.0.txt".freeze, "doc/release_notes/2.18.0.txt".freeze, "doc/release_notes/2.19.0.txt".freeze, "doc/release_notes/2.2.0.txt".freeze, "doc/release_notes/2.20.0.txt".freeze, "doc/release_notes/2.21.0.txt".freeze, "doc/release_notes/2.22.0.txt".freeze, "doc/release_notes/2.23.0.txt".freeze, "doc/release_notes/2.24.0.txt".freeze, "doc/release_notes/2.25.0.txt".freeze, "doc/release_notes/2.26.0.txt".freeze, "doc/release_notes/2.27.0.txt".freeze, "doc/release_notes/2.28.0.txt".freeze, "doc/release_notes/2.29.0.txt".freeze, "doc/release_notes/2.3.0.txt".freeze, "doc/release_notes/2.30.0.txt".freeze, "doc/release_notes/2.31.0.txt".freeze, "doc/release_notes/2.32.0.txt".freeze, "doc/release_notes/2.4.0.txt".freeze, "doc/release_notes/2.5.0.txt".freeze, "doc/release_notes/2.6.0.txt".freeze, "doc/release_notes/2.7.0.txt".freeze, "doc/release_notes/2.8.0.txt".freeze, "doc/release_notes/2.9.0.txt".freeze] s.files = ["CHANGELOG".freeze, "MIT-LICENSE".freeze, "README.rdoc".freeze, "dict/top-10_000-passwords.txt".freeze, "doc/account_expiration.rdoc".freeze, "doc/active_sessions.rdoc".freeze, "doc/argon2.rdoc".freeze, "doc/audit_logging.rdoc".freeze, "doc/base.rdoc".freeze, "doc/change_login.rdoc".freeze, "doc/change_password.rdoc".freeze, "doc/change_password_notify.rdoc".freeze, "doc/close_account.rdoc".freeze, "doc/confirm_password.rdoc".freeze, "doc/create_account.rdoc".freeze, "doc/disallow_common_passwords.rdoc".freeze, "doc/disallow_password_reuse.rdoc".freeze, "doc/email_auth.rdoc".freeze, "doc/email_base.rdoc".freeze, "doc/error_reasons.rdoc".freeze, "doc/guides/admin_activation.rdoc".freeze, "doc/guides/already_authenticated.rdoc".freeze, "doc/guides/alternative_login.rdoc".freeze, "doc/guides/change_table_and_column_names.rdoc".freeze, "doc/guides/create_account_programmatically.rdoc".freeze, "doc/guides/delay_password.rdoc".freeze, "doc/guides/email_only.rdoc".freeze, "doc/guides/i18n.rdoc".freeze, "doc/guides/internals.rdoc".freeze, "doc/guides/links.rdoc".freeze, "doc/guides/login_return.rdoc".freeze, "doc/guides/migrate_password_hash_algorithm.rdoc".freeze, "doc/guides/password_column.rdoc".freeze, "doc/guides/password_confirmation.rdoc".freeze, "doc/guides/password_requirements.rdoc".freeze, "doc/guides/paths.rdoc".freeze, "doc/guides/query_params.rdoc".freeze, "doc/guides/redirects.rdoc".freeze, "doc/guides/registration_field.rdoc".freeze, "doc/guides/render_confirmation.rdoc".freeze, "doc/guides/require_mfa.rdoc".freeze, "doc/guides/reset_password_autologin.rdoc".freeze, "doc/guides/share_configuration.rdoc".freeze, "doc/guides/status_column.rdoc".freeze, "doc/guides/totp_or_recovery.rdoc".freeze, "doc/http_basic_auth.rdoc".freeze, "doc/internal_request.rdoc".freeze, "doc/json.rdoc".freeze, "doc/jwt.rdoc".freeze, "doc/jwt_cors.rdoc".freeze, "doc/jwt_refresh.rdoc".freeze, "doc/lockout.rdoc".freeze, "doc/login.rdoc".freeze, "doc/login_password_requirements_base.rdoc".freeze, "doc/logout.rdoc".freeze, "doc/otp.rdoc".freeze, "doc/password_complexity.rdoc".freeze, "doc/password_expiration.rdoc".freeze, "doc/password_grace_period.rdoc".freeze, "doc/password_pepper.rdoc".freeze, "doc/path_class_methods.rdoc".freeze, "doc/recovery_codes.rdoc".freeze, "doc/release_notes/1.0.0.txt".freeze, "doc/release_notes/1.1.0.txt".freeze, "doc/release_notes/1.10.0.txt".freeze, "doc/release_notes/1.11.0.txt".freeze, "doc/release_notes/1.12.0.txt".freeze, "doc/release_notes/1.13.0.txt".freeze, "doc/release_notes/1.14.0.txt".freeze, "doc/release_notes/1.15.0.txt".freeze, "doc/release_notes/1.16.0.txt".freeze, "doc/release_notes/1.17.0.txt".freeze, "doc/release_notes/1.18.0.txt".freeze, "doc/release_notes/1.19.0.txt".freeze, "doc/release_notes/1.2.0.txt".freeze, "doc/release_notes/1.20.0.txt".freeze, "doc/release_notes/1.21.0.txt".freeze, "doc/release_notes/1.22.0.txt".freeze, "doc/release_notes/1.23.0.txt".freeze, "doc/release_notes/1.3.0.txt".freeze, "doc/release_notes/1.4.0.txt".freeze, "doc/release_notes/1.5.0.txt".freeze, "doc/release_notes/1.6.0.txt".freeze, "doc/release_notes/1.7.0.txt".freeze, "doc/release_notes/1.8.0.txt".freeze, "doc/release_notes/1.9.0.txt".freeze, "doc/release_notes/2.0.0.txt".freeze, "doc/release_notes/2.1.0.txt".freeze, "doc/release_notes/2.10.0.txt".freeze, "doc/release_notes/2.11.0.txt".freeze, "doc/release_notes/2.12.0.txt".freeze, "doc/release_notes/2.13.0.txt".freeze, "doc/release_notes/2.14.0.txt".freeze, "doc/release_notes/2.15.0.txt".freeze, "doc/release_notes/2.16.0.txt".freeze, "doc/release_notes/2.17.0.txt".freeze, "doc/release_notes/2.18.0.txt".freeze, "doc/release_notes/2.19.0.txt".freeze, "doc/release_notes/2.2.0.txt".freeze, "doc/release_notes/2.20.0.txt".freeze, "doc/release_notes/2.21.0.txt".freeze, "doc/release_notes/2.22.0.txt".freeze, "doc/release_notes/2.23.0.txt".freeze, "doc/release_notes/2.24.0.txt".freeze, "doc/release_notes/2.25.0.txt".freeze, "doc/release_notes/2.26.0.txt".freeze, "doc/release_notes/2.27.0.txt".freeze, "doc/release_notes/2.28.0.txt".freeze, "doc/release_notes/2.29.0.txt".freeze, "doc/release_notes/2.3.0.txt".freeze, "doc/release_notes/2.30.0.txt".freeze, "doc/release_notes/2.31.0.txt".freeze, "doc/release_notes/2.32.0.txt".freeze, "doc/release_notes/2.4.0.txt".freeze, "doc/release_notes/2.5.0.txt".freeze, "doc/release_notes/2.6.0.txt".freeze, "doc/release_notes/2.7.0.txt".freeze, "doc/release_notes/2.8.0.txt".freeze, "doc/release_notes/2.9.0.txt".freeze, "doc/remember.rdoc".freeze, "doc/reset_password.rdoc".freeze, "doc/reset_password_notify.rdoc".freeze, "doc/session_expiration.rdoc".freeze, "doc/single_session.rdoc".freeze, "doc/sms_codes.rdoc".freeze, "doc/two_factor_base.rdoc".freeze, "doc/update_password_hash.rdoc".freeze, "doc/verify_account.rdoc".freeze, "doc/verify_account_grace_period.rdoc".freeze, "doc/verify_login_change.rdoc".freeze, "doc/webauthn.rdoc".freeze, "doc/webauthn_autofill.rdoc".freeze, "doc/webauthn_login.rdoc".freeze, "doc/webauthn_verify_account.rdoc".freeze, "javascript/webauthn_auth.js".freeze, "javascript/webauthn_autofill.js".freeze, "javascript/webauthn_setup.js".freeze, "lib/roda/plugins/rodauth.rb".freeze, "lib/rodauth.rb".freeze, "lib/rodauth/features/account_expiration.rb".freeze, "lib/rodauth/features/active_sessions.rb".freeze, "lib/rodauth/features/argon2.rb".freeze, "lib/rodauth/features/audit_logging.rb".freeze, "lib/rodauth/features/base.rb".freeze, "lib/rodauth/features/change_login.rb".freeze, "lib/rodauth/features/change_password.rb".freeze, "lib/rodauth/features/change_password_notify.rb".freeze, "lib/rodauth/features/close_account.rb".freeze, "lib/rodauth/features/confirm_password.rb".freeze, "lib/rodauth/features/create_account.rb".freeze, "lib/rodauth/features/disallow_common_passwords.rb".freeze, "lib/rodauth/features/disallow_password_reuse.rb".freeze, "lib/rodauth/features/email_auth.rb".freeze, "lib/rodauth/features/email_base.rb".freeze, "lib/rodauth/features/http_basic_auth.rb".freeze, "lib/rodauth/features/internal_request.rb".freeze, "lib/rodauth/features/json.rb".freeze, "lib/rodauth/features/jwt.rb".freeze, "lib/rodauth/features/jwt_cors.rb".freeze, "lib/rodauth/features/jwt_refresh.rb".freeze, "lib/rodauth/features/lockout.rb".freeze, "lib/rodauth/features/login.rb".freeze, "lib/rodauth/features/login_password_requirements_base.rb".freeze, "lib/rodauth/features/logout.rb".freeze, "lib/rodauth/features/otp.rb".freeze, "lib/rodauth/features/password_complexity.rb".freeze, "lib/rodauth/features/password_expiration.rb".freeze, "lib/rodauth/features/password_grace_period.rb".freeze, "lib/rodauth/features/password_pepper.rb".freeze, "lib/rodauth/features/path_class_methods.rb".freeze, "lib/rodauth/features/recovery_codes.rb".freeze, "lib/rodauth/features/remember.rb".freeze, "lib/rodauth/features/reset_password.rb".freeze, "lib/rodauth/features/reset_password_notify.rb".freeze, "lib/rodauth/features/session_expiration.rb".freeze, "lib/rodauth/features/single_session.rb".freeze, "lib/rodauth/features/sms_codes.rb".freeze, "lib/rodauth/features/two_factor_base.rb".freeze, "lib/rodauth/features/update_password_hash.rb".freeze, "lib/rodauth/features/verify_account.rb".freeze, "lib/rodauth/features/verify_account_grace_period.rb".freeze, "lib/rodauth/features/verify_login_change.rb".freeze, "lib/rodauth/features/webauthn.rb".freeze, "lib/rodauth/features/webauthn_autofill.rb".freeze, "lib/rodauth/features/webauthn_login.rb".freeze, "lib/rodauth/features/webauthn_verify_account.rb".freeze, "lib/rodauth/migrations.rb".freeze, "lib/rodauth/version.rb".freeze, "templates/add-recovery-codes.str".freeze, "templates/button.str".freeze, "templates/change-login.str".freeze, "templates/change-password.str".freeze, "templates/close-account.str".freeze, "templates/confirm-password.str".freeze, "templates/create-account.str".freeze, "templates/email-auth-email.str".freeze, "templates/email-auth-request-form.str".freeze, "templates/email-auth.str".freeze, "templates/global-logout-field.str".freeze, "templates/login-confirm-field.str".freeze, "templates/login-display.str".freeze, "templates/login-field.str".freeze, "templates/login-form-footer.str".freeze, "templates/login-form.str".freeze, "templates/login.str".freeze, "templates/logout.str".freeze, "templates/multi-phase-login.str".freeze, "templates/otp-auth-code-field.str".freeze, "templates/otp-auth.str".freeze, "templates/otp-disable.str".freeze, "templates/otp-setup.str".freeze, "templates/password-changed-email.str".freeze, "templates/password-confirm-field.str".freeze, "templates/password-field.str".freeze, "templates/recovery-auth.str".freeze, "templates/recovery-codes.str".freeze, "templates/remember.str".freeze, "templates/reset-password-email.str".freeze, "templates/reset-password-notify-email.str".freeze, "templates/reset-password-request.str".freeze, "templates/reset-password.str".freeze, "templates/sms-auth.str".freeze, "templates/sms-code-field.str".freeze, "templates/sms-confirm.str".freeze, "templates/sms-disable.str".freeze, "templates/sms-request.str".freeze, "templates/sms-setup.str".freeze, "templates/two-factor-auth.str".freeze, "templates/two-factor-disable.str".freeze, "templates/two-factor-manage.str".freeze, "templates/unlock-account-email.str".freeze, "templates/unlock-account-request.str".freeze, "templates/unlock-account.str".freeze, "templates/verify-account-email.str".freeze, "templates/verify-account-resend.str".freeze, "templates/verify-account.str".freeze, "templates/verify-login-change-email.str".freeze, "templates/verify-login-change.str".freeze, "templates/webauthn-auth.str".freeze, "templates/webauthn-autofill.str".freeze, "templates/webauthn-remove.str".freeze, "templates/webauthn-setup.str".freeze] s.homepage = "https://rodauth.jeremyevans.net".freeze s.licenses = ["MIT".freeze] s.rdoc_options = ["--quiet".freeze, "--line-numbers".freeze, "--inline-source".freeze, "--title".freeze, "Rodauth: Ruby's Most Advanced Authentication Framework".freeze, "--main".freeze, "README.rdoc".freeze] s.required_ruby_version = Gem::Requirement.new(">= 1.9.2".freeze) s.rubygems_version = "3.5.10".freeze s.summary = "Authentication and Account Management Framework for Rack Applications".freeze s.specification_version = 4 s.add_runtime_dependency(%q.freeze, [">= 4".freeze]) s.add_runtime_dependency(%q.freeze, [">= 2.6.0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 2".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 2".freeze]) s.add_development_dependency(%q.freeze, [">= 5.0.0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 1.1.0".freeze]) s.add_development_dependency(%q.freeze, [">= 2.1.0".freeze]) end