@cdk8s/awscdk-resolver 0.0.536 → 0.0.538

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.
Files changed (87) hide show
  1. package/.jsii +3 -3
  2. package/lib/resolve.js +1 -1
  3. package/node_modules/@aws-sdk/client-cloudformation/package.json +34 -34
  4. package/node_modules/@aws-sdk/core/dist-cjs/index.js +52 -50
  5. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +52 -50
  6. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +11 -10
  7. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +4 -1
  8. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +4 -5
  9. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +2 -1
  10. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +9 -7
  11. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/parseJsonBody.js +17 -17
  12. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -8
  13. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +2 -1
  14. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +2 -2
  15. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +1 -1
  16. package/node_modules/@aws-sdk/core/package.json +11 -11
  17. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  18. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  19. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  20. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  21. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  22. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  23. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  24. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  25. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  26. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  27. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  28. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  29. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  30. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  31. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  32. package/node_modules/@aws-sdk/types/package.json +2 -2
  33. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  34. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  35. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  36. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  37. package/node_modules/@smithy/config-resolver/package.json +5 -5
  38. package/node_modules/@smithy/core/package.json +7 -7
  39. package/node_modules/@smithy/credential-provider-imds/package.json +5 -5
  40. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  41. package/node_modules/@smithy/hash-node/package.json +2 -2
  42. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  43. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  44. package/node_modules/@smithy/middleware-endpoint/package.json +8 -8
  45. package/node_modules/@smithy/middleware-retry/package.json +9 -9
  46. package/node_modules/@smithy/middleware-serde/package.json +4 -4
  47. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  48. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  49. package/node_modules/@smithy/node-http-handler/dist-cjs/index.js +6 -6
  50. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +1 -1
  51. package/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +5 -5
  52. package/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +14 -1
  53. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  54. package/node_modules/@smithy/property-provider/package.json +2 -2
  55. package/node_modules/@smithy/protocol-http/package.json +2 -2
  56. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  57. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  58. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  59. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  60. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +11 -5
  61. package/node_modules/@smithy/signature-v4/dist-es/SignatureV4.js +11 -5
  62. package/node_modules/@smithy/signature-v4/dist-types/SignatureV4.d.ts +3 -3
  63. package/node_modules/@smithy/signature-v4/package.json +4 -4
  64. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +8 -1
  65. package/node_modules/@smithy/smithy-client/dist-es/command.js +8 -1
  66. package/node_modules/@smithy/smithy-client/package.json +7 -7
  67. package/node_modules/@smithy/types/dist-types/connection/config.d.ts +5 -0
  68. package/node_modules/@smithy/types/dist-types/signature.d.ts +20 -3
  69. package/node_modules/@smithy/types/package.json +1 -1
  70. package/node_modules/@smithy/url-parser/package.json +3 -3
  71. package/node_modules/@smithy/util-defaults-mode-browser/package.json +4 -4
  72. package/node_modules/@smithy/util-defaults-mode-node/package.json +7 -7
  73. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +15 -19
  74. package/node_modules/@smithy/util-endpoints/dist-es/decideEndpoint.js +4 -3
  75. package/node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js +2 -1
  76. package/node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js +8 -13
  77. package/node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js +1 -1
  78. package/node_modules/@smithy/util-endpoints/dist-types/bdd/BinaryDecisionDiagram.d.ts +2 -2
  79. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  80. package/node_modules/@smithy/util-middleware/package.json +2 -2
  81. package/node_modules/@smithy/util-retry/package.json +3 -3
  82. package/node_modules/@smithy/util-stream/package.json +4 -4
  83. package/node_modules/@smithy/util-waiter/package.json +3 -3
  84. package/node_modules/fast-xml-builder/package.json +1 -1
  85. package/node_modules/fast-xml-builder/src/fxb.js +6 -2
  86. package/node_modules/fast-xml-builder/src/orderedJs2Xml.js +16 -2
  87. package/package.json +4 -4
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/querystring-builder",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline querystring-builder",
@@ -22,7 +22,7 @@
22
22
  "license": "Apache-2.0",
23
23
  "sideEffects": false,
