New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@aws-sdk/middleware-flexible-checksums

Package Overview
Dependencies
Maintainers
5
Versions
141
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/middleware-flexible-checksums - npm Package Compare versions

Comparing version 3.723.0 to 3.729.0

dist-es/crc64-nvme-crt-container.js

105

dist-cjs/index.js

@@ -37,3 +37,3 @@ "use strict";

ResponseChecksumValidation: () => ResponseChecksumValidation,
S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM: () => S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM,
crc64NvmeCrtContainer: () => crc64NvmeCrtContainer,
flexibleChecksumsMiddleware: () => flexibleChecksumsMiddleware,

@@ -85,2 +85,3 @@ flexibleChecksumsMiddlewareOptions: () => flexibleChecksumsMiddlewareOptions,

ChecksumAlgorithm3["CRC32C"] = "CRC32C";
ChecksumAlgorithm3["CRC64NVME"] = "CRC64NVME";
ChecksumAlgorithm3["SHA1"] = "SHA1";

@@ -95,4 +96,3 @@ ChecksumAlgorithm3["SHA256"] = "SHA256";

})(ChecksumLocation || {});
var DEFAULT_CHECKSUM_ALGORITHM = "MD5" /* MD5 */;
var S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM = "CRC32" /* CRC32 */;
var DEFAULT_CHECKSUM_ALGORITHM = "CRC32" /* CRC32 */;

@@ -128,2 +128,7 @@ // src/stringUnionSelector.ts

// src/crc64-nvme-crt-container.ts
var crc64NvmeCrtContainer = {
CrtCrc64Nvme: null
};
// src/flexibleChecksumsMiddleware.ts

@@ -137,2 +142,3 @@ var import_core = require("@aws-sdk/core");

"CRC32C" /* CRC32C */,
"CRC64NVME" /* CRC64NVME */,
"SHA1" /* SHA1 */,

@@ -145,11 +151,14 @@ "SHA256" /* SHA256 */

