@aws-sdk/middleware-user-agent 3.34.0 → 3.38.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,41 @@
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.38.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.37.0...v3.38.0) (2021-10-22)
7
+
8
+ **Note:** Version bump only for package @aws-sdk/middleware-user-agent
9
+
10
+
11
+
12
+
13
+
14
+ # [3.37.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.36.1...v3.37.0) (2021-10-15)
15
+
16
+ **Note:** Version bump only for package @aws-sdk/middleware-user-agent
17
+
18
+
19
+
20
+
21
+
22
+ # [3.36.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.35.0...v3.36.0) (2021-10-08)
23
+
24
+
25
+ ### Features
26
+
27
+ * 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))
28
+
29
+
30
+
31
+
32
+
33
+ # [3.35.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.34.0...v3.35.0) (2021-10-04)
34
+
35
+ **Note:** Version bump only for package @aws-sdk/middleware-user-agent
36
+
37
+
38
+
39
+
40
+
6
41
  # [3.34.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.33.0...v3.34.0) (2021-09-24)
7
42
 
8
43
 
@@ -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
@@ -1,8 +1,6 @@
1
1
  import { Provider, UserAgent } from "@aws-sdk/types";
2
2
  export interface UserAgentInputConfig {
3
- /**
4
- * The custom user agent header that would be appended to default one
5
- */
3
+
6
4
  customUserAgent?: string | UserAgent;
7
5
  }
8
6
  interface PreviouslyResolved {
@@ -10,18 +8,11 @@ interface PreviouslyResolved {
10
8
  runtime: string;
11
9
  }
12
10
  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
- */
11
+
17
12
  defaultUserAgentProvider: Provider<UserAgent>;
18
- /**
19
- * The custom user agent header that would be appended to default one
20
- */
13
+
21
14
  customUserAgent?: UserAgent;
22
- /**
23
- * The runtime environment
24
- */
15
+
25
16
  runtime: string;
26
17
  }
27
18
  export declare function resolveUserAgentConfig<T>(input: T & PreviouslyResolved & UserAgentInputConfig): T & UserAgentResolvedConfig;
File without changes
File without changes
@@ -1,17 +1,6 @@
1
1
  import { AbsoluteLocation, BuildHandler, BuildHandlerOptions, HandlerExecutionContext, MetadataBearer, Pluggable } from "@aws-sdk/types";
2
2
  import { UserAgentResolvedConfig } from "./configurations";
3
- /**
4
- * Build user agent header sections from:
5
- * 1. runtime-specific default user agent provider;
6
- * 2. custom user agent from `customUserAgent` client config;
7
- * 3. handler execution context set by internal SDK components;
8
- * The built user agent will be set to `x-amz-user-agent` header for ALL the
9
- * runtimes.
10
- * Please note that any override to the `user-agent` or `x-amz-user-agent` header
11
- * in the HTTP request is discouraged. Please use `customUserAgent` client
12
- * config or middleware setting the `userAgent` context to generate desired user
13
- * agent.
14
- */
3
+
15
4
  export declare const userAgentMiddleware: (options: UserAgentResolvedConfig) => <Output extends MetadataBearer>(next: BuildHandler<any, any>, context: HandlerExecutionContext) => BuildHandler<any, any>;
16
5
  export declare const getUserAgentMiddlewareOptions: BuildHandlerOptions & AbsoluteLocation;
17
6
  export declare const getUserAgentPlugin: (config: UserAgentResolvedConfig) => Pluggable<any, any>;
package/package.json CHANGED
@@ -1,29 +1,29 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-user-agent",
3
- "version": "3.34.0",
3
+ "version": "3.38.0",
4
4
  "scripts": {
5
5
  "build": "yarn build:cjs && yarn build:es && yarn build:types",
6
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
7
7
  "build:es": "tsc -p tsconfig.es.json",
8
8
  "build:types": "tsc -p tsconfig.types.json",
9
- "downlevel-dts": "downlevel-dts dist/types dist/types/ts3.4",
9
+ "downlevel-dts": "downlevel-dts dist-types dist-types/ts3.4",
10
10
  "test": "jest --passWithNoTests"
11
11
  },
12
- "main": "./dist/cjs/index.js",
13
- "module": "./dist/es/index.js",
14
- "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",
15
15
  "author": {
16
16
  "name": "AWS SDK for JavaScript Team",
17
17
  "url": "https://aws.amazon.com/javascript/"
18
18
  },
