-module(version_bump@registry).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/version_bump/registry.gleam").
-export([default/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" The built-in plugin registry.\n"
"\n"
" Maps each built-in plugin's spec name to its `Plugin` record. The engine\n"
" resolves a configured `PluginSpec.name` against this registry to obtain the\n"
" hook implementations to run; an unknown name is a configuration error.\n"
"\n"
" The registry is intentionally a plain `Dict` so it stays a pure value with\n"
" no IO. Names mirror the semantic-release package short-names (the `@…/`\n"
" scope is dropped, matching how they are written in config).\n"
).
-file("src/version_bump/registry.gleam", 22).
?DOC(" The default registry of built-in plugins, keyed by spec name.\n").
-spec default() -> gleam@dict:dict(binary(), version_bump@plugin:plugin()).
default() ->
_pipe = [{<<"commit-analyzer"/utf8>>,
version_bump@plugins@commit_analyzer:plugin()},
{<<"release-notes-generator"/utf8>>,
version_bump@plugins@release_notes:plugin()},
{<<"npm"/utf8>>, version_bump@plugins@npm:plugin()},
{<<"hex"/utf8>>, version_bump@plugins@hex:plugin()},
{<<"git"/utf8>>, version_bump@plugins@git:plugin()},
{<<"github"/utf8>>, version_bump@plugins@github:plugin()},
{<<"exec"/utf8>>, version_bump@plugins@exec:plugin()}],
maps:from_list(_pipe).