@aws-sdk/middleware-signing 3.186.0 → 3.190.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,25 @@
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.190.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.189.0...v3.190.0) (2022-10-17)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **endpoint:** e2e test fixes for endpoints 2.0 all services ([#4044](https://github.com/aws/aws-sdk-js-v3/issues/4044)) ([b53f5bd](https://github.com/aws/aws-sdk-js-v3/commit/b53f5bdd2bb4f0d1bab208ef2cd8f67d56291934))
12
+
13
+
14
+
15
+
16
+
17
+ # [3.188.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.187.0...v3.188.0) (2022-10-13)
18
+
19
+ **Note:** Version bump only for package @aws-sdk/middleware-signing
20
+
21
+
22
+
23
+
24
+
6
25
  # [3.186.0](https://github.com/aws/aws-sdk-js-v3/compare/v3.185.0...v3.186.0) (2022-10-06)
7
26
 
8
27
  **Note:** Version bump only for package @aws-sdk/middleware-signing
@@ -41,10 +41,13 @@ const resolveAwsAuthConfig = (input) => {
41
41
  }
42
42
  else {
43
43
  signer = async (authScheme) => {
44
- if (!authScheme) {
45
- throw new Error("Unexpected empty auth scheme config");
46
- }
47
- const signingRegion = authScheme.signingScope;
44
+ authScheme = Object.assign({}, {
45
+ name: "sigv4",
46
+ signingName: input.signingName || input.defaultSigningName,
47
+ signingRegion: await (0, util_middleware_1.normalizeProvider)(input.region)(),
48
+ properties: {},
49
+ }, authScheme);
50
+ const signingRegion = authScheme.signingRegion;
48
51
  const signingService = authScheme.signingName;
49
52
  input.signingRegion = input.signingRegion || signingRegion;
50
53
  input.signingName = input.signingName || signingService || input.serviceId;
@@ -8,7 +8,7 @@ const awsAuthMiddleware = (options) => (next, context) => async function (args)
8
8
  var _a, _b, _c;
9
9
  if (!protocol_http_1.HttpRequest.isInstance(args.request))
10
10
  return next(args);
11
- const authScheme = (_c = (_b = (_a = (context.endpointV2)) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];
11
+ const authScheme = (_c = (_b = (_a = context.endpointV2) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];
12
12
  const signer = await options.signer(authScheme);
13
13
  const output = await next({
14
14
  ...args,
@@ -1,78 +1,79 @@
1
- import { __assign, __awaiter, __generator, __read } from "tslib";
2
1
  import { memoize } from "@aws-sdk/property-provider";
3
2
  import { SignatureV4 } from "@aws-sdk/signature-v4";
4
3
  import { normalizeProvider } from "@aws-sdk/util-middleware";
5
- var CREDENTIAL_EXPIRE_WINDOW = 300000;
6
- export var resolveAwsAuthConfig = function (input) {
7
- var normalizedCreds = input.credentials
4
+ const CREDENTIAL_EXPIRE_WINDOW = 300000;
5
+ export const resolveAwsAuthConfig = (input) => {
6
+ const normalizedCreds = input.credentials
8
7
  ? normalizeCredentialProvider(input.credentials)
9
8
  : input.credentialDefaultProvider(input);
10
- var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;
11
- var signer;
9
+ const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;
10
+ let signer;
12
11
  if (input.signer) {
13
12
  signer = normalizeProvider(input.signer);
14
13
  }
15
14
  else if (input.regionInfoProvider) {
16
- signer = function () {
17
- return normalizeProvider(input.region)()
18
- .then(function (region) { return __awaiter(void 0, void 0, void 0, function () {
19
- var _a, _b, _c;
20
- var _d;
21
- return __generator(this, function (_e) {
22
- switch (_e.label) {
23
- case 0:
24
- _b = (_a = input).regionInfoProvider;
25
- _c = [region];
26
- _d = {};
27
- return [4, input.useFipsEndpoint()];
28
- case 1:
29
- _d.useFipsEndpoint = _e.sent();
30
- return [4, input.useDualstackEndpoint()];
31
- case 2: return [4, _b.apply(_a, _c.concat([(_d.useDualstackEndpoint = _e.sent(),
32
- _d)]))];
33
- case 3: return [2, [
34
- (_e.sent()) || {},
35
- region
36
- ]];
37
- }
38
- });
39
- }); })
40
- .then(function (_a) {
41
- var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];
42
- var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;
43
- input.signingRegion = input.signingRegion || signingRegion || region;
44
- input.signingName = input.signingName || signingService || input.serviceId;
45
- var params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });
46
- var SignerCtor = input.signerConstructor || SignatureV4;
47
- return new SignerCtor(params);
48
- });
49
- };
15
+ signer = () => normalizeProvider(input.region)()
16
+ .then(async (region) => [
17
+ (await input.regionInfoProvider(region, {
18
+ useFipsEndpoint: await input.useFipsEndpoint(),
19
+ useDualstackEndpoint: await input.useDualstackEndpoint(),
20
+ })) || {},
21
+ region,
22
+ ])
23
+ .then(([regionInfo, region]) => {
24
+ const { signingRegion, signingService } = regionInfo;
25
+ input.signingRegion = input.signingRegion || signingRegion || region;
26
+ input.signingName = input.signingName || signingService || input.serviceId;
27
+ const params = {
28
+ ...input,
29
+ credentials: normalizedCreds,
30
+ region: input.signingRegion,
31
+ service: input.signingName,
32
+ sha256,
33
+ uriEscapePath: signingEscapePath,
34
+ };
35
+ const SignerCtor = input.signerConstructor || SignatureV4;
36
+ return new SignerCtor(params);
37
+ });
50
38
  }
51
39
  else {
52
- signer = function (authScheme) { return __awaiter(void 0, void 0, void 0, function () {
53
- var signingRegion, signingService, params, SignerCtor;
54
- return __generator(this, function (_a) {
55
- if (!authScheme) {
56
- throw new Error("Unexpected empty auth scheme config");
57
- }
58
- signingRegion = authScheme.signingScope;
59
- signingService = authScheme.signingName;
60
- input.signingRegion = input.signingRegion || signingRegion;
61
- input.signingName = input.signingName || signingService || input.serviceId;
62
- params = __assign(__assign({}, input), { credentials: normalizedCreds, region: input.signingRegion, service: input.signingName, sha256: sha256, uriEscapePath: signingEscapePath });
63
- SignerCtor = input.signerConstructor || SignatureV4;
64
- return [2, new SignerCtor(params)];
65
- });
66
- }); };
40
+ signer = async (authScheme) => {
41
+ authScheme = Object.assign({}, {
42
+ name: "sigv4",
43
+ signingName: input.signingName || input.defaultSigningName,
44
+ signingRegion: await normalizeProvider(input.region)(),
45
+ properties: {},
46
+ }, authScheme);
47
+ const signingRegion = authScheme.signingRegion;
48
+ const signingService = authScheme.signingName;
49
+ input.signingRegion = input.signingRegion || signingRegion;
50
+ input.signingName = input.signingName || signingService || input.serviceId;
51
+ const params = {
52
+ ...input,
53
+ credentials: normalizedCreds,
54
+ region: input.signingRegion,
55
+ service: input.signingName,
56
+ sha256,
57
+ uriEscapePath: signingEscapePath,
58
+ };
59
+ const SignerCtor = input.signerConstructor || SignatureV4;
60
+ return new SignerCtor(params);
61
+ };
67
62
  }
68
- return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });
63
+ return {
64
+ ...input,
65
+ systemClockOffset,
66
+ signingEscapePath,
67
+ credentials: normalizedCreds,
68
+ signer,
69
+ };
69
70
  };
70
- export var resolveSigV4AuthConfig = function (input) {
71
- var normalizedCreds = input.credentials
71
+ export const resolveSigV4AuthConfig = (input) => {
72
+ const normalizedCreds = input.credentials
72
73
  ? normalizeCredentialProvider(input.credentials)
73
74
  : input.credentialDefaultProvider(input);
74
- var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;
75
- var signer;
75
+ const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;
76
+ let signer;
76
77
  if (input.signer) {
77
78
  signer = normalizeProvider(input.signer);
78
79
  }
@@ -81,18 +82,22 @@ export var resolveSigV4AuthConfig = function (input) {
81
82
  credentials: normalizedCreds,
82
83
  region: input.region,
83
84
  service: input.signingName,
84
- sha256: sha256,
85
+ sha256,
85
86
  uriEscapePath: signingEscapePath,
86
87
  }));
87
88
  }
88
- return __assign(__assign({}, input), { systemClockOffset: systemClockOffset, signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });
89
+ return {
90
+ ...input,
91
+ systemClockOffset,
92
+ signingEscapePath,
93
+ credentials: normalizedCreds,
94
+ signer,
95
+ };
89
96
  };
90
- var normalizeCredentialProvider = function (credentials) {
97
+ const normalizeCredentialProvider = (credentials) => {
91
98
  if (typeof credentials === "function") {
92
- return memoize(credentials, function (credentials) {
93
- return credentials.expiration !== undefined &&
94
- credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW;
95
- }, function (credentials) { return credentials.expiration !== undefined; });
99
+ return memoize(credentials, (credentials) => credentials.expiration !== undefined &&
100
+ credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);
96
101
  }
97
102
  return normalizeProvider(credentials);
98
103
  };
@@ -1,63 +1,42 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
1
  import { HttpRequest, HttpResponse } from "@aws-sdk/protocol-http";
3
2
  import { getSkewCorrectedDate } from "./utils/getSkewCorrectedDate";
4
3
  import { getUpdatedSystemClockOffset } from "./utils/getUpdatedSystemClockOffset";
5
- export var awsAuthMiddleware = function (options) {
6
- return function (next, context) {
7
- return function (args) {
8
- var _a, _b, _c;
9
- return __awaiter(this, void 0, void 0, function () {
10
- var authScheme, signer, output, _d, _e, dateHeader;
11
- var _f;
12
- return __generator(this, function (_g) {
13
- switch (_g.label) {
14
- case 0:
15
- if (!HttpRequest.isInstance(args.request))
16
- return [2, next(args)];
17
- authScheme = (_c = (_b = (_a = (context.endpointV2)) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.authSchemes) === null || _c === void 0 ? void 0 : _c[0];
18
- return [4, options.signer(authScheme)];
19
- case 1:
20
- signer = _g.sent();
21
- _d = next;
22
- _e = [__assign({}, args)];
23
- _f = {};
24
- return [4, signer.sign(args.request, {
25
- signingDate: getSkewCorrectedDate(options.systemClockOffset),
26
- signingRegion: context["signing_region"],
27
- signingService: context["signing_service"],
28
- })];
29
- case 2: return [4, _d.apply(void 0, [__assign.apply(void 0, _e.concat([(_f.request = _g.sent(), _f)]))]).catch(function (error) {
30
- var _a;
31
- var serverTime = (_a = error.ServerTime) !== null && _a !== void 0 ? _a : getDateHeader(error.$response);
32
- if (serverTime) {
33
- options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);
34
- }
35
- throw error;
36
- })];
37
- case 3:
38
- output = _g.sent();
39
- dateHeader = getDateHeader(output.response);
40
- if (dateHeader) {
41
- options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);
42
- }
43
- return [2, output];
44
- }
45
- });
46
- });
47
- };
48
- };
4
+ export const awsAuthMiddleware = (options) => (next, context) => async function (args) {
5
+ if (!HttpRequest.isInstance(args.request))
6
+ return next(args);
7
+ const authScheme = context.endpointV2?.properties?.authSchemes?.[0];
8
+ const signer = await options.signer(authScheme);
9
+ const output = await next({
10
+ ...args,
11
+ request: await signer.sign(args.request, {
12
+ signingDate: getSkewCorrectedDate(options.systemClockOffset),
13
+ signingRegion: context["signing_region"],
14
+ signingService: context["signing_service"],
15
+ }),
16
+ }).catch((error) => {
17
+ const serverTime = error.ServerTime ?? getDateHeader(error.$response);
18
+ if (serverTime) {
19
+ options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);
20
+ }
21
+ throw error;
22
+ });
23
+ const dateHeader = getDateHeader(output.response);
24
+ if (dateHeader) {
25
+ options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);
26
+ }
27
+ return output;
49
28
  };
50
- var getDateHeader = function (response) { var _a, _b, _c; return HttpResponse.isInstance(response) ? (_b = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.date) !== null && _b !== void 0 ? _b : (_c = response.headers) === null || _c === void 0 ? void 0 : _c.Date : undefined; };
51
- export var awsAuthMiddlewareOptions = {
29
+ const getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;
30
+ export const awsAuthMiddlewareOptions = {
52
31
  name: "awsAuthMiddleware",
53
32
  tags: ["SIGNATURE", "AWSAUTH"],
54
33
  relation: "after",
55
34
  toMiddleware: "retryMiddleware",
56
35
  override: true,
57
36
  };
58
- export var getAwsAuthPlugin = function (options) { return ({
59
- applyToStack: function (clientStack) {
37
+ export const getAwsAuthPlugin = (options) => ({
38
+ applyToStack: (clientStack) => {
60
39
  clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);
61
40
  },
62
- }); };
63
- export var getSigV4AuthPlugin = getAwsAuthPlugin;
41
+ });
42
+ export const getSigV4AuthPlugin = getAwsAuthPlugin;
@@ -1 +1 @@
1
- export var getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };
1
+ export const getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);
@@ -1,6 +1,6 @@
1
1
  import { isClockSkewed } from "./isClockSkewed";
