diff --git a/packages/signature-v4-multi-region/package.json b/packages/signature-v4-multi-region/package.json index 068cf4cfbba8c..f031c7c71cde7 100644 --- a/packages/signature-v4-multi-region/package.json +++ b/packages/signature-v4-multi-region/package.json @@ -24,7 +24,6 @@ "@aws-sdk/types": "*", "@smithy/protocol-http": "^4.0.3", "@smithy/signature-v4": "^3.1.2", - "@smithy/signature-v4a": "*", "@smithy/types": "^3.3.0", "tslib": "^2.6.2" }, diff --git a/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts b/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts index 3296eb1253564..d035ea2e84bfb 100644 --- a/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts +++ b/packages/signature-v4-multi-region/src/SignatureV4MultiRegion.ts @@ -119,7 +119,7 @@ export class SignatureV4MultiRegion implements RequestPresigner, RequestSigner { } else { throw new Error( "Neither CRT nor JS SigV4a implementation is available. " + - "Please load either @aws-sdk/signature-v4-crt or @smithy/signature-v4a." + "Please load either @aws-sdk/signature-v4-crt or @smithy/signature-v4a." ); } } diff --git a/packages/signature-v4-multi-region/src/signature-v4a-container.ts b/packages/signature-v4-multi-region/src/signature-v4a-container.ts index 88c16469cb181..b0e24362a7a09 100644 --- a/packages/signature-v4-multi-region/src/signature-v4a-container.ts +++ b/packages/signature-v4-multi-region/src/signature-v4a-container.ts @@ -5,6 +5,12 @@ import type { HttpRequest, RequestPresigner, RequestSigner, RequestSigningArgume * @public */ export type OptionalSigV4aSigner = { + /** + * This constructor is not typed so as not to require a type import + * from the signature-v4a package. + * + * The true type is SignatureV4a from @smithy/signature-v4a. + */ new (options: any): RequestPresigner & RequestSigner & { signWithCredentials( @@ -17,6 +23,11 @@ export type OptionalSigV4aSigner = { /** * @public + * + * \@smithy/signature-v4a will install the constructor in this + * container if it is installed. + * + * This avoids a runtime-require being interpreted statically by bundlers. */ export const signatureV4aContainer: { SignatureV4a: null | OptionalSigV4aSigner;