{"version":3,"file":"copyObject.mjs","sources":["../../../../../../../src/providers/s3/utils/client/s3data/copyObject.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, AmplifyUrlSearchParams, } from '@aws-amplify/core/internals/utils';\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { assignStringVariables, bothNilOrEqual, buildStorageServiceError, parseXmlBody, s3TransferHandler, serializeObjectConfigsToHeaders, serializePathnameObjectKey, validateS3RequiredParameter, } from '../utils';\nimport { IntegrityError } from '../../../../../errors/IntegrityError';\nimport { validateObjectUrl } from '../../validateObjectUrl';\nimport { defaultConfig, parseXmlError } from './base';\nconst copyObjectSerializer = async (input, endpoint) => {\n    const headers = {\n        ...(await serializeObjectConfigsToHeaders(input)),\n        ...assignStringVariables({\n            'x-amz-copy-source': input.CopySource,\n            'x-amz-metadata-directive': input.MetadataDirective,\n            'x-amz-tagging-directive': input.TaggingDirective,\n            'x-amz-copy-source-if-match': input.CopySourceIfMatch,\n            'x-amz-copy-source-if-unmodified-since': input.CopySourceIfUnmodifiedSince?.toUTCString(),\n            'x-amz-source-expected-bucket-owner': input.ExpectedSourceBucketOwner,\n            'x-amz-expected-bucket-owner': input.ExpectedBucketOwner,\n        }),\n    };\n    validateCopyObjectHeaders(input, headers);\n    const url = new AmplifyUrl(endpoint.url.toString());\n    validateS3RequiredParameter(!!input.Key, 'Key');\n    url.pathname = serializePathnameObjectKey(url, input.Key);\n    url.search = new AmplifyUrlSearchParams({\n        'x-id': 'CopyObject',\n    }).toString();\n    validateObjectUrl({\n        bucketName: input.Bucket,\n        key: input.Key,\n        objectURL: url,\n    });\n    return {\n        method: 'PUT',\n        headers,\n        url,\n    };\n};\nexport const validateCopyObjectHeaders = (input, headers) => {\n    const validations = [\n        headers['x-amz-copy-source'] === input.CopySource,\n        bothNilOrEqual(input.MetadataDirective, headers['x-amz-metadata-directive']),\n        bothNilOrEqual(input.TaggingDirective, headers['x-amz-tagging-directive']),\n        bothNilOrEqual(input.CopySourceIfMatch, headers['x-amz-copy-source-if-match']),\n        bothNilOrEqual(input.CopySourceIfUnmodifiedSince?.toUTCString(), headers['x-amz-copy-source-if-unmodified-since']),\n    ];\n    if (validations.some(validation => !validation)) {\n        throw new IntegrityError();\n    }\n};\nconst copyObjectDeserializer = async (response) => {\n    if (response.statusCode >= 300) {\n        // error is always set when statusCode >= 300\n        throw buildStorageServiceError((await parseXmlError(response)));\n    }\n    else {\n        await parseXmlBody(response);\n        return {\n            $metadata: parseMetadata(response),\n        };\n    }\n};\nexport const copyObject = composeServiceApi(s3TransferHandler, copyObjectSerializer, copyObjectDeserializer, { ...defaultConfig, responseType: 'text' });\n"],"names":[],"mappings":"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"}