resolveCredentials

Resolves the single credential source a component was constructed with.

A blank apiKey is treated as absent rather than as a conflict, because Portal's apiKey parameter defaults to "" so that Portal(credentials = …) is legal. Whitespace is absent for the same reason it is unusable: it can only ever be sent as a malformed bearer.

Throws

when both sources are supplied. This is a programming error at construction time, not a runtime credential failure.

when neither source is supplied.