24
24
  "dependencies": {
25
- "@smithy/types": "^4.14.0",
25
+ "@smithy/types": "^4.14.1",
26
26
  "@smithy/util-uri-escape": "^4.2.2",
27
27
  "tslib": "^2.6.2"
28
28
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/querystring-parser",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline querystring-parser",
@@ -23,7 +23,7 @@
23
23
  "license": "Apache-2.0",
24
24
  "sideEffects": false,
25
25
  "dependencies": {
26
- "@smithy/types": "^4.14.0",
26
+ "@smithy/types": "^4.14.1",
27
27
  "tslib": "^2.6.2"
28
28
  },
29
29
  "engines": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/service-error-classification",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline service-error-classification",
@@ -54,6 +54,6 @@
54
54
  "directory": ".release/package"
55
55
  },
56
56
  "dependencies": {
57
- "@smithy/types": "^4.14.0"
57
+ "@smithy/types": "^4.14.1"
58
58
  }
59
59
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@smithy/shared-ini-file-loader",
3
- "version": "4.4.8",
3
+ "version": "4.4.9",
4
4
  "dependencies": {
5
- "@smithy/types": "^4.14.0",
5
+ "@smithy/types": "^4.14.1",
6
6
  "tslib": "^2.6.2"
7
7
  },
8
8
  "devDependencies": {
@@ -448,7 +448,7 @@ class SignatureV4 extends SignatureV4Base {
448
448
  return this.signRequest(toSign, options);
449
449
  }
450
450
  }
451
- async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {
451
+ async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService, eventStreamCredentials, }) {
452
452
  const region = signingRegion ?? (await this.regionProvider());
453
453
  const { shortDate, longDate } = this.formatDate(signingDate);
454
454
  const scope = createScope(shortDate, region, signingService ?? this.service);
@@ -464,9 +464,14 @@ class SignatureV4 extends SignatureV4Base {
464
464
  hashedHeaders,
465
465
  hashedPayload,
466
466
  ].join("\n");
467
- return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });
467
+ return this.signString(stringToSign, {
468
+ signingDate,
469
+ signingRegion: region,
470
+ signingService,
471
+ eventStreamCredentials,
472
+ });
468
473
  }
469
- async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {
474
+ async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials }) {
470
475
  const promise = this.signEvent({
471
476
  headers: this.headerFormatter.format(signableMessage.message.headers),
472
477
  payload: signableMessage.message.body,
@@ -475,13 +480,14 @@ class SignatureV4 extends SignatureV4Base {
475
480
  signingRegion,
476
481
  signingService,
477
482
  priorSignature: signableMessage.priorSignature,
483
+ eventStreamCredentials,
478
484
  });
479
485
  return promise.then((signature) => {
480
486
  return { message: signableMessage.message, signature };
481
487
  });
482
488
  }
483
- async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {
484
- const credentials = await this.credentialProvider();
489
+ async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials, } = {}) {
490
+ const credentials = eventStreamCredentials ?? (await this.credentialProvider());
485
491
  this.validateResolvedCredentials(credentials);
486
492
  const region = signingRegion ?? (await this.regionProvider());
487
493
  const { shortDate } = this.formatDate(signingDate);
@@ -58,7 +58,7 @@ export class SignatureV4 extends SignatureV4Base {
58
58
  return this.signRequest(toSign, options);
59
59
  }
60
60
  }
61
- async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {
61
+ async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService, eventStreamCredentials, }) {
62
62
  const region = signingRegion ?? (await this.regionProvider());
63
63
  const { shortDate, longDate } = this.formatDate(signingDate);
64
64
  const scope = createScope(shortDate, region, signingService ?? this.service);
@@ -74,9 +74,14 @@ export class SignatureV4 extends SignatureV4Base {
74
74
  hashedHeaders,
75
75
  hashedPayload,
76
76
  ].join("\n");
77
- return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });
77
+ return this.signString(stringToSign, {
78
+ signingDate,
79
+ signingRegion: region,
80
+ signingService,
81
+ eventStreamCredentials,
82
+ });
78
83
  }
