diff --git a/.tool-versions b/.tool-versions index b962cc3a..c4e388ee 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,4 +1,4 @@ -elixir 1.14.5-otp-25 +elixir 1.16.3-otp-25 erlang 25.3.2.12 python 3.9.16 poetry 1.7.0 diff --git a/Dockerfile b/Dockerfile index 638979ec..ad93458e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ -ARG ELIXIR_VERSION=1.14.5 -ARG ERLANG_VERSION=25.3.2.7 -ARG ALPINE_VERSION=3.17.5 +ARG ELIXIR_VERSION=1.16.3 +ARG ERLANG_VERSION=25.3.2.12 +ARG ALPINE_VERSION=3.17.7 FROM hexpm/elixir:${ELIXIR_VERSION}-erlang-${ERLANG_VERSION}-alpine-${ALPINE_VERSION} as builder diff --git a/apps/alb_monitor/lib/alb_monitor/monitor.ex b/apps/alb_monitor/lib/alb_monitor/monitor.ex index c62e2d15..611d602e 100644 --- a/apps/alb_monitor/lib/alb_monitor/monitor.ex +++ b/apps/alb_monitor/lib/alb_monitor/monitor.ex @@ -109,7 +109,7 @@ defmodule ALBMonitor.Monitor do end end - defp log_warn(message) when is_binary(message), do: Logger.warn(["alb_monitor ", message]) + defp log_warn(message) when is_binary(message), do: Logger.warning(["alb_monitor ", message]) defp log_info(message) when is_binary(message), do: Logger.info(["alb_monitor ", message]) defp schedule_check(%State{check_interval: check_interval}) do diff --git a/apps/api_accounts/lib/api_accounts.ex b/apps/api_accounts/lib/api_accounts.ex index 6b2cee1b..48ff7436 100644 --- a/apps/api_accounts/lib/api_accounts.ex +++ b/apps/api_accounts/lib/api_accounts.ex @@ -660,6 +660,8 @@ defmodule ApiAccounts do def totp_uri(%User{} = user) do host = System.get_env("HOST") - NimbleTOTP.otpauth_uri("MBTA-API: #{host}/#{user.email}", user.totp_secret_bin, issuer: "MBTA") + NimbleTOTP.otpauth_uri("MBTA-API: #{host}/#{user.email}", user.totp_secret_bin, + issuer: "MBTA" + ) end end diff --git a/apps/api_accounts/test/api_accounts/user_test.exs b/apps/api_accounts/test/api_accounts/user_test.exs index c9931378..f2bcdd1c 100644 --- a/apps/api_accounts/test/api_accounts/user_test.exs +++ b/apps/api_accounts/test/api_accounts/user_test.exs @@ -109,7 +109,7 @@ defmodule ApiAccounts.UserTest do result = User.register(%User{}, @register_params) assert result.changes.password != @register_params.password assert result.valid? - assert Bcrypt.check_pass(@register_params.password, result.changes.password) + assert Bcrypt.verify_pass(@register_params.password, result.changes.password) end end diff --git a/apps/api_web/.sobelow-skips b/apps/api_web/.sobelow-skips new file mode 100644 index 00000000..982dd80b --- /dev/null +++ b/apps/api_web/.sobelow-skips @@ -0,0 +1,3 @@ + +89AB244CFEA58A837123CC326E49CD13 +C925E5F931492531D9372392664AE12C \ No newline at end of file diff --git a/apps/api_web/config/test.exs b/apps/api_web/config/test.exs index e1ceb7c1..f788cc77 100644 --- a/apps/api_web/config/test.exs +++ b/apps/api_web/config/test.exs @@ -25,4 +25,4 @@ config :recaptcha, secret: "6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe" # Print only warnings and errors during test -config :logger, level: :warn +config :logger, level: :warning diff --git a/apps/api_web/lib/api_web/templates/client_portal/user/_new.html.heex b/apps/api_web/lib/api_web/templates/client_portal/user/_new.html.heex index 80d73f83..15014107 100644 --- a/apps/api_web/lib/api_web/templates/client_portal/user/_new.html.heex +++ b/apps/api_web/lib/api_web/templates/client_portal/user/_new.html.heex @@ -24,12 +24,16 @@ <.form_group form={f} field={:password_confirmation}> <%= label(f, :password_confirmation, class: "control-label") %> - <%= password_input(f, :password_confirmation, class: "form-control", autocomplete: "off") %> + <%= password_input(f, :password_confirmation, + class: "form-control", + autocomplete: "off" + ) %> <%= error_tag(f, :password_confirmation) %>
<%= if Application.get_env(:recaptcha, :enabled) do %> + <%= raw(Recaptcha.Template.display(callback: "recaptchaCompleted")) %> <% end %>
diff --git a/apps/api_web/mix.exs b/apps/api_web/mix.exs index dd893d50..832aa6e5 100644 --- a/apps/api_web/mix.exs +++ b/apps/api_web/mix.exs @@ -73,7 +73,6 @@ defmodule ApiWeb.Mixfile do {:api_accounts, in_umbrella: true}, {:memcachex, "~> 0.5"}, {:ehmon, github: "mbta/ehmon", branch: "master", only: :prod}, - {:benchwarmer, "~> 0.0", only: [:dev, :test]}, {:dialyxir, "~> 1.2", only: [:dev, :test], runtime: false}, {:logster, "~> 1.1"}, {:phoenix_swagger, "~> 0.8"}, diff --git a/apps/api_web/test/test_helper.exs b/apps/api_web/test/test_helper.exs index a689c8eb..28d8dae0 100644 --- a/apps/api_web/test/test_helper.exs +++ b/apps/api_web/test/test_helper.exs @@ -2,7 +2,7 @@ excludes = [:integration] # try to connect to memcache: if it fails, don't run those tests excludes = - case :gen_tcp.connect('localhost', 11_211, [:inet], 100) do + case :gen_tcp.connect(~c"localhost", 11_211, [:inet], 100) do {:ok, sock} -> :gen_tcp.close(sock) excludes diff --git a/apps/fetch/lib/fetch/worker.ex b/apps/fetch/lib/fetch/worker.ex index 06275f7a..4fde39e2 100644 --- a/apps/fetch/lib/fetch/worker.ex +++ b/apps/fetch/lib/fetch/worker.ex @@ -64,7 +64,7 @@ defmodule Fetch.Worker do def handle_info(message, state) do _ = - Logger.warn(fn -> + Logger.warning(fn -> # no cover "unexpected message to Fetch.Worker[#{state.url}]: #{inspect(message)}" end) @@ -200,7 +200,7 @@ defmodule Fetch.Worker do end defp logger_with_level_for_error({:error, %HTTPoison.Error{reason: :timeout}}), - do: &Logger.warn/1 + do: &Logger.warning/1 defp logger_with_level_for_error(_), do: &Logger.error/1 @@ -231,7 +231,7 @@ defmodule Fetch.Worker do :ok {:error, posix} -> - _ = Logger.warn("Error while writing #{cache_file}: #{inspect(posix)}") + _ = Logger.warning("Error while writing #{cache_file}: #{inspect(posix)}") :ok end end diff --git a/apps/health/test/health/checkers/run_queue_test.exs b/apps/health/test/health/checkers/run_queue_test.exs index e995d8ee..7c245692 100644 --- a/apps/health/test/health/checkers/run_queue_test.exs +++ b/apps/health/test/health/checkers/run_queue_test.exs @@ -13,7 +13,7 @@ defmodule Health.Checkers.RunQueueTest do end test "does nothing when the log level is high" do - assert log_processes(false, :warn) == :ignored + assert log_processes(false, :warning) == :ignored end end diff --git a/apps/parse/lib/parse/commuter_rail_occupancies.ex b/apps/parse/lib/parse/commuter_rail_occupancies.ex index a30a976b..973c06aa 100644 --- a/apps/parse/lib/parse/commuter_rail_occupancies.ex +++ b/apps/parse/lib/parse/commuter_rail_occupancies.ex @@ -14,7 +14,7 @@ defmodule Parse.CommuterRailOccupancies do Enum.flat_map(data, &parse_record/1) e -> - Logger.warn("#{__MODULE__} decode_error e=#{inspect(e)}") + Logger.warning("#{__MODULE__} decode_error e=#{inspect(e)}") [] end end @@ -38,13 +38,13 @@ defmodule Parse.CommuterRailOccupancies do ] else error -> - Logger.warn("#{__MODULE__} parse_error error=#{inspect(error)} #{inspect(record)}") + Logger.warning("#{__MODULE__} parse_error error=#{inspect(error)} #{inspect(record)}") [] end end defp parse_record(record) do - Logger.warn("#{__MODULE__} parse_error error=missing_fields #{inspect(record)}") + Logger.warning("#{__MODULE__} parse_error error=missing_fields #{inspect(record)}") [] end diff --git a/apps/state/bench/server.exs b/apps/state/bench/server.exs index b22a35ff..c0bb0266 100644 --- a/apps/state/bench/server.exs +++ b/apps/state/bench/server.exs @@ -15,7 +15,7 @@ defmodule State.ServerBench do Application.ensure_all_started(:mnesia) State.Schedule.start_link State.Schedule.new_state(@items) - Logger.configure(level: :warn) + Logger.configure(level: :warning) {:ok, :ignored} end diff --git a/apps/state/lib/logger.ex b/apps/state/lib/logger.ex index c6b35967..c43dddd2 100644 --- a/apps/state/lib/logger.ex +++ b/apps/state/lib/logger.ex @@ -12,7 +12,7 @@ defmodule State.Logger do @doc """ Measures time of `function` and logs """ - @spec debug_time(measured :: (() -> result), message :: (milliseconds :: float -> String.t())) :: + @spec debug_time(measured :: (-> result), message :: (milliseconds :: float -> String.t())) :: result when result: any def debug_time(measured, message) when is_function(measured, 0) and is_function(message, 1) do diff --git a/apps/state/lib/state/facility.ex b/apps/state/lib/state/facility.ex index 7132850c..f72dfdc8 100644 --- a/apps/state/lib/state/facility.ex +++ b/apps/state/lib/state/facility.ex @@ -16,7 +16,7 @@ defmodule State.Facility do optional(:types) => [String.t()] } - @type facility_search :: (() -> [Facility.t()]) + @type facility_search :: (-> [Facility.t()]) # If you change this list, be sure to also update the gtfs-documentation @facility_types ~w( diff --git a/apps/state/lib/state/stop.ex b/apps/state/lib/state/stop.ex index fe4bb92e..fdafb12c 100644 --- a/apps/state/lib/state/stop.ex +++ b/apps/state/lib/state/stop.ex @@ -25,7 +25,7 @@ defmodule State.Stop do optional(:route_types) => [Model.Route.route_type()] } - @type stop_search :: (() -> [Stop.t()]) + @type stop_search :: (-> [Stop.t()]) def start_link(_opts \\ []) do Supervisor.start_link(__MODULE__, nil, name: __MODULE__) diff --git a/apps/state/test/state/routes_by_service_test.exs b/apps/state/test/state/routes_by_service_test.exs index 350fa0c1..a46d5361 100644 --- a/apps/state/test/state/routes_by_service_test.exs +++ b/apps/state/test/state/routes_by_service_test.exs @@ -47,7 +47,7 @@ defmodule State.RoutesByServiceTest do update!() on_exit(fn -> - Logger.configure(level: :warn) + Logger.configure(level: :warning) end) end diff --git a/apps/state_mediator/lib/state_mediator/mediator.ex b/apps/state_mediator/lib/state_mediator/mediator.ex index f772065e..ecc9a94f 100644 --- a/apps/state_mediator/lib/state_mediator/mediator.ex +++ b/apps/state_mediator/lib/state_mediator/mediator.ex @@ -159,7 +159,7 @@ defmodule StateMediator.Mediator do end) end - defp logger_with_level_for_error(%HTTPoison.Error{reason: :timeout}), do: &Logger.warn/1 + defp logger_with_level_for_error(%HTTPoison.Error{reason: :timeout}), do: &Logger.warning/1 defp logger_with_level_for_error(_), do: &Logger.error/1 @spec expand_url(String.t() | {module(), atom(), [any()]}) :: String.t() diff --git a/apps/state_mediator/test/gtfs_decompress_test.exs b/apps/state_mediator/test/gtfs_decompress_test.exs index 58e98d77..4da72bd3 100644 --- a/apps/state_mediator/test/gtfs_decompress_test.exs +++ b/apps/state_mediator/test/gtfs_decompress_test.exs @@ -55,7 +55,7 @@ defmodule GtfsDecompressTest do {to_charlist(filename), body(filename)} end - {:ok, {_, body}} = :zip.create('GTFS.zip', file_list, [:memory]) + {:ok, {_, body}} = :zip.create(~c"GTFS.zip", file_list, [:memory]) body end diff --git a/apps/state_mediator/test/state_mediator/integration/gtfs_test.exs b/apps/state_mediator/test/state_mediator/integration/gtfs_test.exs index 3c42cdeb..01cae14b 100644 --- a/apps/state_mediator/test/state_mediator/integration/gtfs_test.exs +++ b/apps/state_mediator/test/state_mediator/integration/gtfs_test.exs @@ -31,7 +31,7 @@ defmodule StateMediator.Integration.GtfsTest do receive_items(State.RoutesPatternsAtStop) receive_items(State.Shape) receive_items(State.StopsOnRoute) - Logger.configure(level: :warn) + Logger.configure(level: :warning) end defp maybe_start_lasso!(nil) do diff --git a/apps/state_mediator/test/state_mediator_test.exs b/apps/state_mediator/test/state_mediator_test.exs index 6b86b67f..1acb48aa 100644 --- a/apps/state_mediator/test/state_mediator_test.exs +++ b/apps/state_mediator/test/state_mediator_test.exs @@ -8,7 +8,7 @@ defmodule StateMediatorTest do test "returns environment value when set set" do expected = "config_b" - :os.putenv('FAKE_VAR_B', String.to_charlist(expected)) + :os.putenv(~c"FAKE_VAR_B", String.to_charlist(expected)) assert StateMediator.source_url(State.FakeModuleB) == expected end diff --git a/mix.lock b/mix.lock index da8e6e43..7b1b4d62 100644 --- a/mix.lock +++ b/mix.lock @@ -5,10 +5,9 @@ "bandit": {:hex, :bandit, "1.2.2", "569fe5d0efb107c9af37a1e37e25ce2ceec293101a2d4bc512876fc3207192b5", [:mix], [{:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "2f89adb7281c78d4e75733e0a9e1b24f46f84d2993963d6fa57d0eafadec5f03"}, "bcrypt_elixir": {:hex, :bcrypt_elixir, "3.1.0", "0b110a9a6c619b19a7f73fa3004aa11d6e719a67e672d1633dc36b6b2290a0f7", [:make, :mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "2ad2acb5a8bc049e8d5aa267802631912bb80d5f4110a178ae7999e69dca1bf7"}, "benchfella": {:hex, :benchfella, "0.3.5", "b2122c234117b3f91ed7b43b6e915e19e1ab216971154acd0a80ce0e9b8c05f5", [:mix], [], "hexpm", "23f27cbc482cbac03fc8926441eb60a5e111759c17642bac005c3225f5eb809d"}, - "benchwarmer": {:hex, :benchwarmer, "0.0.2", "902e5c020608647b07c38b82103e4af6d2667dfd5d5d13c67382238de6943136", [:mix], [], "hexpm", "8b98b39c1c50df624f9c2d13ca953eeed465eed6feda975da26b479df2b4c9f5"}, "bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"}, "castore": {:hex, :castore, "0.1.22", "4127549e411bedd012ca3a308dede574f43819fe9394254ca55ab4895abfa1a2", [:mix], [], "hexpm", "c17576df47eb5aa1ee40cc4134316a99f5cad3e215d5c77b8dd3cfef12a22cac"}, - "certifi": {:hex, :certifi, "2.9.0", "6f2a475689dd47f19fb74334859d460a2dc4e3252a3324bd2111b8f0429e7e21", [:rebar3], [], "hexpm", "266da46bdb06d6c6d35fde799bcb28d36d985d424ad7c08b5bb48f5b5cdd4641"}, + "certifi": {:hex, :certifi, "2.12.0", "2d1cca2ec95f59643862af91f001478c9863c2ac9cb6e2f89780bfd8de987329", [:rebar3], [], "hexpm", "ee68d85df22e554040cdb4be100f33873ac6051387baf6a8f6ce82272340ff1c"}, "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm", "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"}, "comeonin": {:hex, :comeonin, "5.4.0", "246a56ca3f41d404380fc6465650ddaa532c7f98be4bda1b4656b3a37cc13abe", [:mix], [], "hexpm", "796393a9e50d01999d56b7b8420ab0481a7538d0caf80919da493b4a6e51faf1"}, "connection": {:hex, :connection, "1.1.0", "ff2a49c4b75b6fb3e674bfc5536451607270aac754ffd1bdfe175abe4a6d7a68", [:mix], [], "hexpm", "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"}, @@ -38,7 +37,7 @@ "gettext": {:hex, :gettext, "0.22.0", "a25d71ec21b1848957d9207b81fd61cb25161688d282d58bdafef74c2270bdc4", [:mix], [{:expo, "~> 0.3.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "cb0675141576f73720c8e49b4f0fd3f2c69f0cd8c218202724d4aebab8c70ace"}, "goth": {:hex, :goth, "1.3.1", "f3e08a7f23ea8992ab92d2e1d5c72ea1a8fbd2fe3a46ad1b08d0620f71374fdc", [:mix], [{:finch, "~> 0.9", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:jose, "~> 1.10", [hex: :jose, repo: "hexpm", optional: false]}], "hexpm", "90326c2c0a7acda7fb75fc4a4f0cba84945d8fcb22694d36c9967cec8949937c"}, "gpb": {:hex, :gpb, "4.19.7", "a0da133db34a62796cbffba8ae8210cc266a0e6303a79c5d92ceadc9bccc9cd0", [:make, :rebar3], [], "hexpm", "82d6a10474551b2c6d057082e05e2d7dfcfc1d22362f4bd5e9077456268d0578"}, - "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~> 2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, + "hackney": {:hex, :hackney, "1.20.1", "8d97aec62ddddd757d128bfd1df6c5861093419f8f7a4223823537bad5d064e2", [:rebar3], [{:certifi, "~> 2.12.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "fe9094e5f1a2a2c0a7d10918fee36bfec0ec2a979994cff8cfe8058cd9af38e3"}, "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"}, "httpoison": {:hex, :httpoison, "2.0.0", "d38b091f5e481e45cc700aba8121ce49b66d348122a097c9fbc2dc6876d88090", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "f1253bf455be73a4c3f6ae3407e7e3cf6fc91934093e056d737a0566126e2930"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, @@ -48,7 +47,7 @@ "jose": {:hex, :jose, "1.11.9", "c861eb99d9e9f62acd071dc5a49ffbeab9014e44490cd85ea3e49e3d36184777", [:mix, :rebar3], [], "hexpm", "b5ccc3749d2e1638c26bed806259df5bc9e438797fe60dc71e9fa0716133899b"}, "lasso": {:hex, :lasso, "0.1.1-pre", "bd3e561a861ede09e5531b4b82f021f3ceb94545c05806a073432898b0f65418", [:mix], [{:bandit, "~> 1.0-pre", [hex: :bandit, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0-pre", [hex: :thousand_island, repo: "hexpm", optional: false]}], "hexpm", "85eaeceeb0821d7cea1a1df307e2ca45d40e1273ae6ab2bbf45e53c0be26cf2f"}, "lcov_ex": {:hex, :lcov_ex, "0.3.1", "5356fdd78fc52cb0fedb7070ed477bb7fb78db062216b15993592c6f5ab66b0d", [:mix], [], "hexpm", "9ae50bbd519cd196428251b703e27160f7ce3568ff793bbd81a66d73a0867b05"}, - "logster": {:hex, :logster, "1.1.0", "e4a11299473ea500adf534366ba53a4d8fbf64709e0e6e49fb16c85b1b23d91e", [:mix], [{:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "875ea901c44d36b82d6f11ff344513faaa92fdf1aa212265e46296e9c78e2da3"}, + "logster": {:hex, :logster, "1.1.1", "d6fddac540dd46adde0c894024500867fe63b0043713f842c62da5815e21db10", [:mix], [{:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "d18e852c430812ad1c9756998ebe46ec814c724e6eb551a512d7e3f8dee24cef"}, "mail": {:hex, :mail, "0.2.3", "2c6bb5f8a5f74845fa50ecd0fb45ea16b164026f285f45104f1c4c078cd616d4", [:mix], [], "hexpm", "932b398fa9c69fdf290d7ff63175826e0f1e24414d5b0763bb00a2acfc6c6bf5"}, "makeup": {:hex, :makeup, "1.1.1", "fa0bc768698053b2b3869fa8a62616501ff9d11a562f3ce39580d60860c3a55e", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "5dc62fbdd0de44de194898b6710692490be74baa02d9d108bc29f007783b0b48"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"}, @@ -57,7 +56,7 @@ "memcachex": {:hex, :memcachex, "0.5.5", "8013536baa9d1a14719d21ca69b032449027bfb26e6a52bc2375f9bd43bcf81d", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:poison, "~> 2.1 or ~> 3.0 or ~> 4.0", [hex: :poison, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "0a398bbd49a6e722a39a9c0f143c01a7bf19dc359939e0b0dc6e144022aa21d9"}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, "mime": {:hex, :mime, "1.6.0", "dabde576a497cef4bbdd60aceee8160e02a6c89250d6c0b29e56c0dfb00db3d2", [:mix], [], "hexpm", "31a1a8613f8321143dde1dafc36006a17d28d02bdfecb9e95a880fa7aabd19a7"}, - "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, + "mimerl": {:hex, :mimerl, "1.3.0", "d0cd9fc04b9061f82490f6581e0128379830e78535e017f7780f37fea7545726", [:rebar3], [], "hexpm", "a1e15a50d1887217de95f0b9b0793e32853f7c258a5cd227650889b38839fe9d"}, "mint": {:hex, :mint, "1.4.2", "50330223429a6e1260b2ca5415f69b0ab086141bc76dc2fbf34d7c389a6675b2", [:mix], [{:castore, "~> 0.1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "ce75a5bbcc59b4d7d8d70f8b2fc284b1751ffb35c7b6a6302b5192f8ab4ddd80"}, "mix_audit": {:hex, :mix_audit, "2.1.0", "3c0dafb29114dffcdb508164a3d35311a9ac2c5baeba6495c9cd5315c25902b9", [:make, :mix], [{:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:yaml_elixir, "~> 2.9", [hex: :yaml_elixir, repo: "hexpm", optional: false]}], "hexpm", "14c57a23e0a5f652c1e7f6e8dab93f166f66d63bd0c85f97278f5972b14e2be0"}, "mox": {:hex, :mox, "1.0.2", "dc2057289ac478b35760ba74165b4b3f402f68803dd5aecd3bfd19c183815d64", [:mix], [], "hexpm", "f9864921b3aaf763c8741b5b8e6f908f44566f1e427b2630e89e9a73b981fef2"}, @@ -66,7 +65,7 @@ "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, "nimble_pool": {:hex, :nimble_pool, "0.2.6", "91f2f4c357da4c4a0a548286c84a3a28004f68f05609b4534526871a22053cde", [:mix], [], "hexpm", "1c715055095d3f2705c4e236c18b618420a35490da94149ff8b580a2144f653f"}, "nimble_totp": {:hex, :nimble_totp, "1.0.0", "79753bae6ce59fd7cacdb21501a1dbac249e53a51c4cd22b34fa8438ee067283", [:mix], [], "hexpm", "6ce5e4c068feecdb782e85b18237f86f66541523e6bad123e02ee1adbe48eda9"}, - "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, + "parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"}, "phoenix": {:hex, :phoenix, "1.7.11", "1d88fc6b05ab0c735b250932c4e6e33bfa1c186f76dcf623d8dd52f07d6379c7", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "b1ec57f2e40316b306708fe59b92a16b9f6f4bf50ccfa41aa8c7feb79e0ec02a"}, "phoenix_html": {:hex, :phoenix_html, "3.3.3", "380b8fb45912b5638d2f1d925a3771b4516b9a78587249cabe394e0a5d579dc9", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "923ebe6fec6e2e3b3e569dfbdc6560de932cd54b000ada0208b5f45024bdd76c"}, "phoenix_live_view": {:hex, :phoenix_live_view, "0.20.7", "278804219cc85e00f59a02a07b8ea591d99b219877a3b984fb77ac3fdebfb696", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4d533f5d6b09c6ff4fb1f41d61dcd90c7f076f25909d4a5481d71bd442b83dc9"}, @@ -74,8 +73,8 @@ "phoenix_swagger": {:hex, :phoenix_swagger, "0.8.2", "cc49d9641d7e7c87766ba800110ff67d2fb55379f83982ee33d85d1e0b39d100", [:mix], [{:ex_json_schema, "~> 0.6", [hex: :ex_json_schema, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}], "hexpm", "e6d177764d75d388b199a863c5f7502ac8c202cd3fca61220807cbdcb31efef2"}, "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, "phoenix_view": {:hex, :phoenix_view, "2.0.3", "4d32c4817fce933693741deeb99ef1392619f942633dde834a5163124813aad3", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}], "hexpm", "cd34049af41be2c627df99cd4eaa71fc52a328c0c3d8e7d4aa28f880c30e7f64"}, - "plug": {:hex, :plug, "1.15.3", "712976f504418f6dff0a3e554c40d705a9bcf89a7ccef92fc6a5ef8f16a30a97", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cc4365a3c010a56af402e0809208873d113e9c38c401cabd88027ef4f5c01fd2"}, - "plug_crypto": {:hex, :plug_crypto, "2.0.0", "77515cc10af06645abbfb5e6ad7a3e9714f805ae118fa1a70205f80d2d70fe73", [:mix], [], "hexpm", "53695bae57cc4e54566d993eb01074e4d894b65a3766f1c43e2c61a1b0f45ea9"}, + "plug": {:hex, :plug, "1.16.0", "1d07d50cb9bb05097fdf187b31cf087c7297aafc3fed8299aac79c128a707e47", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cbf53aa1f5c4d758a7559c0bd6d59e286c2be0c6a1fac8cc3eee2f638243b93e"}, + "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, "pngex": {:hex, :pngex, "0.1.2", "824c2da291fda236397729f236b29f87b98a434d58124ea9f7fa03d3b3cf8587", [:mix], [], "hexpm", "9f9f2d9aa286d03f6c317017a09e1b548fa0aa6b901291e24dbf65d8212b22b0"}, "poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm", "fec8660eb7733ee4117b85f55799fd3833eb769a6df71ccf8903e8dc5447cfce"}, "polyline": {:hex, :polyline, "1.3.0", "58b9c268b100486df504b8af9b0d341107f733227a8f8095ed457d14d721d614", [:mix], [{:vector, "~> 1.0", [hex: :vector, repo: "hexpm", optional: false]}], "hexpm", "ab37fc3ab073c32fcd3f7c5711c2c20328b750ee27a4f4fab73541afc7242f8b"}, @@ -84,9 +83,9 @@ "recaptcha": {:git, "https://github.com/samueljseay/recaptcha.git", "71cd746be987f6834c1a933f5d2f934350e55060", [tag: "71cd746"]}, "result": {:hex, :result, "1.7.2", "a57c569f7cf5c158d2299d3b5624a48b69bd1520d0771dc711bcf9f3916e8ab6", [:mix], [], "hexpm", "89f98e98cfbf64237ecf4913aa36b76b80463e087775d19953dc4b435a35f087"}, "rstar": {:git, "https://github.com/armon/erl-rstar.git", "a406b2cce609029bf65b9ccfbe93a0416c0ee0cd", []}, - "sentry": {:hex, :sentry, "8.0.6", "c8de1bf0523bc120ec37d596c55260901029ecb0994e7075b0973328779ceef7", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.6", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, "~> 2.3", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm", "051a2d0472162f3137787c7c9d6e6e4ef239de9329c8c45b1f1bf1e9379e1883"}, - "sobelow": {:hex, :sobelow, "0.11.1", "23438964486f8112b41e743bbfd402da3e5b296fdc9eacab29914b79c48916dd", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "9897363a7eff96f4809304a90aad819e2ad5e5d24db547af502885146746a53c"}, - "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"}, + "sentry": {:hex, :sentry, "8.1.0", "8d235b62fce5f8e067ea1644e30939405b71a5e1599d9529ff82899d11d03f2b", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.6", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, "~> 2.3", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm", "f9fc7641ef61e885510f5e5963c2948b9de1de597c63f781e9d3d6c9c8681ab4"}, + "sobelow": {:hex, :sobelow, "0.13.0", "218afe9075904793f5c64b8837cc356e493d88fddde126a463839351870b8d1e", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "cd6e9026b85fc35d7529da14f95e85a078d9dd1907a9097b3ba6ac7ebbe34a0d"}, + "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"}, "stream_data": {:hex, :stream_data, "0.5.0", "b27641e58941685c75b353577dc602c9d2c12292dd84babf506c2033cd97893e", [:mix], [], "hexpm", "012bd2eec069ada4db3411f9115ccafa38540a3c78c4c0349f151fc761b9e271"}, "sweet_xml": {:hex, :sweet_xml, "0.7.3", "debb256781c75ff6a8c5cbf7981146312b66f044a2898f453709a53e5031b45b", [:mix], [], "hexpm", "e110c867a1b3fe74bfc7dd9893aa851f0eed5518d0d7cad76d7baafd30e4f5ba"}, "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"},