class

OutputBuilderCommon

Inherits OutputBuilder < Reference < Object

Constants

HANDLED_PARAM_TYPES = Set {"header", "cookie", "query", "path", "extra", "flag", "argument", "env", "form", "json"}

Parameter kinds already covered by the dedicated render sections above (trees, named lists, query params baked into URL, or body payloads).

MOBILE_METADATA_KEYS = ["via", "query", "action", "category", "host", "package", "component_type", "exported", "explicit", "permission", "read_permission", "write_permission", "grant_uri_permissions", "path_permissions", "extras"]

Fixed order so plain output is deterministic. The protocol drives the prefix and "path" comes from path params, so neither is repeated here. component_type/exported/explicit appear on explicit-intent (filter-less exported) and provider surfaces; the *_permission / grant_uri_permissions / path_permissions keys only on providers. Absent keys are skipped per endpoint.

MOBILE_PROTOCOL_LABELS = {"mobile-scheme" => "SCHEME", "android-intent" => "INTENT", "universal-link" => "UNIVERSAL", "android-provider" => "PROVIDER"}

Mobile entry points keep method = "GET" internally; the protocol carries the real semantics and drives the display prefix.

PARAM_NAME_FIELDS = [{"extra", "extras"}, {"flag", "flags"}, {"argument", "arguments"}, {"env", "env"}]

Parameter kinds drawn as one cyan comma-joined line of names, in emission order: {param_type, label}.

PARAM_TREE_FIELDS = [{"header", "headers", ": "}, {"cookie", "cookies", "="}]

Parameter kinds drawn as an indented tree under a ○ <label>: header, in emission order: {param_type, label, name/value separator}. Both are green and both mark params the analyzer could not resolve; the separator follows the wire syntax of the thing being printed (Name: value for a header, name=value for a cookie).

SILENT_PROTOCOLS = (Endpoint::MOBILE_PROTOCOLS | Endpoint::CLI_PROTOCOLS) | Set {"http"}

Protocols the rest of the line already tells the reader about, so a badge would only repeat it: http is the default and says nothing, the mobile protocols drive the SCHEME/INTENT/UNIVERSAL/PROVIDER prefix, and cli is spelled out by the cli:// URL.

Instance methods