UNPKG

@fivem-ts/server

Version:

FiveM Typescript wrapper server Part

24 lines (23 loc) 991 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uuidv4 = uuidv4; exports.uuidv5 = uuidv5; const crypto_1 = require("crypto"); function uuidv4() { const chars = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.split(''); for (let i = 0; i < chars.length; i++) { if (chars[i] === 'x') { chars[i] = ((Math.random() * 16) | 0).toString(16); } else if (chars[i] === 'y') { chars[i] = ((Math.random() * 4) | 8).toString(16); } } return chars.join(''); } function uuidv5(name, namespace) { const nsBytes = Buffer.from(namespace.replace(/-/g, ''), 'hex'); const nameBytes = Buffer.from('name', 'utf8'); const hash = (0, crypto_1.createHash)('sha1').update(nsBytes).update(nameBytes).digest('hex'); return `${hash.slice(0, 8)}-${hash.slice(8, 12)}-5${hash.slice(13, 16)}-${((parseInt(hash.slice(16, 18), 16) & 0x3f) | 0x80).toString(16)}${hash.slice(18, 20)}-${hash.slice(20, 32)}`; }