Bump deps and update code for Elixir 1.9
This commit is contained in:
parent
cbab7e74b4
commit
dc133690d2
13 changed files with 141 additions and 87 deletions
|
@ -1,6 +1,4 @@
|
|||
# This file is responsible for configuring your application
|
||||
# and its dependencies with the aid of the Mix.Config module.
|
||||
use Mix.Config
|
||||
import Config
|
||||
|
||||
# This configuration is loaded before any dependency and is restricted
|
||||
# to this project. If another project depends on this project, this
|
||||
|
@ -29,8 +27,6 @@ use Mix.Config
|
|||
#
|
||||
# import_config "#{Mix.env}.exs"
|
||||
|
||||
config :ecto, json_library: Jason
|
||||
|
||||
config :tilastokeskus,
|
||||
ecto_repos: [Tilastokeskus.Archive.Repo]
|
||||
|
||||
|
|
|
@ -17,8 +17,7 @@ defmodule Tilastokeskus.Archive.Schemas.Event do
|
|||
@spec changeset(Ecto.Schema.t(), map) :: Ecto.Changeset.t()
|
||||
def changeset(data, params \\ %{}) do
|
||||
data
|
||||
|> cast(params, [:at, :type, :addr, :extra])
|
||||
|> cast(params, [:at, :type, :addr, :extra, :session_id])
|
||||
|> validate_required([:at])
|
||||
|> put_assoc(:session, params[:session])
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,8 +19,7 @@ defmodule Tilastokeskus.Archive.Schemas.Session do
|
|||
@spec changeset(Ecto.Schema.t(), map) :: Ecto.Changeset.t()
|
||||
def changeset(data, params \\ %{}) do
|
||||
data
|
||||
|> cast(params, [])
|
||||
|> put_change(:opened_at, DateTime.utc_now())
|
||||
|> cast(params, [:opened_at])
|
||||
end
|
||||
|
||||
@doc """
|
||||
|
|
|
@ -2,7 +2,7 @@ defmodule Tilastokeskus.Archive.Types.Inet do
|
|||
@moduledoc """
|
||||
Inet type for Ecto for storing IPs in PostgreSQL.
|
||||
|
||||
From: http://pedroassumpcao.ghost.io/ecto-type-for-ipv4-and-ipv6-addresses/
|
||||
Originally from: http://pedroassumpcao.ghost.io/ecto-type-for-ipv4-and-ipv6-addresses/
|
||||
"""
|
||||
|
||||
@behaviour Ecto.Type
|
||||
|
@ -11,7 +11,7 @@ defmodule Tilastokeskus.Archive.Types.Inet do
|
|||
@doc """
|
||||
Defines what internal database type is used.
|
||||
"""
|
||||
def type(), do: :string
|
||||
def type(), do: :inet
|
||||
|
||||
@impl Ecto.Type
|
||||
@doc """
|
||||
|
@ -35,4 +35,12 @@ defmodule Tilastokeskus.Archive.Types.Inet do
|
|||
end
|
||||
|
||||
def dump(_), do: :error
|
||||
|
||||
@impl Ecto.Type
|
||||
def equal?(term1, term2) do
|
||||
term1 == term2
|
||||
end
|
||||
|
||||
@impl Ecto.Type
|
||||
def embed_as(_), do: :self
|
||||
end
|
||||
|
|
|
@ -47,7 +47,7 @@ defmodule Tilastokeskus.Archive.Utils.Session do
|
|||
"""
|
||||
@spec create() :: {:ok, %Session{}} | {:error, term}
|
||||
def create() do
|
||||
cset = Session.changeset(%Session{}, %{})
|
||||
Repo.insert(cset)
|
||||
Session.changeset(%Session{}, %{opened_at: DateTime.utc_now() |> DateTime.truncate(:second)})
|
||||
|> Repo.insert()
|
||||
end
|
||||
end
|
||||
|
|
36
backend/lib/reception/front_desk.ex
Normal file
36
backend/lib/reception/front_desk.ex
Normal file
|
@ -0,0 +1,36 @@
|
|||
defmodule Tilastokeskus.Reception.FrontDesk do
|
||||
@moduledoc """
|
||||
Entry point for the Raxx web service.
|
||||
"""
|
||||
|
||||
# Load files at compile time
|
||||
@files Raxx.Static.setup(source: Path.expand("priv/static"))
|
||||
|
||||
def child_spec(server_options) do
|
||||
{:ok, port} = Keyword.fetch(server_options, :port)
|
||||
|
||||
%{
|
||||
id: {__MODULE__, port},
|
||||
start: {__MODULE__, :start_link, [server_options]},
|
||||
type: :supervisor
|
||||
}
|
||||
end
|
||||
|
||||
def init(init_arg) do
|
||||
{:ok, init_arg}
|
||||
end
|
||||
|
||||
def start_link(server_options) do
|
||||
{:ok, hosts} = Keyword.fetch(server_options, :hosts)
|
||||
|
||||
stack =
|
||||
Raxx.Stack.new(
|
||||
[
|
||||
{Raxx.Static, @files}
|
||||
],
|
||||
{Tilastokeskus.Reception.Router, hosts}
|
||||
)
|
||||
|
||||
Ace.HTTP.Service.start_link(stack, server_options)
|
||||
end
|
||||
end
|
|
@ -1,14 +1,8 @@
|
|||
defmodule Tilastokeskus.Reception.Router do
|
||||
@external_resource "priv/static/track.js"
|
||||
@external_resource "priv/static/test.html"
|
||||
use Raxx.Router
|
||||
|
||||
use Ace.HTTP.Service, port: 1971, cleartext: true
|
||||
use Raxx.Logger
|
||||
|
||||
use Raxx.Router, [
|
||||
section([{Raxx.Logger, level: :debug}], [
|
||||
{%{method: :POST, path: ["track"]}, Tilastokeskus.Reception.Routes.PageView},
|
||||
{_, Tilastokeskus.Reception.Routes.NotFound}
|
||||
]
|
||||
|
||||
use Raxx.Static, "../../priv/static"
|
||||
])
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Tilastokeskus.Reception.Routes.NotFound do
|
||||
use Raxx.Server
|
||||
use Raxx.SimpleServer
|
||||
|
||||
@impl Raxx.Server
|
||||
@impl Raxx.SimpleServer
|
||||
def handle_request(_req, _state) do
|
||||
response(404)
|
||||
|> set_header("content-type", "application/json")
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
defmodule Tilastokeskus.Reception.Routes.PageView do
|
||||
use Raxx.Server
|
||||
use Raxx.SimpleServer
|
||||
alias Tilastokeskus.Archive.Schemas.PageView
|
||||
require Logger
|
||||
|
||||
@impl Raxx.Server
|
||||
@impl Raxx.SimpleServer
|
||||
def handle_request(req, state) do
|
||||
body = URI.decode_query(req.body || "")
|
||||
{path, path_noq, host, authority} = parse_url(body)
|
||||
|
@ -28,14 +28,14 @@ defmodule Tilastokeskus.Reception.Routes.PageView do
|
|||
# Run in one transaction to avoid multiple DB checkouts
|
||||
{:ok, response} =
|
||||
Tilastokeskus.Archive.Repo.transaction(fn ->
|
||||
session = get_session(req)
|
||||
session = Tilastokeskus.Reception.Session.extract(req)
|
||||
|
||||
cset =
|
||||
PageView.changeset(
|
||||
%PageView{},
|
||||
%{
|
||||
at: at,
|
||||
session: session,
|
||||
session_id: session.id,
|
||||
addr: addr,
|
||||
path: path,
|
||||
path_noq: path_noq,
|
||||
|
@ -63,10 +63,7 @@ defmodule Tilastokeskus.Reception.Routes.PageView do
|
|||
response(200)
|
||||
|> set_header("content-type", "application/json")
|
||||
|> set_body(Jason.encode!(%{ok: "OK"}))
|
||||
|> Raxx.Session.SignedCookie.embed(
|
||||
session.id,
|
||||
Tilastokeskus.Reception.Session.config()
|
||||
)
|
||||
|> Tilastokeskus.Reception.Session.embed(session)
|
||||
|
||||
{:error, err} ->
|
||||
Logger.error("Error saving pageview: #{inspect(err)}")
|
||||
|
@ -115,32 +112,6 @@ defmodule Tilastokeskus.Reception.Routes.PageView do
|
|||
end
|
||||
end
|
||||
|
||||
defp get_session(req) do
|
||||
case get_session_id(req) do
|
||||
{:ok, uuid} ->
|
||||
case Tilastokeskus.Archive.Utils.Session.find_by_id(uuid) do
|
||||
nil ->
|
||||
new_session()
|
||||
|
||||
s ->
|
||||
s
|
||||
end
|
||||
|
||||
{:error, _} ->
|
||||
new_session()
|
||||
end
|
||||
end
|
||||
|
||||
defp get_session_id(req) do
|
||||
config = Tilastokeskus.Reception.Session.config()
|
||||
Raxx.Session.SignedCookie.extract(req, config)
|
||||
end
|
||||
|
||||
defp new_session() do
|
||||
{:ok, session} = Tilastokeskus.Archive.Utils.Session.create()
|
||||
session
|
||||
end
|
||||
|
||||
defp parse_ua(req) do
|
||||
Raxx.get_header(req, "user-agent", nil)
|
||||
|> UAInspector.parse()
|
||||
|
|
|
@ -18,10 +18,52 @@ defmodule Tilastokeskus.Reception.Session do
|
|||
end
|
||||
|
||||
@doc """
|
||||
Raxx SignedCookie config for generating cookies for client.
|
||||
Create Raxx SignedCookie config for generating cookies for client.
|
||||
"""
|
||||
@spec config() :: Raxx.Session.t()
|
||||
def config() do
|
||||
secret = System.get_env("RAXX_SECRET")
|
||||
Raxx.Session.SignedCookie.config(secret: secret, cookie_name: "tilastokeskus.session")
|
||||
|
||||
Raxx.Session.config(
|
||||
store: Raxx.Session.SignedCookie,
|
||||
secret_key_base: secret,
|
||||
salt: "statistikcentralen",
|
||||
http_only: true,
|
||||
key: "tilastokeskus-session-id"
|
||||
)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Embed given session into the response.
|
||||
"""
|
||||
@spec embed(Raxx.Response.t(), map) :: Raxx.Response.t()
|
||||
def embed(%Raxx.Response{} = response, session) when is_map(session) do
|
||||
Raxx.Session.embed(
|
||||
response,
|
||||
session,
|
||||
config()
|
||||
)
|
||||
end
|
||||
|
||||
@doc """
|
||||
Extract session from request or create new session.
|
||||
"""
|
||||
@spec extract(Raxx.Request.t()) :: map
|
||||
def extract(%Raxx.Request{} = request) do
|
||||
case Raxx.Session.unprotected_extract(request, config()) do
|
||||
{:ok, %{id: id}} ->
|
||||
case Tilastokeskus.Archive.Utils.Session.find_by_id(id) do
|
||||
nil -> new_session()
|
||||
session -> %{id: session.id}
|
||||
end
|
||||
|
||||
_ ->
|
||||
new_session()
|
||||
end
|
||||
end
|
||||
|
||||
defp new_session() do
|
||||
{:ok, session} = Tilastokeskus.Archive.Utils.Session.create()
|
||||
%{id: session.id}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -16,7 +16,7 @@ defmodule Tilastokeskus.Application do
|
|||
children = [
|
||||
{Tilastokeskus.Archive.Repo, []},
|
||||
{Tilastokeskus.Archive.Scrubinator, %{days: days}},
|
||||
{Tilastokeskus.Reception.Router, [[hosts: hosts], [port: port]]}
|
||||
{Tilastokeskus.Reception.FrontDesk, [hosts: hosts, port: port, cleartext: true]}
|
||||
]
|
||||
|
||||
# See https://hexdocs.pm/elixir/Supervisor.html
|
||||
|
@ -27,7 +27,7 @@ defmodule Tilastokeskus.Application do
|
|||
|
||||
defp get_hosts() do
|
||||
case System.get_env("TILASTOKESKUS_HOSTS") do
|
||||
nil -> ""
|
||||
nil -> []
|
||||
hosts -> String.split(hosts, ",")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,8 +4,8 @@ defmodule Tilastokeskus.MixProject do
|
|||
def project do
|
||||
[
|
||||
app: :tilastokeskus,
|
||||
version: "0.1.0",
|
||||
elixir: "~> 1.6",
|
||||
version: "0.2.0",
|
||||
elixir: "~> 1.9",
|
||||
start_permanent: Mix.env() == :prod,
|
||||
deps: deps()
|
||||
]
|
||||
|
@ -22,16 +22,19 @@ defmodule Tilastokeskus.MixProject do
|
|||
# Run "mix help deps" to learn about dependencies.
|
||||
defp deps do
|
||||
[
|
||||
{:raxx, "~> 0.15.4"},
|
||||
{:raxx_static, "~> 0.6.1"},
|
||||
{:ace, "~> 0.16.5"},
|
||||
{:raxx, "~> 1.1.0"},
|
||||
{:raxx_static, "~> 0.8.3"},
|
||||
{:raxx_logger, "~> 0.2.2"},
|
||||
{:raxx_session, "~> 0.2.5"},
|
||||
{:ace, "~> 0.18.8"},
|
||||
{:postgrex, ">= 0.0.0"},
|
||||
{:ecto, "~> 2.2"},
|
||||
{:jason, "~> 1.0"},
|
||||
{:ua_inspector, github: "elixytics/ua_inspector"},
|
||||
{:geolix, "~> 0.16.0"},
|
||||
{:geolite2data, "~> 0.0.3"},
|
||||
{:distillery, "~> 1.5", runtime: false}
|
||||
{:ecto, "~> 3.2"},
|
||||
{:ecto_sql, "~> 3.2"},
|
||||
{:jason, "~> 1.1"},
|
||||
{:ua_inspector, "~> 1.2"},
|
||||
{:geolix, "~> 1.0"},
|
||||
{:geolix_adapter_mmdb2, "~> 0.1.0"},
|
||||
{:geolite2data, "~> 1.0"}
|
||||
]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,29 +1,35 @@
|
|||
%{
|
||||
"ace": {:hex, :ace, "0.16.5", "725f4511768bba7e083d3c93d8e499259101e49c0a9497252ce54a79a91e96e8", [:mix], [{:hpack, "~> 0.2.3", [hex: :hpack_erl, repo: "hexpm", optional: false]}, {:raxx, "~> 0.15.2", [hex: :raxx, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"ace": {:hex, :ace, "0.18.8", "9853110247f769e7d1600be7cd2abd638b53391c8c7b1ab11baad15184cb95d4", [:mix], [{:hpack, "~> 0.2.3", [hex: :hpack_erl, repo: "hexpm", optional: false]}, {:raxx, "~> 0.17.0 or ~> 0.18.0 or ~> 1.0", [hex: :raxx, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"certifi": {:hex, :certifi, "2.3.1", "d0f424232390bf47d82da8478022301c561cf6445b5b5fb6a84d49a9e76d2639", [:rebar3], [{:parse_trans, "3.2.0", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm"},
|
||||
"cookie": {:hex, :cookie, "0.1.1", "89438362ee0f0ed400e9f076d617d630f82d682e3fbcf767072a46a6e1ed5781", [:mix], [], "hexpm"},
|
||||
"db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"decimal": {:hex, :decimal, "1.5.0", "b0433a36d0e2430e3d50291b1c65f53c37d56f83665b43d79963684865beab68", [:mix], [], "hexpm"},
|
||||
"db_connection": {:hex, :db_connection, "2.1.1", "a51e8a2ee54ef2ae6ec41a668c85787ed40cb8944928c191280fe34c15b76ae5", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"decimal": {:hex, :decimal, "1.8.0", "ca462e0d885f09a1c5a342dbd7c1dcf27ea63548c65a65e67334f4b61803822e", [:mix], [], "hexpm"},
|
||||
"distillery": {:hex, :distillery, "1.5.3", "b2f4fc34ec71ab4f1202a796f9290e068883b042319aa8c9aa45377ecac8597a", [:mix], [], "hexpm"},
|
||||
"ecto": {:hex, :ecto, "2.2.10", "e7366dc82f48f8dd78fcbf3ab50985ceeb11cb3dc93435147c6e13f2cda0992e", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"geolite2data": {:hex, :geolite2data, "0.0.3", "829acdaa56cc8a23909bd557c55e0bd158d03413e11d912ac44e980da70107f3", [:rebar3], [], "hexpm"},
|
||||
"geolix": {:hex, :geolix, "0.16.0", "0095f5e828c0b46596216efaf6a4d46aba3f1a4da3bdfec735b2e49c8cd908fb", [:mix], [{:mmdb2_decoder, "~> 0.2.0", [hex: :mmdb2_decoder, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.0", [hex: :poolboy, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"ecto": {:hex, :ecto, "3.2.1", "a0f9af0fb50b19d3bb6237e512ac0ba56ea222c2bbea92e7c6c94897932c76ba", [:mix], [{:decimal, "~> 1.6", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"ecto_sql": {:hex, :ecto_sql, "3.2.0", "751cea597e8deb616084894dd75cbabfdbe7255ff01e8c058ca13f0353a3921b", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.2.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.2.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.15.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"geolite2data": {:hex, :geolite2data, "1.0.0", "ee10a92a2a0443b1de6efe4babc2decd1c7e37ff9ff4d39c01adb3b9d5b2003b", [:rebar3], [], "hexpm"},
|
||||
"geolix": {:hex, :geolix, "1.0.0", "b225d930fb0418871ce7d89dabf293bd80eb5bd66db1887f80510c122f4ef271", [:mix], [{:poolboy, "~> 1.0", [hex: :poolboy, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"geolix_adapter_mmdb2": {:hex, :geolix_adapter_mmdb2, "0.1.0", "ec8e72b095cac319a8eeb546517126c28d9673b9af208f2455464e09fc66bb01", [:mix], [{:geolix, "~> 1.0", [hex: :geolix, repo: "hexpm", optional: false]}, {:mmdb2_decoder, "~> 1.0", [hex: :mmdb2_decoder, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"hackney": {:hex, :hackney, "1.13.0", "24edc8cd2b28e1c652593833862435c80661834f6c9344e84b6a2255e7aeef03", [:rebar3], [{:certifi, "2.3.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "5.1.2", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"hpack": {:hex, :hpack_erl, "0.2.3", "17670f83ff984ae6cd74b1c456edde906d27ff013740ee4d9efaa4f1bf999633", [:rebar3], [], "hexpm"},
|
||||
"idna": {:hex, :idna, "5.1.2", "e21cb58a09f0228a9e0b95eaa1217f1bcfc31a1aaa6e1fdf2f53a33f7dbd9494", [:rebar3], [{:unicode_util_compat, "0.3.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"jason": {:hex, :jason, "1.0.0", "0f7cfa9bdb23fed721ec05419bcee2b2c21a77e926bce0deda029b5adc716fe2", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"jason": {:hex, :jason, "1.1.2", "b03dedea67a99223a2eaf9f1264ce37154564de899fd3d8b9a21b1a6fd64afe7", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm"},
|
||||
"mime": {:hex, :mime, "1.3.0", "5e8d45a39e95c650900d03f897fbf99ae04f60ab1daa4a34c7a20a5151b7a5fe", [:mix], [], "hexpm"},
|
||||
"mime": {:hex, :mime, "1.3.1", "30ce04ab3175b6ad0bdce0035cba77bba68b813d523d1aac73d9781b4d193cf8", [:mix], [], "hexpm"},
|
||||
"mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], [], "hexpm"},
|
||||
"mmdb2_decoder": {:hex, :mmdb2_decoder, "0.2.0", "34346c43bb1860d38d5505e5edf3d5e31a0d9fce4ee48f0c8c762875bcd05bb2", [:mix], [], "hexpm"},
|
||||
"mmdb2_decoder": {:hex, :mmdb2_decoder, "1.1.0", "2e2347521bb3bf6b81b9ee58d3be2199cb68ea42dcbafcd0d8eb40214d2844cf", [:mix], [], "hexpm"},
|
||||
"parse_trans": {:hex, :parse_trans, "3.2.0", "2adfa4daf80c14dc36f522cf190eb5c4ee3e28008fc6394397c16f62a26258c2", [:rebar3], [], "hexpm"},
|
||||
"poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], [], "hexpm"},
|
||||
"postgrex": {:hex, :postgrex, "0.13.5", "3d931aba29363e1443da167a4b12f06dcd171103c424de15e5f3fc2ba3e6d9c5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"raxx": {:hex, :raxx, "0.15.4", "62e4a487e55e9469d1ba2d5de590672167f51eaac310f027f3f871018cb6a9fc", [:mix], [{:cookie, "~> 0.1.0", [hex: :cookie, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"raxx_static": {:hex, :raxx_static, "0.6.1", "8b48254fc3d1b8b1e473b7c307fbba0ae767c60482754ce823c664544c85d729", [:mix], [{:mime, "~> 1.1", [hex: :mime, repo: "hexpm", optional: false]}, {:raxx, "~> 0.15.2", [hex: :raxx, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"plug_crypto": {:hex, :plug_crypto, "1.0.0", "18e49317d3fa343f24620ed22795ec29d4a5e602d52d1513ccea0b07d8ea7d4d", [:mix], [], "hexpm"},
|
||||
"poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm"},
|
||||
"postgrex": {:hex, :postgrex, "0.15.1", "23ce3417de70f4c0e9e7419ad85bdabcc6860a6925fe2c6f3b1b5b1e8e47bf2f", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm"},
|
||||
"raxx": {:hex, :raxx, "1.1.0", "d6a03143a91f8092c0be1ec555075c76c8d680601236de706f020d17abcf8b16", [:mix], [], "hexpm"},
|
||||
"raxx_logger": {:hex, :raxx_logger, "0.2.2", "51bbce9371298e7329de028fe13cf050bf59547bc8f1926910d479ba4b31c4b4", [:mix], [{:raxx, "~> 0.17.5 or ~> 0.18.0 or ~> 1.0", [hex: :raxx, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"raxx_session": {:hex, :raxx_session, "0.2.5", "d806650289dc8f5ce7c709ba903b2b3ef306920c680af706bbbb09bfc7c2a591", [:mix], [{:cookie, "~> 0.1.1", [hex: :cookie, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:raxx, "~> 1.0", [hex: :raxx, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"raxx_static": {:hex, :raxx_static, "0.8.3", "54022edeba731fa82f8c16fffe8a0c3f36bf55808aba7c3043922cb6b2951a1c", [:mix], [{:mime, "~> 1.1", [hex: :mime, repo: "hexpm", optional: false]}, {:raxx, "~> 0.17.0 or ~> 0.18.0 or ~> 1.0", [hex: :raxx, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], [], "hexpm"},
|
||||
"ua_inspector": {:git, "https://github.com/elixytics/ua_inspector.git", "3cd8fb927d5e14241a6646468f6a19e57afdaccb", []},
|
||||
"telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"},
|
||||
"ua_inspector": {:hex, :ua_inspector, "1.2.0", "970339552466e6a814cc6339f582d34c6814f28952bb4513f29b1d0a1dbc8847", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}, {:yamerl, "~> 0.7", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm"},
|
||||
"unicode_util_compat": {:hex, :unicode_util_compat, "0.3.1", "a1f612a7b512638634a603c8f401892afbf99b8ce93a45041f8aaca99cadb85e", [:rebar3], [], "hexpm"},
|
||||
"yamerl": {:hex, :yamerl, "0.7.0", "e51dba652dce74c20a88294130b48051ebbbb0be7d76f22de064f0f3ccf0aaf5", [:rebar3], [], "hexpm"},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue