Packages

A flexible authentication (and more) solution for Phoenix

Current section

Files

Jump to
haytni mix.exs
Raw

mix.exs

defmodule Haytni.MixProject do
use Mix.Project
defp elixirc_paths(:test), do: ~W[lib test/support]
defp elixirc_paths(_), do: ~W[lib]
def project do
[
app: :haytni,
docs: docs(),
version: "0.6.2",
elixir: "~> 1.9",
compilers: ~W[phoenix gettext]a ++ Mix.compilers(),
start_permanent: Mix.env() == :prod,
description: description(),
package: package(),
deps: deps(),
dialyzer: [plt_add_apps: [:mix, :ex_unit]],
name: "Haytni",
source_url: "https://github.com/julp/haytni",
elixirc_paths: elixirc_paths(Mix.env()),
test_coverage: [tool: ExCoveralls],
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test
]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:gettext, ">= 0.0.0"},
{:bcrypt_elixir, "~> 2.2"}, # implies erlang > 20
#{:argon2_elixir, "~> 2.0"},
#{:pbkdf2_elixir, "~> 1.0"},
{:ecto_sql, "~> 3.4"},
{:phoenix, "~> 1.5"},
{:phoenix_ecto, "~> 4.1"},
{:phoenix_html, "~> 2.14"},
{:ex_doc, "~> 0.16", only: :dev, runtime: false},
# jason is "optional" to phoenix and bamboo
{:jason, "~> 1.2"},
{:bamboo, "~> 1.5"}, # required by plugins: confirmable, lockable, recoverable and invitable
{:dialyxir, "~> 1.0", only: ~W[dev test]a, runtime: false},
{:ecto_network, "~> 1.3", only: :test}, # required by plugin: trackable with PostgreSQL
{:excoveralls, "~> 0.13", only: :test},
#{:credo, "~> 1.4", only: [:dev, :test], runtime: false},
#{:sobelow, "~> 0.10", only: :test},
#{:myxql, ">= 0.0.0", only: :test},
{:postgrex, ">= 0.0.0", only: :test},
]
end
defp description() do
"A flexible authentication (and more) solution for Phoenix"
end
defp package() do
[
files: ["lib", "priv", "mix.exs", "README*", "CHANGELOG*"],
licenses: ["BSD"],
links: %{"GitHub" => "https://github.com/julp/haytni"}
]
end
defp docs do
[
extras: extras(),
groups_for_extras: groups_for_extras(),
groups_for_modules: groups_for_modules()
]
end
defp extras do
Path.wildcard("guides/**/*.md")
end
defp groups_for_extras do
[
Installation: "guides/installation.md",
"How to": ~R"guides/howto/.*\.md",
]
end
defp groups_for_modules do
[
#Haytni
#Haytni.Mail
#Haytni.Plugin
#Haytni.Gettext
#Haytni.Token
Plugins: [
Haytni.AuthenticablePlugin,
Haytni.ConfirmablePlugin,
Haytni.LockablePlugin,
Haytni.RecoverablePlugin,
Haytni.RegisterablePlugin,
Haytni.RememberablePlugin,
Haytni.TrackablePlugin,
Haytni.PasswordPolicyPlugin,
Haytni.InvitablePlugin,
],
Authenticable: [
Haytni.AuthenticablePlugin,
Haytni.AuthenticablePlugin.Config,
],
Confirmable: [
Haytni.ConfirmablePlugin,
Haytni.ConfirmablePlugin.Config,
Haytni.ConfirmableEmail,
],
Lockable: [
Haytni.LockablePlugin,
Haytni.LockablePlugin.Config,
Haytni.LockableEmail,
],
Recoverable: [
Haytni.RecoverablePlugin,
Haytni.RecoverablePlugin.Config,
Haytni.Recoverable.PasswordChange,
Haytni.RecoverableEmail,
],
Registerable: [
Haytni.RegisterablePlugin,
Haytni.RegisterablePlugin.Config,
],
PasswordPolicy: [
Haytni.PasswordPolicyPlugin,
Haytni.PasswordPolicyPlugin.Class,
Haytni.PasswordPolicyPlugin.Config,
],
Rememberable: [
Haytni.RememberablePlugin,
Haytni.RememberablePlugin.Config,
],
Trackable: [
Haytni.TrackablePlugin,
Haytni.TrackablePlugin.Config,
],
Invitable: [
Haytni.InvitablePlugin,
Haytni.InvitablePlugin.Config,
Haytni.InvitableEmail,
],
Helpers: [
Haytni.Params,
Haytni.Helpers,
HaytniWeb.Helpers,
HaytniWeb.Shared,
],
]
end
end