79
- async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {
84
+ async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials }) {
80
85
  const promise = this.signEvent({
81
86
  headers: this.headerFormatter.format(signableMessage.message.headers),
82
87
  payload: signableMessage.message.body,
@@ -85,13 +90,14 @@ export class SignatureV4 extends SignatureV4Base {
85
90
  signingRegion,
86
91
  signingService,
87
92
  priorSignature: signableMessage.priorSignature,
93
+ eventStreamCredentials,
88
94
  });
89
95
  return promise.then((signature) => {
90
96
  return { message: signableMessage.message, signature };
91
97
  });
92
98
  }
93
- async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {
94
- const credentials = await this.credentialProvider();
99
+ async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials, } = {}) {
100
+ const credentials = eventStreamCredentials ?? (await this.credentialProvider());
95
101
  this.validateResolvedCredentials(credentials);
96
102
  const region = signingRegion ?? (await this.regionProvider());
97
103
  const { shortDate } = this.formatDate(signingDate);
@@ -1,4 +1,4 @@
1
- import type { EventSigner, EventSigningArguments, FormattedEvent, HttpRequest, MessageSigner, RequestPresigner, RequestPresigningArguments, RequestSigner, RequestSigningArguments, SignableMessage, SignedMessage, SigningArguments, StringSigner } from "@smithy/types";
1
+ import type { EventSigner, EventSigningArguments, FormattedEvent, HttpRequest, MessageSigner, MessageSigningArguments, RequestPresigner, RequestPresigningArguments, RequestSigner, RequestSigningArguments, SignableMessage, SignedMessage, SigningArguments, StringSigner } from "@smithy/types";
2
2
  import type { SignatureV4CryptoInit, SignatureV4Init } from "./SignatureV4Base";
3
3
  import { SignatureV4Base } from "./SignatureV4Base";
4
4
  /**
@@ -10,10 +10,10 @@ export declare class SignatureV4 extends SignatureV4Base implements RequestPresi
10
10
  presign(originalRequest: HttpRequest, options?: RequestPresigningArguments): Promise<HttpRequest>;
11
11
  sign(stringToSign: string, options?: SigningArguments): Promise<string>;
12
12
  sign(event: FormattedEvent, options: EventSigningArguments): Promise<string>;
13
- sign(event: SignableMessage, options: SigningArguments): Promise<SignedMessage>;
13
+ sign(event: SignableMessage, options: MessageSigningArguments): Promise<SignedMessage>;
14
14
  sign(requestToSign: HttpRequest, options?: RequestSigningArguments): Promise<HttpRequest>;
15
15
  private signEvent;
16
- signMessage(signableMessage: SignableMessage, { signingDate, signingRegion, signingService }: SigningArguments): Promise<SignedMessage>;
16
+ signMessage(signableMessage: SignableMessage, { signingDate, signingRegion, signingService, eventStreamCredentials }: MessageSigningArguments): Promise<SignedMessage>;
17
17
  private signString;
18
18
  private signRequest;
19
19
  private getSignature;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/signature-v4",
3
- "version": "5.3.13",
3
+ "version": "5.3.14",
4
4
  "description": "A standalone implementation of the AWS Signature V4 request signing algorithm",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -26,10 +26,10 @@
26
26
  "sideEffects": false,
27
27
  "dependencies": {
28
28
  "@smithy/is-array-buffer": "^4.2.2",
29
- "@smithy/protocol-http": "^5.3.13",
30
- "@smithy/types": "^4.14.0",
29
+ "@smithy/protocol-http": "^5.3.14",
30
+ "@smithy/types": "^4.14.1",
31
31
  "@smithy/util-hex-encoding": "^4.2.2",
32
- "@smithy/util-middleware": "^4.2.13",
32
+ "@smithy/util-middleware": "^4.2.14",
33
33
  "@smithy/util-uri-escape": "^4.2.2",
34
34
  "@smithy/util-utf8": "^4.2.2",
35
35
  "tslib": "^2.6.2"
@@ -116,7 +116,14 @@ class Command {
116
116
  ...additionalContext,
117
117
  };
118
118
  const { requestHandler } = configuration;
119
- return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);
119
+ let requestOptions = options ?? {};
120
+ if (smithyContext.eventStream) {
121
+ requestOptions = {
122
+ isEventStream: true,
123
+ ...requestOptions,
124
+ };
125
+ }
126
+ return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext);
120
127
  }
121
128
  }
122
129
  class ClassBuilder {
@@ -26,7 +26,14 @@ export class Command {
26
26
  ...additionalContext,
27
27
  };
28
28
  const { requestHandler } = configuration;
29
- return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);
29
+ let requestOptions = options ?? {};
30
+ if (smithyContext.eventStream) {
31
+ requestOptions = {
32
+ isEventStream: true,
33
+ ...requestOptions,
34
+ };
35
+ }
36
+ return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext);
30
37
  }
31
38
  }
32
39
  class ClassBuilder {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/smithy-client",
3
- "version": "4.12.9",
3
+ "version": "4.12.11",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline smithy-client",
@@ -26,12 +26,12 @@
26
26
  "license": "Apache-2.0",
27
27
  "sideEffects": false,
28
28
  "dependencies": {
29
- "@smithy/core": "^3.23.14",
30
- "@smithy/middleware-endpoint": "^4.4.29",
31
- "@smithy/middleware-stack": "^4.2.13",
32
- "@smithy/protocol-http": "^5.3.13",
33
- "@smithy/types": "^4.14.0",
34
- "@smithy/util-stream": "^4.5.22",
29
+ "@smithy/core": "^3.23.15",
30
+ "@smithy/middleware-endpoint": "^4.4.30",
31
+ "@smithy/middleware-stack": "^4.2.14",
32
+ "@smithy/protocol-http": "^5.3.14",
33
+ "@smithy/types": "^4.14.1",
34
+ "@smithy/util-stream": "^4.5.23",
35
35
  "tslib": "^2.6.2"
36
36
  },
37
37
  "engines": {
@@ -7,4 +7,9 @@ export interface ConnectConfiguration {
7
7
  * may take before the connection attempt is abandoned.
8
8
  */
9
9
  requestTimeout?: number;
10
+ /**
11
+ * Signal from the Command class object context,
12
+ * tells the connection manager to use a new connection.
13
+ */
14
+ isEventStream?: boolean;
10
15
  }
