Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
20 lines
1.1 KiB
Text
20 lines
1.1 KiB
Text
import { HttpRequest } from "@smithy/protocol-http";
|
|
import { getSkewCorrectedDate } from "../utils";
|
|
import { AwsSdkSigV4Signer, validateSigningProperties } from "./AwsSdkSigV4Signer";
|
|
export class AwsSdkSigV4ASigner extends AwsSdkSigV4Signer {
|
|
async sign(httpRequest, identity, signingProperties) {
|
|
if (!HttpRequest.isInstance(httpRequest)) {
|
|
throw new Error("The request is not an instance of `HttpRequest` and cannot be signed");
|
|
}
|
|
const { config, signer, signingRegion, signingRegionSet, signingName } = await validateSigningProperties(signingProperties);
|
|
const configResolvedSigningRegionSet = await config.sigv4aSigningRegionSet?.();
|
|
const multiRegionOverride = (configResolvedSigningRegionSet ??
|
|
signingRegionSet ?? [signingRegion]).join(",");
|
|
const signedRequest = await signer.sign(httpRequest, {
|
|
signingDate: getSkewCorrectedDate(config.systemClockOffset),
|
|
signingRegion: multiRegionOverride,
|
|
signingService: signingName,
|
|
});
|
|
return signedRequest;
|
|
}
|
|
}
|