{"version":3,"file":"initialUpload.mjs","sources":["../../../../../../../../src/providers/s3/apis/internal/uploadData/multipart/initialUpload.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createMultipartUpload } from '../../../../utils/client/s3data';\nimport { logger } from '../../../../../../utils';\nimport { constructContentDisposition } from '../../../../utils/constructContentDisposition';\nimport { CHECKSUM_ALGORITHM_CRC32 } from '../../../../utils/constants';\nimport { getCombinedCrc32 } from '../../../../utils/getCombinedCrc32.native';\nimport { cacheMultipartUpload, findCachedUploadParts, getUploadsCacheKey, } from './uploadCache';\n/**\n * Load the in-progress multipart upload from local storage or async storage(RN) if it exists, or create a new multipart\n * upload.\n *\n * @internal\n */\nexport const loadOrCreateMultipartUpload = async ({ s3Config, data, size, contentType, bucket, accessLevel, keyPrefix, key, contentDisposition, contentEncoding, metadata, abortSignal, checksumAlgorithm, optionsHash, resumableUploadsCache, expectedBucketOwner, }) => {\n    const finalKey = keyPrefix !== undefined ? keyPrefix + key : key;\n    let cachedUpload;\n    if (!resumableUploadsCache) {\n        logger.debug('uploaded cache instance cannot be determined, skipping cache.');\n        cachedUpload = undefined;\n    }\n    else {\n        const uploadCacheKey = getUploadsCacheKey({\n            size,\n            contentType,\n            file: data instanceof File ? data : undefined,\n            bucket,\n            accessLevel,\n            key,\n            optionsHash,\n        });\n        const cachedUploadParts = await findCachedUploadParts({\n            s3Config,\n            cacheKey: uploadCacheKey,\n            bucket,\n            finalKey,\n            resumableUploadsCache,\n        });\n        cachedUpload = cachedUploadParts\n            ? { ...cachedUploadParts, uploadCacheKey }\n            : undefined;\n    }\n    if (cachedUpload) {\n        return {\n            uploadId: cachedUpload.uploadId,\n            cachedParts: cachedUpload.parts,\n            finalCrc32: cachedUpload.finalCrc32,\n        };\n    }\n    else {\n        const finalCrc32 = checksumAlgorithm === CHECKSUM_ALGORITHM_CRC32\n            ? await getCombinedCrc32(data, size)\n            : undefined;\n        const { UploadId } = await createMultipartUpload({\n            ...s3Config,\n            abortSignal,\n        }, {\n            Bucket: bucket,\n            Key: finalKey,\n            ContentType: contentType,\n            ContentDisposition: constructContentDisposition(contentDisposition),\n            ContentEncoding: contentEncoding,\n            Metadata: metadata,\n            ChecksumAlgorithm: finalCrc32 ? 'CRC32' : undefined,\n            ExpectedBucketOwner: expectedBucketOwner,\n        });\n        if (resumableUploadsCache) {\n            const uploadCacheKey = getUploadsCacheKey({\n                size,\n                contentType,\n                file: data instanceof File ? data : undefined,\n                bucket,\n                accessLevel,\n                key,\n                optionsHash,\n            });\n            await cacheMultipartUpload(resumableUploadsCache, uploadCacheKey, {\n                uploadId: UploadId,\n                bucket,\n                key,\n                finalCrc32,\n                fileName: data instanceof File ? data.name : '',\n            });\n        }\n        return {\n            uploadId: UploadId,\n            cachedParts: [],\n            finalCrc32,\n        };\n    }\n};\n"],"names":[],"mappings":"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"}