/**
 * Minified by jsDelivr using Terser v5.48.0.
 * Original file: /npm/@smithy/middleware-compression@4.6.2/dist-cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const{booleanSelector:booleanSelector,SelectorType:SelectorType,numberSelector:numberSelector}=require("@smithy/core/config"),{setFeature:setFeature}=require("@smithy/core"),{HttpRequest:HttpRequest}=require("@smithy/core/protocols"),{compressStream:compressStream}=require("./compressStream"),{compressString:compressString}=require("./compressString"),{isArrayBuffer:isArrayBuffer}=require("@smithy/core/serde"),{normalizeProvider:normalizeProvider}=require("@smithy/core/client"),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=>booleanSelector(e,"AWS_DISABLE_REQUEST_COMPRESSION",SelectorType.ENV),configFileSelector:e=>booleanSelector(e,"disable_request_compression",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=>numberSelector(e,"AWS_REQUEST_MIN_COMPRESSION_SIZE_BYTES",SelectorType.ENV),configFileSelector:e=>numberSelector(e,"request_min_compression_size_bytes",SelectorType.CONFIG),default:10240};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(e),compressionMiddleware=(e,r)=>(o,s)=>async S=>{if(!HttpRequest.isInstance(S.request))return o(S);if(await e.disableRequestCompression())return o(S);const{request:i}=S,{body:E,headers:t}=i,{encodings:_,streamRequiresLength:n}=r;let O=E,I=t;for(const r of _)if(CLIENT_SUPPORTED_ALGORITHMS.includes(r)){let o=!1;if(isStreaming(E)){if(n)throw new Error("Compression is not supported for streaming blobs that require a length.");O=await compressStream(E),o=!0}else{const r=e.bodyLengthChecker(E),s=await e.requestMinCompressionSizeBytes();r&&r>=s&&(O=await compressString(E),o=!0)}if(o){I=t["content-encoding"]?{...t,"content-encoding":`${t["content-encoding"]}, ${r}`}:{...t,"content-encoding":r},I["content-encoding"].includes("gzip")&&setFeature(s,"GZIP_REQUEST_COMPRESSION","L");break}}return o({...S,request:{...i,body:O,headers:I}})},compressionMiddlewareOptions={name:"compressionMiddleware",step:"build",tags:["REQUEST_BODY_COMPRESSION","GZIP"],override:!0,priority:"high"},getCompressionPlugin=(e,r)=>({applyToStack:o=>{o.add(compressionMiddleware(e,r),compressionMiddlewareOptions)}}),resolveCompressionConfig=e=>{const{disableRequestCompression:r,requestMinCompressionSizeBytes:o}=e;return Object.assign(e,{disableRequestCompression:normalizeProvider(r),requestMinCompressionSizeBytes:async()=>{const e=await normalizeProvider(o)();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/d78a20bf207a96f5a7fde3d2d91be48a54e2a7b82cefd063b8071f48058b6f98.map