@cdklabs/cdk-ecs-codedeploy 0.0.457 → 0.0.459
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/.jsii +3 -3
- package/lib/api-canary/index.js +1 -1
- package/lib/ecs-appspec/index.js +1 -1
- package/lib/ecs-deployment/index.js +1 -1
- package/lib/ecs-patterns/application-load-balanced-codedeployed-fargate-service.js +1 -1
- package/node_modules/@aws-sdk/client-codedeploy/dist-cjs/index.js +9 -9
- package/node_modules/@aws-sdk/client-codedeploy/dist-es/models/enums.js +4 -4
- package/node_modules/@aws-sdk/client-codedeploy/dist-es/schemas/schemas_0.js +4 -4
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/CodeDeploy.d.ts +101 -95
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/BatchGetDeploymentsCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/commands/GetDeploymentCommand.d.ts +1 -0
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/models/enums.d.ts +12 -12
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/models/models_0.d.ts +54 -1
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/CodeDeploy.d.ts +98 -94
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/models/enums.d.ts +5 -5
- package/node_modules/@aws-sdk/client-codedeploy/dist-types/ts3.4/models/models_0.d.ts +1 -0
- package/node_modules/@aws-sdk/client-codedeploy/package.json +8 -8
- package/node_modules/@aws-sdk/core/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-http/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +13 -13
- package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
- package/node_modules/@aws-sdk/credential-provider-node/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -6
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +14 -11
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/schemas/schemas_0.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/schemas/schemas_0.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/schemas/schemas_0.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +13 -10
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/CognitoIdentity.d.ts +11 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/Signin.d.ts +11 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso/SSO.d.ts +9 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +9 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +33 -8
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +22 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +3 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +22 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/models_0.d.ts +40 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/cognito-identity/CognitoIdentity.d.ts +14 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/Signin.d.ts +11 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso/SSO.d.ts +9 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDC.d.ts +9 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STS.d.ts +11 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/models_0.d.ts +6 -0
- package/node_modules/@aws-sdk/nested-clients/package.json +8 -8
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +4 -4
- package/node_modules/@aws-sdk/token-providers/package.json +6 -6
- package/node_modules/@aws-sdk/types/dist-types/feature-ids.d.ts +1 -0
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/feature-ids.d.ts +1 -0
- package/node_modules/@aws-sdk/types/package.json +2 -2
- package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +22 -37
- package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +48 -4
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +49 -8
- package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +15 -7
- package/node_modules/@smithy/core/dist-es/submodules/cbor/SmithyRpcV2CborProtocol.js +22 -22
- package/node_modules/@smithy/core/dist-es/submodules/cbor/parseCborBody.js +0 -15
- package/node_modules/@smithy/core/dist-es/submodules/client/index.js +1 -1
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js +8 -1
- package/node_modules/@smithy/core/dist-es/submodules/client/smithy-client/exceptions.js +40 -3
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +49 -8
- package/node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js +15 -7
- package/node_modules/@smithy/core/dist-types/submodules/cbor/parseCborBody.d.ts +3 -0
- package/node_modules/@smithy/core/dist-types/submodules/client/index.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/client.d.ts +11 -3
- package/node_modules/@smithy/core/dist-types/submodules/client/smithy-client/exceptions.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpProtocol.d.ts +17 -7
- package/node_modules/@smithy/core/dist-types/submodules/schema/TypeRegistry.d.ts +2 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/cbor/parseCborBody.d.ts +3 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/client/index.d.ts +1 -1
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/client/smithy-client/client.d.ts +11 -3
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/client/smithy-client/exceptions.d.ts +1 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/HttpProtocol.d.ts +21 -7
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/TypeRegistry.d.ts +2 -2
- package/node_modules/@smithy/core/package.json +2 -2
- package/node_modules/@smithy/signature-v4/dist-cjs/index.js +4 -1
- package/node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js +4 -1
- package/node_modules/@smithy/signature-v4/package.json +3 -3
- package/node_modules/@smithy/types/dist-types/metrics.d.ts +8 -7
- package/node_modules/@smithy/types/dist-types/middleware.d.ts +5 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/metrics.d.ts +8 -7
- package/node_modules/@smithy/types/dist-types/ts3.4/middleware.d.ts +5 -0
- package/node_modules/@smithy/types/package.json +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/types",
|
|
3
|
-
"version": "3.974.
|
|
3
|
+
"version": "3.974.6",
|
|
4
4
|
"description": "Types for the AWS SDK",
|
|
5
5
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages-internal/types",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"test": "tsc -p tsconfig.test.json"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@smithy/types": "^4.
|
|
44
|
+
"@smithy/types": "^4.19.0",
|
|
45
45
|
"tslib": "^2.6.2"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-sdk/xml-builder",
|
|
3
|
-
"version": "3.972.
|
|
3
|
+
"version": "3.972.41",
|
|
4
4
|
"description": "XML utilities for the AWS SDK",
|
|
5
5
|
"homepage": "https://github.com/aws/aws-sdk-js-v3/tree/main/packages-internal/xml-builder",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"test:fuzz": "jazzer tests/xml-parser.fuzz.js corpus --sync -i xml-parser -- -max_total_time=300"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@smithy/types": "^4.
|
|
50
|
+
"@smithy/types": "^4.19.0",
|
|
51
51
|
"tslib": "^2.6.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
@@ -902,26 +902,11 @@ const loadSmithyRpcV2CborErrorCode = (output, data) => {
|
|
|
902
902
|
if (cleanValue.indexOf(":") >= 0) {
|
|
903
903
|
cleanValue = cleanValue.split(":")[0];
|
|
904
904
|
}
|
|
905
|
-
if (cleanValue.indexOf("#") >= 0) {
|
|
906
|
-
cleanValue = cleanValue.split("#")[1];
|
|
907
|
-
}
|
|
908
905
|
return cleanValue;
|
|
909
906
|
};
|
|
910
907
|
if (data["__type"] !== undefined) {
|
|
911
908
|
return sanitizeErrorCode(data["__type"]);
|
|
912
909
|
}
|
|
913
|
-
let codeKey;
|
|
914
|
-
for (const key in data) {
|
|
915
|
-
if (!hasOwn(data, key))
|
|
916
|
-
continue;
|
|
917
|
-
if (key.toLowerCase() === "code") {
|
|
918
|
-
codeKey = key;
|
|
919
|
-
break;
|
|
920
|
-
}
|
|
921
|
-
}
|
|
922
|
-
if (codeKey && data[codeKey] !== undefined) {
|
|
923
|
-
return sanitizeErrorCode(data[codeKey]);
|
|
924
|
-
}
|
|
925
910
|
};
|
|
926
911
|
const checkCborResponse = (response) => {
|
|
927
912
|
if (String(response.headers["smithy-protocol"]).toLowerCase() !== "rpc-v2-cbor") {
|
|
@@ -2278,37 +2263,37 @@ class SmithyRpcV2CborProtocol extends RpcProtocol {
|
|
|
2278
2263
|
return super.deserializeResponse(operationSchema, context, response);
|
|
2279
2264
|
}
|
|
2280
2265
|
async handleError(operationSchema, context, response, dataObject, metadata) {
|
|
2281
|
-
const
|
|
2266
|
+
const errorIdentifier = loadSmithyRpcV2CborErrorCode(response, dataObject) ?? "Unknown";
|
|
2267
|
+
const preferredNamespaces = ["*"];
|
|
2268
|
+
const { defaultNamespace } = this.options;
|
|
2269
|
+
preferredNamespaces.unshift(defaultNamespace);
|
|
2270
|
+
const [namespace, errorShapeName] = (() => {
|
|
2271
|
+
if (errorIdentifier.includes("#")) {
|
|
2272
|
+
return errorIdentifier.split("#");
|
|
2273
|
+
}
|
|
2274
|
+
return [undefined, errorIdentifier];
|
|
2275
|
+
})();
|
|
2276
|
+
if (namespace) {
|
|
2277
|
+
preferredNamespaces.unshift(namespace);
|
|
2278
|
+
}
|
|
2282
2279
|
const errorMetadata = {
|
|
2283
2280
|
$metadata: metadata,
|
|
2284
|
-
$fault: response.statusCode
|
|
2281
|
+
$fault: response.statusCode < 500 ? "client" : "server",
|
|
2285
2282
|
};
|
|
2286
|
-
|
|
2287
|
-
if (
|
|
2288
|
-
|
|
2289
|
-
}
|
|
2290
|
-
const registry = this.compositeErrorRegistry;
|
|
2291
|
-
const nsRegistry = TypeRegistry.for(namespace);
|
|
2292
|
-
registry.copyFrom(nsRegistry);
|
|
2293
|
-
let errorSchema;
|
|
2294
|
-
try {
|
|
2295
|
-
errorSchema = registry.getSchema(errorName);
|
|
2283
|
+
const preferredRegistries = [this.compositeErrorRegistry];
|
|
2284
|
+
if (namespace) {
|
|
2285
|
+
preferredRegistries.push(TypeRegistry.for(namespace));
|
|
2296
2286
|
}
|
|
2297
|
-
|
|
2287
|
+
preferredRegistries.push(TypeRegistry.for(defaultNamespace));
|
|
2288
|
+
const [errorSchema, ErrorCtor, errorMode] = this.resolveError(errorShapeName, preferredNamespaces, preferredRegistries);
|
|
2289
|
+
if (errorMode === "native" || errorMode === "synthetic") {
|
|
2298
2290
|
if (dataObject.Message) {
|
|
2299
2291
|
dataObject.message = dataObject.Message;
|
|
2300
2292
|
}
|
|
2301
|
-
const
|
|
2302
|
-
|
|
2303
|
-
const baseExceptionSchema = registry.getBaseException();
|
|
2304
|
-
if (baseExceptionSchema) {
|
|
2305
|
-
const ErrorCtor = registry.getErrorCtor(baseExceptionSchema);
|
|
2306
|
-
throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);
|
|
2307
|
-
}
|
|
2308
|
-
throw Object.assign(new Error(errorName), errorMetadata, dataObject);
|
|
2293
|
+
const error = errorMode === "synthetic" ? new ErrorCtor({ name: errorShapeName }) : new Error(errorShapeName);
|
|
2294
|
+
throw Object.assign(error, errorMetadata, dataObject);
|
|
2309
2295
|
}
|
|
2310
2296
|
const ns = NormalizedSchema.of(errorSchema);
|
|
2311
|
-
const ErrorCtor = registry.getErrorCtor(errorSchema);
|
|
2312
2297
|
const message = dataObject.message ?? dataObject.Message ?? "Unknown";
|
|
2313
2298
|
const exception = new ErrorCtor({});
|
|
2314
2299
|
const output = {};
|
|
@@ -590,20 +590,27 @@ class Command {
|
|
|
590
590
|
}
|
|
591
591
|
const stack = clientStack.concat(this.middlewareStack);
|
|
592
592
|
const { logger } = configuration;
|
|
593
|
+
const additionalSmithyContext = additionalContext[SMITHY_CONTEXT_KEY];
|
|
593
594
|
const handlerExecutionContext = {
|
|
594
595
|
logger,
|
|
595
596
|
clientName,
|
|
596
597
|
commandName,
|
|
597
598
|
inputFilterSensitiveLog,
|
|
598
599
|
outputFilterSensitiveLog,
|
|
600
|
+
...additionalContext,
|
|
599
601
|
[SMITHY_CONTEXT_KEY]: {
|
|
602
|
+
...additionalSmithyContext,
|
|
600
603
|
commandInstance: this,
|
|
601
604
|
...smithyContext,
|
|
605
|
+
...(options?.metricsRecorder === undefined ? {} : { metricsRecorder: options.metricsRecorder }),
|
|
602
606
|
},
|
|
603
|
-
...additionalContext,
|
|
604
607
|
};
|
|
605
608
|
const { requestHandler } = configuration;
|
|
606
609
|
let requestOptions = options ?? {};
|
|
610
|
+
if (requestOptions.metricsRecorder) {
|
|
611
|
+
requestOptions = { ...requestOptions };
|
|
612
|
+
delete requestOptions.metricsRecorder;
|
|
613
|
+
}
|
|
607
614
|
if (smithyContext.eventStream) {
|
|
608
615
|
requestOptions = {
|
|
609
616
|
isEventStream: true,
|
|
@@ -758,6 +765,7 @@ const createAggregatedClient = (commands, Client, options) => {
|
|
|
758
765
|
};
|
|
759
766
|
|
|
760
767
|
class ServiceException extends Error {
|
|
768
|
+
static shapeId = "smithy.ts.sdk.synthetic.nonamespace.client#ServiceException";
|
|
761
769
|
$fault;
|
|
762
770
|
$response;
|
|
763
771
|
$retryable;
|
|
@@ -786,10 +794,46 @@ class ServiceException extends Error {
|
|
|
786
794
|
return ServiceException.isInstance(instance);
|
|
787
795
|
}
|
|
788
796
|
if (ServiceException.isInstance(instance)) {
|
|
789
|
-
if (
|
|
790
|
-
return
|
|
797
|
+
if (this.prototype.isPrototypeOf(instance)) {
|
|
798
|
+
return true;
|
|
799
|
+
}
|
|
800
|
+
const targetId = Object.prototype.hasOwnProperty.call(this, "shapeId")
|
|
801
|
+
? this.shapeId
|
|
802
|
+
: undefined;
|
|
803
|
+
let candidateHasShapeId = false;
|
|
804
|
+
if (targetId) {
|
|
805
|
+
let proto = Object.getPrototypeOf(candidate);
|
|
806
|
+
while (proto && proto !== Object.prototype) {
|
|
807
|
+
const ctor = proto.constructor;
|
|
808
|
+
const candidateId = ctor !== ServiceException && Object.prototype.hasOwnProperty.call(ctor, "shapeId")
|
|
809
|
+
? ctor?.shapeId
|
|
810
|
+
: undefined;
|
|
811
|
+
if (candidateId) {
|
|
812
|
+
candidateHasShapeId = true;
|
|
813
|
+
if (candidateId === targetId) {
|
|
814
|
+
return true;
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
proto = Object.getPrototypeOf(proto);
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
if (targetId && candidateHasShapeId) {
|
|
821
|
+
return false;
|
|
822
|
+
}
|
|
823
|
+
const targetName = this.name;
|
|
824
|
+
if (targetName && targetName.length >= 6) {
|
|
825
|
+
if (candidate.name === targetName) {
|
|
826
|
+
return true;
|
|
827
|
+
}
|
|
828
|
+
let proto = Object.getPrototypeOf(candidate);
|
|
829
|
+
while (proto && proto !== Object.prototype) {
|
|
830
|
+
const ctorName = proto.constructor?.name;
|
|
831
|
+
if (ctorName && ctorName !== "Error" && ctorName === targetName) {
|
|
832
|
+
return true;
|
|
833
|
+
}
|
|
834
|
+
proto = Object.getPrototypeOf(proto);
|
|
835
|
+
}
|
|
791
836
|
}
|
|
792
|
-
return this.prototype.isPrototypeOf(instance);
|
|
793
837
|
}
|
|
794
838
|
return false;
|
|
795
839
|
}
|
|
@@ -39,7 +39,7 @@ class HttpProtocol extends SerdeContext {
|
|
|
39
39
|
constructor(options) {
|
|
40
40
|
super();
|
|
41
41
|
this.options = options;
|
|
42
|
-
this.compositeErrorRegistry = TypeRegistry
|
|
42
|
+
this.compositeErrorRegistry = new TypeRegistry(options.defaultNamespace);
|
|
43
43
|
for (const etr of options.errorTypeRegistries ?? []) {
|
|
44
44
|
this.compositeErrorRegistry.copyFrom(etr);
|
|
45
45
|
}
|
|
@@ -134,6 +134,47 @@ class HttpProtocol extends SerdeContext {
|
|
|
134
134
|
cfId: output.headers["x-amz-cf-id"],
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
|
+
resolveError(name, namespaces, registries) {
|
|
138
|
+
const defaultErrorSchema = [-3, "", "Error", 0, [], [], 0];
|
|
139
|
+
let schema;
|
|
140
|
+
for (const registry of registries) {
|
|
141
|
+
for (const ns of namespaces) {
|
|
142
|
+
try {
|
|
143
|
+
if (ns === "*") {
|
|
144
|
+
schema = registry.getSchema(name);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
schema = registry.getSchema(ns + "#" + name);
|
|
148
|
+
}
|
|
149
|
+
const errorCtor = registry.getErrorCtor(schema);
|
|
150
|
+
if (errorCtor) {
|
|
151
|
+
return [schema, errorCtor, "modeled"];
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const syntheticErrorSchema = registry.getBaseException();
|
|
155
|
+
if (syntheticErrorSchema) {
|
|
156
|
+
const syntheticErrorCtor = registry.getErrorCtor(syntheticErrorSchema);
|
|
157
|
+
if (syntheticErrorCtor) {
|
|
158
|
+
return [schema, syntheticErrorCtor, "synthetic"];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch (ignored) {
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
for (const registry of registries) {
|
|
168
|
+
const syntheticErrorSchema = registry.getBaseException();
|
|
169
|
+
if (syntheticErrorSchema) {
|
|
170
|
+
const syntheticErrorCtor = registry.getErrorCtor(syntheticErrorSchema);
|
|
171
|
+
if (syntheticErrorCtor) {
|
|
172
|
+
return [syntheticErrorSchema, syntheticErrorCtor, "synthetic"];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return [defaultErrorSchema, Error, "native"];
|
|
177
|
+
}
|
|
137
178
|
async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {
|
|
138
179
|
const eventStreamSerde = await this.loadEventStreamCapability();
|
|
139
180
|
return eventStreamSerde.serializeEventStream({
|
|
@@ -162,13 +203,6 @@ class HttpProtocol extends SerdeContext {
|
|
|
162
203
|
compositeErrorRegistry: this.compositeErrorRegistry,
|
|
163
204
|
});
|
|
164
205
|
}
|
|
165
|
-
resolveEventStreamMarshaller(importedProvider) {
|
|
166
|
-
const context = this.serdeContext;
|
|
167
|
-
if (context.eventStreamMarshaller) {
|
|
168
|
-
return context.eventStreamMarshaller;
|
|
169
|
-
}
|
|
170
|
-
return importedProvider(this.serdeContext);
|
|
171
|
-
}
|
|
172
206
|
getDefaultContentType() {
|
|
173
207
|
throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);
|
|
174
208
|
}
|
|
@@ -182,6 +216,13 @@ class HttpProtocol extends SerdeContext {
|
|
|
182
216
|
}
|
|
183
217
|
return context.eventStreamMarshaller;
|
|
184
218
|
}
|
|
219
|
+
resolveEventStreamMarshaller(importedProvider) {
|
|
220
|
+
const context = this.serdeContext;
|
|
221
|
+
if (context.eventStreamMarshaller) {
|
|
222
|
+
return context.eventStreamMarshaller;
|
|
223
|
+
}
|
|
224
|
+
return importedProvider(this.serdeContext);
|
|
225
|
+
}
|
|
185
226
|
}
|
|
186
227
|
|
|
187
228
|
class HttpBindingProtocol extends HttpProtocol {
|
|
@@ -579,12 +579,12 @@ class TypeRegistry {
|
|
|
579
579
|
this.namespace = namespace;
|
|
580
580
|
this.schemas = schemas;
|
|
581
581
|
this.exceptions = exceptions;
|
|
582
|
-
}
|
|
583
|
-
static for(namespace) {
|
|
584
582
|
if (!TypeRegistry.registries.has(namespace)) {
|
|
585
|
-
TypeRegistry.registries.set(namespace,
|
|
583
|
+
TypeRegistry.registries.set(namespace, this);
|
|
586
584
|
}
|
|
587
|
-
|
|
585
|
+
}
|
|
586
|
+
static for(namespace) {
|
|
587
|
+
return TypeRegistry.registries.get(namespace) ?? new TypeRegistry(namespace);
|
|
588
588
|
}
|
|
589
589
|
copyFrom(other) {
|
|
590
590
|
const { schemas, exceptions } = this;
|
|
@@ -602,7 +602,9 @@ class TypeRegistry {
|
|
|
602
602
|
register(shapeId, schema) {
|
|
603
603
|
const qualifiedName = this.normalizeShapeId(shapeId);
|
|
604
604
|
for (const r of [this, TypeRegistry.for(qualifiedName.split("#")[0])]) {
|
|
605
|
-
r.schemas.
|
|
605
|
+
if (!r.schemas.has(qualifiedName)) {
|
|
606
|
+
r.schemas.set(qualifiedName, schema);
|
|
607
|
+
}
|
|
606
608
|
}
|
|
607
609
|
}
|
|
608
610
|
getSchema(shapeId) {
|
|
@@ -627,9 +629,15 @@ class TypeRegistry {
|
|
|
627
629
|
registerError(es, ctor) {
|
|
628
630
|
const $error = es;
|
|
629
631
|
const ns = $error[1];
|
|
632
|
+
const qualifiedName = ns + "#" + $error[2];
|
|
633
|
+
if (!ctor.hasOwnProperty?.("shapeId")) {
|
|
634
|
+
ctor.shapeId = qualifiedName;
|
|
635
|
+
}
|
|
630
636
|
for (const r of [this, TypeRegistry.for(ns)]) {
|
|
631
|
-
r.schemas.
|
|
632
|
-
|
|
637
|
+
if (!r.schemas.has(qualifiedName) && !r.exceptions.has($error)) {
|
|
638
|
+
r.schemas.set(qualifiedName, $error);
|
|
639
|
+
r.exceptions.set($error, ctor);
|
|
640
|
+
}
|
|
633
641
|
}
|
|
634
642
|
}
|
|
635
643
|
getErrorCtor(es) {
|
|
@@ -50,37 +50,37 @@ export class SmithyRpcV2CborProtocol extends RpcProtocol {
|
|
|
50
50
|
return super.deserializeResponse(operationSchema, context, response);
|
|
51
51
|
}
|
|
52
52
|
async handleError(operationSchema, context, response, dataObject, metadata) {
|
|
53
|
-
const
|
|
53
|
+
const errorIdentifier = loadSmithyRpcV2CborErrorCode(response, dataObject) ?? "Unknown";
|
|
54
|
+
const preferredNamespaces = ["*"];
|
|
55
|
+
const { defaultNamespace } = this.options;
|
|
56
|
+
preferredNamespaces.unshift(defaultNamespace);
|
|
57
|
+
const [namespace, errorShapeName] = (() => {
|
|
58
|
+
if (errorIdentifier.includes("#")) {
|
|
59
|
+
return errorIdentifier.split("#");
|
|
60
|
+
}
|
|
61
|
+
return [undefined, errorIdentifier];
|
|
62
|
+
})();
|
|
63
|
+
if (namespace) {
|
|
64
|
+
preferredNamespaces.unshift(namespace);
|
|
65
|
+
}
|
|
54
66
|
const errorMetadata = {
|
|
55
67
|
$metadata: metadata,
|
|
56
|
-
$fault: response.statusCode
|
|
68
|
+
$fault: response.statusCode < 500 ? "client" : "server",
|
|
57
69
|
};
|
|
58
|
-
|
|
59
|
-
if (
|
|
60
|
-
|
|
70
|
+
const preferredRegistries = [this.compositeErrorRegistry];
|
|
71
|
+
if (namespace) {
|
|
72
|
+
preferredRegistries.push(TypeRegistry.for(namespace));
|
|
61
73
|
}
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
let errorSchema;
|
|
66
|
-
try {
|
|
67
|
-
errorSchema = registry.getSchema(errorName);
|
|
68
|
-
}
|
|
69
|
-
catch (ignored) {
|
|
74
|
+
preferredRegistries.push(TypeRegistry.for(defaultNamespace));
|
|
75
|
+
const [errorSchema, ErrorCtor, errorMode] = this.resolveError(errorShapeName, preferredNamespaces, preferredRegistries);
|
|
76
|
+
if (errorMode === "native" || errorMode === "synthetic") {
|
|
70
77
|
if (dataObject.Message) {
|
|
71
78
|
dataObject.message = dataObject.Message;
|
|
72
79
|
}
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
const baseExceptionSchema = registry.getBaseException();
|
|
76
|
-
if (baseExceptionSchema) {
|
|
77
|
-
const ErrorCtor = registry.getErrorCtor(baseExceptionSchema);
|
|
78
|
-
throw Object.assign(new ErrorCtor({ name: errorName }), errorMetadata, dataObject);
|
|
79
|
-
}
|
|
80
|
-
throw Object.assign(new Error(errorName), errorMetadata, dataObject);
|
|
80
|
+
const error = errorMode === "synthetic" ? new ErrorCtor({ name: errorShapeName }) : new Error(errorShapeName);
|
|
81
|
+
throw Object.assign(error, errorMetadata, dataObject);
|
|
81
82
|
}
|
|
82
83
|
const ns = NormalizedSchema.of(errorSchema);
|
|
83
|
-
const ErrorCtor = registry.getErrorCtor(errorSchema);
|
|
84
84
|
const message = dataObject.message ?? dataObject.Message ?? "Unknown";
|
|
85
85
|
const exception = new ErrorCtor({});
|
|
86
86
|
const output = {};
|
|
@@ -42,26 +42,11 @@ export const loadSmithyRpcV2CborErrorCode = (output, data) => {
|
|
|
42
42
|
if (cleanValue.indexOf(":") >= 0) {
|
|
43
43
|
cleanValue = cleanValue.split(":")[0];
|
|
44
44
|
}
|
|
45
|
-
if (cleanValue.indexOf("#") >= 0) {
|
|
46
|
-
cleanValue = cleanValue.split("#")[1];
|
|
47
|
-
}
|
|
48
45
|
return cleanValue;
|
|
49
46
|
};
|
|
50
47
|
if (data["__type"] !== undefined) {
|
|
51
48
|
return sanitizeErrorCode(data["__type"]);
|
|
52
49
|
}
|
|
53
|
-
let codeKey;
|
|
54
|
-
for (const key in data) {
|
|
55
|
-
if (!hasOwn(data, key))
|
|
56
|
-
continue;
|
|
57
|
-
if (key.toLowerCase() === "code") {
|
|
58
|
-
codeKey = key;
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (codeKey && data[codeKey] !== undefined) {
|
|
63
|
-
return sanitizeErrorCode(data[codeKey]);
|
|
64
|
-
}
|
|
65
50
|
};
|
|
66
51
|
export const checkCborResponse = (response) => {
|
|
67
52
|
if (String(response.headers["smithy-protocol"]).toLowerCase() !== "rpc-v2-cbor") {
|
|
@@ -5,7 +5,7 @@ export { invalidFunction } from "./invalid-dependency/invalidFunction";
|
|
|
5
5
|
export { invalidProvider } from "./invalid-dependency/invalidProvider";
|
|
6
6
|
export { createWaiter } from "./util-waiter/createWaiter";
|
|
7
7
|
export { waiterServiceDefaults, WaiterState, checkExceptions, } from "./util-waiter/waiter";
|
|
8
|
-
export { Client } from "./smithy-client/client";
|
|
8
|
+
export { Client, } from "./smithy-client/client";
|
|
9
9
|
export { Command } from "./smithy-client/command";
|
|
10
10
|
export { SENSITIVE_STRING } from "./smithy-client/constants";
|
|
11
11
|
export { createAggregatedClient } from "./smithy-client/create-aggregated-client";
|
|
@@ -13,20 +13,27 @@ export class Command {
|
|
|
13
13
|
}
|
|
14
14
|
const stack = clientStack.concat(this.middlewareStack);
|
|
15
15
|
const { logger } = configuration;
|
|
16
|
+
const additionalSmithyContext = additionalContext[SMITHY_CONTEXT_KEY];
|
|
16
17
|
const handlerExecutionContext = {
|
|
17
18
|
logger,
|
|
18
19
|
clientName,
|
|
19
20
|
commandName,
|
|
20
21
|
inputFilterSensitiveLog,
|
|
21
22
|
outputFilterSensitiveLog,
|
|
23
|
+
...additionalContext,
|
|
22
24
|
[SMITHY_CONTEXT_KEY]: {
|
|
25
|
+
...additionalSmithyContext,
|
|
23
26
|
commandInstance: this,
|
|
24
27
|
...smithyContext,
|
|
28
|
+
...(options?.metricsRecorder === undefined ? {} : { metricsRecorder: options.metricsRecorder }),
|
|
25
29
|
},
|
|
26
|
-
...additionalContext,
|
|
27
30
|
};
|
|
28
31
|
const { requestHandler } = configuration;
|
|
29
32
|
let requestOptions = options ?? {};
|
|
33
|
+
if (requestOptions.metricsRecorder) {
|
|
34
|
+
requestOptions = { ...requestOptions };
|
|
35
|
+
delete requestOptions.metricsRecorder;
|
|
36
|
+
}
|
|
30
37
|
if (smithyContext.eventStream) {
|
|
31
38
|
requestOptions = {
|
|
32
39
|
isEventStream: true,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export class ServiceException extends Error {
|
|
2
|
+
static shapeId = "smithy.ts.sdk.synthetic.nonamespace.client#ServiceException";
|
|
2
3
|
$fault;
|
|
3
4
|
$response;
|
|
4
5
|
$retryable;
|
|
@@ -27,10 +28,46 @@ export class ServiceException extends Error {
|
|
|
27
28
|
return ServiceException.isInstance(instance);
|
|
28
29
|
}
|
|
29
30
|
if (ServiceException.isInstance(instance)) {
|
|
30
|
-
if (
|
|
31
|
-
return
|
|
31
|
+
if (this.prototype.isPrototypeOf(instance)) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
const targetId = Object.prototype.hasOwnProperty.call(this, "shapeId")
|
|
35
|
+
? this.shapeId
|
|
36
|
+
: undefined;
|
|
37
|
+
let candidateHasShapeId = false;
|
|
38
|
+
if (targetId) {
|
|
39
|
+
let proto = Object.getPrototypeOf(candidate);
|
|
40
|
+
while (proto && proto !== Object.prototype) {
|
|
41
|
+
const ctor = proto.constructor;
|
|
42
|
+
const candidateId = ctor !== ServiceException && Object.prototype.hasOwnProperty.call(ctor, "shapeId")
|
|
43
|
+
? ctor?.shapeId
|
|
44
|
+
: undefined;
|
|
45
|
+
if (candidateId) {
|
|
46
|
+
candidateHasShapeId = true;
|
|
47
|
+
if (candidateId === targetId) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
proto = Object.getPrototypeOf(proto);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (targetId && candidateHasShapeId) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
const targetName = this.name;
|
|
58
|
+
if (targetName && targetName.length >= 6) {
|
|
59
|
+
if (candidate.name === targetName) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
let proto = Object.getPrototypeOf(candidate);
|
|
63
|
+
while (proto && proto !== Object.prototype) {
|
|
64
|
+
const ctorName = proto.constructor?.name;
|
|
65
|
+
if (ctorName && ctorName !== "Error" && ctorName === targetName) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
proto = Object.getPrototypeOf(proto);
|
|
69
|
+
}
|
|
32
70
|
}
|
|
33
|
-
return this.prototype.isPrototypeOf(instance);
|
|
34
71
|
}
|
|
35
72
|
return false;
|
|
36
73
|
}
|
|
@@ -8,7 +8,7 @@ export class HttpProtocol extends SerdeContext {
|
|
|
8
8
|
constructor(options) {
|
|
9
9
|
super();
|
|
10
10
|
this.options = options;
|
|
11
|
-
this.compositeErrorRegistry = TypeRegistry
|
|
11
|
+
this.compositeErrorRegistry = new TypeRegistry(options.defaultNamespace);
|
|
12
12
|
for (const etr of options.errorTypeRegistries ?? []) {
|
|
13
13
|
this.compositeErrorRegistry.copyFrom(etr);
|
|
14
14
|
}
|
|
@@ -103,6 +103,47 @@ export class HttpProtocol extends SerdeContext {
|
|
|
103
103
|
cfId: output.headers["x-amz-cf-id"],
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
+
resolveError(name, namespaces, registries) {
|
|
107
|
+
const defaultErrorSchema = [-3, "", "Error", 0, [], [], 0];
|
|
108
|
+
let schema;
|
|
109
|
+
for (const registry of registries) {
|
|
110
|
+
for (const ns of namespaces) {
|
|
111
|
+
try {
|
|
112
|
+
if (ns === "*") {
|
|
113
|
+
schema = registry.getSchema(name);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
schema = registry.getSchema(ns + "#" + name);
|
|
117
|
+
}
|
|
118
|
+
const errorCtor = registry.getErrorCtor(schema);
|
|
119
|
+
if (errorCtor) {
|
|
120
|
+
return [schema, errorCtor, "modeled"];
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const syntheticErrorSchema = registry.getBaseException();
|
|
124
|
+
if (syntheticErrorSchema) {
|
|
125
|
+
const syntheticErrorCtor = registry.getErrorCtor(syntheticErrorSchema);
|
|
126
|
+
if (syntheticErrorCtor) {
|
|
127
|
+
return [schema, syntheticErrorCtor, "synthetic"];
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch (ignored) {
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
for (const registry of registries) {
|
|
137
|
+
const syntheticErrorSchema = registry.getBaseException();
|
|
138
|
+
if (syntheticErrorSchema) {
|
|
139
|
+
const syntheticErrorCtor = registry.getErrorCtor(syntheticErrorSchema);
|
|
140
|
+
if (syntheticErrorCtor) {
|
|
141
|
+
return [syntheticErrorSchema, syntheticErrorCtor, "synthetic"];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return [defaultErrorSchema, Error, "native"];
|
|
146
|
+
}
|
|
106
147
|
async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {
|
|
107
148
|
const eventStreamSerde = await this.loadEventStreamCapability();
|
|
108
149
|
return eventStreamSerde.serializeEventStream({
|
|
@@ -131,13 +172,6 @@ export class HttpProtocol extends SerdeContext {
|
|
|
131
172
|
compositeErrorRegistry: this.compositeErrorRegistry,
|
|
132
173
|
});
|
|
133
174
|
}
|
|
134
|
-
resolveEventStreamMarshaller(importedProvider) {
|
|
135
|
-
const context = this.serdeContext;
|
|
136
|
-
if (context.eventStreamMarshaller) {
|
|
137
|
-
return context.eventStreamMarshaller;
|
|
138
|
-
}
|
|
139
|
-
return importedProvider(this.serdeContext);
|
|
140
|
-
}
|
|
141
175
|
getDefaultContentType() {
|
|
142
176
|
throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);
|
|
143
177
|
}
|
|
@@ -156,4 +190,11 @@ export class HttpProtocol extends SerdeContext {
|
|
|
156
190
|
}
|
|
157
191
|
return context.eventStreamMarshaller;
|
|
158
192
|
}
|
|
193
|
+
resolveEventStreamMarshaller(importedProvider) {
|
|
194
|
+
const context = this.serdeContext;
|
|
195
|
+
if (context.eventStreamMarshaller) {
|
|
196
|
+
return context.eventStreamMarshaller;
|
|
197
|
+
}
|
|
198
|
+
return importedProvider(this.serdeContext);
|
|
199
|
+
}
|
|
159
200
|
}
|
|
@@ -7,12 +7,12 @@ export class TypeRegistry {
|
|
|
7
7
|
this.namespace = namespace;
|
|
8
8
|
this.schemas = schemas;
|
|
9
9
|
this.exceptions = exceptions;
|
|
10
|
-
}
|
|
11
|
-
static for(namespace) {
|
|
12
10
|
if (!TypeRegistry.registries.has(namespace)) {
|
|
13
|
-
TypeRegistry.registries.set(namespace,
|
|
11
|
+
TypeRegistry.registries.set(namespace, this);
|
|
14
12
|
}
|
|
15
|
-
|
|
13
|
+
}
|
|
14
|
+
static for(namespace) {
|
|
15
|
+
return TypeRegistry.registries.get(namespace) ?? new TypeRegistry(namespace);
|
|
16
16
|
}
|
|
17
17
|
copyFrom(other) {
|
|
18
18
|
const { schemas, exceptions } = this;
|
|
@@ -30,7 +30,9 @@ export class TypeRegistry {
|
|
|
30
30
|
register(shapeId, schema) {
|
|
31
31
|
const qualifiedName = this.normalizeShapeId(shapeId);
|
|
32
32
|
for (const r of [this, TypeRegistry.for(qualifiedName.split("#")[0])]) {
|
|
33
|
-
r.schemas.
|
|
33
|
+
if (!r.schemas.has(qualifiedName)) {
|
|
34
|
+
r.schemas.set(qualifiedName, schema);
|
|
35
|
+
}
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
getSchema(shapeId) {
|
|
@@ -55,9 +57,15 @@ export class TypeRegistry {
|
|
|
55
57
|
registerError(es, ctor) {
|
|
56
58
|
const $error = es;
|
|
57
59
|
const ns = $error[1];
|
|
60
|
+
const qualifiedName = ns + "#" + $error[2];
|
|
61
|
+
if (!ctor.hasOwnProperty?.("shapeId")) {
|
|
62
|
+
ctor.shapeId = qualifiedName;
|
|
63
|
+
}
|
|
58
64
|
for (const r of [this, TypeRegistry.for(ns)]) {
|
|
59
|
-
r.schemas.
|
|
60
|
-
|
|
65
|
+
if (!r.schemas.has(qualifiedName) && !r.exceptions.has($error)) {
|
|
66
|
+
r.schemas.set(qualifiedName, $error);
|
|
67
|
+
r.exceptions.set($error, ctor);
|
|
68
|
+
}
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
getErrorCtor(es) {
|