{"version":3,"file":"uuidv7.mjs","sources":["../../../src/tools/uuidv7.ts"],"sourcesContent":["/**\n * uuid v7\n */\nconst byteToHex: string[] = []\nfor (let i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).slice(1))\n}\n\nfunction sfc32(a: number, b: number, c: number, d: number) {\n  return () => {\n    // eslint-disable-next-line\n    a |= 0; b |= 0; c |= 0; d |= 0;\n    // eslint-disable-next-line\n    const t = (a + b | 0) + d | 0;\n    // eslint-disable-next-line\n    d = d + 1 | 0;\n    a = b ^ b >>> 9\n    // eslint-disable-next-line\n    b = c + (c << 3) | 0;\n    // eslint-disable-next-line\n    c = (c << 21 | c >>> 11) + t | 0;\n    return t >>> 0\n  }\n}\n\nexport default function uuidv7(): string {\n  const bytes = new Uint8Array(16)\n  const timestamp = BigInt(Date.now())\n  const perf = BigInt(Math.floor(performance.now() * 1000) % 0xFFFF)\n  const combinedTime = (timestamp << 16n) | perf\n\n  bytes[0] = Number((combinedTime >> 40n) & 0xFFn)\n  bytes[1] = Number((combinedTime >> 32n) & 0xFFn)\n  bytes[2] = Number((combinedTime >> 24n) & 0xFFn)\n  bytes[3] = Number((combinedTime >> 16n) & 0xFFn)\n  bytes[4] = Number((combinedTime >> 8n) & 0xFFn)\n  bytes[5] = Number(combinedTime & 0xFFn)\n\n  const seed = (Math.random() * 0xFFFFFFFF ^ Date.now() ^ performance.now()) >>> 0\n  const rand = sfc32(0x9E3779B9, 0x243F6A88, 0xB7E15162, seed)\n  const randView = new DataView(bytes.buffer)\n\n  randView.setUint32(6, rand())\n  randView.setUint32(10, rand())\n  randView.setUint16(14, rand())\n\n  bytes[6] = 0x70 | (bytes[6]! & 0x0F)\n  bytes[8] = 0x80 | (bytes[8]! & 0x3F)\n\n  return (\n    byteToHex[bytes[0]!]\n    + byteToHex[bytes[1]!]!\n    + byteToHex[bytes[2]]\n    + byteToHex[bytes[3]]\n    + '-'\n    + byteToHex[bytes[4]]\n    + byteToHex[bytes[5]]\n    + '-'\n    + byteToHex[bytes[6]]\n    + byteToHex[bytes[7]!]\n    + '-'\n    + byteToHex[bytes[8]]\n    + byteToHex[bytes[9]!]\n    + '-'\n    + byteToHex[bytes[10]!]\n    + byteToHex[bytes[11]!]\n    + byteToHex[bytes[12]!]\n    + byteToHex[bytes[13]!]\n    + byteToHex[bytes[14]!]\n    + byteToHex[bytes[15]!]\n  ).toLowerCase()\n}\n"],"names":[],"mappings":"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"}