diff --git a/lib/mix_dependency_submission/cli/submit.ex b/lib/mix_dependency_submission/cli/submit.ex index d0b6be5..34c5265 100644 --- a/lib/mix_dependency_submission/cli/submit.ex +++ b/lib/mix_dependency_submission/cli/submit.ex @@ -78,7 +78,7 @@ defmodule MixDependencySubmission.CLI.Submit do ignore: ignore ) - Logger.info("Calculated Submission: #{Jason.encode!(submission, pretty: true)}") + Logger.info("Calculated Submission: #{JSON.encode!(submission, pretty: true)}") submission |> ApiClient.submit(github_api_url, github_repository, github_token) diff --git a/lib/mix_dependency_submission/submission.ex b/lib/mix_dependency_submission/submission.ex index fbf4f99..1821cba 100644 --- a/lib/mix_dependency_submission/submission.ex +++ b/lib/mix_dependency_submission/submission.ex @@ -21,7 +21,7 @@ defmodule MixDependencySubmission.Submission do manifests: manifests() | nil } - @derive Jason.Encoder + @derive JSON.Encoder @enforce_keys [:version, :job, :sha, :ref, :detector, :scanned] defstruct [:version, :job, :sha, :ref, :detector, :scanned, metadata: nil, manifests: nil] diff --git a/lib/mix_dependency_submission/submission/detector.ex b/lib/mix_dependency_submission/submission/detector.ex index fc1e747..f2b5188 100644 --- a/lib/mix_dependency_submission/submission/detector.ex +++ b/lib/mix_dependency_submission/submission/detector.ex @@ -14,14 +14,14 @@ defmodule MixDependencySubmission.Submission.Detector do @enforce_keys [:name, :version, :url] defstruct [:name, :version, :url] - defimpl Jason.Encoder do - @impl Jason.Encoder - def encode(value, opts) do + defimpl JSON.Encoder do + @impl JSON.Encoder + def encode(value, encoder) do value |> Map.from_struct() |> Map.update!(:version, &Version.to_string/1) |> Map.update!(:url, &URI.to_string/1) - |> Jason.Encode.map(opts) + |> encoder.(encoder) end end end diff --git a/lib/mix_dependency_submission/submission/job.ex b/lib/mix_dependency_submission/submission/job.ex index fcd8df7..6592161 100644 --- a/lib/mix_dependency_submission/submission/job.ex +++ b/lib/mix_dependency_submission/submission/job.ex @@ -14,15 +14,15 @@ defmodule MixDependencySubmission.Submission.Job do @enforce_keys [:id, :correlator] defstruct [:id, :correlator, html_url: nil] - defimpl Jason.Encoder do - @impl Jason.Encoder - def encode(value, opts) do + defimpl JSON.Encoder do + @impl JSON.Encoder + def encode(value, encoder) do value |> Map.from_struct() |> Map.update!(:html_url, &uri_to_string/1) |> Enum.reject(&match?({_key, nil}, &1)) |> Map.new() - |> Jason.Encode.map(opts) + |> encoder.(encoder) end @spec uri_to_string(uri :: URI.t()) :: String.t() diff --git a/lib/mix_dependency_submission/submission/manifest.ex b/lib/mix_dependency_submission/submission/manifest.ex index 709df64..89a8a09 100644 --- a/lib/mix_dependency_submission/submission/manifest.ex +++ b/lib/mix_dependency_submission/submission/manifest.ex @@ -18,14 +18,14 @@ defmodule MixDependencySubmission.Submission.Manifest do @enforce_keys [:name] defstruct [:name, file: nil, metadata: nil, resolved: nil] - defimpl Jason.Encoder do - @impl Jason.Encoder - def encode(value, opts) do + defimpl JSON.Encoder do + @impl JSON.Encoder + def encode(value, encoder) do value |> Map.from_struct() |> Enum.reject(&match?({_key, nil}, &1)) |> Map.new() - |> Jason.Encode.map(opts) + |> encoder.(encoder) end end end diff --git a/lib/mix_dependency_submission/submission/manifest/dependency.ex b/lib/mix_dependency_submission/submission/manifest/dependency.ex index cadbc05..79c0b3d 100644 --- a/lib/mix_dependency_submission/submission/manifest/dependency.ex +++ b/lib/mix_dependency_submission/submission/manifest/dependency.ex @@ -22,9 +22,9 @@ defmodule MixDependencySubmission.Submission.Manifest.Dependency do @enforce_keys [] defstruct package_url: nil, metadata: nil, relationship: nil, scope: nil, dependencies: nil - defimpl Jason.Encoder do - @impl Jason.Encoder - def encode(value, opts) do + defimpl JSON.Encoder do + @impl JSON.Encoder + def encode(value, encoder) do value |> Map.from_struct() |> update_in([:package_url], &purl_to_string/1) @@ -32,7 +32,7 @@ defmodule MixDependencySubmission.Submission.Manifest.Dependency do |> update_in([:dependencies, Access.all()], &purl_to_string/1) |> Enum.reject(fn {_key, value} -> value in [nil, []] end) |> Map.new() - |> Jason.Encode.map(opts) + |> encoder.(encoder) end @spec purl_to_string(purl :: Purl.t()) :: String.t() diff --git a/lib/mix_dependency_submission/submission/manifest/file.ex b/lib/mix_dependency_submission/submission/manifest/file.ex index 781392f..bb8361b 100644 --- a/lib/mix_dependency_submission/submission/manifest/file.ex +++ b/lib/mix_dependency_submission/submission/manifest/file.ex @@ -12,14 +12,14 @@ defmodule MixDependencySubmission.Submission.Manifest.File do @enforce_keys [] defstruct source_location: nil - defimpl Jason.Encoder do - @impl Jason.Encoder - def encode(value, opts) do + defimpl JSON.Encoder do + @impl JSON.Encoder + def encode(value, encoder) do value |> Map.from_struct() |> Enum.reject(&match?({_key, nil}, &1)) |> Map.new() - |> Jason.Encode.map(opts) + |> encoder.(encoder) end end end diff --git a/mix.exs b/mix.exs index 1c3e381..0dc4732 100644 --- a/mix.exs +++ b/mix.exs @@ -81,7 +81,6 @@ defmodule MixDependencySubmission.MixProject do {:ex_doc, ">= 0.0.0", only: [:dev], runtime: false}, {:excoveralls, "~> 0.5", only: [:test], runtime: false}, {:hex, github: "hexpm/hex", tag: "v2.1.1", runtime: false}, - {:jason, "~> 1.4"}, {:optimus, "~> 0.2"}, {:plug, "~> 1.0", only: [:test]}, {:purl, "~> 0.2.0"}, diff --git a/test/mix_dependency_submission/submission/detector_test.exs b/test/mix_dependency_submission/submission/detector_test.exs index 3fb7f13..ba22efc 100644 --- a/test/mix_dependency_submission/submission/detector_test.exs +++ b/test/mix_dependency_submission/submission/detector_test.exs @@ -5,7 +5,7 @@ defmodule MixDependencySubmission.Submission.DetectorTest do doctest Detector - describe "Jason.Encoder" do + describe "JSON.Encoder" do test "encodes filled struct" do detector = %Detector{ name: "test", @@ -14,7 +14,7 @@ defmodule MixDependencySubmission.Submission.DetectorTest do } assert %{"name" => "test", "url" => "http://example.com", "version" => "1.0.0"} = - detector |> Jason.encode!() |> Jason.decode!() + detector |> JSON.encode!() |> JSON.decode!() end end end diff --git a/test/mix_dependency_submission/submission/job_test.exs b/test/mix_dependency_submission/submission/job_test.exs index 49df9c7..6d1b8b3 100644 --- a/test/mix_dependency_submission/submission/job_test.exs +++ b/test/mix_dependency_submission/submission/job_test.exs @@ -5,7 +5,7 @@ defmodule MixDependencySubmission.Submission.JobTest do doctest Job - describe "Jason.Encoder" do + describe "JSON.Encoder" do test "encodes filled struct" do job = %Job{ id: "test", @@ -14,7 +14,7 @@ defmodule MixDependencySubmission.Submission.JobTest do } assert %{"correlator" => "test", "html_url" => "http://example.com", "id" => "test"} = - job |> Jason.encode!() |> Jason.decode!() + job |> JSON.encode!() |> JSON.decode!() end test "encodes partial struct" do @@ -24,7 +24,7 @@ defmodule MixDependencySubmission.Submission.JobTest do } assert %{"correlator" => "test", "id" => "test"} = - job |> Jason.encode!() |> Jason.decode!() + job |> JSON.encode!() |> JSON.decode!() end end end diff --git a/test/mix_dependency_submission/submission/manifest/dependency_test.exs b/test/mix_dependency_submission/submission/manifest/dependency_test.exs index e834196..478ea49 100644 --- a/test/mix_dependency_submission/submission/manifest/dependency_test.exs +++ b/test/mix_dependency_submission/submission/manifest/dependency_test.exs @@ -5,7 +5,7 @@ defmodule MixDependencySubmission.Submission.Manifest.DependencyTest do doctest Dependency - describe "Jason.Encoder" do + describe "JSON.Encoder" do test "encodes filled struct" do dependency = %Dependency{ package_url: %Purl{type: "hex", name: "gettext"}, @@ -23,13 +23,13 @@ defmodule MixDependencySubmission.Submission.Manifest.DependencyTest do "package_url" => "pkg:hex/gettext", "relationship" => "direct", "scope" => "runtime" - } = dependency |> Jason.encode!() |> Jason.decode!() + } = dependency |> JSON.encode!() |> JSON.decode!() end test "encodes empty struct" do dependency = %Dependency{} - assert %{} == dependency |> Jason.encode!() |> Jason.decode!() + assert %{} == dependency |> JSON.encode!() |> JSON.decode!() end end end diff --git a/test/mix_dependency_submission/submission/manifest/file_test.exs b/test/mix_dependency_submission/submission/manifest/file_test.exs index e65348f..83f1a5e 100644 --- a/test/mix_dependency_submission/submission/manifest/file_test.exs +++ b/test/mix_dependency_submission/submission/manifest/file_test.exs @@ -5,19 +5,19 @@ defmodule MixDependencySubmission.Submission.Manifest.FileTest do doctest File - describe "Jason.Encoder" do + describe "JSON.Encoder" do test "encodes filled struct" do file = %File{ source_location: "mix.exs" } - assert %{"source_location" => "mix.exs"} = file |> Jason.encode!() |> Jason.decode!() + assert %{"source_location" => "mix.exs"} = file |> JSON.encode!() |> JSON.decode!() end test "encodes empty struct" do file = %File{} - assert %{} == file |> Jason.encode!() |> Jason.decode!() + assert %{} == file |> JSON.encode!() |> JSON.decode!() end end end diff --git a/test/mix_dependency_submission/submission/manifest_test.exs b/test/mix_dependency_submission/submission/manifest_test.exs index 8e091fe..240b75e 100644 --- a/test/mix_dependency_submission/submission/manifest_test.exs +++ b/test/mix_dependency_submission/submission/manifest_test.exs @@ -6,7 +6,7 @@ defmodule MixDependencySubmission.Submission.ManifestTest do doctest Manifest - describe "Jason.Encoder" do + describe "JSON.Encoder" do test "encodes filled struct" do manifest = %Manifest{ name: "test", @@ -21,7 +21,7 @@ defmodule MixDependencySubmission.Submission.ManifestTest do "name" => "test", "resolved" => %{} } = - manifest |> Jason.encode!() |> Jason.decode!() + manifest |> JSON.encode!() |> JSON.decode!() end test "encodes partial struct" do @@ -29,7 +29,7 @@ defmodule MixDependencySubmission.Submission.ManifestTest do name: "test" } - assert %{"name" => "test"} = manifest |> Jason.encode!() |> Jason.decode!() + assert %{"name" => "test"} = manifest |> JSON.encode!() |> JSON.decode!() end end end diff --git a/test/mix_dependency_submission/submission_test.exs b/test/mix_dependency_submission/submission_test.exs index fe6ad23..519f082 100644 --- a/test/mix_dependency_submission/submission_test.exs +++ b/test/mix_dependency_submission/submission_test.exs @@ -5,7 +5,7 @@ defmodule MixDependencySubmission.SubmissionTest do doctest Submission - describe "Jason.Encoder" do + describe "JSON.Encoder" do test "encodes filled struct" do datetime = DateTime.utc_now() @@ -40,7 +40,7 @@ defmodule MixDependencySubmission.SubmissionTest do "sha" => "sha", "version" => 0 } = - submission |> Jason.encode!() |> Jason.decode!() + submission |> JSON.encode!() |> JSON.decode!() end end end