const PAIRING_TOKEN_PARAM = "token"; function readHashParams(url: URL): URLSearchParams { return new URLSearchParams(url.hash.startsWith("#") ? url.hash.slice(1) : url.hash);} export function getPairingTokenFromUrl(url: URL): string | null { const hashToken = readHashParams(url).get(PAIRING_TOKEN_PARAM)?.trim() ?? ""; if (hashToken.length > 0) { return hashToken; } const searchToken = url.searchParams.get(PAIRING_TOKEN_PARAM)?.trim() ?? ""; return searchToken.length > 0 ? searchToken : null;} export function stripPairingTokenFromUrl(url: URL): URL { const next = new URL(url.toString()); const hashParams = readHashParams(next); if (hashParams.has(PAIRING_TOKEN_PARAM)) { hashParams.delete(PAIRING_TOKEN_PARAM); next.hash = hashParams.toString(); } next.searchParams.delete(PAIRING_TOKEN_PARAM); return next;} export function setPairingTokenOnUrl(url: URL, credential: string): URL { const next = new URL(url.toString()); next.searchParams.delete(PAIRING_TOKEN_PARAM); next.hash = new URLSearchParams([[PAIRING_TOKEN_PARAM, credential]]).toString(); return next;}
const PAIRING_TOKEN_PARAM = "token";
function readHashParams(url: URL): URLSearchParams {
return new URLSearchParams(url.hash.startsWith("#") ? url.hash.slice(1) : url.hash);
}
export function getPairingTokenFromUrl(url: URL): string | null {
const hashToken = readHashParams(url).get(PAIRING_TOKEN_PARAM)?.trim() ?? "";
if (hashToken.length > 0) {
return hashToken;
}
const searchToken = url.searchParams.get(PAIRING_TOKEN_PARAM)?.trim() ?? "";
return searchToken.length > 0 ? searchToken : null;
}
export function stripPairingTokenFromUrl(url: URL): URL {
const next = new URL(url.toString());
const hashParams = readHashParams(next);
if (hashParams.has(PAIRING_TOKEN_PARAM)) {
hashParams.delete(PAIRING_TOKEN_PARAM);
next.hash = hashParams.toString();
}
next.searchParams.delete(PAIRING_TOKEN_PARAM);
return next;
}
export function setPairingTokenOnUrl(url: URL, credential: string): URL {
const next = new URL(url.toString());
next.searchParams.delete(PAIRING_TOKEN_PARAM);
next.hash = new URLSearchParams([[PAIRING_TOKEN_PARAM, credential]]).toString();
return next;
}