{"version":3,"sources":["../../../../utilities/core/src/utils/signing.ts"],"names":[],"mappings":";AACA,SAAS,YAAY,MAA6B,EAAA;AAChD,EAAO,OAAA,KAAA,CAAM,KAAK,IAAI,UAAA,CAAW,MAAM,CAAC,CAAA,CACrC,IAAI,CAAC,CAAA,KAAM,EAAE,QAAS,CAAA,EAAE,EAAE,QAAS,CAAA,CAAA,EAAG,GAAG,CAAC,CAAA,CAC1C,KAAK,EAAE,CAAA;AACZ;AAOA,eAAsB,6BAA8B,CAAA;AAAA,EAClD,MAAA;AAAA,EACA;AACF,CAAsC,EAAA;AACpC,EAAI,IAAA,CAAC,UAAU,OAAO,MAAA,KAAW,YAAY,MAAO,CAAA,IAAA,OAAW,EAAI,EAAA;AACjE,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA;AAEF,EAAI,IAAA,CAAC,aAAa,OAAO,SAAA,KAAc,YAAY,SAAU,CAAA,IAAA,OAAW,EAAI,EAAA;AAC1E,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA;AAGF,EAAM,MAAA,WAAA,GAAc,MAAM,MAAA,CAAO,MAAO,CAAA,SAAA;AAAA,IACtC,KAAA;AAAA;AAAA,IACA,IAAI,WAAA,EAAc,CAAA,MAAA,CAAO,SAAS,CAAA;AAAA;AAAA,IAClC,EAAE,IAAA,EAAM,MAAQ,EAAA,IAAA,EAAM,SAAU,EAAA;AAAA;AAAA,IAChC,KAAA;AAAA;AAAA,IACA,CAAC,MAAM;AAAA;AAAA,GACT;AAEA,EAAM,MAAA,eAAA,GAAkB,MAAM,MAAA,CAAO,MAAO,CAAA,IAAA;AAAA,IAC1C,MAAA;AAAA;AAAA,IACA,WAAA;AAAA;AAAA,IACA,IAAI,WAAA,EAAc,CAAA,MAAA,CAAO,MAAM;AAAA;AAAA,GACjC;AAEA,EAAA,OAAO,YAAY,eAAe,CAAA;AACpC","file":"index.mjs","sourcesContent":["// Helper function to convert ArrayBuffer to hex string\nfunction bufferToHex(buffer: ArrayBuffer): string {\n  return Array.from(new Uint8Array(buffer))\n    .map((b) => b.toString(16).padStart(2, \"0\"))\n    .join(\"\");\n}\n\ninterface SignatureOptions {\n  userId: string;\n  secretKey: string;\n}\n\nexport async function generateUserIdentitySignature({\n  userId,\n  secretKey,\n}: SignatureOptions): Promise<string> {\n  if (!userId || typeof userId !== \"string\" || userId.trim() === \"\") {\n    throw new Error(\n      \"UserJot Signature Generation: `userId` must be a non-empty string.\"\n    );\n  }\n  if (!secretKey || typeof secretKey !== \"string\" || secretKey.trim() === \"\") {\n    throw new Error(\n      \"UserJot Signature Generation: `secretKey` must be a non-empty string.\"\n    );\n  }\n\n  const keyMaterial = await crypto.subtle.importKey(\n    \"raw\", // format\n    new TextEncoder().encode(secretKey), // keyData\n    { name: \"HMAC\", hash: \"SHA-256\" }, // algorithm\n    false, // extractable\n    [\"sign\"] // usages\n  );\n\n  const signatureBuffer = await crypto.subtle.sign(\n    \"HMAC\", // algorithm\n    keyMaterial, // key\n    new TextEncoder().encode(userId) // data\n  );\n\n  return bufferToHex(signatureBuffer);\n}\n"]}