You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
13 lines
978 B
13 lines
978 B
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
const parse_js_1 = require("./parse.js"); |
|
const stringify_js_1 = require("./stringify.js"); |
|
function v1ToV6(uuid) { |
|
const v1Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid; |
|
const v6Bytes = _v1ToV6(v1Bytes); |
|
return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v6Bytes) : v6Bytes; |
|
} |
|
exports.default = v1ToV6; |
|
function _v1ToV6(v1Bytes) { |
|
return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]); |
|
}
|
|
|