@@ -1,5 +1,6 @@
1
1
  import type { Message } from "./eventStream";
2
2
  import type { HttpRequest } from "./http";
3
+ import type { AwsCredentialIdentity } from "./identity/awsCredentialIdentity";
3
4
  /**
4
5
  * @public
5
6
  *
@@ -76,9 +77,25 @@ export interface RequestPresigningArguments extends RequestSigningArguments {
76
77
  /**
77
78
  * @public
78
79
  */
79
- export interface EventSigningArguments extends SigningArguments {
80
+ export interface EventSigningArguments extends SigningArguments, EventStreamRequestScopedCredentials {
80
81
  priorSignature: string;
81
82
  }
83
+ /**
84
+ * @public
85
+ */
86
+ export interface MessageSigningArguments extends SigningArguments, EventStreamRequestScopedCredentials {
87
+ }
88
+ /**
89
+ * @internal
90
+ */
91
+ export interface EventStreamRequestScopedCredentials {
92
+ /**
93
+ * Optional, static credentials used for the duration of the event-stream request.
94
+ * If not provided, the signer's internal credential provider would be used, if
95
+ * the signer is SignatureV4.
96
+ */
97
+ eventStreamCredentials?: AwsCredentialIdentity;
98
+ }
82
99
  /**
83
100
  * @public
84
101
  */
@@ -150,6 +167,6 @@ export interface SignedMessage {
150
167
  * @public
151
168
  */
152
169
  export interface MessageSigner {
153
- signMessage(message: SignableMessage, args: SigningArguments): Promise<SignedMessage>;
154
- sign(event: SignableMessage, options: SigningArguments): Promise<SignedMessage>;
170
+ signMessage(message: SignableMessage, args: MessageSigningArguments): Promise<SignedMessage>;
171
+ sign(event: SignableMessage, options: MessageSigningArguments): Promise<SignedMessage>;
155
172
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/types",
3
- "version": "4.14.0",
3
+ "version": "4.14.1",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline types",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/url-parser",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline url-parser",
@@ -23,8 +23,8 @@
23
23
  "license": "Apache-2.0",
24
24
  "sideEffects": false,
25
25
  "dependencies": {
26
- "@smithy/querystring-parser": "^4.2.13",
27
- "@smithy/types": "^4.14.0",
26
+ "@smithy/querystring-parser": "^4.2.14",
27
+ "@smithy/types": "^4.14.1",
28
28
  "tslib": "^2.6.2"
29
29
  },
30
30
  "typesVersions": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-browser",
3
- "version": "4.3.45",
3
+ "version": "4.3.47",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline util-defaults-mode-browser",
@@ -23,9 +23,9 @@
23
23
  "license": "Apache-2.0",
24
24
  "sideEffects": false,
25
25
  "dependencies": {
26
- "@smithy/property-provider": "^4.2.13",
27
- "@smithy/smithy-client": "^4.12.9",
28
- "@smithy/types": "^4.14.0",
26
+ "@smithy/property-provider": "^4.2.14",
27
+ "@smithy/smithy-client": "^4.12.11",
28
+ "@smithy/types": "^4.14.1",
29
29
  "tslib": "^2.6.2"
30
30
  },
31
31
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-node",
3
- "version": "4.2.50",
3
+ "version": "4.2.52",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline util-defaults-mode-node",
@@ -23,12 +23,12 @@
23
23
  "license": "Apache-2.0",
24
24
  "sideEffects": false,
25
25
  "dependencies": {
26
- "@smithy/config-resolver": "^4.4.15",
27
- "@smithy/credential-provider-imds": "^4.2.13",
28
- "@smithy/node-config-provider": "^4.3.13",
29
- "@smithy/property-provider": "^4.2.13",
30
- "@smithy/smithy-client": "^4.12.9",
31
- "@smithy/types": "^4.14.0",
26
+ "@smithy/config-resolver": "^4.4.16",
27
+ "@smithy/credential-provider-imds": "^4.2.14",
28
+ "@smithy/node-config-provider": "^4.3.14",
29
+ "@smithy/property-provider": "^4.2.14",
30
+ "@smithy/smithy-client": "^4.12.11",
31
+ "@smithy/types": "^4.14.1",
32
32
  "tslib": "^2.6.2"
33
33
  },
34
34
  "devDependencies": {
@@ -134,7 +134,8 @@ const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {
134
134
  throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);
135
135
  }
136
136
  else if (Array.isArray(acc)) {
137
- return acc[parseInt(index)];
137
+ const i = parseInt(index);
138
+ return acc[i < 0 ? acc.length + i : i];
138
139
  }
139
140
  return acc[index];
140
141
  }, value);
@@ -346,7 +347,7 @@ const evaluateCondition = ({ assign, ...fnArgs }, options) => {
346
347
  };
347
348
  };
