/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@smithy/middleware-compression@4.3.45/dist-cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var utilConfigProvider=require("@smithy/util-config-provider"),core=require("@smithy/core"),protocolHttp=require("@smithy/protocol-http"),zlib=require("zlib"),utilUtf8=require("@smithy/util-utf8"),util=require("util"),isArrayBuffer=require("@smithy/is-array-buffer"),utilMiddleware=require("@smithy/util-middleware");const NODE_DISABLE_REQUEST_COMPRESSION_ENV_NAME="AWS_DISABLE_REQUEST_COMPRESSION",NODE_DISABLE_REQUEST_COMPRESSION_INI_NAME="disable_request_compression",DEFAULT_DISABLE_REQUEST_COMPRESSION=!1,NODE_DISABLE_REQUEST_COMPRESSION_CONFIG_OPTIONS={environmentVariableSelector:e=>utilConfigProvider.booleanSelector(e,"AWS_DISABLE_REQUEST_COMPRESSION",utilConfigProvider.SelectorType.ENV),configFileSelector:e=>utilConfigProvider.booleanSelector(e,"disable_request_compression",utilConfigProvider.SelectorType.CONFIG),default:false},NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_ENV_NAME="AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES",NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_INI_NAME="request_min_compression_size_bytes",DEFAULT_NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES=10240,NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_CONFIG_OPTIONS={environmentVariableSelector:e=>utilConfigProvider.numberSelector(e,"AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES",utilConfigProvider.SelectorType.ENV),configFileSelector:e=>utilConfigProvider.numberSelector(e,"request_min_compression_size_bytes",utilConfigProvider.SelectorType.CONFIG),default:10240},compressStream=async e=>e.pipe(zlib.createGzip()),gzipAsync=util.promisify(zlib.gzip),compressString=async e=>{try{const r=await gzipAsync(utilUtf8.toUint8Array(e||""));return utilUtf8.toUint8Array(r)}catch(e){throw new Error("Failure during compression: "+e.message)}};var CompressionAlgorithm;!function(e){e.GZIP="gzip"}(CompressionAlgorithm||(CompressionAlgorithm={}));const CLIENT_SUPPORTED_ALGORITHMS=[CompressionAlgorithm.GZIP],isStreaming=e=>void 0!==e&&"string"!=typeof e&&!ArrayBuffer.isView(e)&&!isArrayBuffer.isArrayBuffer(e),compressionMiddleware=(e,r)=>(i,o)=>async s=>{if(!protocolHttp.HttpRequest.isInstance(s.request))return i(s);if(await e.disableRequestCompression())return i(s);const{request:t}=s,{body:E,headers:S}=t,{encodings:_,streamRequiresLength:n}=r;let O=E,l=S;for(const r of _)if(CLIENT_SUPPORTED_ALGORITHMS.includes(r)){let i=!1;if(isStreaming(E)){if(n)throw new Error("Compression is not supported for streaming blobs that require a length.");O=await compressStream(E),i=!0}else{const r=e.bodyLengthChecker(E),o=await e.requestMinCompressionSizeBytes();r&&r>=o&&(O=await compressString(E),i=!0)}if(i){l=S["content-encoding"]?{...S,"content-encoding":`${S["content-encoding"]}, ${r}`}:{...S,"content-encoding":r},l["content-encoding"].includes("gzip")&&core.setFeature(o,"GZIP_REQUEST_COMPRESSION","L");break}}return i({...s,request:{...t,body:O,headers:l}})},compressionMiddlewareOptions={name:"compressionMiddleware",step:"build",tags:["REQUEST_BODY_COMPRESSION","GZIP"],override:!0,priority:"high"},getCompressionPlugin=(e,r)=>({applyToStack:i=>{i.add(compressionMiddleware(e,r),compressionMiddlewareOptions)}}),resolveCompressionConfig=e=>{const{disableRequestCompression:r,requestMinCompressionSizeBytes:i}=e;return Object.assign(e,{disableRequestCompression:utilMiddleware.normalizeProvider(r),requestMinCompressionSizeBytes:async()=>{const e=await utilMiddleware.normalizeProvider(i)();if(e<0||e>10485760)throw new RangeError(`The value for requestMinCompressionSizeBytes must be between 0 and 10485760 inclusive. The provided value ${e} is outside this range."`);return e}})};exports.DEFAULT_DISABLE_REQUEST_COMPRESSION=false,exports.DEFAULT_NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES=10240,exports.NODE_DISABLE_REQUEST_COMPRESSION_CONFIG_OPTIONS=NODE_DISABLE_REQUEST_COMPRESSION_CONFIG_OPTIONS,exports.NODE_DISABLE_REQUEST_COMPRESSION_ENV_NAME="AWS_DISABLE_REQUEST_COMPRESSION",exports.NODE_DISABLE_REQUEST_COMPRESSION_INI_NAME="disable_request_compression",exports.NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_CONFIG_OPTIONS=NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_CONFIG_OPTIONS,exports.NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_ENV_NAME="AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES",exports.NODE_REQUEST_MIN_COMPRESSION_SIZE_BYTES_INI_NAME="request_min_compression_size_bytes",exports.compressionMiddleware=compressionMiddleware,exports.compressionMiddlewareOptions=compressionMiddlewareOptions,exports.getCompressionPlugin=getCompressionPlugin,exports.resolveCompressionConfig=resolveCompressionConfig;
//# sourceMappingURL=/sm/3ad576d72ade3c7dbe588556504058721602f49a55d5118bd22ee65d3d3f258e.map