19
19
  "license": "Apache-2.0",
20
20
  "dependencies": {
21
- "@aws-sdk/protocol-http": "3.34.0",
22
- "@aws-sdk/types": "3.34.0",
21
+ "@aws-sdk/protocol-http": "3.38.0",
22
+ "@aws-sdk/types": "3.38.0",
23
23
  "tslib": "^2.3.0"
24
24
  },
25
25
  "devDependencies": {
26
- "@aws-sdk/middleware-stack": "3.34.0",
26
+ "@aws-sdk/middleware-stack": "3.38.0",
27
27
  "@types/jest": "^26.0.4",
28
28
  "jest": "^26.1.0",
29
29
  "typescript": "~4.3.5"
@@ -33,11 +33,14 @@
33
33
  },
34
34
  "typesVersions": {
35
35
  "<4.0": {
36
- "dist/types/*": [
37
- "dist/types/ts3.4/*"
36
+ "dist-types/*": [
37
+ "dist-types/ts3.4/*"
38
38
  ]
39
39
  }
40
40
  },
41
+ "files": [
42
+ "dist-*"
43
+ ],
41
44
  "homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages/middleware-user-agent",
42
45
  "repository": {
43
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
- tslib_1.__exportStar(require("./configurations"), exports);
5
- tslib_1.__exportStar(require("./user-agent-middleware"), exports);
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQWlDO0FBQ2pDLGtFQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91c2VyLWFnZW50LW1pZGRsZXdhcmVcIjtcbiJdfQ==
@@ -1,62 +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
- 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;
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwREFBcUQ7QUFjckQsMkNBQW1GO0FBYzVFLE1BQU0sbUJBQW1CLEdBQzlCLENBQUMsT0FBZ0MsRUFBRSxFQUFFLENBQ3JDLENBQ0UsSUFBNEIsRUFDNUIsT0FBZ0MsRUFDUixFQUFFLENBQzVCLEtBQUssRUFBRSxJQUFnQyxFQUF1QyxFQUFFOztJQUM5RSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLElBQUksQ0FBQywyQkFBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzVCLE1BQU0sU0FBUyxHQUFHLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUywwQ0FBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUksRUFBRSxDQUFDO0lBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sZUFBZSxHQUFHLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUksRUFBRSxDQUFDO0lBRzdFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFLLENBQUMsQ0FBQztJQUU5RixNQUFNLGFBQWEsR0FBRztRQUNwQixHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RSxHQUFHLGVBQWU7S0FDbkIsQ0FBQyxJQUFJLENBQUMsaUJBQUssQ0FBQyxDQUFDO0lBRWQsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtRQUNqQyxJQUFJLGFBQWEsRUFBRTtZQUNqQixPQUFPLENBQUMsNEJBQWdCLENBQUMsR0FBRyxPQUFPLENBQUMsNEJBQWdCLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxzQkFBVSxDQUFDLElBQUksYUFBYSxFQUFFO2dCQUMzQyxDQUFDLENBQUMsYUFBYSxDQUFDO1NBQ25CO1FBQ0QsT0FBTyxDQUFDLHNCQUFVLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztLQUN6QztTQUFNO1FBQ0wsT0FBTyxDQUFDLDRCQUFnQixDQUFDLEdBQUcsaUJBQWlCLENBQUM7S0FDL0M7SUFFRCxPQUFPLElBQUksQ0FBQztRQUNWLEdBQUcsSUFBSTtRQUNQLE9BQU87S0FDUixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFyQ1MsUUFBQSxtQkFBbUIsdUJBcUM1QjtBQU9KLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFnQixFQUFVLEVBQUU7SUFDakUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdkQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7UUFDcEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUMvQjtJQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztTQUM3QixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN6QyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPLENBQUMsMkJBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFVyxRQUFBLDZCQUE2QixHQUEyQztJQUNuRixJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLElBQUksRUFBRSxPQUFPO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7SUFDdEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUssTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE1BQStCLEVBQXVCLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLFlBQVksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQzVCLFdBQVcsQ0FBQyxHQUFHLENBQUMsMkJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUscUNBQTZCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBSlUsUUFBQSxrQkFBa0Isc0JBSTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFVzZXJBZ2VudFBhaXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5pbXBvcnQgeyBTUEFDRSwgVUFfRVNDQVBFX1JFR0VYLCBVU0VSX0FHRU5ULCBYX0FNWl9VU0VSX0FHRU5UIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQnVpbGQgdXNlciBhZ2VudCBoZWFkZXIgc2VjdGlvbnMgZnJvbTpcbiAqIDEuIHJ1bnRpbWUtc3BlY2lmaWMgZGVmYXVsdCB1c2VyIGFnZW50IHByb3ZpZGVyO1xuICogMi4gY3VzdG9tIHVzZXIgYWdlbnQgZnJvbSBgY3VzdG9tVXNlckFnZW50YCBjbGllbnQgY29uZmlnO1xuICogMy4gaGFuZGxlciBleGVjdXRpb24gY29udGV4dCBzZXQgYnkgaW50ZXJuYWwgU0RLIGNvbXBvbmVudHM7XG4gKiBUaGUgYnVpbHQgdXNlciBhZ2VudCB3aWxsIGJlIHNldCB0byBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyIGZvciBBTEwgdGhlXG4gKiBydW50aW1lcy5cbiAqIFBsZWFzZSBub3RlIHRoYXQgYW55IG92ZXJyaWRlIHRvIHRoZSBgdXNlci1hZ2VudGAgb3IgYHgtYW16LXVzZXItYWdlbnRgIGhlYWRlclxuICogaW4gdGhlIEhUVFAgcmVxdWVzdCBpcyBkaXNjb3VyYWdlZC4gUGxlYXNlIHVzZSBgY3VzdG9tVXNlckFnZW50YCBjbGllbnRcbiAqIGNvbmZpZyBvciBtaWRkbGV3YXJlIHNldHRpbmcgdGhlIGB1c2VyQWdlbnRgIGNvbnRleHQgdG8gZ2VuZXJhdGUgZGVzaXJlZCB1c2VyXG4gKiBhZ2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZXJBZ2VudE1pZGRsZXdhcmUgPVxuICAob3B0aW9uczogVXNlckFnZW50UmVzb2x2ZWRDb25maWcpID0+XG4gIDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4oXG4gICAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgYW55PixcbiAgICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuICApOiBCdWlsZEhhbmRsZXI8YW55LCBhbnk+ID0+XG4gIGFzeW5jIChhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55Pik6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSByZXR1cm4gbmV4dChhcmdzKTtcbiAgICBjb25zdCB7IGhlYWRlcnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgICBjb25zdCBkZWZhdWx0VXNlckFnZW50ID0gKGF3YWl0IG9wdGlvbnMuZGVmYXVsdFVzZXJBZ2VudFByb3ZpZGVyKCkpLm1hcChlc2NhcGVVc2VyQWdlbnQpO1xuICAgIGNvbnN0IGN1c3RvbVVzZXJBZ2VudCA9IG9wdGlvbnM/LmN1c3RvbVVzZXJBZ2VudD8ubWFwKGVzY2FwZVVzZXJBZ2VudCkgfHwgW107XG5cbiAgICAvLyBTZXQgdmFsdWUgdG8gQVdTLXNwZWNpZmljIHVzZXIgYWdlbnQgaGVhZGVyXG4gICAgY29uc3Qgc2RrVXNlckFnZW50VmFsdWUgPSBbLi4uZGVmYXVsdFVzZXJBZ2VudCwgLi4udXNlckFnZW50LCAuLi5jdXN0b21Vc2VyQWdlbnRdLmpvaW4oU1BBQ0UpO1xuICAgIC8vIEdldCB2YWx1ZSB0byBiZSBzZW50IHdpdGggbm9uLUFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlci5cbiAgICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgICAgLi4uZGVmYXVsdFVzZXJBZ2VudC5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24uc3RhcnRzV2l0aChcImF3cy1zZGstXCIpKSxcbiAgICAgIC4uLmN1c3RvbVVzZXJBZ2VudCxcbiAgICBdLmpvaW4oU1BBQ0UpO1xuXG4gICAgaWYgKG9wdGlvbnMucnVudGltZSAhPT0gXCJicm93c2VyXCIpIHtcbiAgICAgIGlmIChub3JtYWxVQVZhbHVlKSB7XG4gICAgICAgIGhlYWRlcnNbWF9BTVpfVVNFUl9BR0VOVF0gPSBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdXG4gICAgICAgICAgPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YFxuICAgICAgICAgIDogbm9ybWFsVUFWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGhlYWRlcnNbVVNFUl9BR0VOVF0gPSBzZGtVc2VyQWdlbnRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyc1tYX0FNWl9VU0VSX0FHRU5UXSA9IHNka1VzZXJBZ2VudFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xuXG4vKipcbiAqIEVzY2FwZSB0aGUgZWFjaCBwYWlyIGFjY29yZGluZyB0byBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTIzNCBhbmQgam9pbiB0aGUgcGFpciB3aXRoIHBhdHRlcm4gYG5hbWUvdmVyc2lvbmAuXG4gKiBVc2VyIGFnZW50IG5hbWUgbWF5IGluY2x1ZGUgcHJlZml4IGxpa2UgYG1kL2AsIGBhcGkvYCwgYG9zL2AgZXRjLiwgd2Ugc2hvdWxkIG5vdCBlc2NhcGUgdGhlIGAvYCBhZnRlciB0aGUgcHJlZml4LlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgZXNjYXBlVXNlckFnZW50ID0gKFtuYW1lLCB2ZXJzaW9uXTogVXNlckFnZW50UGFpcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHByZWZpeFNlcGFyYXRvckluZGV4ID0gbmFtZS5pbmRleE9mKFwiL1wiKTtcbiAgY29uc3QgcHJlZml4ID0gbmFtZS5zdWJzdHJpbmcoMCwgcHJlZml4U2VwYXJhdG9ySW5kZXgpOyAvLyBJZiBubyBwcmVmaXgsIHByZWZpeCBpcyBqdXN0IFwiXCJcbiAgbGV0IHVhTmFtZSA9IG5hbWUuc3Vic3RyaW5nKHByZWZpeFNlcGFyYXRvckluZGV4ICsgMSk7XG4gIGlmIChwcmVmaXggPT09IFwiYXBpXCIpIHtcbiAgICB1YU5hbWUgPSB1YU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgfVxuICByZXR1cm4gW3ByZWZpeCwgdWFOYW1lLCB2ZXJzaW9uXVxuICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gJiYgaXRlbS5sZW5ndGggPiAwKVxuICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0/LnJlcGxhY2UoVUFfRVNDQVBFX1JFR0VYLCBcIl9cIikpXG4gICAgLmpvaW4oXCIvXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFVzZXJBZ2VudE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJnZXRVc2VyQWdlbnRNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiYnVpbGRcIixcbiAgcHJpb3JpdHk6IFwibG93XCIsXG4gIHRhZ3M6IFtcIlNFVF9VU0VSX0FHRU5UXCIsIFwiVVNFUl9BR0VOVFwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50UGx1Z2luID0gKGNvbmZpZzogVXNlckFnZW50UmVzb2x2ZWRDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHVzZXJBZ2VudE1pZGRsZXdhcmUoY29uZmlnKSwgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=
@@ -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)), __read(userAgent)), __read(customUserAgent)).join(SPACE);
34
- normalUAValue = __spreadArray(__spreadArray([], __read(defaultUserAgent.filter(function (section) { return section.startsWith("aws-sdk-"); }))), __read(customUserAgent)).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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBY3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUM5QixVQUFDLE9BQWdDO0lBQ2pDLE9BQUEsVUFDRSxJQUE0QixFQUM1QixPQUFnQztRQUVsQyxPQUFBLFVBQU8sSUFBZ0M7Ozs7Ozt3QkFDN0IsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO3dCQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7NEJBQUUsc0JBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDO3dCQUNoRCxPQUFPLEdBQUssT0FBTyxRQUFaLENBQWE7d0JBQ3RCLFNBQVMsR0FBRyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsMENBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFJLEVBQUUsQ0FBQzt3QkFDdkMscUJBQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUE7O3dCQUE1RCxnQkFBZ0IsR0FBRyxDQUFDLFNBQXdDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO3dCQUNsRixlQUFlLEdBQUcsQ0FBQSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxlQUFlLDBDQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSSxFQUFFLENBQUM7d0JBR3ZFLGlCQUFpQixHQUFHLHFEQUFJLGdCQUFnQixXQUFLLFNBQVMsV0FBSyxlQUFlLEdBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUV4RixhQUFhLEdBQUcsdUNBQ2pCLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxVQUFDLE9BQU8sSUFBSyxPQUFBLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQTlCLENBQThCLENBQUMsV0FDcEUsZUFBZSxHQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBRWQsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTs0QkFDakMsSUFBSSxhQUFhLEVBQUU7Z0NBQ2pCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztvQ0FDbkQsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBSSxhQUFlO29DQUMzQyxDQUFDLENBQUMsYUFBYSxDQUFDOzZCQUNuQjs0QkFDRCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7eUJBQ3pDOzZCQUFNOzRCQUNMLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO3lCQUMvQzt3QkFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7YUFDSjtJQS9CRCxDQStCQztBQW5DRCxDQW1DQyxDQUFDO0FBRUo7Ozs7R0FJRztBQUNILElBQU0sZUFBZSxHQUFHLFVBQUMsRUFBOEI7UUFBOUIsS0FBQSxhQUE4QixFQUE3QixJQUFJLFFBQUEsRUFBRSxPQUFPLFFBQUE7SUFDckMsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7SUFDMUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7UUFDcEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUMvQjtJQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztTQUM3QixNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQXZCLENBQXVCLENBQUM7U0FDekMsR0FBRyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQW5DLENBQW1DLENBQUM7U0FDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sNkJBQTZCLEdBQTJDO0lBQ25GLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLE9BQU87SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQztJQUN0QyxRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLE1BQStCLElBQTBCLE9BQUEsQ0FBQztJQUMzRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQyxFQUowRixDQUkxRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFVzZXJBZ2VudFBhaXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5pbXBvcnQgeyBTUEFDRSwgVUFfRVNDQVBFX1JFR0VYLCBVU0VSX0FHRU5ULCBYX0FNWl9VU0VSX0FHRU5UIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQnVpbGQgdXNlciBhZ2VudCBoZWFkZXIgc2VjdGlvbnMgZnJvbTpcbiAqIDEuIHJ1bnRpbWUtc3BlY2lmaWMgZGVmYXVsdCB1c2VyIGFnZW50IHByb3ZpZGVyO1xuICogMi4gY3VzdG9tIHVzZXIgYWdlbnQgZnJvbSBgY3VzdG9tVXNlckFnZW50YCBjbGllbnQgY29uZmlnO1xuICogMy4gaGFuZGxlciBleGVjdXRpb24gY29udGV4dCBzZXQgYnkgaW50ZXJuYWwgU0RLIGNvbXBvbmVudHM7XG4gKiBUaGUgYnVpbHQgdXNlciBhZ2VudCB3aWxsIGJlIHNldCB0byBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyIGZvciBBTEwgdGhlXG4gKiBydW50aW1lcy5cbiAqIFBsZWFzZSBub3RlIHRoYXQgYW55IG92ZXJyaWRlIHRvIHRoZSBgdXNlci1hZ2VudGAgb3IgYHgtYW16LXVzZXItYWdlbnRgIGhlYWRlclxuICogaW4gdGhlIEhUVFAgcmVxdWVzdCBpcyBkaXNjb3VyYWdlZC4gUGxlYXNlIHVzZSBgY3VzdG9tVXNlckFnZW50YCBjbGllbnRcbiAqIGNvbmZpZyBvciBtaWRkbGV3YXJlIHNldHRpbmcgdGhlIGB1c2VyQWdlbnRgIGNvbnRleHQgdG8gZ2VuZXJhdGUgZGVzaXJlZCB1c2VyXG4gKiBhZ2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZXJBZ2VudE1pZGRsZXdhcmUgPVxuICAob3B0aW9uczogVXNlckFnZW50UmVzb2x2ZWRDb25maWcpID0+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,9 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": ".",
4
- "outDir": "dist/cjs",
5
- "rootDir": "src"
6
- },
7
- "extends": "../../tsconfig.cjs.json",
8
- "include": ["src/"]
9
- }
package/tsconfig.es.json DELETED
@@ -1,10 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": ".",
4
- "lib": ["es5", "es2015.promise", "es2015.collection", "es2015.iterable", "es2015.symbol.wellknown"],
5
- "outDir": "dist/es",
6
- "rootDir": "src"
7
- },
8
- "extends": "../../tsconfig.es.json",
9
- "include": ["src/"]
10
- }
@@ -1,9 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": ".",
4
- "declarationDir": "dist/types",
5
- "rootDir": "src"
6
- },
7
- "extends": "../../tsconfig.types.json",
8
- "include": ["src/"]
9
- }