124 lines
4.7 KiB
JavaScript
124 lines
4.7 KiB
JavaScript
|
"use strict";
|
||
|
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, {
|
||
|
getUserAgentMiddlewareOptions: () => getUserAgentMiddlewareOptions,
|
||
|
getUserAgentPlugin: () => getUserAgentPlugin,
|
||
|
resolveUserAgentConfig: () => resolveUserAgentConfig,
|
||
|
userAgentMiddleware: () => userAgentMiddleware
|
||
|
});
|
||
|
module.exports = __toCommonJS(src_exports);
|
||
|
|
||
|
// src/configurations.ts
|
||
|
function resolveUserAgentConfig(input) {
|
||
|
return {
|
||
|
...input,
|
||
|
customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent
|
||
|
};
|
||
|
}
|
||
|
__name(resolveUserAgentConfig, "resolveUserAgentConfig");
|
||
|
|
||
|
// src/user-agent-middleware.ts
|
||
|
var import_util_endpoints = require("@aws-sdk/util-endpoints");
|
||
|
var import_protocol_http = require("@smithy/protocol-http");
|
||
|
|
||
|
// src/constants.ts
|
||
|
var USER_AGENT = "user-agent";
|
||
|
var X_AMZ_USER_AGENT = "x-amz-user-agent";
|
||
|
var SPACE = " ";
|
||
|
var UA_NAME_SEPARATOR = "/";
|
||
|
var UA_NAME_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
|
||
|
var UA_VALUE_ESCAPE_REGEX = /[^\!\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w\#]/g;
|
||
|
var UA_ESCAPE_CHAR = "-";
|
||
|
|
||
|
// src/user-agent-middleware.ts
|
||
|
var userAgentMiddleware = /* @__PURE__ */ __name((options) => (next, context) => async (args) => {
|
||
|
var _a, _b;
|
||
|
const { request } = args;
|
||
|
if (!import_protocol_http.HttpRequest.isInstance(request))
|
||
|
return next(args);
|
||
|
const { headers } = request;
|
||
|
const userAgent = ((_a = context == null ? void 0 : context.userAgent) == null ? void 0 : _a.map(escapeUserAgent)) || [];
|
||
|
const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);
|
||
|
const customUserAgent = ((_b = options == null ? void 0 : options.customUserAgent) == null ? void 0 : _b.map(escapeUserAgent)) || [];
|
||
|
const prefix = (0, import_util_endpoints.getUserAgentPrefix)();
|
||
|
const sdkUserAgentValue = (prefix ? [prefix] : []).concat([...defaultUserAgent, ...userAgent, ...customUserAgent]).join(SPACE);
|
||
|
const normalUAValue = [
|
||
|
...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")),
|
||
|
...customUserAgent
|
||
|
].join(SPACE);
|
||
|
if (options.runtime !== "browser") {
|
||
|
if (normalUAValue) {
|
||
|
headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;
|
||
|
}
|
||
|
headers[USER_AGENT] = sdkUserAgentValue;
|
||
|
} else {
|
||
|
headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;
|
||
|
}
|
||
|
return next({
|
||
|
...args,
|
||
|
request
|
||
|
});
|
||
|
}, "userAgentMiddleware");
|
||
|
var escapeUserAgent = /* @__PURE__ */ __name((userAgentPair) => {
|
||
|
var _a;
|
||
|
const name = userAgentPair[0].split(UA_NAME_SEPARATOR).map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)).join(UA_NAME_SEPARATOR);
|
||
|
const version = (_a = userAgentPair[1]) == null ? void 0 : _a.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);
|
||
|
const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);
|
||
|
const prefix = name.substring(0, prefixSeparatorIndex);
|
||
|
let uaName = name.substring(prefixSeparatorIndex + 1);
|
||
|
if (prefix === "api") {
|
||
|
uaName = uaName.toLowerCase();
|
||
|
}
|
||
|
return [prefix, uaName, version].filter((item) => item && item.length > 0).reduce((acc, item, index) => {
|
||
|
switch (index) {
|
||
|
case 0:
|
||
|
return item;
|
||
|
case 1:
|
||
|
return `${acc}/${item}`;
|
||
|
default:
|
||
|
return `${acc}#${item}`;
|
||
|
}
|
||
|
}, "");
|
||
|
}, "escapeUserAgent");
|
||
|
var getUserAgentMiddlewareOptions = {
|
||
|
name: "getUserAgentMiddleware",
|
||
|
step: "build",
|
||
|
priority: "low",
|
||
|
tags: ["SET_USER_AGENT", "USER_AGENT"],
|
||
|
override: true
|
||
|
};
|
||
|
var getUserAgentPlugin = /* @__PURE__ */ __name((config) => ({
|
||
|
applyToStack: (clientStack) => {
|
||
|
clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);
|
||
|
}
|
||
|
}), "getUserAgentPlugin");
|
||
|
// Annotate the CommonJS export names for ESM import in node:
|
||
|
|
||
|
0 && (module.exports = {
|
||
|
resolveUserAgentConfig,
|
||
|
userAgentMiddleware,
|
||
|
getUserAgentMiddlewareOptions,
|
||
|
getUserAgentPlugin
|
||
|
});
|
||
|
|