@aws-sdk/middleware-user-agent 3.29.0 → 3.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,44 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.36.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.35.0...v3.36.0) (2021-10-08)
7
+
8
+
9
+ ### Features
10
+
11
+ * publish files in dist-* only ([#2873](https://github.com/aws/aws-sdk-js-v3/issues/2873)) ([53b4243](https://github.com/aws/aws-sdk-js-v3/commit/53b4243b066f25ff2412d5f0dea1036054b2df32))
12
+
13
+
14
+
15
+
16
+
17
+ # [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
18
+
19
+ **Note:** Version bump only for package @aws-sdk/middleware-user-agent
20
+
21
+
22
+
23
+
24
+
25
+ # [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
26
+
27
+
28
+ ### Features
29
+
30
+ * **non-clients:** remove comments from transpiled JS files ([#2813](https://github.com/aws/aws-sdk-js-v3/issues/2813)) ([e6fc7f3](https://github.com/aws/aws-sdk-js-v3/commit/e6fc7f3e0fa74785590ac19e7ed143c916bb9b6e))
31
+
32
+
33
+
34
+
35
+
36
+ # [3.32.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.31.0...v3.32.0) (2021-09-17)
37
+
38
+ **Note:** Version bump only for package @aws-sdk/middleware-user-agent
39
+
40
+
41
+
42
+
43
+
6
44
  # [3.29.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.28.0...v3.29.0) (2021-09-02)
7
45
 
8
46
  **Note:** Version bump only for package @aws-sdk/middleware-user-agent
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveUserAgentConfig = void 0;
4
+ function resolveUserAgentConfig(input) {
5
+ return {
6
+ ...input,
7
+ customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent,
8
+ };
9
+ }
10
+ exports.resolveUserAgentConfig = resolveUserAgentConfig;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UA_ESCAPE_REGEX = exports.SPACE = exports.X_AMZ_USER_AGENT = exports.USER_AGENT = void 0;
4
+ exports.USER_AGENT = "user-agent";
5
+ exports.X_AMZ_USER_AGENT = "x-amz-user-agent";
6
+ exports.SPACE = " ";
7
+ exports.UA_ESCAPE_REGEX = /[^\!\#\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./configurations"), exports);
5
+ tslib_1.__exportStar(require("./user-agent-middleware"), exports);
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUserAgentPlugin = exports.getUserAgentMiddlewareOptions = exports.userAgentMiddleware = void 0;
4
+ const protocol_http_1 = require("@aws-sdk/protocol-http");
5
+ const constants_1 = require("./constants");
6
+ const userAgentMiddleware = (options) => (next, context) => async (args) => {
7
+ var _a, _b;
8
+ const { request } = args;
9
+ if (!protocol_http_1.HttpRequest.isInstance(request))
10
+ return next(args);
11
+ const { headers } = request;
12
+ const userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];
13
+ const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);
14
+ const customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];
15
+ const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(constants_1.SPACE);
16
+ const normalUAValue = [
17
+ ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")),
18
+ ...customUserAgent,
19
+ ].join(constants_1.SPACE);
20
+ if (options.runtime !== "browser") {
21
+ if (normalUAValue) {
22
+ headers[constants_1.X_AMZ_USER_AGENT] = headers[constants_1.X_AMZ_USER_AGENT]
23
+ ? `${headers[constants_1.USER_AGENT]} ${normalUAValue}`
24
+ : normalUAValue;
25
+ }
26
+ headers[constants_1.USER_AGENT] = sdkUserAgentValue;
27
+ }
28
+ else {
29
+ headers[constants_1.X_AMZ_USER_AGENT] = sdkUserAgentValue;
30
+ }
31
+ return next({
32
+ ...args,
33
+ request,
34
+ });
35
+ };
36
+ exports.userAgentMiddleware = userAgentMiddleware;
37
+ const escapeUserAgent = ([name, version]) => {
38
+ const prefixSeparatorIndex = name.indexOf("/");
39
+ const prefix = name.substring(0, prefixSeparatorIndex);
40
+ let uaName = name.substring(prefixSeparatorIndex + 1);
41
+ if (prefix === "api") {
42
+ uaName = uaName.toLowerCase();
43
+ }
44
+ return [prefix, uaName, version]
45
+ .filter((item) => item && item.length > 0)
46
+ .map((item) => item === null || item === void 0 ? void 0 : item.replace(constants_1.UA_ESCAPE_REGEX, "_"))
47
+ .join("/");
48
+ };
49
+ exports.getUserAgentMiddlewareOptions = {
50
+ name: "getUserAgentMiddleware",
51
+ step: "build",
52
+ priority: "low",
53
+ tags: ["SET_USER_AGENT", "USER_AGENT"],
54
+ override: true,
55
+ };
56
+ const getUserAgentPlugin = (config) => ({
57
+ applyToStack: (clientStack) => {
58
+ clientStack.add(exports.userAgentMiddleware(config), exports.getUserAgentMiddlewareOptions);
59
+ },
60
+ });
61
+ exports.getUserAgentPlugin = getUserAgentPlugin;
@@ -0,0 +1,4 @@
1
+ import { __assign } from "tslib";
2
+ export function resolveUserAgentConfig(input) {
3
+ return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent });
4
+ }
@@ -0,0 +1,4 @@
1
+ export var USER_AGENT = "user-agent";
2
+ export var X_AMZ_USER_AGENT = "x-amz-user-agent";
3
+ export var SPACE = " ";
4
+ export var UA_ESCAPE_REGEX = /[^\!\#\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
File without changes
@@ -0,0 +1,64 @@
1
+ import { __assign, __awaiter, __generator, __read, __spreadArray } from "tslib";
2
+ import { HttpRequest } from "@aws-sdk/protocol-http";
3
+ import { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from "./constants";
4
+ export var userAgentMiddleware = function (options) {
5
+ return function (next, context) {
6
+ return function (args) { return __awaiter(void 0, void 0, void 0, function () {
7
+ var request, headers, userAgent, defaultUserAgent, customUserAgent, sdkUserAgentValue, normalUAValue;
8
+ var _a, _b;
9
+ return __generator(this, function (_c) {
10
+ switch (_c.label) {
11
+ case 0:
12
+ request = args.request;
13
+ if (!HttpRequest.isInstance(request))
14
+ return [2, next(args)];
15
+ headers = request.headers;
16
+ userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];
17
+ return [4, options.defaultUserAgentProvider()];
18
+ case 1:
19
+ defaultUserAgent = (_c.sent()).map(escapeUserAgent);
20
+ customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];
21
+ sdkUserAgentValue = __spreadArray(__spreadArray(__spreadArray([], __read(defaultUserAgent)), __read(userAgent)), __read(customUserAgent)).join(SPACE);
22
+ normalUAValue = __spreadArray(__spreadArray([], __read(defaultUserAgent.filter(function (section) { return section.startsWith("aws-sdk-"); }))), __read(customUserAgent)).join(SPACE);
23
+ if (options.runtime !== "browser") {
24
+ if (normalUAValue) {
25
+ headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]
26
+ ? headers[USER_AGENT] + " " + normalUAValue
27
+ : normalUAValue;
28
+ }
29
+ headers[USER_AGENT] = sdkUserAgentValue;
30
+ }
31
+ else {
32
+ headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;
33
+ }
34
+ return [2, next(__assign(__assign({}, args), { request: request }))];
35
+ }
36
+ });
37
+ }); };
38
+ };
39
+ };
40
+ var escapeUserAgent = function (_a) {
41
+ var _b = __read(_a, 2), name = _b[0], version = _b[1];
42
+ var prefixSeparatorIndex = name.indexOf("/");
43
+ var prefix = name.substring(0, prefixSeparatorIndex);
44
+ var uaName = name.substring(prefixSeparatorIndex + 1);
45
+ if (prefix === "api") {
46
+ uaName = uaName.toLowerCase();
47
+ }
48
+ return [prefix, uaName, version]
49
+ .filter(function (item) { return item && item.length > 0; })
50
+ .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, "_"); })
51
+ .join("/");
52
+ };
53
+ export var getUserAgentMiddlewareOptions = {
54
+ name: "getUserAgentMiddleware",
55
+ step: "build",
56
+ priority: "low",
57
+ tags: ["SET_USER_AGENT", "USER_AGENT"],
58
+ override: true,
59
+ };
60
+ export var getUserAgentPlugin = function (config) { return ({
61
+ applyToStack: function (clientStack) {
62
+ clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);
63
+ },
64
+ }); };
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,42 +1,46 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-user-agent",
3
- "version": "3.29.0",
3
+ "version": "3.36.0",
4
4
  "scripts": {
5
+ "build": "yarn build:cjs && yarn build:es && yarn build:types",
5
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
6
7
  "build:es": "tsc -p tsconfig.es.json",
7
- "build": "yarn build:es && yarn build:cjs",
8
- "downlevel-dts": "downlevel-dts dist/types dist/types/ts3.4",
8
+ "build:types": "tsc -p tsconfig.types.json",
9
+ "downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4",
9
10
  "test": "jest --passWithNoTests"
10
11
  },
