{"version":3,"file":"middleware.mjs","sources":["../../../../../src/clients/middleware/signing/middleware.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { signRequest } from './signer/signatureV4';\nimport { getSkewCorrectedDate } from './utils/getSkewCorrectedDate';\nimport { getUpdatedSystemClockOffset } from './utils/getUpdatedSystemClockOffset';\n/**\n * Middleware that SigV4 signs request with AWS credentials, and correct system clock offset.\n * This middleware is expected to be placed after retry middleware.\n */\nexport const signingMiddlewareFactory = ({ credentials, region, service, uriEscapePath = true, }) => {\n    let currentSystemClockOffset;\n    return (next, context) => async function signingMiddleware(request) {\n        currentSystemClockOffset = currentSystemClockOffset ?? 0;\n        const signRequestOptions = {\n            credentials: typeof credentials === 'function'\n                ? await credentials({\n                    forceRefresh: !!context?.isCredentialsExpired,\n                })\n                : credentials,\n            signingDate: getSkewCorrectedDate(currentSystemClockOffset),\n            signingRegion: region,\n            signingService: service,\n            uriEscapePath,\n        };\n        const signedRequest = await signRequest(request, signRequestOptions);\n        const response = await next(signedRequest);\n        // Update system clock offset if response contains date header, regardless of the status code.\n        // non-2xx response will still be returned from next handler instead of thrown, because it's\n        // only thrown by the retry middleware.\n        const dateString = getDateHeader(response);\n        if (dateString) {\n            currentSystemClockOffset = getUpdatedSystemClockOffset(Date.parse(dateString), currentSystemClockOffset);\n        }\n        return response;\n    };\n};\nconst getDateHeader = ({ headers } = {}) => headers?.date ?? headers?.Date ?? headers?.['x-amz-date'];\n"],"names":[],"mappings":";;;;;;AAAA;AACA;AAIA;AACA;AACA;AACA;AACY,MAAC,wBAAwB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,KAAK;AACrG,IAAI,IAAI,wBAAwB;AAChC,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK,eAAe,iBAAiB,CAAC,OAAO,EAAE;AACxE,QAAQ,wBAAwB,GAAG,wBAAwB,IAAI,CAAC;AAChE,QAAQ,MAAM,kBAAkB,GAAG;AACnC,YAAY,WAAW,EAAE,OAAO,WAAW,KAAK;AAChD,kBAAkB,MAAM,WAAW,CAAC;AACpC,oBAAoB,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,oBAAoB;AACjE,iBAAiB;AACjB,kBAAkB,WAAW;AAC7B,YAAY,WAAW,EAAE,oBAAoB,CAAC,wBAAwB,CAAC;AACvE,YAAY,aAAa,EAAE,MAAM;AACjC,YAAY,cAAc,EAAE,OAAO;AACnC,YAAY,aAAa;AACzB,SAAS;AACT,QAAQ,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC;AAC5E,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;AAClD;AACA;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;AAClD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,wBAAwB,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,wBAAwB,CAAC;AACpH,QAAQ;AACR,QAAQ,OAAO,QAAQ;AACvB,IAAI,CAAC;AACL;AACA,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC;;;;"}