"CRC32" /* CRC32 */,
"CRC32C" /* CRC32C */
"CRC32C" /* CRC32C */,
"CRC64NVME" /* CRC64NVME */
];
// src/getChecksumAlgorithmForRequest.ts
var getChecksumAlgorithmForRequest = /* @__PURE__ */ __name((input, { requestChecksumRequired, requestAlgorithmMember }, isS3Express) => {
const defaultAlgorithm = isS3Express ? S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM : DEFAULT_CHECKSUM_ALGORITHM;
if (!requestAlgorithmMember || !input[requestAlgorithmMember]) {
return requestChecksumRequired ? defaultAlgorithm : void 0;
var getChecksumAlgorithmForRequest = /* @__PURE__ */ __name((input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {
if (!requestAlgorithmMember) {
return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired ? DEFAULT_CHECKSUM_ALGORITHM : void 0;
}
if (!input[requestAlgorithmMember]) {
return void 0;
}
const checksumAlgorithm = input[requestAlgorithmMember];

@@ -204,2 +213,11 @@ if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {

return import_crc32c.AwsCrc32c;
case "CRC64NVME" /* CRC64NVME */:
if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== "function") {
throw new Error(
`Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly.
You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";].
For more information please go to https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt`
);
}
return crc64NvmeCrtContainer.CrtCrc64Nvme;
case "SHA1" /* SHA1 */:

@@ -240,10 +258,18 @@ return config.sha1;

const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;
const checksumAlgorithm = getChecksumAlgorithmForRequest(
input,
{
requestChecksumRequired,
requestAlgorithmMember: requestAlgorithmMember?.name
},
!!context.isS3ExpressBucket
);
const requestChecksumCalculation = await config.requestChecksumCalculation();
const requestAlgorithmMemberName = requestAlgorithmMember?.name;
const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;
if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {
if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {
input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;
if (requestAlgorithmMemberHttpHeader) {
headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;
}
}
}
const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {
requestChecksumRequired,
requestAlgorithmMember: requestAlgorithmMember?.name,
requestChecksumCalculation
});
let updatedBody = requestBody;

@@ -259,2 +285,5 @@ let updatedHeaders = headers;

break;
case "CRC64NVME" /* CRC64NVME */:
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_CRC64", "W");
break;
case "SHA1" /* SHA1 */:

@@ -306,2 +335,40 @@ (0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_SHA1", "X");

// src/flexibleChecksumsInputMiddleware.ts
var flexibleChecksumsInputMiddlewareOptions = {
name: "flexibleChecksumsInputMiddleware",
toMiddleware: "serializerMiddleware",
relation: "before",
tags: ["BODY_CHECKSUM"],
override: true
};
var flexibleChecksumsInputMiddleware = /* @__PURE__ */ __name((config, middlewareConfig) => (next, context) => async (args) => {
const input = args.input;
const { requestValidationModeMember } = middlewareConfig;
const requestChecksumCalculation = await config.requestChecksumCalculation();
const responseChecksumValidation = await config.responseChecksumValidation();
switch (requestChecksumCalculation) {
case RequestChecksumCalculation.WHEN_REQUIRED:
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED", "a");
break;
case RequestChecksumCalculation.WHEN_SUPPORTED:
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED", "Z");
break;
}
switch (responseChecksumValidation) {
case ResponseChecksumValidation.WHEN_REQUIRED:
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED", "c");
break;
case ResponseChecksumValidation.WHEN_SUPPORTED:
(0, import_core.setFeature)(context, "FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED", "b");
break;
}
if (requestValidationModeMember && !input[requestValidationModeMember]) {
if (responseChecksumValidation === ResponseChecksumValidation.WHEN_SUPPORTED) {
input[requestValidationModeMember] = "ENABLED";
}
}
return next(args);
}, "flexibleChecksumsInputMiddleware");
// src/flexibleChecksumsResponseMiddleware.ts

@@ -425,2 +492,6 @@

clientStack.addRelativeTo(
flexibleChecksumsInputMiddleware(config, middlewareConfig),
flexibleChecksumsInputMiddlewareOptions
);
clientStack.addRelativeTo(
flexibleChecksumsResponseMiddleware(config, middlewareConfig),

@@ -459,3 +530,3 @@ flexibleChecksumsResponseMiddlewareOptions

DEFAULT_CHECKSUM_ALGORITHM,
S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM,
crc64NvmeCrtContainer,
flexibleChecksumsMiddlewareOptions,

@@ -462,0 +533,0 @@ flexibleChecksumsMiddleware,

4

dist-es/constants.js

@@ -16,2 +16,3 @@ export const RequestChecksumCalculation = {

ChecksumAlgorithm["CRC32C"] = "CRC32C";
ChecksumAlgorithm["CRC64NVME"] = "CRC64NVME";
ChecksumAlgorithm["SHA1"] = "SHA1";

@@ -25,3 +26,2 @@ ChecksumAlgorithm["SHA256"] = "SHA256";

})(ChecksumLocation || (ChecksumLocation = {}));
export const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.MD5;
export const S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;
export const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;
import { setFeature } from "@aws-sdk/core";
import { HttpRequest } from "@smithy/protocol-http";
import { ChecksumAlgorithm } from "./constants";
import { ChecksumAlgorithm, DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from "./constants";
import { getChecksumAlgorithmForRequest } from "./getChecksumAlgorithmForRequest";

@@ -28,6 +28,18 @@ import { getChecksumLocationName } from "./getChecksumLocationName";

const { requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;
const requestChecksumCalculation = await config.requestChecksumCalculation();
const requestAlgorithmMemberName = requestAlgorithmMember?.name;
const requestAlgorithmMemberHttpHeader = requestAlgorithmMember?.httpHeader;
if (requestAlgorithmMemberName && !input[requestAlgorithmMemberName]) {
if (requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired) {
input[requestAlgorithmMemberName] = DEFAULT_CHECKSUM_ALGORITHM;
if (requestAlgorithmMemberHttpHeader) {
headers[requestAlgorithmMemberHttpHeader] = DEFAULT_CHECKSUM_ALGORITHM;
}
}
}
const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {
requestChecksumRequired,
requestAlgorithmMember: requestAlgorithmMember?.name,
}, !!context.isS3ExpressBucket);
requestChecksumCalculation,
});
let updatedBody = requestBody;

@@ -43,2 +55,5 @@ let updatedHeaders = headers;

break;
case ChecksumAlgorithm.CRC64NVME:
setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_CRC64", "W");
break;
case ChecksumAlgorithm.SHA1:

@@ -45,0 +60,0 @@ setFeature(context, "FLEXIBLE_CHECKSUMS_REQ_SHA1", "X");

@@ -1,8 +0,12 @@

import { DEFAULT_CHECKSUM_ALGORITHM, S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM } from "./constants";
import { DEFAULT_CHECKSUM_ALGORITHM, RequestChecksumCalculation } from "./constants";
import { CLIENT_SUPPORTED_ALGORITHMS } from "./types";
export const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember }, isS3Express) => {
const defaultAlgorithm = isS3Express ? S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM : DEFAULT_CHECKSUM_ALGORITHM;
if (!requestAlgorithmMember || !input[requestAlgorithmMember]) {
return requestChecksumRequired ? defaultAlgorithm : undefined;
export const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }) => {
if (!requestAlgorithmMember) {
return requestChecksumCalculation === RequestChecksumCalculation.WHEN_SUPPORTED || requestChecksumRequired
? DEFAULT_CHECKSUM_ALGORITHM
: undefined;
}
if (!input[requestAlgorithmMember]) {
return undefined;
}
const checksumAlgorithm = input[requestAlgorithmMember];

@@ -9,0 +13,0 @@ if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {

@@ -0,1 +1,2 @@

import { flexibleChecksumsInputMiddleware, flexibleChecksumsInputMiddlewareOptions, } from "./flexibleChecksumsInputMiddleware";
import { flexibleChecksumsMiddleware, flexibleChecksumsMiddlewareOptions, } from "./flexibleChecksumsMiddleware";

@@ -6,4 +7,5 @@ import { flexibleChecksumsResponseMiddleware, flexibleChecksumsResponseMiddlewareOptions, } from "./flexibleChecksumsResponseMiddleware";

clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);
clientStack.addRelativeTo(flexibleChecksumsInputMiddleware(config, middlewareConfig), flexibleChecksumsInputMiddlewareOptions);
clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);
},
});
export * from "./NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS";
export * from "./NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS";
export * from "./constants";
export * from "./crc64-nvme-crt-container";
export * from "./flexibleChecksumsMiddleware";
export * from "./getFlexibleChecksumsPlugin";
export * from "./resolveFlexibleChecksumsConfig";
import { AwsCrc32c } from "@aws-crypto/crc32c";
import { ChecksumAlgorithm } from "./constants";
import { crc64NvmeCrtContainer } from "./crc64-nvme-crt-container";
import { getCrc32ChecksumAlgorithmFunction } from "./getCrc32ChecksumAlgorithmFunction";