11
- "main": "./dist/cjs/index.js",
12
- "module": "./dist/es/index.js",
13
- "types": "./dist/types/index.d.ts",
12
+ "main": "./dist-cjs/index.js",
13
+ "module": "./dist-es/index.js",
14
+ "types": "./dist-types/index.d.ts",
14
15
  "author": {
15
16
  "name": "AWS SDK for JavaScript Team",
16
17
  "url": "https://aws.amazon.com/javascript/"
17
18
  },
18
19
  "license": "Apache-2.0",
19
20
  "dependencies": {
20
- "@aws-sdk/protocol-http": "3.29.0",
21
- "@aws-sdk/types": "3.29.0",
21
+ "@aws-sdk/protocol-http": "3.36.0",
22
+ "@aws-sdk/types": "3.36.0",
22
23
  "tslib": "^2.3.0"
23
24
  },
24
25
  "devDependencies": {
25
- "@aws-sdk/middleware-stack": "3.29.0",
26
+ "@aws-sdk/middleware-stack": "3.36.0",
26
27
  "@types/jest": "^26.0.4",
27
28
  "jest": "^26.1.0",
28
- "typescript": "~4.4.2"
29
+ "typescript": "~4.3.5"
29
30
  },
30
31
  "engines": {
31
32
  "node": ">= 10.0.0"
32
33
  },