2
- export var getUpdatedSystemClockOffset = function (clockTime, currentSystemClockOffset) {
3
- var clockTimeInMs = Date.parse(clockTime);
2
+ export const getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {
3
+ const clockTimeInMs = Date.parse(clockTime);
4
4
  if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {
5
5
  return clockTimeInMs - Date.now();
6
6
  }
@@ -1,4 +1,2 @@
1
1
  import { getSkewCorrectedDate } from "./getSkewCorrectedDate";
2
- export var isClockSkewed = function (clockTime, systemClockOffset) {
3
- return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;
4
- };
2
+ export const isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;
@@ -52,6 +52,7 @@ interface PreviouslyResolved {
52
52
  region: string | Provider<string>;
53
53
  regionInfoProvider?: RegionInfoProvider;
54
54
  signingName?: string;
55
+ defaultSigningName?: string;
55
56
  serviceId: string;
56
57
  sha256: HashConstructor;
57
58
  useFipsEndpoint: Provider<boolean>;
@@ -34,6 +34,7 @@ interface PreviouslyResolved {
34
34
  region: string | Provider<string>;
35
35
  regionInfoProvider?: RegionInfoProvider;
36
36
  signingName?: string;
37
+ defaultSigningName?: string;
37
38
  serviceId: string;
38
39
  sha256: HashConstructor;
39
40
  useFipsEndpoint: Provider<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-signing",
3
- "version": "3.186.0",
3
+ "version": "3.190.0",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
6
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
@@ -20,11 +20,11 @@
20
20
  },
21
21
  "license": "Apache-2.0",
22
22
  "dependencies": {
23
- "@aws-sdk/property-provider": "3.186.0",
24
- "@aws-sdk/protocol-http": "3.186.0",
25
- "@aws-sdk/signature-v4": "3.186.0",
26
- "@aws-sdk/types": "3.186.0",
27
- "@aws-sdk/util-middleware": "3.186.0",
23
+ "@aws-sdk/property-provider": "3.190.0",
24
+ "@aws-sdk/protocol-http": "3.190.0",
25
+ "@aws-sdk/signature-v4": "3.190.0",
26
+ "@aws-sdk/types": "3.190.0",
27
+ "@aws-sdk/util-middleware": "3.190.0",
28
28
  "tslib": "^2.3.1"
29
29
  },
30
30
  "engines": {