-module(go_over@packages). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([read_manifest/1]). -export_type([package/0]). -type package() :: {package, binary(), gleamsver:sem_ver(), binary(), boolean()}. -spec read_manifest(binary()) -> list(package()). read_manifest(Path) -> _assert_subject = simplifile:read(Path), {ok, Res} = case _assert_subject of {ok, _} -> _assert_subject; _assert_fail -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 13}) end, _assert_subject@1 = tom:parse(Res), {ok, Manifest} = case _assert_subject@1 of {ok, _} -> _assert_subject@1; _assert_fail@1 -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail@1, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 14}) end, _assert_subject@2 = tom:get_array(Manifest, [<<"packages"/utf8>>]), {ok, Packages} = case _assert_subject@2 of {ok, _} -> _assert_subject@2; _assert_fail@2 -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail@2, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 15}) end, _assert_subject@3 = tom:get_table(Manifest, [<<"requirements"/utf8>>]), {ok, Requirements} = case _assert_subject@3 of {ok, _} -> _assert_subject@3; _assert_fail@3 -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail@3, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 16}) end, Required_packages = gleam@dict:keys(Requirements), _pipe = gleam@list:map(Packages, fun(P) -> case P of {inline_table, X} -> _assert_subject@4 = tom:get_string(X, [<<"name"/utf8>>]), {ok, Name} = case _assert_subject@4 of {ok, _} -> _assert_subject@4; _assert_fail@4 -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail@4, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 22}) end, _assert_subject@5 = tom:get_string(X, [<<"version"/utf8>>]), {ok, Ver} = case _assert_subject@5 of {ok, _} -> _assert_subject@5; _assert_fail@5 -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail@5, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 23}) end, _assert_subject@6 = gleamsver:parse(Ver), {ok, Semver} = case _assert_subject@6 of {ok, _} -> _assert_subject@6; _assert_fail@6 -> erlang:error(#{gleam_error => let_assert, message => <<"Assertion pattern match failed"/utf8>>, value => _assert_fail@6, module => <<"go_over/packages"/utf8>>, function => <<"read_manifest"/utf8>>, line => 24}) end, {some, {package, Name, Semver, Ver, gleam@list:contains(Required_packages, Name)}}; _ -> none end end), gleam@option:values(_pipe).