33
34
  "typesVersions": {
34
35
  "<4.0": {
35
- "dist/types/*": [
36
- "dist/types/ts3.4/*"
36
+ "dist-types/*": [
37
+ "dist-types/ts3.4/*"
37
38
  ]
38
39
  }
39
40
  },
41
+ "files": [
42
+ "dist-*"
43
+ ],
40
44
  "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/middleware-user-agent",
41
45
  "repository": {
42
46
  "type": "git",
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveUserAgentConfig = void 0;
4
- function resolveUserAgentConfig(input) {
5
- return {
6
- ...input,
7
- customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent,
8
- };
9
- }
10
- exports.resolveUserAgentConfig = resolveUserAgentConfig;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLFNBQWdCLHNCQUFzQixDQUNwQyxLQUFvRDtJQUVwRCxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsZUFBZSxFQUFFLE9BQU8sS0FBSyxDQUFDLGVBQWUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWU7S0FDL0csQ0FBQztBQUNKLENBQUM7QUFQRCx3REFPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBVc2VyQWdlbnQgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckFnZW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIGN1c3RvbSB1c2VyIGFnZW50IGhlYWRlciB0aGF0IHdvdWxkIGJlIGFwcGVuZGVkIHRvIGRlZmF1bHQgb25lXG4gICAqL1xuICBjdXN0b21Vc2VyQWdlbnQ/OiBzdHJpbmcgfCBVc2VyQWdlbnQ7XG59XG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBQcm92aWRlcjxVc2VyQWdlbnQ+O1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBwcm92aWRlciBwb3B1bGF0aW5nIGRlZmF1bHQgdHJhY2tpbmcgaW5mb3JtYXRpb24gdG8gYmUgc2VudCB3aXRoIGB1c2VyLWFnZW50YCwgYHgtYW16LXVzZXItYWdlbnRgIGhlYWRlci5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBkZWZhdWx0VXNlckFnZW50UHJvdmlkZXI6IFByb3ZpZGVyPFVzZXJBZ2VudD47XG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHVzZXIgYWdlbnQgaGVhZGVyIHRoYXQgd291bGQgYmUgYXBwZW5kZWQgdG8gZGVmYXVsdCBvbmVcbiAgICovXG4gIGN1c3RvbVVzZXJBZ2VudD86IFVzZXJBZ2VudDtcbiAgLyoqXG4gICAqIFRoZSBydW50aW1lIGVudmlyb25tZW50XG4gICAqL1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBVc2VyQWdlbnRJbnB1dENvbmZpZ1xuKTogVCAmIFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBpbnB1dC5jdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2lucHV0LmN1c3RvbVVzZXJBZ2VudF1dIDogaW5wdXQuY3VzdG9tVXNlckFnZW50LFxuICB9O1xufVxuIl19
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UA_ESCAPE_REGEX = exports.SPACE = exports.X_AMZ_USER_AGENT = exports.USER_AGENT = void 0;
4
- exports.USER_AGENT = "user-agent";
5
- exports.X_AMZ_USER_AGENT = "x-amz-user-agent";
6
- exports.SPACE = " ";
7
- exports.UA_ESCAPE_REGEX = /[^\!\#\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFFMUIsUUFBQSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV0QyxRQUFBLEtBQUssR0FBRyxHQUFHLENBQUM7QUFFWixRQUFBLGVBQWUsR0FBRyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBVU0VSX0FHRU5UID0gXCJ1c2VyLWFnZW50XCI7XG5cbmV4cG9ydCBjb25zdCBYX0FNWl9VU0VSX0FHRU5UID0gXCJ4LWFtei11c2VyLWFnZW50XCI7XG5cbmV4cG9ydCBjb25zdCBTUEFDRSA9IFwiIFwiO1xuXG5leHBvcnQgY29uc3QgVUFfRVNDQVBFX1JFR0VYID0gL1teXFwhXFwjXFwkXFwlXFwmXFwnXFwqXFwrXFwtXFwuXFxeXFxfXFxgXFx8XFx+XFxkXFx3XS9nO1xuIl19
package/dist/cjs/index.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./configurations"), exports);
5
- (0, tslib_1.__exportStar)(require("./user-agent-middleware"), exports);
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0VBQWlDO0FBQ2pDLHVFQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLWFnZW50LW1pZGRsZXdhcmVcIjtcbiJdfQ==
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUserAgentPlugin = exports.getUserAgentMiddlewareOptions = exports.userAgentMiddleware = void 0;
4
- const protocol_http_1 = require("@aws-sdk/protocol-http");
5
- const constants_1 = require("./constants");
6
- /**
7
- * Build user agent header sections from:
8
- * 1. runtime-specific default user agent provider;
9
- * 2. custom user agent from `customUserAgent` client config;
10
- * 3. handler execution context set by internal SDK components;
11
- * The built user agent will be set to `x-amz-user-agent` header for ALL the
12
- * runtimes.
13
- * Please note that any override to the `user-agent` or `x-amz-user-agent` header
14
- * in the HTTP request is discouraged. Please use `customUserAgent` client
15
- * config or middleware setting the `userAgent` context to generate desired user
16
- * agent.
17
- */
18
- const userAgentMiddleware = (options) => (next, context) => async (args) => {
19
- var _a, _b;
20
- const { request } = args;
21
- if (!protocol_http_1.HttpRequest.isInstance(request))
22
- return next(args);
23
- const { headers } = request;
24
- const userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];
25
- const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);
26
- const customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];
27
- // Set value to AWS-specific user agent header
28
- const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(constants_1.SPACE);
29
- // Get value to be sent with non-AWS-specific user agent header.
30
- const normalUAValue = [
31
- ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")),
32
- ...customUserAgent,
33
- ].join(constants_1.SPACE);
34
- if (options.runtime !== "browser") {
35
- if (normalUAValue) {
36
- headers[constants_1.X_AMZ_USER_AGENT] = headers[constants_1.X_AMZ_USER_AGENT]
37
- ? `${headers[constants_1.USER_AGENT]} ${normalUAValue}`
38
- : normalUAValue;
39
- }
40
- headers[constants_1.USER_AGENT] = sdkUserAgentValue;
41
- }
42
- else {
43
- headers[constants_1.X_AMZ_USER_AGENT] = sdkUserAgentValue;
44
- }
45
- return next({
46
- ...args,
47
- request,
48
- });
49
- };
50
- exports.userAgentMiddleware = userAgentMiddleware;
51
- /**
52
- * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.
53
- * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.
54
- * @private
55
- */
56
- const escapeUserAgent = ([name, version]) => {
57
- const prefixSeparatorIndex = name.indexOf("/");
58
- const prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just ""
59
- let uaName = name.substring(prefixSeparatorIndex + 1);
60
- if (prefix === "api") {
61
- uaName = uaName.toLowerCase();
62
- }
63
- return [prefix, uaName, version]
64
- .filter((item) => item && item.length > 0)
65
- .map((item) => item === null || item === void 0 ? void 0 : item.replace(constants_1.UA_ESCAPE_REGEX, "_"))
66
- .join("/");
67
- };
68
- exports.getUserAgentMiddlewareOptions = {
69
- name: "getUserAgentMiddleware",
70
- step: "build",
71
- priority: "low",
72
- tags: ["SET_USER_AGENT", "USER_AGENT"],
73
- override: true,
74
- };
75
- const getUserAgentPlugin = (config) => ({
76
- applyToStack: (clientStack) => {
77
- clientStack.add((0, exports.userAgentMiddleware)(config), exports.getUserAgentMiddlewareOptions);
78
- },
79
- });
80
- exports.getUserAgentPlugin = getUserAgentPlugin;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBcUQ7QUFjckQsMkNBQW1GO0FBRW5GOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksTUFBTSxtQkFBbUIsR0FDOUIsQ0FBQyxPQUFnQyxFQUFFLEVBQUUsQ0FDckMsQ0FDRSxJQUE0QixFQUM1QixPQUFnQyxFQUNSLEVBQUUsQ0FDNUIsS0FBSyxFQUFFLElBQWdDLEVBQXVDLEVBQUU7O0lBQzlFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDekIsSUFBSSxDQUFDLDJCQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDNUIsTUFBTSxTQUFTLEdBQUcsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxTQUFTLDBDQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSSxFQUFFLENBQUM7SUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekYsTUFBTSxlQUFlLEdBQUcsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxlQUFlLDBDQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSSxFQUFFLENBQUM7SUFFN0UsOENBQThDO0lBQzlDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFLLENBQUMsQ0FBQztJQUM5RixnRUFBZ0U7SUFDaEUsTUFBTSxhQUFhLEdBQUc7UUFDcEIsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsR0FBRyxlQUFlO0tBQ25CLENBQUMsSUFBSSxDQUFDLGlCQUFLLENBQUMsQ0FBQztJQUVkLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7UUFDakMsSUFBSSxhQUFhLEVBQUU7WUFDakIsT0FBTyxDQUFDLDRCQUFnQixDQUFDLEdBQUcsT0FBTyxDQUFDLDRCQUFnQixDQUFDO2dCQUNuRCxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsc0JBQVUsQ0FBQyxJQUFJLGFBQWEsRUFBRTtnQkFDM0MsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUNuQjtRQUNELE9BQU8sQ0FBQyxzQkFBVSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7S0FDekM7U0FBTTtRQUNMLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO0tBQy9DO0lBRUQsT0FBTyxJQUFJLENBQUM7UUFDVixHQUFHLElBQUk7UUFDUCxPQUFPO0tBQ1IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBckNTLFFBQUEsbUJBQW1CLHVCQXFDNUI7QUFFSjs7OztHQUlHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQWdCLEVBQVUsRUFBRTtJQUNqRSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztJQUMxRixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RELElBQUksTUFBTSxLQUFLLEtBQUssRUFBRTtRQUNwQixNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQy9CO0lBQ0QsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sQ0FBQywyQkFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVXLFFBQUEsNkJBQTZCLEdBQTJDO0lBQ25GLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLE9BQU87SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztJQUN0QyxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFSyxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBK0IsRUFBdUIsRUFBRSxDQUFDLENBQUM7SUFDM0YsWUFBWSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDNUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFBLDJCQUFtQixFQUFDLE1BQU0sQ0FBQyxFQUFFLHFDQUE2QixDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUpVLFFBQUEsa0JBQWtCLHNCQUk1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxuICBVc2VyQWdlbnRQYWlyLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgVXNlckFnZW50UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuaW1wb3J0IHsgU1BBQ0UsIFVBX0VTQ0FQRV9SRUdFWCwgVVNFUl9BR0VOVCwgWF9BTVpfVVNFUl9BR0VOVCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEJ1aWxkIHVzZXIgYWdlbnQgaGVhZGVyIHNlY3Rpb25zIGZyb206XG4gKiAxLiBydW50aW1lLXNwZWNpZmljIGRlZmF1bHQgdXNlciBhZ2VudCBwcm92aWRlcjtcbiAqIDIuIGN1c3RvbSB1c2VyIGFnZW50IGZyb20gYGN1c3RvbVVzZXJBZ2VudGAgY2xpZW50IGNvbmZpZztcbiAqIDMuIGhhbmRsZXIgZXhlY3V0aW9uIGNvbnRleHQgc2V0IGJ5IGludGVybmFsIFNESyBjb21wb25lbnRzO1xuICogVGhlIGJ1aWx0IHVzZXIgYWdlbnQgd2lsbCBiZSBzZXQgdG8gYHgtYW16LXVzZXItYWdlbnRgIGhlYWRlciBmb3IgQUxMIHRoZVxuICogcnVudGltZXMuXG4gKiBQbGVhc2Ugbm90ZSB0aGF0IGFueSBvdmVycmlkZSB0byB0aGUgYHVzZXItYWdlbnRgIG9yIGB4LWFtei11c2VyLWFnZW50YCBoZWFkZXJcbiAqIGluIHRoZSBIVFRQIHJlcXVlc3QgaXMgZGlzY291cmFnZWQuIFBsZWFzZSB1c2UgYGN1c3RvbVVzZXJBZ2VudGAgY2xpZW50XG4gKiBjb25maWcgb3IgbWlkZGxld2FyZSBzZXR0aW5nIHRoZSBgdXNlckFnZW50YCBjb250ZXh0IHRvIGdlbmVyYXRlIGRlc2lyZWQgdXNlclxuICogYWdlbnQuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VyQWdlbnRNaWRkbGV3YXJlID1cbiAgKG9wdGlvbnM6IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnKSA9PlxuICA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIGFueT4sXG4gICAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbiAgKTogQnVpbGRIYW5kbGVyPGFueSwgYW55PiA9PlxuICBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgY29uc3QgeyBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgIGNvbnN0IHVzZXJBZ2VudCA9IGNvbnRleHQ/LnVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG4gICAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgICBjb25zdCBjdXN0b21Vc2VyQWdlbnQgPSBvcHRpb25zPy5jdXN0b21Vc2VyQWdlbnQ/Lm1hcChlc2NhcGVVc2VyQWdlbnQpIHx8IFtdO1xuXG4gICAgLy8gU2V0IHZhbHVlIHRvIEFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlclxuICAgIGNvbnN0IHNka1VzZXJBZ2VudFZhbHVlID0gWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XS5qb2luKFNQQUNFKTtcbiAgICAvLyBHZXQgdmFsdWUgdG8gYmUgc2VudCB3aXRoIG5vbi1BV1Mtc3BlY2lmaWMgdXNlciBhZ2VudCBoZWFkZXIuXG4gICAgY29uc3Qgbm9ybWFsVUFWYWx1ZSA9IFtcbiAgICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgICAuLi5jdXN0b21Vc2VyQWdlbnQsXG4gICAgXS5qb2luKFNQQUNFKTtcblxuICAgIGlmIChvcHRpb25zLnJ1bnRpbWUgIT09IFwiYnJvd3NlclwiKSB7XG4gICAgICBpZiAobm9ybWFsVUFWYWx1ZSkge1xuICAgICAgICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXVxuICAgICAgICAgID8gYCR7aGVhZGVyc1tVU0VSX0FHRU5UXX0gJHtub3JtYWxVQVZhbHVlfWBcbiAgICAgICAgICA6IG5vcm1hbFVBVmFsdWU7XG4gICAgICB9XG4gICAgICBoZWFkZXJzW1VTRVJfQUdFTlRdID0gc2RrVXNlckFnZW50VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAuLi5hcmdzLFxuICAgICAgcmVxdWVzdCxcbiAgICB9KTtcbiAgfTtcblxuLyoqXG4gKiBFc2NhcGUgdGhlIGVhY2ggcGFpciBhY2NvcmRpbmcgdG8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzUyMzQgYW5kIGpvaW4gdGhlIHBhaXIgd2l0aCBwYXR0ZXJuIGBuYW1lL3ZlcnNpb25gLlxuICogVXNlciBhZ2VudCBuYW1lIG1heSBpbmNsdWRlIHByZWZpeCBsaWtlIGBtZC9gLCBgYXBpL2AsIGBvcy9gIGV0Yy4sIHdlIHNob3VsZCBub3QgZXNjYXBlIHRoZSBgL2AgYWZ0ZXIgdGhlIHByZWZpeC5cbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IGVzY2FwZVVzZXJBZ2VudCA9IChbbmFtZSwgdmVyc2lvbl06IFVzZXJBZ2VudFBhaXIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwcmVmaXhTZXBhcmF0b3JJbmRleCA9IG5hbWUuaW5kZXhPZihcIi9cIik7XG4gIGNvbnN0IHByZWZpeCA9IG5hbWUuc3Vic3RyaW5nKDAsIHByZWZpeFNlcGFyYXRvckluZGV4KTsgLy8gSWYgbm8gcHJlZml4LCBwcmVmaXggaXMganVzdCBcIlwiXG4gIGxldCB1YU5hbWUgPSBuYW1lLnN1YnN0cmluZyhwcmVmaXhTZXBhcmF0b3JJbmRleCArIDEpO1xuICBpZiAocHJlZml4ID09PSBcImFwaVwiKSB7XG4gICAgdWFOYW1lID0gdWFOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcmV0dXJuIFtwcmVmaXgsIHVhTmFtZSwgdmVyc2lvbl1cbiAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtICYmIGl0ZW0ubGVuZ3RoID4gMClcbiAgICAubWFwKChpdGVtKSA9PiBpdGVtPy5yZXBsYWNlKFVBX0VTQ0FQRV9SRUdFWCwgXCJfXCIpKVxuICAgIC5qb2luKFwiL1wiKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9uczogQnVpbGRIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24gPSB7XG4gIG5hbWU6IFwiZ2V0VXNlckFnZW50TWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHByaW9yaXR5OiBcImxvd1wiLFxuICB0YWdzOiBbXCJTRVRfVVNFUl9BR0VOVFwiLCBcIlVTRVJfQUdFTlRcIl0sXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJBZ2VudFBsdWdpbiA9IChjb25maWc6IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZCh1c2VyQWdlbnRNaWRkbGV3YXJlKGNvbmZpZyksIGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19
@@ -1,5 +0,0 @@
1
- import { __assign } from "tslib";
2
- export function resolveUserAgentConfig(input) {
3
- return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent });
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQTBCQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQW9EO0lBRXBELDZCQUNLLEtBQUssS0FDUixlQUFlLEVBQUUsT0FBTyxLQUFLLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUM5RztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVXNlckFnZW50IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdXNlciBhZ2VudCBoZWFkZXIgdGhhdCB3b3VsZCBiZSBhcHBlbmRlZCB0byBkZWZhdWx0IG9uZVxuICAgKi9cbiAgY3VzdG9tVXNlckFnZW50Pzogc3RyaW5nIHwgVXNlckFnZW50O1xufVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgcHJvdmlkZXIgcG9wdWxhdGluZyBkZWZhdWx0IHRyYWNraW5nIGluZm9ybWF0aW9uIHRvIGJlIHNlbnQgd2l0aCBgdXNlci1hZ2VudGAsIGB4LWFtei11c2VyLWFnZW50YCBoZWFkZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyOiBQcm92aWRlcjxVc2VyQWdlbnQ+O1xuICAvKipcbiAgICogVGhlIGN1c3RvbSB1c2VyIGFnZW50IGhlYWRlciB0aGF0IHdvdWxkIGJlIGFwcGVuZGVkIHRvIGRlZmF1bHQgb25lXG4gICAqL1xuICBjdXN0b21Vc2VyQWdlbnQ/OiBVc2VyQWdlbnQ7XG4gIC8qKlxuICAgKiBUaGUgcnVudGltZSBlbnZpcm9ubWVudFxuICAgKi9cbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVVc2VyQWdlbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgVXNlckFnZW50SW5wdXRDb25maWdcbik6IFQgJiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgY3VzdG9tVXNlckFnZW50OiB0eXBlb2YgaW5wdXQuY3VzdG9tVXNlckFnZW50ID09PSBcInN0cmluZ1wiID8gW1tpbnB1dC5jdXN0b21Vc2VyQWdlbnRdXSA6IGlucHV0LmN1c3RvbVVzZXJBZ2VudCxcbiAgfTtcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- export var USER_AGENT = "user-agent";
2
- export var X_AMZ_USER_AGENT = "x-amz-user-agent";
3
- export var SPACE = " ";
4
- export var UA_ESCAPE_REGEX = /[^\!\#\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFNQQUNFID0gXCIgXCI7XG5cbmV4cG9ydCBjb25zdCBVQV9FU0NBUEVfUkVHRVggPSAvW15cXCFcXCNcXCRcXCVcXCZcXCdcXCpcXCtcXC1cXC5cXF5cXF9cXGBcXHxcXH5cXGRcXHddL2c7XG4iXX0=
package/dist/es/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from "./configurations";
2
- export * from "./user-agent-middleware";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3VzZXItYWdlbnQtbWlkZGxld2FyZVwiO1xuIl19
@@ -1,82 +0,0 @@
1
- import { __assign, __awaiter, __generator, __read, __spreadArray } from "tslib";
2
- import { HttpRequest } from "@aws-sdk/protocol-http";
3
- import { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from "./constants";
4
- /**
5
- * Build user agent header sections from:
6
- * 1. runtime-specific default user agent provider;
7
- * 2. custom user agent from `customUserAgent` client config;
8
- * 3. handler execution context set by internal SDK components;
9
- * The built user agent will be set to `x-amz-user-agent` header for ALL the
10
- * runtimes.
11
- * Please note that any override to the `user-agent` or `x-amz-user-agent` header
12
- * in the HTTP request is discouraged. Please use `customUserAgent` client
13
- * config or middleware setting the `userAgent` context to generate desired user
14
- * agent.
15
- */
16
- export var userAgentMiddleware = function (options) {
17
- return function (next, context) {
18
- return function (args) { return __awaiter(void 0, void 0, void 0, function () {
19
- var request, headers, userAgent, defaultUserAgent, customUserAgent, sdkUserAgentValue, normalUAValue;
20
- var _a, _b;
21
- return __generator(this, function (_c) {
22
- switch (_c.label) {
23
- case 0:
24
- request = args.request;
25
- if (!HttpRequest.isInstance(request))
26
- return [2 /*return*/, next(args)];
27
- headers = request.headers;
28
- userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];
29
- return [4 /*yield*/, options.defaultUserAgentProvider()];
30
- case 1:
31
- defaultUserAgent = (_c.sent()).map(escapeUserAgent);
32
- customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];
33
- sdkUserAgentValue = __spreadArray(__spreadArray(__spreadArray([], __read(defaultUserAgent), false), __read(userAgent), false), __read(customUserAgent), false).join(SPACE);
34
- normalUAValue = __spreadArray(__spreadArray([], __read(defaultUserAgent.filter(function (section) { return section.startsWith("aws-sdk-"); })), false), __read(customUserAgent), false).join(SPACE);
35
- if (options.runtime !== "browser") {
36
- if (normalUAValue) {
37
- headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]
38
- ? headers[USER_AGENT] + " " + normalUAValue
39
- : normalUAValue;
40
- }
41
- headers[USER_AGENT] = sdkUserAgentValue;
42
- }
43
- else {
44
- headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;
45
- }
46
- return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];
47
- }
48
- });
49
- }); };
50
- };
51
- };
52
- /**
53
- * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.
54
- * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.
55
- * @private
56
- */
57
- var escapeUserAgent = function (_a) {
58
- var _b = __read(_a, 2), name = _b[0], version = _b[1];
59
- var prefixSeparatorIndex = name.indexOf("/");
60
- var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just ""
61
- var uaName = name.substring(prefixSeparatorIndex + 1);
62
- if (prefix === "api") {
63
- uaName = uaName.toLowerCase();
64
- }
65
- return [prefix, uaName, version]
66
- .filter(function (item) { return item && item.length > 0; })
67
- .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, "_"); })
68
- .join("/");
69
- };
70
- export var getUserAgentMiddlewareOptions = {
71
- name: "getUserAgentMiddleware",
72
- step: "build",
73
- priority: "low",
74
- tags: ["SET_USER_AGENT", "USER_AGENT"],
75
- override: true,
76
- };
77
- export var getUserAgentPlugin = function (config) { return ({
78
- applyToStack: function (clientStack) {
79
- clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);
80
- },
81
- }); };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBY3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUM5QixVQUFDLE9BQWdDO0lBQ2pDLE9BQUEsVUFDRSxJQUE0QixFQUM1QixPQUFnQztRQUVsQyxPQUFBLFVBQU8sSUFBZ0M7Ozs7Ozt3QkFDN0IsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO3dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7NEJBQUUsc0JBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDO3dCQUNoRCxPQUFPLEdBQUssT0FBTyxRQUFaLENBQWE7d0JBQ3RCLFNBQVMsR0FBRyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsMENBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFJLEVBQUUsQ0FBQzt3QkFDdkMscUJBQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUE7O3dCQUE1RCxnQkFBZ0IsR0FBRyxDQUFDLFNBQXdDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO3dCQUNsRixlQUFlLEdBQUcsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxlQUFlLDBDQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSSxFQUFFLENBQUM7d0JBR3ZFLGlCQUFpQixHQUFHLHFEQUFJLGdCQUFnQixrQkFBSyxTQUFTLGtCQUFLLGVBQWUsVUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBRXhGLGFBQWEsR0FBRyx1Q0FDakIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxrQkFDcEUsZUFBZSxVQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBRWQsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTs0QkFDakMsSUFBSSxhQUFhLEVBQUU7Z0NBQ2pCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztvQ0FDbkQsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBSSxhQUFlO29DQUMzQyxDQUFDLENBQUMsYUFBYSxDQUFDOzZCQUNuQjs0QkFDRCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7eUJBQ3pDOzZCQUFNOzRCQUNMLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO3lCQUMvQzt3QkFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7YUFDSjtJQS9CRCxDQStCQztBQW5DRCxDQW1DQyxDQUFDO0FBRUo7Ozs7R0FJRztBQUNILElBQU0sZUFBZSxHQUFHLFVBQUMsRUFBOEI7UUFBOUIsS0FBQSxhQUE4QixFQUE3QixJQUFJLFFBQUEsRUFBRSxPQUFPLFFBQUE7SUFDckMsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7SUFDMUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7UUFDcEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUMvQjtJQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztTQUM3QixNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQXZCLENBQXVCLENBQUM7U0FDekMsR0FBRyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQW5DLENBQW1DLENBQUM7U0FDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sNkJBQTZCLEdBQTJDO0lBQ25GLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLE9BQU87SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztJQUN0QyxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLE1BQStCLElBQTBCLE9BQUEsQ0FBQztJQUMzRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQyxFQUowRixDQUkxRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFVzZXJBZ2VudFBhaXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5pbXBvcnQgeyBTUEFDRSwgVUFfRVNDQVBFX1JFR0VYLCBVU0VSX0FHRU5ULCBYX0FNWl9VU0VSX0FHRU5UIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQnVpbGQgdXNlciBhZ2VudCBoZWFkZXIgc2VjdGlvbnMgZnJvbTpcbiAqIDEuIHJ1bnRpbWUtc3BlY2lmaWMgZGVmYXVsdCB1c2VyIGFnZW50IHByb3ZpZGVyO1xuICogMi4gY3VzdG9tIHVzZXIgYWdlbnQgZnJvbSBgY3VzdG9tVXNlckFnZW50YCBjbGllbnQgY29uZmlnO1xuICogMy4gaGFuZGxlciBleGVjdXRpb24gY29udGV4dCBzZXQgYnkgaW50ZXJuYWwgU0RLIGNvbXBvbmVudHM7XG4gKiBUaGUgYnVpbHQgdXNlciBhZ2VudCB3aWxsIGJlIHNldCB0byBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyIGZvciBBTEwgdGhlXG4gKiBydW50aW1lcy5cbiAqIFBsZWFzZSBub3RlIHRoYXQgYW55IG92ZXJyaWRlIHRvIHRoZSBgdXNlci1hZ2VudGAgb3IgYHgtYW16LXVzZXItYWdlbnRgIGhlYWRlclxuICogaW4gdGhlIEhUVFAgcmVxdWVzdCBpcyBkaXNjb3VyYWdlZC4gUGxlYXNlIHVzZSBgY3VzdG9tVXNlckFnZW50YCBjbGllbnRcbiAqIGNvbmZpZyBvciBtaWRkbGV3YXJlIHNldHRpbmcgdGhlIGB1c2VyQWdlbnRgIGNvbnRleHQgdG8gZ2VuZXJhdGUgZGVzaXJlZCB1c2VyXG4gKiBhZ2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZXJBZ2VudE1pZGRsZXdhcmUgPVxuICAob3B0aW9uczogVXNlckFnZW50UmVzb2x2ZWRDb25maWcpID0+XG4gIDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4oXG4gICAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgYW55PixcbiAgICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuICApOiBCdWlsZEhhbmRsZXI8YW55LCBhbnk+ID0+XG4gIGFzeW5jIChhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55Pik6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSByZXR1cm4gbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBkZWZhdWx0VXNlckFnZW50ID0gKGF3YWl0IG9wdGlvbnMuZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKCkpLm1hcChlc2NhcGVVc2VyQWdlbnQpO1xuICAgIGNvbnN0IGN1c3RvbVVzZXJBZ2VudCA9IG9wdGlvbnM/LmN1c3RvbVVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG5cbiAgICAvLyBTZXQgdmFsdWUgdG8gQVdTLXNwZWNpZmljIHVzZXIgYWdlbnQgaGVhZGVyXG4gICAgY29uc3Qgc2RrVXNlckFnZW50VmFsdWUgPSBbLi4uZGVmYXVsdFVzZXJBZ2VudCwgLi4udXNlckFnZW50LCAuLi5jdXN0b21Vc2VyQWdlbnRdLmpvaW4oU1BBQ0UpO1xuICAgIC8vIEdldCB2YWx1ZSB0byBiZSBzZW50IHdpdGggbm9uLUFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlci5cbiAgICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgICAgLi4uZGVmYXVsdFVzZXJBZ2VudC5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24uc3RhcnRzV2l0aChcImF3cy1zZGstXCIpKSxcbiAgICAgIC4uLmN1c3RvbVVzZXJBZ2VudCxcbiAgICBdLmpvaW4oU1BBQ0UpO1xuXG4gICAgaWYgKG9wdGlvbnMucnVudGltZSAhPT0gXCJicm93c2VyXCIpIHtcbiAgICAgIGlmIChub3JtYWxVQVZhbHVlKSB7XG4gICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdXG4gICAgICAgICAgPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YFxuICAgICAgICAgIDogbm9ybWFsVUFWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGhlYWRlcnNbVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IHNka1VzZXJBZ2VudFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xuXG4vKipcbiAqIEVzY2FwZSB0aGUgZWFjaCBwYWlyIGFjY29yZGluZyB0byBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTIzNCBhbmQgam9pbiB0aGUgcGFpciB3aXRoIHBhdHRlcm4gYG5hbWUvdmVyc2lvbmAuXG4gKiBVc2VyIGFnZW50IG5hbWUgbWF5IGluY2x1ZGUgcHJlZml4IGxpa2UgYG1kL2AsIGBhcGkvYCwgYG9zL2AgZXRjLiwgd2Ugc2hvdWxkIG5vdCBlc2NhcGUgdGhlIGAvYCBhZnRlciB0aGUgcHJlZml4LlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgZXNjYXBlVXNlckFnZW50ID0gKFtuYW1lLCB2ZXJzaW9uXTogVXNlckFnZW50UGFpcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHByZWZpeFNlcGFyYXRvckluZGV4ID0gbmFtZS5pbmRleE9mKFwiL1wiKTtcbiAgY29uc3QgcHJlZml4ID0gbmFtZS5zdWJzdHJpbmcoMCwgcHJlZml4U2VwYXJhdG9ySW5kZXgpOyAvLyBJZiBubyBwcmVmaXgsIHByZWZpeCBpcyBqdXN0IFwiXCJcbiAgbGV0IHVhTmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeFNlcGFyYXRvckluZGV4ICsgMSk7XG4gIGlmIChwcmVmaXggPT09IFwiYXBpXCIpIHtcbiAgICB1YU5hbWUgPSB1YU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgfVxuICByZXR1cm4gW3ByZWZpeCwgdWFOYW1lLCB2ZXJzaW9uXVxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gJiYgaXRlbS5sZW5ndGggPiAwKVxuICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0/LnJlcGxhY2UoVUFfRVNDQVBFX1JFR0VYLCBcIl9cIikpXG4gICAgLmpvaW4oXCIvXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJnZXRVc2VyQWdlbnRNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiYnVpbGRcIixcbiAgcHJpb3JpdHk6IFwibG93XCIsXG4gIHRhZ3M6IFtcIlNFVF9VU0VSX0FHRU5UXCIsIFwiVVNFUl9BR0VOVFwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50UGx1Z2luID0gKGNvbmZpZzogVXNlckFnZW50UmVzb2x2ZWRDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHVzZXJBZ2VudE1pZGRsZXdhcmUoY29uZmlnKSwgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { Provider, UserAgent } from "@aws-sdk/types";
2
- export interface UserAgentInputConfig {
3
- /**
4
- * The custom user agent header that would be appended to default one
5
- */
6
- customUserAgent?: string | UserAgent;
7
- }
8
- interface PreviouslyResolved {
9
- defaultUserAgentProvider: Provider<UserAgent>;
10
- runtime: string;
11
- }
12
- export interface UserAgentResolvedConfig {
13
- /**
14
- * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header.
15
- * @internal
16
- */
17
- defaultUserAgentProvider: Provider<UserAgent>;
18
- /**
19
- * The custom user agent header that would be appended to default one
20
- */
21
- customUserAgent?: UserAgent;
22
- /**
23
- * The runtime environment
24
- */
25
- runtime: string;
26
- }
27
- export function resolveUserAgentConfig<T>(
28
- input: T & PreviouslyResolved & UserAgentInputConfig
29
- ): T & UserAgentResolvedConfig {
30
- return {
31
- ...input,
32
- customUserAgent: typeof input.customUserAgent === "string" ? [[input.customUserAgent]] : input.customUserAgent,
33
- };
34
- }
package/src/constants.ts DELETED
@@ -1,7 +0,0 @@
1
- export const USER_AGENT = "user-agent";
2
-
3
- export const X_AMZ_USER_AGENT = "x-amz-user-agent";
4
-
5
- export const SPACE = " ";
6
-
7
- export const UA_ESCAPE_REGEX = /[^\!\#\$\%\&\'\*\+\-\.\^\_\`\|\~\d\w]/g;
@@ -1,98 +0,0 @@
1
- import { HttpRequest } from "@aws-sdk/protocol-http";
2
- import {
3
- AbsoluteLocation,
4
- BuildHandler,
5
- BuildHandlerArguments,
6
- BuildHandlerOptions,
7
- BuildHandlerOutput,
8
- HandlerExecutionContext,
9
- MetadataBearer,
10
- Pluggable,
11
- UserAgentPair,
12
- } from "@aws-sdk/types";
13
-
14
- import { UserAgentResolvedConfig } from "./configurations";
15
- import { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from "./constants";
16
-
17
- /**
18
- * Build user agent header sections from:
19
- * 1. runtime-specific default user agent provider;
20
- * 2. custom user agent from `customUserAgent` client config;
21
- * 3. handler execution context set by internal SDK components;
22
- * The built user agent will be set to `x-amz-user-agent` header for ALL the
23
- * runtimes.
24
- * Please note that any override to the `user-agent` or `x-amz-user-agent` header
25
- * in the HTTP request is discouraged. Please use `customUserAgent` client
26
- * config or middleware setting the `userAgent` context to generate desired user
27
- * agent.
28
- */
29
- export const userAgentMiddleware =
30
- (options: UserAgentResolvedConfig) =>
31
- <Output extends MetadataBearer>(
32
- next: BuildHandler<any, any>,
33
- context: HandlerExecutionContext
34
- ): BuildHandler<any, any> =>
35
- async (args: BuildHandlerArguments<any>): Promise<BuildHandlerOutput<Output>> => {
36
- const { request } = args;
37
- if (!HttpRequest.isInstance(request)) return next(args);
38
- const { headers } = request;
39
- const userAgent = context?.userAgent?.map(escapeUserAgent) || [];
40
- const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);
41
- const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];
42
-
43
- // Set value to AWS-specific user agent header
44
- const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(SPACE);
45
- // Get value to be sent with non-AWS-specific user agent header.
46
- const normalUAValue = [
47
- ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")),
48
- ...customUserAgent,
49
- ].join(SPACE);
50
-
51
- if (options.runtime !== "browser") {
52
- if (normalUAValue) {
53
- headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]
54
- ? `${headers[USER_AGENT]} ${normalUAValue}`
55
- : normalUAValue;
56
- }
57
- headers[USER_AGENT] = sdkUserAgentValue;
58
- } else {
59
- headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;
60
- }
61
-
62
- return next({
63
- ...args,
64
- request,
65
- });
66
- };
67
-
68
- /**
69
- * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.
70
- * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.
71
- * @private
72
- */
73
- const escapeUserAgent = ([name, version]: UserAgentPair): string => {
74
- const prefixSeparatorIndex = name.indexOf("/");
75
- const prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just ""
76
- let uaName = name.substring(prefixSeparatorIndex + 1);
77
- if (prefix === "api") {
78
- uaName = uaName.toLowerCase();
79
- }
80
- return [prefix, uaName, version]
81
- .filter((item) => item && item.length > 0)
82
- .map((item) => item?.replace(UA_ESCAPE_REGEX, "_"))
83
- .join("/");
84
- };
85
-
86
- export const getUserAgentMiddlewareOptions: BuildHandlerOptions & AbsoluteLocation = {
87
- name: "getUserAgentMiddleware",
88
- step: "build",
89
- priority: "low",
90
- tags: ["SET_USER_AGENT", "USER_AGENT"],
91
- override: true,
92
- };
93
-
94
- export const getUserAgentPlugin = (config: UserAgentResolvedConfig): Pluggable<any, any> => ({
95
- applyToStack: (clientStack) => {
96
- clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);
97
- },
98
- });
package/tsconfig.cjs.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "declarationDir": "./dist/types",
4
- "rootDir": "./src",
5
- "outDir": "./dist/cjs",
6
- "baseUrl": "."
7
- },
8
- "extends": "../../tsconfig.cjs.json",
9
- "include": ["src/"]
10
- }
package/tsconfig.es.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "lib": ["es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"],
4
- "declarationDir": "./dist/types",
5
- "rootDir": "./src",
6
- "outDir": "./dist/es",
7
- "baseUrl": "."
8
- },
9
- "extends": "../../tsconfig.es.json",
10
- "include": ["src/"]
11
- }