Files
openclaw/src/pairing/join-code.ts
Peter Steinberger ade3456dd4 feat: add one-paste node onboarding (#122499)
* feat(pairing): add short join onboarding

* fix(gateway): isolate device join routing tests
2026-08-12 06:17:39 -07:00

23 lines
808 B
TypeScript

// Shared shape for the public device-pairing join shortcode.
export const DEVICE_PAIRING_JOIN_CODE_BYTES = 16;
const DEVICE_PAIRING_JOIN_CODE_RE = /^[A-Za-z0-9_-]{22}$/u;
export function isDevicePairingJoinCode(value: string): boolean {
return DEVICE_PAIRING_JOIN_CODE_RE.test(value);
}
export function parseDevicePairingJoinRequestPath(pathname: string): string | null {
// Public endpoints may include an advertised context path. The final /j namespace
// is the stable route contract; preserving only root /j would mint unusable URLs.
const markerIndex = pathname.lastIndexOf("/j");
if (markerIndex < 0) {
return null;
}
const routePath = pathname.slice(markerIndex);
if (routePath === "/j") {
return "";
}
return routePath.startsWith("/j/") ? routePath.slice(3) : null;
}