From b06643e3b51f018291691b511eaf0881cd3e986a Mon Sep 17 00:00:00 2001 From: ecly Date: Sat, 2 Mar 2019 17:27:09 +0100 Subject: [PATCH] bump to phoenix 1.4 --- apps/buddy_matching_web/.formatter.exs | 5 +- .../channels/player_socket.ex | 3 - .../lib/buddy_matching_web/endpoint.ex | 2 +- apps/buddy_matching_web/mix.exs | 4 +- .../channels/players_channel_test.exs | 55 ++++----------- mix.lock | 68 ++++++++++--------- 6 files changed, 55 insertions(+), 82 deletions(-) diff --git a/apps/buddy_matching_web/.formatter.exs b/apps/buddy_matching_web/.formatter.exs index 55d3bcc..562e886 100644 --- a/apps/buddy_matching_web/.formatter.exs +++ b/apps/buddy_matching_web/.formatter.exs @@ -1,3 +1,4 @@ [ - inputs: ["mix.exs", "{config,lib,test}/**/*.{ex,exs}"] -] \ No newline at end of file + import_deps: [:phoenix], + inputs: ["*.{ex,exs}", "{config,lib,priv,test}/**/*.{ex,exs}"] +] diff --git a/apps/buddy_matching_web/lib/buddy_matching_web/channels/player_socket.ex b/apps/buddy_matching_web/lib/buddy_matching_web/channels/player_socket.ex index d28365d..993b9d1 100644 --- a/apps/buddy_matching_web/lib/buddy_matching_web/channels/player_socket.ex +++ b/apps/buddy_matching_web/lib/buddy_matching_web/channels/player_socket.ex @@ -5,9 +5,6 @@ defmodule BuddyMatchingWeb.PlayerSocket do ## Channels channel("players:*", BuddyMatchingWeb.PlayersChannel) - ## Transports - transport(:websocket, Phoenix.Transports.WebSocket, timeout: 100_000) - # O n connect verify that the session and session token match def connect(%{"session_id" => session_id, "session_token" => session_token}, socket) do if Auth.verify_session(session_id, session_token) do diff --git a/apps/buddy_matching_web/lib/buddy_matching_web/endpoint.ex b/apps/buddy_matching_web/lib/buddy_matching_web/endpoint.ex index 46dac80..9617b15 100644 --- a/apps/buddy_matching_web/lib/buddy_matching_web/endpoint.ex +++ b/apps/buddy_matching_web/lib/buddy_matching_web/endpoint.ex @@ -1,7 +1,7 @@ defmodule BuddyMatchingWeb.Endpoint do use Phoenix.Endpoint, otp_app: :buddy_matching_web - socket("/socket", BuddyMatchingWeb.PlayerSocket) + socket("/socket", BuddyMatchingWeb.PlayerSocket, websocket: [timeout: 100_000]) # Serve at "/" the static files from "priv/static" directory. # diff --git a/apps/buddy_matching_web/mix.exs b/apps/buddy_matching_web/mix.exs index 0824aa4..8da6972 100644 --- a/apps/buddy_matching_web/mix.exs +++ b/apps/buddy_matching_web/mix.exs @@ -52,10 +52,10 @@ defmodule BuddyMatchingWeb.Mixfile do {:riot_api, in_umbrella: true}, {:buddy_matching, in_umbrella: true}, {:fortnite_api, in_umbrella: true}, - {:phoenix, "~> 1.3.0"}, + {:phoenix, "~> 1.4.0"}, {:phoenix_pubsub, "~> 1.0"}, {:gettext, "~> 0.11"}, - {:cowboy, "~> 1.0"}, + {:plug_cowboy, "~> 2.0"}, {:cors_plug, "~> 1.3"}, {:ok, "~> 1.9"}, {:uuid, "~> 1.1"}, diff --git a/apps/buddy_matching_web/test/buddy_matching_web/channels/players_channel_test.exs b/apps/buddy_matching_web/test/buddy_matching_web/channels/players_channel_test.exs index 3909a7b..a382299 100644 --- a/apps/buddy_matching_web/test/buddy_matching_web/channels/players_channel_test.exs +++ b/apps/buddy_matching_web/test/buddy_matching_web/channels/players_channel_test.exs @@ -200,11 +200,8 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket1, player1, topic1} = setup_socket(@base_player1) {socket2, player2, topic2} = setup_socket(@base_player2) - {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) - - :ok = close(channel1) - :ok = close(channel2) + {:ok, _, _channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) # assert player 1 got no one else assert_receive %Phoenix.Socket.Message{ @@ -233,8 +230,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do player = generate_player(auth_player.id) data = Poison.Parser.parse!(player) - {:ok, _, channel} = socket |> subscribe_and_join(PlayersChannel, topic, data) - :ok = close(channel) + {:ok, _, _channel} = socket |> subscribe_and_join(PlayersChannel, topic, data) assert_receive %Phoenix.Socket.Message{ topic: ^topic, @@ -257,13 +253,10 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket2, player2, topic2} = setup_socket(@base_player2) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) push(channel1, "request_match", %{"player" => player2}) - :ok = close(channel1) - :ok = close(channel2) - assert_receive %Phoenix.Socket.Message{ topic: ^topic2, event: @request_event, @@ -277,11 +270,8 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket1, player1, topic1} = setup_socket(@base_player1) {socket2, player2, topic2} = setup_socket(@base_player1) - {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) - - :ok = close(channel1) - :ok = close(channel2) + {:ok, _, _channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) assert_receive %Phoenix.Socket.Message{ topic: ^topic2, @@ -295,13 +285,10 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket2, player2, topic2} = setup_socket(@base_player2) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) push(channel1, "respond_to_request", %{"id" => player2.id, "response" => "accepted"}) - :ok = close(channel1) - :ok = close(channel2) - # player2 should recive the request response from player1 assert_receive %Phoenix.Socket.Message{ topic: ^topic2, @@ -315,7 +302,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket2, player2, topic2} = setup_socket(@base_player2) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) assert_receive %Phoenix.Socket.Message{ topic: ^topic1, @@ -323,15 +310,14 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do payload: ^player2 } - :ok = close(channel1) + Process.unlink(channel1.channel_pid) + _ = leave(channel1) assert_receive %Phoenix.Socket.Message{ topic: ^topic2, event: @unmatch_event, payload: ^player1 } - - :ok = close(channel2) end test "send leave event to player 2 when player 1 crashes" do @@ -339,7 +325,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket2, player2, topic2} = setup_socket(@base_player2) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) # unlink to first to avoid test being killed as well Process.unlink(channel1.channel_pid) @@ -350,8 +336,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do event: @unmatch_event, payload: ^player1 } - - :ok = close(channel2) end @tag :only @@ -360,7 +344,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket2, player2, topic2} = setup_socket(@base_player2) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) # assert player 1 got no one else assert_receive %Phoenix.Socket.Message{ @@ -393,9 +377,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do event: @unmatch_event, payload: ^narrow_player1 } - - :ok = close(channel1) - :ok = close(channel2) end test "update criteria sends error if criteria can't be parsed" do @@ -425,8 +406,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do }, 2000 ) - - :ok = close(channel1) end test "update criteria sends unmatch events when no longer matching" do @@ -434,7 +413,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do {socket2, player2, topic2} = setup_socket(@base_player2) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) # assert player 1 got no one else assert_receive( @@ -485,9 +464,6 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do %Phoenix.Socket.Message{topic: ^topic2, event: @unmatch_event, payload: ^narrow_player1}, 2000 ) - - :ok = close(channel1) - :ok = close(channel2) end test "update criteria sends unmatch events when no longer matching, and match event @@ -498,7 +474,7 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do setup_socket(%Player{@base_player2 | criteria: @player_broad_criteria}) {:ok, _, channel1} = socket1 |> subscribe_and_join(PlayersChannel, topic1, player1) - {:ok, _, channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) + {:ok, _, _channel2} = socket2 |> subscribe_and_join(PlayersChannel, topic2, player2) # assert player 1 got no one else assert_receive( @@ -559,8 +535,5 @@ defmodule BuddyMatchingWeb.PlayersChannelTest do %Phoenix.Socket.Message{topic: ^topic2, event: @new_match_event, payload: ^broad_player1}, 2000 ) - - :ok = close(channel1) - :ok = close(channel2) end end diff --git a/mix.lock b/mix.lock index f9056b6..12a3a18 100644 --- a/mix.lock +++ b/mix.lock @@ -1,37 +1,39 @@ %{ - "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [], [], "hexpm"}, - "certifi": {:hex, :certifi, "2.0.0", "a0c0e475107135f76b8c1d5bc7efb33cd3815cb3cf3dea7aefdd174dabead064", [:rebar3], [], "hexpm"}, + "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm"}, + "certifi": {:hex, :certifi, "2.5.1", "867ce347f7c7d78563450a18a6a28a8090331e77fa02380b4a21962a65d36ee5", [:rebar3], [{:parse_trans, "~>3.3", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"}, "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm"}, - "conform": {:hex, :conform, "2.5.2", "7035787a9c09d28607745444e7a1700426dc47c452634a5694033fa2fbb3414c", [], [{:neotoma, "~> 1.7.3", [hex: :neotoma, repo: "hexpm", optional: false]}], "hexpm"}, - "cors_plug": {:hex, :cors_plug, "1.4.0", "c1c4fb68adf2fd1b4caccee978663edd58f62881627ab65b52ff56146945687f", [:mix], [{:plug, "> 0.14.0", [hex: :plug, optional: false]}]}, - "cowboy": {:hex, :cowboy, "1.1.2", "61ac29ea970389a88eca5a65601460162d370a70018afe6f949a29dca91f3bb0", [:rebar3], [{:cowlib, "~> 1.0.2", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.3.2", [hex: :ranch, optional: false]}]}, - "cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []}, - "credo": {:hex, :credo, "0.8.10", "261862bb7363247762e1063713bb85df2bbd84af8d8610d1272cd9c1943bba63", [], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}], "hexpm"}, - "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [:mix], [], "hexpm"}, - "edeliver": {:hex, :edeliver, "1.4.4", "f019e1e8839e22dd868d3871be0ba4cd1424e4330f31891762298932eba9c8eb", [], [{:distillery, ">= 0.8.0", [hex: :distillery, repo: "hexpm", optional: true]}, {:exrm, ">= 0.16.0", [hex: :exrm, repo: "hexpm", optional: true]}], "hexpm"}, - "excoveralls": {:hex, :excoveralls, "0.8.0", "99d2691d3edf8612f128be3f9869c4d44b91c67cec92186ce49470ae7a7404cf", [], [{:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: false]}, {:hackney, ">= 0.12.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, - "exjsx": {:hex, :exjsx, "4.0.0", "60548841e0212df401e38e63c0078ec57b33e7ea49b032c796ccad8cde794b5c", [], [{:jsx, "~> 2.8.0", [hex: :jsx, repo: "hexpm", optional: false]}], "hexpm"}, - "gettext": {:hex, :gettext, "0.13.1", "5e0daf4e7636d771c4c71ad5f3f53ba09a9ae5c250e1ab9c42ba9edccc476263", [:mix], []}, - "hackney": {:hex, :hackney, "1.9.0", "51c506afc0a365868469dcfc79a9d0b94d896ec741cfd5bd338f49a5ec515bfe", [:rebar3], [{:certifi, "2.0.0", [repo: "hexpm", hex: :certifi, optional: false]}, {:idna, "5.1.0", [repo: "hexpm", hex: :idna, optional: false]}, {:metrics, "1.0.1", [repo: "hexpm", hex: :metrics, optional: false]}, {:mimerl, "1.0.2", [repo: "hexpm", hex: :mimerl, optional: false]}, {:ssl_verify_fun, "1.1.1", [repo: "hexpm", hex: :ssl_verify_fun, optional: false]}], "hexpm"}, - "httpoison": {:hex, :httpoison, "0.13.0", "bfaf44d9f133a6599886720f3937a7699466d23bb0cd7a88b6ba011f53c6f562", [:mix], [{:hackney, "~> 1.8", [repo: "hexpm", hex: :hackney, optional: false]}], "hexpm"}, - "idna": {:hex, :idna, "5.1.0", "d72b4effeb324ad5da3cab1767cb16b17939004e789d8c0ad5b70f3cea20c89a", [:rebar3], [{:unicode_util_compat, "0.3.1", [repo: "hexpm", hex: :unicode_util_compat, optional: false]}], "hexpm"}, - "jsx": {:hex, :jsx, "2.8.3", "a05252d381885240744d955fbe3cf810504eb2567164824e19303ea59eef62cf", [], [], "hexpm"}, - "meck": {:hex, :meck, "0.8.9", "64c5c0bd8bcca3a180b44196265c8ed7594e16bcc845d0698ec6b4e577f48188", [:rebar3], [], "hexpm"}, - "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], []}, - "mime": {:hex, :mime, "1.1.0", "01c1d6f4083d8aa5c7b8c246ade95139620ef8effb009edde934e0ec3b28090a", [:mix], []}, - "mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], []}, - "mock": {:hex, :mock, "0.3.1", "994f00150f79a0ea50dc9d86134cd9ebd0d177ad60bd04d1e46336cdfdb98ff9", [:mix], [{:meck, "~> 0.8.8", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"}, - "neotoma": {:hex, :neotoma, "1.7.3", "d8bd5404b73273989946e4f4f6d529e5c2088f5fa1ca790b4dbe81f4be408e61", [], [], "hexpm"}, - "ok": {:hex, :ok, "1.9.0", "f066d2ed0b58027a6ef4dbe54079c58f7b129797b759ac78d76a0cf3d553ce5b", [:mix], []}, - "phoenix": {:hex, :phoenix, "1.3.0", "1c01124caa1b4a7af46f2050ff11b267baa3edb441b45dbf243e979cd4c5891b", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, optional: false]}]}, - "phoenix_pubsub": {:hex, :phoenix_pubsub, "1.0.2", "bfa7fd52788b5eaa09cb51ff9fcad1d9edfeb68251add458523f839392f034c1", [:mix], []}, - "plug": {:hex, :plug, "1.4.3", "236d77ce7bf3e3a2668dc0d32a9b6f1f9b1f05361019946aae49874904be4aed", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]}, - "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], []}, + "conform": {:hex, :conform, "2.5.2", "7035787a9c09d28607745444e7a1700426dc47c452634a5694033fa2fbb3414c", [:mix], [{:neotoma, "~> 1.7.3", [hex: :neotoma, repo: "hexpm", optional: false]}], "hexpm"}, + "cors_plug": {:hex, :cors_plug, "1.5.2", "72df63c87e4f94112f458ce9d25800900cc88608c1078f0e4faddf20933eda6e", [:mix], [{:plug, "~> 1.3 or ~> 1.4 or ~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, + "cowboy": {:hex, :cowboy, "2.6.1", "f2e06f757c337b3b311f9437e6e072b678fcd71545a7b2865bdaa154d078593f", [:rebar3], [{:cowlib, "~> 2.7.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.7.1", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm"}, + "cowlib": {:hex, :cowlib, "2.7.0", "3ef16e77562f9855a2605900cedb15c1462d76fb1be6a32fc3ae91973ee543d2", [:rebar3], [], "hexpm"}, + "credo": {:hex, :credo, "0.8.10", "261862bb7363247762e1063713bb85df2bbd84af8d8610d1272cd9c1943bba63", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}], "hexpm"}, + "distillery": {:hex, :distillery, "1.5.5", "c6132d5c0152bdce6850fb6c942d58f1971b169b6965d908dc4e8767cfa51a95", [:mix], [], "hexpm"}, + "edeliver": {:hex, :edeliver, "1.4.6", "5927f3acffe0859e7812187fd604f70b5a74e599dd300f19774c0d7a16da09c9", [:mix], [{:distillery, ">= 1.0.0", [hex: :distillery, repo: "hexpm", optional: true]}], "hexpm"}, + "excoveralls": {:hex, :excoveralls, "0.10.5", "7c912c4ec0715a6013647d835c87cde8154855b9b84e256bc7a63858d5f284e3", [:mix], [{:hackney, "~> 1.13", [hex: :hackney, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm"}, + "gettext": {:hex, :gettext, "0.16.1", "e2130b25eebcbe02bb343b119a07ae2c7e28bd4b146c4a154da2ffb2b3507af2", [:mix], [], "hexpm"}, + "hackney": {:hex, :hackney, "1.15.1", "9f8f471c844b8ce395f7b6d8398139e26ddca9ebc171a8b91342ee15a19963f4", [:rebar3], [{:certifi, "2.5.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.4", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"}, + "httpoison": {:hex, :httpoison, "0.13.0", "bfaf44d9f133a6599886720f3937a7699466d23bb0cd7a88b6ba011f53c6f562", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, + "idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"}, + "jason": {:hex, :jason, "1.1.2", "b03dedea67a99223a2eaf9f1264ce37154564de899fd3d8b9a21b1a6fd64afe7", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm"}, + "meck": {:hex, :meck, "0.8.13", "ffedb39f99b0b99703b8601c6f17c7f76313ee12de6b646e671e3188401f7866", [:rebar3], [], "hexpm"}, + "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm"}, + "mime": {:hex, :mime, "1.3.1", "30ce04ab3175b6ad0bdce0035cba77bba68b813d523d1aac73d9781b4d193cf8", [:mix], [], "hexpm"}, + "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm"}, + "mock": {:hex, :mock, "0.3.3", "42a433794b1291a9cf1525c6d26b38e039e0d3a360732b5e467bfc77ef26c914", [:mix], [{:meck, "~> 0.8.13", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm"}, + "neotoma": {:hex, :neotoma, "1.7.3", "d8bd5404b73273989946e4f4f6d529e5c2088f5fa1ca790b4dbe81f4be408e61", [:rebar], [], "hexpm"}, + "ok": {:hex, :ok, "1.11.2", "0d7a72ec1450598623d2c559fca01e2fafaa7c62b31769273fd59a610b44cca8", [:mix], [], "hexpm"}, + "parse_trans": {:hex, :parse_trans, "3.3.0", "09765507a3c7590a784615cfd421d101aec25098d50b89d7aa1d66646bc571c1", [:rebar3], [], "hexpm"}, + "phoenix": {:hex, :phoenix, "1.4.1", "801f9d632808657f1f7c657c8bbe624caaf2ba91429123ebe3801598aea4c3d9", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 1.0 or ~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm"}, + "phoenix_pubsub": {:hex, :phoenix_pubsub, "1.1.2", "496c303bdf1b2e98a9d26e89af5bba3ab487ba3a3735f74bf1f4064d2a845a3e", [:mix], [], "hexpm"}, + "plug": {:hex, :plug, "1.7.2", "d7b7db7fbd755e8283b6c0a50be71ec0a3d67d9213d74422d9372effc8e87fd1", [:mix], [{:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}], "hexpm"}, + "plug_cowboy": {:hex, :plug_cowboy, "2.0.1", "d798f8ee5acc86b7d42dbe4450b8b0dadf665ce588236eb0a751a132417a980e", [:mix], [{:cowboy, "~> 2.5", [hex: :cowboy, repo: "hexpm", optional: false]}, {:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"}, + "plug_crypto": {:hex, :plug_crypto, "1.0.0", "18e49317d3fa343f24620ed22795ec29d4a5e602d52d1513ccea0b07d8ea7d4d", [:mix], [], "hexpm"}, + "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"}, "pre_commit": {:hex, :pre_commit, "0.2.4", "e26feaa149d55d3a6f14ca1340bd8738942d98405de389c0b3c7d48e71e62d66", [:mix], [], "hexpm"}, - "ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], []}, - "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], []}, - "timex": {:hex, :timex, "3.2.2", "f83c655ecb9472d4a614c3d27ce98483698ad81736647cba74425c33bcd3c7fb", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, - "tzdata": {:hex, :tzdata, "0.5.16", "13424d3afc76c68ff607f2df966c0ab4f3258859bbe3c979c9ed1606135e7352", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, - "unicode_util_compat": {:hex, :unicode_util_compat, "0.3.1", "a1f612a7b512638634a603c8f401892afbf99b8ce93a45041f8aaca99cadb85e", [:rebar3], []}, - "uuid": {:hex, :uuid, "1.1.8", "e22fc04499de0de3ed1116b770c7737779f226ceefa0badb3592e64d5cfb4eb9", [], [], "hexpm"}, + "ranch": {:hex, :ranch, "1.7.1", "6b1fab51b49196860b733a49c07604465a47bdb78aa10c1c16a3d199f7f8c881", [:rebar3], [], "hexpm"}, + "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.4", "f0eafff810d2041e93f915ef59899c923f4568f4585904d010387ed74988e77b", [:make, :mix, :rebar3], [], "hexpm"}, + "timex": {:hex, :timex, "3.5.0", "b0a23167da02d0fe4f1a4e104d1f929a00d348502b52432c05de875d0b9cffa5", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"}, + "tzdata": {:hex, :tzdata, "0.5.19", "7962a3997bf06303b7d1772988ede22260f3dae1bf897408ebdac2b4435f4e6a", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"}, + "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm"}, + "uuid": {:hex, :uuid, "1.1.8", "e22fc04499de0de3ed1116b770c7737779f226ceefa0badb3592e64d5cfb4eb9", [:mix], [], "hexpm"}, }