@@ -12,2 +13,11 @@ export const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => {

return AwsCrc32c;
case ChecksumAlgorithm.CRC64NVME:
if (typeof crc64NvmeCrtContainer.CrtCrc64Nvme !== "function") {
throw new Error(`Please check whether you have installed the "@aws-sdk/crc64-nvme-crt" package explicitly. \n` +
`You must also register the package by calling [require("@aws-sdk/crc64-nvme-crt");] ` +
`or an ESM equivalent such as [import "@aws-sdk/crc64-nvme-crt";]. \n` +
"For more information please go to " +
"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt");
}
return crc64NvmeCrtContainer.CrtCrc64Nvme;
case ChecksumAlgorithm.SHA1:

@@ -14,0 +24,0 @@ return config.sha1;

@@ -5,2 +5,3 @@ import { ChecksumAlgorithm } from "./constants";

ChecksumAlgorithm.CRC32C,
ChecksumAlgorithm.CRC64NVME,
ChecksumAlgorithm.SHA1,

@@ -14,2 +15,3 @@ ChecksumAlgorithm.SHA256,

ChecksumAlgorithm.CRC32C,
ChecksumAlgorithm.CRC64NVME,
];

@@ -1,2 +0,3 @@

import { BodyLengthCalculator, ChecksumConstructor, Encoder, GetAwsChunkedEncodingStream, HashConstructor, StreamCollector, StreamHasher } from "@smithy/types";
import { BodyLengthCalculator, ChecksumConstructor, Encoder, GetAwsChunkedEncodingStream, HashConstructor, Provider, StreamCollector, StreamHasher } from "@smithy/types";
import { RequestChecksumCalculation, ResponseChecksumValidation } from "./constants";
export interface PreviouslyResolved {

@@ -22,2 +23,10 @@ /**

/**
* Determines when a checksum will be calculated for request payloads
*/
requestChecksumCalculation: Provider<RequestChecksumCalculation>;
/**
* Determines when a checksum will be calculated for response payloads
*/
responseChecksumValidation: Provider<ResponseChecksumValidation>;
/**
* A constructor for a class implementing the {@link Hash} interface that computes SHA1 hashes.

@@ -24,0 +33,0 @@ * @internal

@@ -47,5 +47,9 @@ /**

export declare enum ChecksumAlgorithm {
/**
* @deprecated Use {@link ChecksumAlgorithm.CRC32} instead.
*/
MD5 = "MD5",
CRC32 = "CRC32",
CRC32C = "CRC32C",
CRC64NVME = "CRC64NVME",
SHA1 = "SHA1",

@@ -64,6 +68,2 @@ SHA256 = "SHA256"

*/
export declare const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.MD5;
/**
* @internal
*/
export declare const S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;
export declare const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;

@@ -1,2 +0,2 @@

import { ChecksumAlgorithm } from "./constants";
import { ChecksumAlgorithm, RequestChecksumCalculation } from "./constants";
export interface GetChecksumAlgorithmForRequestOptions {

@@ -11,2 +11,6 @@ /**

requestAlgorithmMember?: string;
/**
* Determines when a checksum will be calculated for request payloads
*/
requestChecksumCalculation: RequestChecksumCalculation;
}

@@ -18,2 +22,2 @@ /**

*/
export declare const getChecksumAlgorithmForRequest: (input: any, { requestChecksumRequired, requestAlgorithmMember }: GetChecksumAlgorithmForRequestOptions, isS3Express?: boolean) => ChecksumAlgorithm | undefined;
export declare const getChecksumAlgorithmForRequest: (input: any, { requestChecksumRequired, requestAlgorithmMember, requestChecksumCalculation }: GetChecksumAlgorithmForRequestOptions) => ChecksumAlgorithm | undefined;
import { Pluggable } from "@smithy/types";
import { PreviouslyResolved } from "./configuration";
import { FlexibleChecksumsInputMiddlewareConfig } from "./flexibleChecksumsInputMiddleware";
import { FlexibleChecksumsRequestMiddlewareConfig } from "./flexibleChecksumsMiddleware";
import { FlexibleChecksumsResponseMiddlewareConfig } from "./flexibleChecksumsResponseMiddleware";
export interface FlexibleChecksumsMiddlewareConfig extends FlexibleChecksumsRequestMiddlewareConfig, FlexibleChecksumsResponseMiddlewareConfig {
export interface FlexibleChecksumsMiddlewareConfig extends FlexibleChecksumsRequestMiddlewareConfig, FlexibleChecksumsInputMiddlewareConfig, FlexibleChecksumsResponseMiddlewareConfig {
}
export declare const getFlexibleChecksumsPlugin: (config: PreviouslyResolved, middlewareConfig: FlexibleChecksumsMiddlewareConfig) => Pluggable<any, any>;
export * from "./NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS";
export * from "./NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS";
export * from "./constants";
export * from "./crc64-nvme-crt-container";
export * from "./flexibleChecksumsMiddleware";
export * from "./getFlexibleChecksumsPlugin";
export * from "./resolveFlexibleChecksumsConfig";

@@ -7,5 +7,10 @@ import {

HashConstructor,
Provider,
StreamCollector,
StreamHasher,
} from "@smithy/types";
import {
RequestChecksumCalculation,
ResponseChecksumValidation,
} from "./constants";
export interface PreviouslyResolved {

@@ -16,2 +21,4 @@ base64Encoder: Encoder;

md5: ChecksumConstructor | HashConstructor;
requestChecksumCalculation: Provider<RequestChecksumCalculation>;
responseChecksumValidation: Provider<ResponseChecksumValidation>;
sha1: ChecksumConstructor | HashConstructor;

@@ -18,0 +25,0 @@ sha256: ChecksumConstructor | HashConstructor;

@@ -19,2 +19,3 @@ export declare const RequestChecksumCalculation: {

CRC32C = "CRC32C",
CRC64NVME = "CRC64NVME",
SHA1 = "SHA1",

@@ -27,4 +28,2 @@ SHA256 = "SHA256",

}
export declare const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.MD5;
export declare const S3_EXPRESS_DEFAULT_CHECKSUM_ALGORITHM =
ChecksumAlgorithm.CRC32;
export declare const DEFAULT_CHECKSUM_ALGORITHM = ChecksumAlgorithm.CRC32;

@@ -1,5 +0,6 @@

import { ChecksumAlgorithm } from "./constants";
import { ChecksumAlgorithm, RequestChecksumCalculation } from "./constants";
export interface GetChecksumAlgorithmForRequestOptions {
requestChecksumRequired: boolean;
requestAlgorithmMember?: string;
requestChecksumCalculation: RequestChecksumCalculation;
}

@@ -11,4 +12,4 @@ export declare const getChecksumAlgorithmForRequest: (

requestAlgorithmMember,
}: GetChecksumAlgorithmForRequestOptions,
isS3Express?: boolean
requestChecksumCalculation,
}: GetChecksumAlgorithmForRequestOptions
) => ChecksumAlgorithm | undefined;
import { Pluggable } from "@smithy/types";
import { PreviouslyResolved } from "./configuration";
import { FlexibleChecksumsInputMiddlewareConfig } from "./flexibleChecksumsInputMiddleware";
import { FlexibleChecksumsRequestMiddlewareConfig } from "./flexibleChecksumsMiddleware";

@@ -7,2 +8,3 @@ import { FlexibleChecksumsResponseMiddlewareConfig } from "./flexibleChecksumsResponseMiddleware";

extends FlexibleChecksumsRequestMiddlewareConfig,
FlexibleChecksumsInputMiddlewareConfig,
FlexibleChecksumsResponseMiddlewareConfig {}

@@ -9,0 +11,0 @@ export declare const getFlexibleChecksumsPlugin: (

export * from "./NODE_REQUEST_CHECKSUM_CALCULATION_CONFIG_OPTIONS";
export * from "./NODE_RESPONSE_CHECKSUM_VALIDATION_CONFIG_OPTIONS";
export * from "./constants";
export * from "./crc64-nvme-crt-container";
export * from "./flexibleChecksumsMiddleware";
export * from "./getFlexibleChecksumsPlugin";
export * from "./resolveFlexibleChecksumsConfig";
{
"name": "@aws-sdk/middleware-flexible-checksums",
"version": "3.723.0",
"version": "3.729.0",
"scripts": {

@@ -5,0 +5,0 @@ "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc