UNPKG

2.77 kBSource Map (JSON)View Raw
1{"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../src/utils/headers.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAc,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,MAAkB,EAClB,eAA6B,YAAY,CAAC,IAAI,EAC9C,aAAqB,EAAE,EACvB,IAAI,GAAG,IAAI,IAAI,EAAE;IAIjB,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QACrC,OAAO;YACL,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC;YACpE,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE;SAClD,CAAC;KACH;IACD,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE/E,OAAO;QACL,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,GAAG;QAC1C,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,SAAiB,EACjB,MAAkB,EAClB,YAA0B,EAC1B,aAAqB,EAAE,EACvB,IAAI,GAAG,IAAI,IAAI,EAAE;IAEjB,MAAM,IAAI,GAAG,QAAQ,CAAC;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,MAAM,IAAI,GACR,MAAM,CAAC,WAAW,EAAE;QACpB,IAAI;QACJ,YAAY,CAAC,WAAW,EAAE;QAC1B,IAAI;QACJ,UAAU;QACV,IAAI;QACJ,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE;QAChC,IAAI;QACJ,EAAE;QACF,IAAI,CAAC;IAEP,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE3C,OAAO,kBAAkB,CAAC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;AACnF,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { hmac } from \"./hmac\";\nimport { HTTPMethod, ResourceType, Constants } from \"../common\";\n\nexport async function generateHeaders(\n masterKey: string,\n method: HTTPMethod,\n resourceType: ResourceType = ResourceType.none,\n resourceId: string = \"\",\n date = new Date()\n): Promise<{\n [x: string]: string;\n}> {\n if (masterKey.startsWith(\"type=sas&\")) {\n return {\n [Constants.HttpHeaders.Authorization]: encodeURIComponent(masterKey),\n [Constants.HttpHeaders.XDate]: date.toUTCString(),\n };\n }\n const sig = await signature(masterKey, method, resourceType, resourceId, date);\n\n return {\n [Constants.HttpHeaders.Authorization]: sig,\n [Constants.HttpHeaders.XDate]: date.toUTCString(),\n };\n}\n\nasync function signature(\n masterKey: string,\n method: HTTPMethod,\n resourceType: ResourceType,\n resourceId: string = \"\",\n date = new Date()\n): Promise<string> {\n const type = \"master\";\n const version = \"1.0\";\n const text =\n method.toLowerCase() +\n \"\\n\" +\n resourceType.toLowerCase() +\n \"\\n\" +\n resourceId +\n \"\\n\" +\n date.toUTCString().toLowerCase() +\n \"\\n\" +\n \"\" +\n \"\\n\";\n\n const signed = await hmac(masterKey, text);\n\n return encodeURIComponent(\"type=\" + type + \"&ver=\" + version + \"&sig=\" + signed);\n}\n"]}
\No newline at end of file