{"version":3,"file":"uploadPartExecutor.mjs","sources":["../../../../../../../src/providers/s3/apis/uploadData/multipart/uploadPartExecutor.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { calculateContentMd5 } from '../../../utils';\nimport { uploadPart } from '../../../utils/client';\nimport { logger } from '../../../../../utils';\nexport const uploadPartExecutor = async ({ dataChunkerGenerator, completedPartNumberSet, s3Config, abortSignal, bucket, finalKey, uploadId, onPartUploadCompletion, onProgress, isObjectLockEnabled, }) => {\n    let transferredBytes = 0;\n    for (const { data, partNumber, size } of dataChunkerGenerator) {\n        if (abortSignal.aborted) {\n            logger.debug('upload executor aborted.');\n            break;\n        }\n        if (completedPartNumberSet.has(partNumber)) {\n            logger.debug(`part ${partNumber} already uploaded.`);\n            transferredBytes += size;\n            onProgress?.({\n                transferredBytes,\n            });\n        }\n        else {\n            // handle cancel error\n            const { ETag: eTag } = await uploadPart({\n                ...s3Config,\n                abortSignal,\n                onUploadProgress: (event) => {\n                    const { transferredBytes: currentPartTransferredBytes } = event;\n                    onProgress?.({\n                        transferredBytes: transferredBytes + currentPartTransferredBytes,\n                    });\n                },\n            }, {\n                Bucket: bucket,\n                Key: finalKey,\n                UploadId: uploadId,\n                Body: data,\n                PartNumber: partNumber,\n                ContentMD5: isObjectLockEnabled\n                    ? await calculateContentMd5(data)\n                    : undefined,\n            });\n            transferredBytes += size;\n            // eTag will always be set even the S3 model interface marks it as optional.\n            onPartUploadCompletion(partNumber, eTag);\n        }\n    }\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAIY,MAAC,kBAAkB,GAAG,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,mBAAmB,GAAG,KAAK;AAC3M,IAAI,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAC7B,IAAI,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,oBAAoB,EAAE;AACnE,QAAQ,IAAI,WAAW,CAAC,OAAO,EAAE;AACjC,YAAY,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AACrD,YAAY,MAAM;AAClB,SAAS;AACT,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACpD,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACjE,YAAY,gBAAgB,IAAI,IAAI,CAAC;AACrC,YAAY,UAAU,GAAG;AACzB,gBAAgB,gBAAgB;AAChC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa;AACb;AACA,YAAY,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC;AACpD,gBAAgB,GAAG,QAAQ;AAC3B,gBAAgB,WAAW;AAC3B,gBAAgB,gBAAgB,EAAE,CAAC,KAAK,KAAK;AAC7C,oBAAoB,MAAM,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,GAAG,KAAK,CAAC;AACpF,oBAAoB,UAAU,GAAG;AACjC,wBAAwB,gBAAgB,EAAE,gBAAgB,GAAG,2BAA2B;AACxF,qBAAqB,CAAC,CAAC;AACvB,iBAAiB;AACjB,aAAa,EAAE;AACf,gBAAgB,MAAM,EAAE,MAAM;AAC9B,gBAAgB,GAAG,EAAE,QAAQ;AAC7B,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,UAAU,EAAE,UAAU;AACtC,gBAAgB,UAAU,EAAE,mBAAmB;AAC/C,sBAAsB,MAAM,mBAAmB,CAAC,IAAI,CAAC;AACrD,sBAAsB,SAAS;AAC/B,aAAa,CAAC,CAAC;AACf,YAAY,gBAAgB,IAAI,IAAI,CAAC;AACrC;AACA,YAAY,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACrD,SAAS;AACT,KAAK;AACL;;;;"}