Modules
Slack Web API client for Elixir.
Token introspection (auth.test).
Block Kit builders and limit validation. Builders return plain maps (atom keys)
ready for Noizu.Slack.Chat.post_message/4's :blocks.
Messaging (chat.*).
Explicit connection configuration, passed as the first argument to every Web API call.
Channels, DMs and threads (conversations.*).
Structured error returned by every failing Noizu.Slack call as
{:error, %Noizu.Slack.Error{}} — never raised in the normal flow.
File uploads via Slack's external upload flow (the legacy files.upload method is
retired)
GitHub-flavoured Markdown → Slack mrkdwn. Deterministic, line-based, no deps.
Lazy cursor walker behind every *_stream helper.
Pinned items (pins.*).
Emoji reactions (reactions.*). name is the emoji name without colons.
Web API request engine: builds the Req call, performs it with the bounded retry
policy, and decodes Slack's {"ok": ...} envelope.
Search (search.*). Slack requires a user token (xoxp-, search:read) here;
pass token: user_token in opts to override the client's bot token per call.
Paging is page-number based (count:, page:), not cursor based.
Verifies Slack request signatures (Events API, slash commands, interactivity).
Workspace users (users.*). Slack params go in opts.
Incoming webhooks — no client or token; the URL is the credential (treat it as a secret: never log it).