{"version":3,"file":"v6.cjs","names":["v1","v1ToV6","unsafeStringify"],"sources":["../../../src/utils/uuid/v6.ts"],"sourcesContent":["import { unsafeStringify } from \"./stringify.js\";\nimport type { UUIDTypes, Version6Options } from \"./types.js\";\nimport v1 from \"./v1.js\";\nimport v1ToV6 from \"./v1ToV6.js\";\n\nfunction v6(\n  options?: Version6Options,\n  buf?: undefined,\n  offset?: number\n): string;\nfunction v6<TBuf extends Uint8Array = Uint8Array>(\n  options: Version6Options | undefined,\n  buf: TBuf,\n  offset?: number\n): TBuf;\nfunction v6<TBuf extends Uint8Array = Uint8Array>(\n  options?: Version6Options,\n  buf?: TBuf,\n  offset?: number\n): UUIDTypes<TBuf> {\n  options ??= {};\n  offset ??= 0;\n\n  // v6 is v1 with different field layout, so we start with a v1 UUID, albeit\n  // with slightly different behavior around how the clock_seq and node fields\n  // are randomized, which is why we call v1 with _v6: true.\n  let bytes = v1({ ...options, _v6: true }, new Uint8Array(16));\n\n  // Reorder the fields to v6 layout.\n  bytes = v1ToV6(bytes);\n\n  // Return as a byte array if requested\n  if (buf) {\n    if (offset < 0 || offset + 16 > buf.length) {\n      throw new RangeError(\n        `UUID byte range ${offset}:${offset + 15} is out of buffer bounds`\n      );\n    }\n\n    for (let i = 0; i < 16; i++) {\n      buf[offset + i] = bytes[i];\n    }\n    return buf;\n  }\n\n  return unsafeStringify(bytes);\n}\n\nexport default v6;\n"],"mappings":";;;;AAeA,SAAS,GACP,SACA,KACA,QACiB;AACjB,aAAY,EAAE;AACd,YAAW;CAKX,IAAI,QAAQA,WAAAA,QAAG;EAAE,GAAG;EAAS,KAAK;EAAM,EAAE,IAAI,WAAW,GAAG,CAAC;AAG7D,SAAQC,eAAAA,QAAO,MAAM;AAGrB,KAAI,KAAK;AACP,MAAI,SAAS,KAAK,SAAS,KAAK,IAAI,OAClC,OAAM,IAAI,WACR,mBAAmB,OAAO,GAAG,SAAS,GAAG,0BAC1C;AAGH,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IACtB,KAAI,SAAS,KAAK,MAAM;AAE1B,SAAO;;AAGT,QAAOC,kBAAAA,gBAAgB,MAAM"}