{"version":3,"sources":["../src/index.ts","../src/encoding.ts","../src/hash32.ts","../src/hash128.ts","../src/hash128x64.ts","../src/v1-compat.ts"],"sourcesContent":["// Core hash functions\nexport { hash32, createHash32, Hash32Stream } from './hash32.ts';\nexport { hash128, createHash128, Hash128Stream } from './hash128.ts';\nexport { hash128x64, createHash128x64, Hash128x64Stream } from './hash128x64.ts';\n\n// Types\nexport type { HashInput, HashOutput, Hash128Options } from './types.ts';\n\n// v1 compatibility (deprecated)\nexport { v3 } from './v1-compat.ts';\n","import type { HashInput } from './types.ts';\n\nconst encoder = new TextEncoder();\n\n/**\n * Convert string or Uint8Array to Uint8Array\n */\nexport function toBytes(input: HashInput): Uint8Array {\n  if (input instanceof Uint8Array) {\n    return input;\n  }\n  return encoder.encode(input);\n}\n\n/**\n * Convert hex string to BigInt\n */\nexport function hexToBigInt(hex: string): bigint {\n  return BigInt('0x' + hex);\n}\n","import type { HashInput } from './types.ts';\nimport { toBytes } from './encoding.ts';\n\n// MurmurHash3 constants\nconst C1 = 0xcc9e2d51;\nconst C2 = 0x1b873593;\n\n/**\n * 32-bit multiplication with overflow handling\n */\nfunction multiply(a: number, b: number): number {\n  return ((a & 0xffff) * b + ((((a >>> 16) * b) & 0xffff) << 16)) | 0;\n}\n\n/**\n * 32-bit rotate left\n */\nfunction rotl(value: number, shift: number): number {\n  return (value << shift) | (value >>> (32 - shift));\n}\n\n/**\n * Final mix function\n */\nfunction fmix(h: number): number {\n  h ^= h >>> 16;\n  h = multiply(h, 0x85ebca6b);\n  h ^= h >>> 13;\n  h = multiply(h, 0xc2b2ae35);\n  h ^= h >>> 16;\n  return h;\n}\n\n/**\n * Compute MurmurHash3 x86 32-bit hash\n */\nfunction compute(bytes: Uint8Array, seed: number): number {\n  const len = bytes.length;\n  const blocks = len >>> 2; // len / 4\n  let h1 = seed;\n\n  // Process 4-byte blocks\n  for (let i = 0; i < blocks; i++) {\n    const offset = i * 4;\n    let k1 =\n      bytes[offset] |\n      (bytes[offset + 1] << 8) |\n      (bytes[offset + 2] << 16) |\n      (bytes[offset + 3] << 24);\n\n    k1 = multiply(k1, C1);\n    k1 = rotl(k1, 15);\n    k1 = multiply(k1, C2);\n\n    h1 ^= k1;\n    h1 = rotl(h1, 13);\n    h1 = multiply(h1, 5) + 0xe6546b64;\n  }\n\n  // Process remaining bytes\n  const tailOffset = blocks * 4;\n  let k1 = 0;\n\n  switch (len & 3) {\n    case 3:\n      k1 ^= bytes[tailOffset + 2] << 16;\n    // fallthrough\n    case 2:\n      k1 ^= bytes[tailOffset + 1] << 8;\n    // fallthrough\n    case 1:\n      k1 ^= bytes[tailOffset];\n      k1 = multiply(k1, C1);\n      k1 = rotl(k1, 15);\n      k1 = multiply(k1, C2);\n      h1 ^= k1;\n  }\n\n  // Finalization\n  h1 ^= len;\n  h1 = fmix(h1);\n\n  return h1 >>> 0; // Convert to unsigned\n}\n\n/**\n * Compute MurmurHash3 x86 32-bit hash.\n */\nexport function hash32(input: HashInput, seed: number = 0): number {\n  return compute(toBytes(input), seed);\n}\n\n/** Streaming hasher. Note: data is buffered until digest(), not processed incrementally. */\nexport class Hash32Stream {\n  private chunks: Uint8Array[] = [];\n  private totalLength = 0;\n  private readonly seed: number;\n\n  constructor(seed: number = 0) {\n    this.seed = seed;\n  }\n\n  update(input: HashInput): this {\n    const bytes = toBytes(input);\n    this.chunks.push(bytes);\n    this.totalLength += bytes.length;\n    return this;\n  }\n\n  digest(): number {\n    const result = new Uint8Array(this.totalLength);\n    let offset = 0;\n    for (const chunk of this.chunks) {\n      result.set(chunk, offset);\n      offset += chunk.length;\n    }\n    return compute(result, this.seed);\n  }\n}\n\n/**\n * Create a streaming hasher for MurmurHash3 x86 32-bit.\n */\nexport function createHash32(seed: number = 0): Hash32Stream {\n  return new Hash32Stream(seed);\n}\n","import type { HashInput, Hash128Options } from './types.ts';\nimport { toBytes, hexToBigInt } from './encoding.ts';\n\n// MurmurHash3 x86 128-bit constants\nconst C1 = 0x239b961b;\nconst C2 = 0xab0e9789;\nconst C3 = 0x38b34ae5;\nconst C4 = 0xa1e38b93;\n\n/**\n * 32-bit multiplication with overflow handling\n */\nfunction multiply(a: number, b: number): number {\n  return ((a & 0xffff) * b + ((((a >>> 16) * b) & 0xffff) << 16)) | 0;\n}\n\n/**\n * 32-bit rotate left\n */\nfunction rotl(value: number, shift: number): number {\n  return (value << shift) | (value >>> (32 - shift));\n}\n\n/**\n * Final mix function\n */\nfunction fmix(h: number): number {\n  h ^= h >>> 16;\n  h = multiply(h, 0x85ebca6b);\n  h ^= h >>> 13;\n  h = multiply(h, 0xc2b2ae35);\n  h ^= h >>> 16;\n  return h;\n}\n\n/**\n * Compute MurmurHash3 x86 128-bit hash\n */\nfunction compute(bytes: Uint8Array, seed: number): string {\n  const len = bytes.length;\n  const blocks = len >>> 4; // len / 16\n\n  let h1 = seed;\n  let h2 = seed;\n  let h3 = seed;\n  let h4 = seed;\n\n  // Process 16-byte blocks\n  for (let i = 0; i < blocks; i++) {\n    const offset = i * 16;\n\n    let k1 =\n      bytes[offset] |\n      (bytes[offset + 1] << 8) |\n      (bytes[offset + 2] << 16) |\n      (bytes[offset + 3] << 24);\n    let k2 =\n      bytes[offset + 4] |\n      (bytes[offset + 5] << 8) |\n      (bytes[offset + 6] << 16) |\n      (bytes[offset + 7] << 24);\n    let k3 =\n      bytes[offset + 8] |\n      (bytes[offset + 9] << 8) |\n      (bytes[offset + 10] << 16) |\n      (bytes[offset + 11] << 24);\n    let k4 =\n      bytes[offset + 12] |\n      (bytes[offset + 13] << 8) |\n      (bytes[offset + 14] << 16) |\n      (bytes[offset + 15] << 24);\n\n    k1 = multiply(k1, C1);\n    k1 = rotl(k1, 15);\n    k1 = multiply(k1, C2);\n    h1 ^= k1;\n\n    h1 = rotl(h1, 19);\n    h1 += h2;\n    h1 = multiply(h1, 5) + 0x561ccd1b;\n\n    k2 = multiply(k2, C2);\n    k2 = rotl(k2, 16);\n    k2 = multiply(k2, C3);\n    h2 ^= k2;\n\n    h2 = rotl(h2, 17);\n    h2 += h3;\n    h2 = multiply(h2, 5) + 0x0bcaa747;\n\n    k3 = multiply(k3, C3);\n    k3 = rotl(k3, 17);\n    k3 = multiply(k3, C4);\n    h3 ^= k3;\n\n    h3 = rotl(h3, 15);\n    h3 += h4;\n    h3 = multiply(h3, 5) + 0x96cd1c35;\n\n    k4 = multiply(k4, C4);\n    k4 = rotl(k4, 18);\n    k4 = multiply(k4, C1);\n    h4 ^= k4;\n\n    h4 = rotl(h4, 13);\n    h4 += h1;\n    h4 = multiply(h4, 5) + 0x32ac3b17;\n  }\n\n  // Process remaining bytes\n  const tailOffset = blocks * 16;\n  let k1 = 0;\n  let k2 = 0;\n  let k3 = 0;\n  let k4 = 0;\n\n  switch (len & 15) {\n    case 15:\n      k4 ^= bytes[tailOffset + 14] << 16;\n    // fallthrough\n    case 14:\n      k4 ^= bytes[tailOffset + 13] << 8;\n    // fallthrough\n    case 13:\n      k4 ^= bytes[tailOffset + 12];\n      k4 = multiply(k4, C4);\n      k4 = rotl(k4, 18);\n      k4 = multiply(k4, C1);\n      h4 ^= k4;\n    // fallthrough\n    case 12:\n      k3 ^= bytes[tailOffset + 11] << 24;\n    // fallthrough\n    case 11:\n      k3 ^= bytes[tailOffset + 10] << 16;\n    // fallthrough\n    case 10:\n      k3 ^= bytes[tailOffset + 9] << 8;\n    // fallthrough\n    case 9:\n      k3 ^= bytes[tailOffset + 8];\n      k3 = multiply(k3, C3);\n      k3 = rotl(k3, 17);\n      k3 = multiply(k3, C4);\n      h3 ^= k3;\n    // fallthrough\n    case 8:\n      k2 ^= bytes[tailOffset + 7] << 24;\n    // fallthrough\n    case 7:\n      k2 ^= bytes[tailOffset + 6] << 16;\n    // fallthrough\n    case 6:\n      k2 ^= bytes[tailOffset + 5] << 8;\n    // fallthrough\n    case 5:\n      k2 ^= bytes[tailOffset + 4];\n      k2 = multiply(k2, C2);\n      k2 = rotl(k2, 16);\n      k2 = multiply(k2, C3);\n      h2 ^= k2;\n    // fallthrough\n    case 4:\n      k1 ^= bytes[tailOffset + 3] << 24;\n    // fallthrough\n    case 3:\n      k1 ^= bytes[tailOffset + 2] << 16;\n    // fallthrough\n    case 2:\n      k1 ^= bytes[tailOffset + 1] << 8;\n    // fallthrough\n    case 1:\n      k1 ^= bytes[tailOffset];\n      k1 = multiply(k1, C1);\n      k1 = rotl(k1, 15);\n      k1 = multiply(k1, C2);\n      h1 ^= k1;\n  }\n\n  // Finalization\n  h1 ^= len;\n  h2 ^= len;\n  h3 ^= len;\n  h4 ^= len;\n\n  h1 += h2;\n  h1 += h3;\n  h1 += h4;\n  h2 += h1;\n  h3 += h1;\n  h4 += h1;\n\n  h1 = fmix(h1);\n  h2 = fmix(h2);\n  h3 = fmix(h3);\n  h4 = fmix(h4);\n\n  h1 += h2;\n  h1 += h3;\n  h1 += h4;\n  h2 += h1;\n  h3 += h1;\n  h4 += h1;\n\n  // Convert to hex string\n  return (\n    ('00000000' + (h1 >>> 0).toString(16)).slice(-8) +\n    ('00000000' + (h2 >>> 0).toString(16)).slice(-8) +\n    ('00000000' + (h3 >>> 0).toString(16)).slice(-8) +\n    ('00000000' + (h4 >>> 0).toString(16)).slice(-8)\n  );\n}\n\n/**\n * Compute MurmurHash3 x86 128-bit hash.\n */\nexport function hash128(\n  input: HashInput,\n  options?: Hash128Options\n): string | bigint {\n  const seed = options?.seed ?? 0;\n  const hex = compute(toBytes(input), seed);\n\n  if (options?.output === 'bigint') {\n    return hexToBigInt(hex);\n  }\n  return hex;\n}\n\n/** Streaming hasher. Note: data is buffered until digest(), not processed incrementally. */\nexport class Hash128Stream {\n  private chunks: Uint8Array[] = [];\n  private totalLength = 0;\n  private readonly seed: number;\n  private readonly outputFormat: 'hex' | 'bigint';\n\n  constructor(options?: Hash128Options) {\n    this.seed = options?.seed ?? 0;\n    this.outputFormat = options?.output ?? 'hex';\n  }\n\n  update(input: HashInput): this {\n    const bytes = toBytes(input);\n    this.chunks.push(bytes);\n    this.totalLength += bytes.length;\n    return this;\n  }\n\n  digest(): string | bigint {\n    const result = new Uint8Array(this.totalLength);\n    let offset = 0;\n    for (const chunk of this.chunks) {\n      result.set(chunk, offset);\n      offset += chunk.length;\n    }\n    const hex = compute(result, this.seed);\n\n    if (this.outputFormat === 'bigint') {\n      return hexToBigInt(hex);\n    }\n    return hex;\n  }\n}\n\n/**\n * Create a streaming hasher for MurmurHash3 x86 128-bit.\n */\nexport function createHash128(options?: Hash128Options): Hash128Stream {\n  return new Hash128Stream(options);\n}\n","import type { HashInput, Hash128Options } from './types.ts';\nimport { toBytes, hexToBigInt } from './encoding.ts';\n\n// MurmurHash3 x64 128-bit constants (as pairs of 32-bit ints)\nconst C1 = [0x87c37b91, 0x114253d5];\nconst C2 = [0x4cf5ad43, 0x2745937f];\n\n/**\n * 64-bit addition (as array of two 32-bit ints)\n */\nfunction add64(a: number[], b: number[]): number[] {\n  const a0 = a[0] >>> 16,\n    a1 = a[0] & 0xffff,\n    a2 = a[1] >>> 16,\n    a3 = a[1] & 0xffff;\n  const b0 = b[0] >>> 16,\n    b1 = b[0] & 0xffff,\n    b2 = b[1] >>> 16,\n    b3 = b[1] & 0xffff;\n\n  let c0 = 0,\n    c1 = 0,\n    c2 = 0,\n    c3 = 0;\n\n  c3 += a3 + b3;\n  c2 += c3 >>> 16;\n  c3 &= 0xffff;\n\n  c2 += a2 + b2;\n  c1 += c2 >>> 16;\n  c2 &= 0xffff;\n\n  c1 += a1 + b1;\n  c0 += c1 >>> 16;\n  c1 &= 0xffff;\n\n  c0 += a0 + b0;\n  c0 &= 0xffff;\n\n  return [(c0 << 16) | c1, (c2 << 16) | c3];\n}\n\n/**\n * 64-bit multiplication (as array of two 32-bit ints)\n */\nfunction multiply64(a: number[], b: number[]): number[] {\n  const a0 = a[0] >>> 16,\n    a1 = a[0] & 0xffff,\n    a2 = a[1] >>> 16,\n    a3 = a[1] & 0xffff;\n  const b0 = b[0] >>> 16,\n    b1 = b[0] & 0xffff,\n    b2 = b[1] >>> 16,\n    b3 = b[1] & 0xffff;\n\n  let c0 = 0,\n    c1 = 0,\n    c2 = 0,\n    c3 = 0;\n\n  c3 += a3 * b3;\n  c2 += c3 >>> 16;\n  c3 &= 0xffff;\n\n  c2 += a2 * b3;\n  c1 += c2 >>> 16;\n  c2 &= 0xffff;\n\n  c2 += a3 * b2;\n  c1 += c2 >>> 16;\n  c2 &= 0xffff;\n\n  c1 += a1 * b3;\n  c0 += c1 >>> 16;\n  c1 &= 0xffff;\n\n  c1 += a2 * b2;\n  c0 += c1 >>> 16;\n  c1 &= 0xffff;\n\n  c1 += a3 * b1;\n  c0 += c1 >>> 16;\n  c1 &= 0xffff;\n\n  c0 += a0 * b3 + a1 * b2 + a2 * b1 + a3 * b0;\n  c0 &= 0xffff;\n\n  return [(c0 << 16) | c1, (c2 << 16) | c3];\n}\n\n/**\n * 64-bit rotate left\n */\nfunction rotl64(m: number[], n: number): number[] {\n  n %= 64;\n  if (n === 32) {\n    return [m[1], m[0]];\n  } else if (n < 32) {\n    return [\n      (m[0] << n) | (m[1] >>> (32 - n)),\n      (m[1] << n) | (m[0] >>> (32 - n)),\n    ];\n  } else {\n    n -= 32;\n    return [\n      (m[1] << n) | (m[0] >>> (32 - n)),\n      (m[0] << n) | (m[1] >>> (32 - n)),\n    ];\n  }\n}\n\n/**\n * 64-bit left shift\n */\nfunction lshift64(m: number[], n: number): number[] {\n  n %= 64;\n  if (n === 0) {\n    return m;\n  } else if (n < 32) {\n    return [(m[0] << n) | (m[1] >>> (32 - n)), m[1] << n];\n  } else {\n    return [m[1] << (n - 32), 0];\n  }\n}\n\n/**\n * 64-bit XOR\n */\nfunction xor64(a: number[], b: number[]): number[] {\n  return [a[0] ^ b[0], a[1] ^ b[1]];\n}\n\n/**\n * Final mix function for 64-bit\n */\nfunction fmix64(h: number[]): number[] {\n  h = xor64(h, [0, h[0] >>> 1]);\n  h = multiply64(h, [0xff51afd7, 0xed558ccd]);\n  h = xor64(h, [0, h[0] >>> 1]);\n  h = multiply64(h, [0xc4ceb9fe, 0x1a85ec53]);\n  h = xor64(h, [0, h[0] >>> 1]);\n  return h;\n}\n\n/**\n * Compute MurmurHash3 x64 128-bit hash\n */\nfunction compute(bytes: Uint8Array, seed: number): string {\n  const len = bytes.length;\n  const blocks = len >>> 4; // len / 16\n\n  let h1: number[] = [0, seed];\n  let h2: number[] = [0, seed];\n\n  // Process 16-byte blocks\n  for (let i = 0; i < blocks; i++) {\n    const offset = i * 16;\n\n    let k1: number[] = [\n      bytes[offset + 4] |\n        (bytes[offset + 5] << 8) |\n        (bytes[offset + 6] << 16) |\n        (bytes[offset + 7] << 24),\n      bytes[offset] |\n        (bytes[offset + 1] << 8) |\n        (bytes[offset + 2] << 16) |\n        (bytes[offset + 3] << 24),\n    ];\n\n    let k2: number[] = [\n      bytes[offset + 12] |\n        (bytes[offset + 13] << 8) |\n        (bytes[offset + 14] << 16) |\n        (bytes[offset + 15] << 24),\n      bytes[offset + 8] |\n        (bytes[offset + 9] << 8) |\n        (bytes[offset + 10] << 16) |\n        (bytes[offset + 11] << 24),\n    ];\n\n    k1 = multiply64(k1, C1);\n    k1 = rotl64(k1, 31);\n    k1 = multiply64(k1, C2);\n    h1 = xor64(h1, k1);\n\n    h1 = rotl64(h1, 27);\n    h1 = add64(h1, h2);\n    h1 = add64(multiply64(h1, [0, 5]), [0, 0x52dce729]);\n\n    k2 = multiply64(k2, C2);\n    k2 = rotl64(k2, 33);\n    k2 = multiply64(k2, C1);\n    h2 = xor64(h2, k2);\n\n    h2 = rotl64(h2, 31);\n    h2 = add64(h2, h1);\n    h2 = add64(multiply64(h2, [0, 5]), [0, 0x38495ab5]);\n  }\n\n  // Process remaining bytes\n  const tailOffset = blocks * 16;\n  let k1: number[] = [0, 0];\n  let k2: number[] = [0, 0];\n\n  switch (len & 15) {\n    case 15:\n      k2 = xor64(k2, lshift64([0, bytes[tailOffset + 14]], 48));\n    // fallthrough\n    case 14:\n      k2 = xor64(k2, lshift64([0, bytes[tailOffset + 13]], 40));\n    // fallthrough\n    case 13:\n      k2 = xor64(k2, lshift64([0, bytes[tailOffset + 12]], 32));\n    // fallthrough\n    case 12:\n      k2 = xor64(k2, lshift64([0, bytes[tailOffset + 11]], 24));\n    // fallthrough\n    case 11:\n      k2 = xor64(k2, lshift64([0, bytes[tailOffset + 10]], 16));\n    // fallthrough\n    case 10:\n      k2 = xor64(k2, lshift64([0, bytes[tailOffset + 9]], 8));\n    // fallthrough\n    case 9:\n      k2 = xor64(k2, [0, bytes[tailOffset + 8]]);\n      k2 = multiply64(k2, C2);\n      k2 = rotl64(k2, 33);\n      k2 = multiply64(k2, C1);\n      h2 = xor64(h2, k2);\n    // fallthrough\n    case 8:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 7]], 56));\n    // fallthrough\n    case 7:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 6]], 48));\n    // fallthrough\n    case 6:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 5]], 40));\n    // fallthrough\n    case 5:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 4]], 32));\n    // fallthrough\n    case 4:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 3]], 24));\n    // fallthrough\n    case 3:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 2]], 16));\n    // fallthrough\n    case 2:\n      k1 = xor64(k1, lshift64([0, bytes[tailOffset + 1]], 8));\n    // fallthrough\n    case 1:\n      k1 = xor64(k1, [0, bytes[tailOffset]]);\n      k1 = multiply64(k1, C1);\n      k1 = rotl64(k1, 31);\n      k1 = multiply64(k1, C2);\n      h1 = xor64(h1, k1);\n  }\n\n  // Finalization\n  h1 = xor64(h1, [0, len]);\n  h2 = xor64(h2, [0, len]);\n\n  h1 = add64(h1, h2);\n  h2 = add64(h2, h1);\n\n  h1 = fmix64(h1);\n  h2 = fmix64(h2);\n\n  h1 = add64(h1, h2);\n  h2 = add64(h2, h1);\n\n  // Convert to hex string\n  return (\n    ('00000000' + (h1[0] >>> 0).toString(16)).slice(-8) +\n    ('00000000' + (h1[1] >>> 0).toString(16)).slice(-8) +\n    ('00000000' + (h2[0] >>> 0).toString(16)).slice(-8) +\n    ('00000000' + (h2[1] >>> 0).toString(16)).slice(-8)\n  );\n}\n\n/**\n * Compute MurmurHash3 x64 128-bit hash.\n */\nexport function hash128x64(\n  input: HashInput,\n  options?: Hash128Options\n): string | bigint {\n  const seed = options?.seed ?? 0;\n  const hex = compute(toBytes(input), seed);\n\n  if (options?.output === 'bigint') {\n    return hexToBigInt(hex);\n  }\n  return hex;\n}\n\n/** Streaming hasher. Note: data is buffered until digest(), not processed incrementally. */\nexport class Hash128x64Stream {\n  private chunks: Uint8Array[] = [];\n  private totalLength = 0;\n  private readonly seed: number;\n  private readonly outputFormat: 'hex' | 'bigint';\n\n  constructor(options?: Hash128Options) {\n    this.seed = options?.seed ?? 0;\n    this.outputFormat = options?.output ?? 'hex';\n  }\n\n  update(input: HashInput): this {\n    const bytes = toBytes(input);\n    this.chunks.push(bytes);\n    this.totalLength += bytes.length;\n    return this;\n  }\n\n  digest(): string | bigint {\n    const result = new Uint8Array(this.totalLength);\n    let offset = 0;\n    for (const chunk of this.chunks) {\n      result.set(chunk, offset);\n      offset += chunk.length;\n    }\n    const hex = compute(result, this.seed);\n\n    if (this.outputFormat === 'bigint') {\n      return hexToBigInt(hex);\n    }\n    return hex;\n  }\n}\n\n/**\n * Create a streaming hasher for MurmurHash3 x64 128-bit.\n */\nexport function createHash128x64(options?: Hash128Options): Hash128x64Stream {\n  return new Hash128x64Stream(options);\n}\n","import { hash32 } from './hash32.ts';\nimport { hash128 } from './hash128.ts';\nimport { hash128x64 } from './hash128x64.ts';\n\nlet warned = false;\n\nfunction warnDeprecation(): void {\n  if (warned) return;\n  if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'production') return;\n\n  warned = true;\n  console.warn(\n    '[murmur-hash] The v3.x86/v3.x64 API is deprecated. ' +\n      'Use hash32(), hash128(), hash128x64() instead. ' +\n      'See https://github.com/1mb-dev/murmur-hash#migration-from-v1'\n  );\n}\n\n/**\n * v1 compatibility layer (deprecated)\n *\n * @deprecated Use hash32(), hash128(), hash128x64() instead\n */\nexport const v3 = {\n  x86: {\n    hash32(key: string, seed?: number): number {\n      warnDeprecation();\n      return hash32(key, seed);\n    },\n    hash128(key: string, seed?: number): string {\n      warnDeprecation();\n      return hash128(key, { seed }) as string;\n    },\n  },\n  x64: {\n    hash128(key: string, seed?: number): string {\n      warnDeprecation();\n      return hash128x64(key, { seed }) as string;\n    },\n  },\n};\n"],"mappings":"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","names":["k1","C1","C2","multiply","rotl","fmix","compute","k1","k2","k3","k4","C1","C2","compute","k1","k2"]}