defmodule NPM.ImportMap do @moduledoc """ Generates and manages import maps for browser-native ES module loading. Import maps allow mapping bare module specifiers to URLs for use with `) end @doc """ Merges two import maps (second overrides first). """ @spec merge(map(), map()) :: map() def merge(base, override) do %{"imports" => Map.merge(base["imports"] || %{}, override["imports"] || %{})} end @doc """ Counts the number of mappings. """ @spec count(map()) :: non_neg_integer() def count(%{"imports" => imports}), do: map_size(imports) def count(_), do: 0 defp extract_version(%{version: v}), do: v defp extract_version(%{"version" => v}), do: v defp extract_version(_), do: "latest" end