{"version":3,"file":"index.cjs","names":["signedHeaders","getDate","service"],"sources":["../../../src/utils/tencent_hunyuan/index.ts"],"sourcesContent":["import { createHash, createHmac, BinaryLike } from \"node:crypto\";\nimport { getDate, service, signedHeaders } from \"./common.js\";\n\nconst sha256 = (data: string) =>\n  createHash(\"sha256\").update(data).digest(\"hex\");\n\nconst hmacSha256 = (data: string, key: BinaryLike) =>\n  createHmac(\"sha256\", key).update(data).digest();\n\nconst hmacSha256Hex = (data: string, key: BinaryLike) =>\n  createHmac(\"sha256\", key).update(data).digest(\"hex\");\n\n/**\n * Method that calculate Tencent Cloud API v3 signature\n * for making requests to the Tencent Cloud API.\n * See https://cloud.tencent.com/document/api/1729/101843.\n * @param host Tencent Cloud API host.\n * @param payload HTTP request body.\n * @param timestamp Sign timestamp in seconds.\n * @param secretId Tencent Cloud Secret ID, which can be obtained from https://console.cloud.tencent.com/cam/capi.\n * @param secretKey Tencent Cloud Secret Key, which can be obtained from https://console.cloud.tencent.com/cam/capi.\n * @param headers HTTP request headers.\n * @returns The signature for making requests to the Tencent API.\n */\nexport const sign = (\n  host: string,\n  payload: object,\n  timestamp: number,\n  secretId: string,\n  secretKey: string,\n  headers: Record<string, string>\n): string => {\n  const contentType = headers[\"Content-Type\"];\n  const payloadHash = sha256(JSON.stringify(payload));\n  const canonicalRequest = `POST\\n/\\n\\ncontent-type:${contentType}\\nhost:${host}\\n\\n${signedHeaders}\\n${payloadHash}`;\n  const date = getDate(timestamp);\n  const signature = hmacSha256Hex(\n    `TC3-HMAC-SHA256\\n${timestamp}\\n${date}/${service}/tc3_request\\n${sha256(\n      canonicalRequest\n    )}`,\n    hmacSha256(\n      \"tc3_request\",\n      hmacSha256(service, hmacSha256(date, `TC3${secretKey}`))\n    )\n  );\n  return `TC3-HMAC-SHA256 Credential=${secretId}/${date}/${service}/tc3_request, SignedHeaders=${signedHeaders}, Signature=${signature}`;\n};\n"],"mappings":";;;;AAGA,MAAM,UAAU,UAAA,GAAA,YAAA,YACH,SAAS,CAAC,OAAO,KAAK,CAAC,OAAO,MAAM;AAEjD,MAAM,cAAc,MAAc,SAAA,GAAA,YAAA,YACrB,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,QAAQ;AAEjD,MAAM,iBAAiB,MAAc,SAAA,GAAA,YAAA,YACxB,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,MAAM;;;;;;;;;;;;;AActD,MAAa,QACX,MACA,SACA,WACA,UACA,WACA,YACW;CAGX,MAAM,mBAAmB,2BAFL,QAAQ,gBAEoC,SAAS,KAAK,MAAMA,eAAAA,cAAc,IAD9E,OAAO,KAAK,UAAU,QAAQ,CAAC;CAEnD,MAAM,OAAOC,eAAAA,QAAQ,UAAU;AAU/B,QAAO,8BAA8B,SAAS,GAAG,KAAK,GAAGC,eAAAA,QAAQ,8BAA8BF,eAAAA,cAAc,cAT3F,cAChB,oBAAoB,UAAU,IAAI,KAAK,GAAGE,eAAAA,QAAQ,gBAAgB,OAChE,iBACD,IACD,WACE,eACA,WAAWA,eAAAA,SAAS,WAAW,MAAM,MAAM,YAAY,CAAC,CACzD,CACF"}