HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/bots/enerbot/node_modules/bson/src/uuid_utils.ts
import { Buffer } from 'buffer';
import { BSONTypeError } from './error';

// Validation regex for v4 uuid (validates with or without dashes)
const VALIDATION_REGEX =
  /^(?:[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15})$/i;

export const uuidValidateString = (str: string): boolean =>
  typeof str === 'string' && VALIDATION_REGEX.test(str);

export const uuidHexStringToBuffer = (hexString: string): Buffer => {
  if (!uuidValidateString(hexString)) {
    throw new BSONTypeError(
      'UUID string representations must be a 32 or 36 character hex string (dashes excluded/included). Format: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" or "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".'
    );
  }

  const sanitizedHexString = hexString.replace(/-/g, '');
  return Buffer.from(sanitizedHexString, 'hex');
};

export const bufferToUuidHexString = (buffer: Buffer, includeDashes = true): string =>
  includeDashes
    ? buffer.toString('hex', 0, 4) +
      '-' +
      buffer.toString('hex', 4, 6) +
      '-' +
      buffer.toString('hex', 6, 8) +
      '-' +
      buffer.toString('hex', 8, 10) +
      '-' +
      buffer.toString('hex', 10, 16)
    : buffer.toString('hex');