defmodule LivekitSdk.MixProject do use Mix.Project @version "0.1.0" @source_url "https://github.com/caltek/ex_livekit_sdk" def project do [ app: :livekit_sdk, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, elixirc_paths: elixirc_paths(Mix.env()), deps: deps(), aliases: aliases(), name: "LiveKit", description: description(), package: package(), docs: docs(), source_url: @source_url, homepage_url: @source_url ] end def application do [ extra_applications: [:logger, :crypto] ] end defp description do """ Elixir server SDK for LiveKit. Mint access tokens, call Room/Egress/Ingress Twirp APIs, and verify webhook callbacks. """ end defp package do [ name: "livekit_sdk", licenses: ["Apache-2.0"], links: %{ "GitHub" => @source_url, "Changelog" => "#{@source_url}/blob/main/CHANGELOG.md", "LiveKit" => "https://livekit.io" }, files: ~w( lib priv .formatter.exs mix.exs README.md LICENSE CHANGELOG.md ) ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp deps do [ {:req, "~> 0.5"}, {:jason, "~> 1.4"}, {:joken, "~> 2.6"}, {:protobuf, "~> 0.14.0"}, {:ex_doc, "~> 0.34", only: [:dev], runtime: false}, {:mox, "~> 1.2", only: :test}, {:bypass, "~> 2.1", only: :test} ] end defp aliases do [ "proto.fetch": ["livekit.proto.fetch"], "proto.generate": ["livekit.proto.generate"] ] end defp docs do [ main: "readme", source_ref: "v#{@version}", source_url: @source_url, extras: ["README.md", "CHANGELOG.md"], skip_undefined_reference_warnings_on: [ "LiveKit.RoomService", "LiveKit.EgressService", "LiveKit.IngressService", "LiveKit.WebhookReceiver" ], groups_for_modules: [ "Getting started": [LiveKit, LiveKit.Client, LiveKit.Config, LiveKit.Error], Auth: [LiveKit.AccessToken, LiveKit.Auth, LiveKit.TokenVerifier, LiveKit.Grants], Grants: [ LiveKit.Grants.Video, LiveKit.Grants.SIP, LiveKit.Grants.Agent, LiveKit.Grants.Claims ], Services: [ LiveKit.RoomService, LiveKit.EgressService, LiveKit.IngressService, LiveKit.WebhookReceiver, LiveKit.Twirp ] ] ] end end