import parse from './parse.js'; | |
import { unsafeStringify } from './stringify.js'; | |
export default function v6ToV1(uuid) { | |
const v6Bytes = typeof uuid === 'string' ? parse(uuid) : uuid; | |
const v1Bytes = _v6ToV1(v6Bytes); | |
return typeof uuid === 'string' ? unsafeStringify(v1Bytes) : v1Bytes; | |
} | |
function _v6ToV1(v6Bytes) { | |
return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]); | |
} | |