"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uuid = exports.uuidV4 = exports.uuidV3 = exports.validarUuid = exports.erUuid = void 0; const uuid_1 = require("uuid"); /** * Valida se uma string é um UUID válido (qualquer versão). * * @param valor - A string que será validada. * @returns booleano indicando se é um UUID válido. */ exports.erUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; const validarUuid = (uuid) => { const retorno = exports.erUuid.test(String(uuid || "")); return retorno; }; exports.validarUuid = validarUuid; /** * Gera um UUID determinístico (versão 3) com base em uma chave e um grupo (namespace). * * - Usa o algoritmo MD5 (RFC 4122). * - Sempre retorna o mesmo UUID para a mesma combinação chave + grupo. * - Caso o grupo não seja informado, usa o UUID "nil" como namespace. * * @param chave - Qualquer valor que será convertido em string para gerar o UUID (ex: número, string ou objeto). * @param grupo - Opcional. Namespace para separar domínios diferentes de UUIDs. * @returns UUID v3 (determinístico) */ const uuidV3 = (chave, grupo) => { return (0, uuid_1.v3)( // Converte a chave para string (de forma segura) typeof chave === "string" ? chave : typeof chave === "number" ? String(chave) : JSON.stringify(chave), // Se um grupo foi fornecido, gera um UUID v3 recursivamente com base nele, senão usa NIL grupo ? (0, exports.uuidV3)(grupo) : uuid_1.NIL); }; exports.uuidV3 = uuidV3; /** * Gera um UUID v4 (aleatório, não determinístico). * * - Usado quando unicidade é necessária, mas não se exige que seja previsível. */ exports.uuidV4 = uuid_1.v4; /** * @deprecated Esta variável será descontinuada em versões futuras. * Use a função `uuidV4()` diretamente. */ exports.uuid = exports.uuidV4;