348
349
 
349
- const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({
350
+ const getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => ({
350
351
  ...acc,
351
352
  [headerKey]: headerVal.map((headerValEntry) => {
352
353
  const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options);
@@ -422,14 +423,14 @@ const decideEndpoint = (bdd, options) => {
422
423
  if (ref >= RESULT) {
423
424
  const result = results[ref - RESULT];
424
425
  if (result[0] === -1) {
425
- const [, errorMessage] = result;
426
- throw new EndpointError(errorMessage);
426
+ const [, errorExpression] = result;
427
+ throw new EndpointError(evaluateExpression(errorExpression, "Error", closure));
427
428
  }
428
429
  const [url, properties, headers] = result;
429
430
  return {
430
431
  url: getEndpointUrl(url, closure),
431
432
  properties: getEndpointProperties(properties, closure),
432
- headers: getEndpointHeaders(headers, closure),
433
+ headers: getEndpointHeaders(headers ?? {}, closure),
433
434
  };
434
435
  }
435
436
  throw new EndpointError(`No matching endpoint.`);
@@ -534,20 +535,15 @@ const resolveEndpoint = (ruleSetObject, options) => {
534
535
  const { endpointParams, logger } = options;
535
536
  const { parameters, rules } = ruleSetObject;
536
537
  options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);
537
- const paramsWithDefault = Object.entries(parameters)
538
- .filter(([, v]) => v.default != null)
539
- .map(([k, v]) => [k, v.default]);
540
- if (paramsWithDefault.length > 0) {
541
- for (const [paramKey, paramDefaultValue] of paramsWithDefault) {
542
- endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;
543
- }
544
- }
545
- const requiredParams = Object.entries(parameters)
546
- .filter(([, v]) => v.required)
547
- .map(([k]) => k);
548
- for (const requiredParam of requiredParams) {
549
- if (endpointParams[requiredParam] == null) {
550
- throw new EndpointError(`Missing required parameter: '${requiredParam}'`);
538
+ for (const paramKey in parameters) {
539
+ const parameter = parameters[paramKey];
540
+ const endpointParam = endpointParams[paramKey];
541
+ if (endpointParam == null && parameter.default != null) {
542
+ endpointParams[paramKey] = parameter.default;
543
+ continue;
544
+ }
545
+ if (parameter.required && endpointParam == null) {
546
+ throw new EndpointError(`Missing required parameter: '${paramKey}'`);
551
547
  }
552
548
  }
553
549
  const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });
@@ -1,5 +1,6 @@
1
1
  import { EndpointError } from "./types";
2
2
  import { evaluateCondition } from "./utils/evaluateCondition";
3
+ import { evaluateExpression } from "./utils/evaluateExpression";
3
4
  import { getEndpointHeaders } from "./utils/getEndpointHeaders";
4
5
  import { getEndpointProperties } from "./utils/getEndpointProperties";
5
6
  import { getEndpointUrl } from "./utils/getEndpointUrl";
@@ -27,14 +28,14 @@ export const decideEndpoint = (bdd, options) => {
27
28
  if (ref >= RESULT) {
28
29
  const result = results[ref - RESULT];
29
30
  if (result[0] === -1) {
30
- const [, errorMessage] = result;
31
- throw new EndpointError(errorMessage);
31
+ const [, errorExpression] = result;
32
+ throw new EndpointError(evaluateExpression(errorExpression, "Error", closure));
32
33
  }
33
34
  const [url, properties, headers] = result;
34
35
  return {
35
36
  url: getEndpointUrl(url, closure),
36
37
  properties: getEndpointProperties(properties, closure),
37
- headers: getEndpointHeaders(headers, closure),
38
+ headers: getEndpointHeaders(headers ?? {}, closure),
38
39
  };
39
40
  }
40
41
  throw new EndpointError(`No matching endpoint.`);
@@ -5,7 +5,8 @@ export const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index
5
5
  throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);
6
6
  }
7
7
  else if (Array.isArray(acc)) {
8
- return acc[parseInt(index)];
8
+ const i = parseInt(index);
9
+ return acc[i < 0 ? acc.length + i : i];
9
10
  }
10
11
  return acc[index];
11
12
  }, value);
@@ -5,20 +5,15 @@ export const resolveEndpoint = (ruleSetObject, options) => {
5
5
  const { endpointParams, logger } = options;
6
6
  const { parameters, rules } = ruleSetObject;
7
7
  options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);
8
- const paramsWithDefault = Object.entries(parameters)
9
- .filter(([, v]) => v.default != null)
10
- .map(([k, v]) => [k, v.default]);
11
- if (paramsWithDefault.length > 0) {
12
- for (const [paramKey, paramDefaultValue] of paramsWithDefault) {
13
- endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;
8
+ for (const paramKey in parameters) {
9
+ const parameter = parameters[paramKey];
10
+ const endpointParam = endpointParams[paramKey];
11
+ if (endpointParam == null && parameter.default != null) {
12
+ endpointParams[paramKey] = parameter.default;
13
+ continue;
14
14
  }
15
- }
16
- const requiredParams = Object.entries(parameters)
17
- .filter(([, v]) => v.required)
18
- .map(([k]) => k);
19
- for (const requiredParam of requiredParams) {
20
- if (endpointParams[requiredParam] == null) {
21
- throw new EndpointError(`Missing required parameter: '${requiredParam}'`);
15
+ if (parameter.required && endpointParam == null) {
16
+ throw new EndpointError(`Missing required parameter: '${paramKey}'`);
22
17
  }
23
18
  }
24
19
  const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });
@@ -1,6 +1,6 @@
1
1
  import { EndpointError } from "../types";
2
2
  import { evaluateExpression } from "./evaluateExpression";
3
- export const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({
3
+ export const getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => ({
4
4
  ...acc,
5
5
  [headerKey]: headerVal.map((headerValEntry) => {
6
6
  const processedExpr = evaluateExpression(headerValEntry, "Header value entry", options);
@@ -1,5 +1,5 @@
1
1
  import type { EndpointObjectHeaders, ParameterObject } from "@smithy/types";
2
- import type { FunctionArgv } from "../types/shared";
2
+ import type { Expression, FunctionArgv } from "../types/shared";
3
3
  /**
4
4
  * @internal
5
5
  */
@@ -7,7 +7,7 @@ type BddCondition = [string, FunctionArgv] | [string, FunctionArgv, string];
7
7
  /**
8
8
  * @internal
9
9
  */
10
- type BddResult = [-1] | [-1, string] | [string, Record<string, ParameterObject>, EndpointObjectHeaders];
10
+ type BddResult = [-1] | [-1, Expression] | [string, Record<string, ParameterObject>, EndpointObjectHeaders] | [string, Record<string, ParameterObject>];
11
11
  /**
12
12
  * @internal
13
13
  */
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-endpoints",
3
- "version": "3.4.0",
3
+ "version": "3.4.1",
4
4
  "description": "Utilities to help with endpoint resolution.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -28,8 +28,8 @@
28
28
  "license": "Apache-2.0",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@smithy/node-config-provider": "^4.3.13",
32
- "@smithy/types": "^4.14.0",
31
+ "@smithy/node-config-provider": "^4.3.14",
32
+ "@smithy/types": "^4.14.1",
33
33
  "tslib": "^2.6.2"
34
34
  },
35
35
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-middleware",
3
- "version": "4.2.13",
3
+ "version": "4.2.14",
4
4
  "description": "Shared utilities for to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -27,7 +27,7 @@
27
27
  "license": "Apache-2.0",
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
- "@smithy/types": "^4.14.0",
30
+ "@smithy/types": "^4.14.1",
31
31
  "tslib": "^2.6.2"
32
32
  },
33
33
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-retry",
3
- "version": "4.3.1",
3
+ "version": "4.3.2",
4
4
  "description": "Shared retry utilities to be used in middleware packages.",
5
5
  "main": "./dist-cjs/index.js",
6
6
  "module": "./dist-es/index.js",
@@ -30,8 +30,8 @@
30
30
  "license": "Apache-2.0",
31
31
  "sideEffects": false,
32
32
  "dependencies": {
33
- "@smithy/service-error-classification": "^4.2.13",
34
- "@smithy/types": "^4.14.0",
33
+ "@smithy/service-error-classification": "^4.2.14",
34
+ "@smithy/types": "^4.14.1",
35
35
  "tslib": "^2.6.2"
36
36
  },
37
37
  "devDependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-stream",
3
- "version": "4.5.22",
3
+ "version": "4.5.23",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:types' 'yarn:build:es:cjs'",
6
6
  "build:es:cjs": "yarn g:tsc -p tsconfig.es.json && node ../../scripts/inline util-stream",
@@ -28,9 +28,9 @@
28
28
  "license": "Apache-2.0",
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
- "@smithy/fetch-http-handler": "^5.3.16",
32
- "@smithy/node-http-handler": "^4.5.2",
33
- "@smithy/types": "^4.14.0",
31
+ "@smithy/fetch-http-handler": "^5.3.17",
32
+ "@smithy/node-http-handler": "^4.5.3",
33
+ "@smithy/types": "^4.14.1",
34
34
  "@smithy/util-base64": "^4.3.2",
35
35
  "@smithy/util-buffer-from": "^4.2.2",
36
36
  "@smithy/util-hex-encoding": "^4.2.2",