var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { contentLengthMiddleware: () => contentLengthMiddleware, contentLengthMiddlewareOptions: () => contentLengthMiddlewareOptions, getContentLengthPlugin: () => getContentLengthPlugin }); module.exports = __toCommonJS(src_exports); var import_protocol_http = require("@smithy/protocol-http"); var CONTENT_LENGTH_HEADER = "content-length"; function contentLengthMiddleware(bodyLengthChecker) { return (next) => async (args) => { const request = args.request; if (import_protocol_http.HttpRequest.isInstance(request)) { const { body, headers } = request; if (body && Object.keys(headers).map((str) => str.toLowerCase()).indexOf(CONTENT_LENGTH_HEADER) === -1) { try { const length = bodyLengthChecker(body); request.headers = { ...request.headers, [CONTENT_LENGTH_HEADER]: String(length) }; } catch (error) { } } } return next({ ...args, request }); }; } __name(contentLengthMiddleware, "contentLengthMiddleware"); var contentLengthMiddlewareOptions = { step: "build", tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], name: "contentLengthMiddleware", override: true }; var getContentLengthPlugin = /* @__PURE__ */ __name((options) => ({ applyToStack: (clientStack) => { clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions); } }), "getContentLengthPlugin"); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { contentLengthMiddleware, contentLengthMiddlewareOptions, getContentLengthPlugin });