UNPKG

@langchain/community

Version:
1 lines • 3.04 kB
{"version":3,"file":"index.cjs","names":["data: string","key: BinaryLike","host: string","payload: object","timestamp: number","secretId: string","secretKey: string","headers: Record<string, string>","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,SAAS,CAACA,qCACH,SAAS,CAAC,OAAO,KAAK,CAAC,OAAO,MAAM;AAEjD,MAAM,aAAa,CAACA,MAAcC,oCACrB,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,QAAQ;AAEjD,MAAM,gBAAgB,CAACD,MAAcC,oCACxB,UAAU,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,MAAM;;;;;;;;;;;;;AActD,MAAa,OAAO,CAClBC,MACAC,SACAC,WACAC,UACAC,WACAC,YACW;CACX,MAAM,cAAc,QAAQ;CAC5B,MAAM,cAAc,OAAO,KAAK,UAAU,QAAQ,CAAC;CACnD,MAAM,mBAAmB,CAAC,wBAAwB,EAAE,YAAY,OAAO,EAAE,KAAK,IAAI,EAAEC,6BAAc,EAAE,EAAE,aAAa;CACnH,MAAM,OAAOC,uBAAQ,UAAU;CAC/B,MAAM,YAAY,cAChB,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAEC,uBAAQ,cAAc,EAAE,OAChE,iBACD,EAAE,EACH,WACE,eACA,WAAWA,wBAAS,WAAW,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CACzD,CACF;AACD,QAAO,CAAC,2BAA2B,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,EAAEA,uBAAQ,4BAA4B,EAAEF,6BAAc,YAAY,EAAE,WAAW;AACvI"}