defmodule Sumup.MixProject do use Mix.Project @version "1.0.0" @source_url "https://github.com/iamkanishka/sumup" def project do [ app: :sumup, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps(), description: description(), package: package(), name: "Sumup", source_url: @source_url, docs: docs(), elixirc_paths: elixirc_paths(Mix.env()), test_coverage: [tool: ExCoveralls], preferred_cli_env: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test ], dialyzer: [ plt_add_apps: [:mix, :ex_unit], plt_core_path: "priv/plts", plt_local_path: "priv/plts" ] ] end def application do [ extra_applications: [:logger] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp deps do [ # Runtime {:req, "~> 0.5"}, {:jason, "~> 1.4"}, {:nimble_options, "~> 1.1"}, {:telemetry, "~> 1.2"}, # Test only - Req.Test (ships inside :req) needs :plug for its `plug:` adapter option {:plug, "~> 1.15", only: :test}, # Dev / test tooling {:ex_doc, "~> 0.34", only: :dev, runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:excoveralls, "~> 0.18", only: :test} ] end defp description do "A production-grade, fully-typed Elixir client for the SumUp API " <> "(Checkouts, Readers, Customers, Transactions, Payouts, Receipts, " <> "Members, Memberships, Roles and Merchants) with telemetry, retries, " <> "cursor streaming, webhook handling, and RFC 9457 aware error handling." end defp package do [ name: "sumup", files: ~w(lib .formatter.exs mix.exs README.md CHANGELOG.md LICENSE), licenses: ["MIT"], links: %{"GitHub" => @source_url} ] end defp docs do [ main: "readme", extras: ["README.md", "CHANGELOG.md"], groups_for_modules: [ Resources: [ Sumup.Checkouts, Sumup.Readers, Sumup.Customers, Sumup.PaymentInstruments, Sumup.Transactions, Sumup.Payouts, Sumup.Receipts, Sumup.Members, Sumup.Memberships, Sumup.Roles, Sumup.Merchants ], Schemas: [ Sumup.Checkout, Sumup.Reader, Sumup.ReaderStatus, Sumup.Customer, Sumup.PaymentInstrument, Sumup.Transaction, Sumup.Payout, Sumup.Receipt, Sumup.Member, Sumup.Membership, Sumup.Role, Sumup.Merchant ], Webhooks: [ Sumup.Webhooks, Sumup.WebhookEvent ], Support: [ Sumup.Config, Sumup.Client, Sumup.Error, Sumup.RequestError, Sumup.Money, Sumup.Money.Float, Sumup.Money.MinorUnit, Sumup.Pagination, Sumup.Telemetry ] ] ] end end