CloudLink holds cloudLinkUrl, readCloudLinkCallback, completeCloudLink and
withoutLinkState. PendingCloudLinks is the single-use state store, kept under the
calimero.cloud.link.pending key in mero-js’s shape. callbackIsForeign(returnTo, pageOrigin) compares origins.
AccountOwnership.signAccountHaClaim(…) creates the anonymous route’s claim
(ACCOUNT_HA_AUDIENCE). It has no subject and may carry an optional relay_url.
admitterAddrsFromNetworkStatus(status) turns a node’s network status into the
addresses enableNamespaceHa takes.
connectCloud(ConnectCloudOptions) and connectCloudWithAccount(ConnectCloudWithAccountOptions)
return a CloudConnection with cloud, relay, namespaceId, namespace, relayInfo,
client (a RelayConnection), canSubscribe and execute(…).
CloudWebLauncher (Android) has enableHA, disableHA, beginCloudLink,
openAccountLinkHandoff and open. Each opens its page in a Custom Tab.
the cloud refused anonymous HA. It is thrown as one of AccountNotLinkedException, AccountLinkedToSeveralUsersException, HaRequestPendingException (409) or UnknownRelayException, RelayNotDialableException (422); refusal: HaRefusal, advice
by status, message = advice
CloudNotReadyException
connectCloud has no namespace or relay to use yet
UNAVAILABLE
CloudLinkDeclinedException
the person declined the link, or the cloud refused it (reason)