{ if (event.key === "Escape" && confirmation) cancelRevoke(); }} />

Domain tokens

{ event.preventDefault(); void mint(); }}>

{#if hostnameError} {hostnames === null ? "Refresh to retry." : "Using previous hostname list."} {:else if hostnameNotice} {hostnameNotice} {:else if hostnames !== null && !choices.length} Add a tunnel to register a hostname. {/if}

{#if minted}
event.currentTarget.select()} onclick={(event) => event.currentTarget.select()} />

Copy now; you cannot retrieve it later.

{copyNotice}

{/if}
{#if error}
{#if error.length > 180}
Token request needs attention

{error}

{:else}{error}{/if}
{/if} {#if notice}

{notice}

{/if}
{#if grants?.length} {#each grants as grant (grant.id)} {/each}
HostnameGrant IDExpiryAction
{grant.hostname || "Unknown"} {grant.id} {#if grant.incomplete}Incomplete{:else}{grant.expiresAt ? new Date(grant.expiresAt).toLocaleString() : "No expiry"}{/if}
{:else}

{grants ? "No domain tokens." : refreshing ? "Loading tokens…" : "Token list unavailable."}

{/if} {#if confirmation}

Revoke token{#if confirmation.grant.hostname} for {confirmation.grant.hostname}{/if}?

Ends this token's access; running sidecars may take up to 2 minutes to disconnect.

{/if}