function generateUUID(uuid, v = 1) { if (v <= 0 || v > 4 || v === 2 || v === 3) throw Err.UnsupportedUUIDVersion; let uuidv = uuidv1; if (v === 4) uuidv = uuidv4; if (uuid) { if (!validateUuid(uuid)) throw Err.InvalidUUID; const normalized = normalize(uuid); if (!normalized) throw Err.InvalidHexString; return apply( new Binary(Buffer.from(normalized, 'hex'), Binary.SUBTYPE_UUID) ); } else { const uuid = uuidv(null, Buffer.alloc(16)); return apply(Binary(uuid, Binary.SUBTYPE_UUID)); } }