@aws-sdk/middleware-flexible-checksums 3.398.0 → 3.400.0

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.
@@ -8,7 +8,6 @@ const hasHeader_1 = require("./hasHeader");
8
8
  const isStreaming_1 = require("./isStreaming");
9
9
  const selectChecksumAlgorithmFunction_1 = require("./selectChecksumAlgorithmFunction");
10
10
  const stringHasher_1 = require("./stringHasher");
11
- const validateChecksumFromResponse_1 = require("./validateChecksumFromResponse");
12
11
  const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next) => async (args) => {
13
12
  if (!protocol_http_1.HttpRequest.isInstance(args.request)) {
14
13
  return next(args);
@@ -63,13 +62,6 @@ const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next) => asyn
63
62
  body: updatedBody,
64
63
  },
65
64
  });
66
- const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;
67
- if (requestValidationModeMember && input[requestValidationModeMember] === "ENABLED") {
68
- await (0, validateChecksumFromResponse_1.validateChecksumFromResponse)(result.response, {
69
- config,
70
- responseAlgorithms,
71
- });
72
- }
73
65
  return result;
74
66
  };
75
67
  exports.flexibleChecksumsMiddleware = flexibleChecksumsMiddleware;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flexibleChecksumsResponseMiddleware = exports.flexibleChecksumsResponseMiddlewareOptions = void 0;
4
+ const protocol_http_1 = require("@smithy/protocol-http");
5
+ const isStreaming_1 = require("./isStreaming");
6
+ const create_read_stream_on_buffer_1 = require("./streams/create-read-stream-on-buffer");
7
+ const validateChecksumFromResponse_1 = require("./validateChecksumFromResponse");
8
+ exports.flexibleChecksumsResponseMiddlewareOptions = {
9
+ name: "flexibleChecksumsResponseMiddleware",
10
+ toMiddleware: "deserializerMiddleware",
11
+ relation: "after",
12
+ tags: ["BODY_CHECKSUM"],
13
+ override: true,
14
+ };
15
+ const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next) => async (args) => {
16
+ if (!protocol_http_1.HttpRequest.isInstance(args.request)) {
17
+ return next(args);
18
+ }
19
+ const input = args.input;
20
+ const result = await next(args);
21
+ const response = result.response;
22
+ let collectedStream = undefined;
23
+ const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;
24
+ if (requestValidationModeMember && input[requestValidationModeMember] === "ENABLED") {
25
+ const isStreamingBody = (0, isStreaming_1.isStreaming)(response.body);
26
+ if (isStreamingBody) {
27
+ collectedStream = await config.streamCollector(response.body);
28
+ response.body = (0, create_read_stream_on_buffer_1.createReadStreamOnBuffer)(collectedStream);
29
+ }
30
+ await (0, validateChecksumFromResponse_1.validateChecksumFromResponse)(result.response, {
31
+ config,
32
+ responseAlgorithms,
33
+ });
34
+ if (isStreamingBody && collectedStream) {
35
+ response.body = (0, create_read_stream_on_buffer_1.createReadStreamOnBuffer)(collectedStream);
36
+ }
37
+ }
38
+ return result;
39
+ };
40
+ exports.flexibleChecksumsResponseMiddleware = flexibleChecksumsResponseMiddleware;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFlexibleChecksumsPlugin = exports.flexibleChecksumsMiddlewareOptions = void 0;
4
4
  const flexibleChecksumsMiddleware_1 = require("./flexibleChecksumsMiddleware");
5
+ const flexibleChecksumsResponseMiddleware_1 = require("./flexibleChecksumsResponseMiddleware");
5
6
  exports.flexibleChecksumsMiddlewareOptions = {
6
7
  name: "flexibleChecksumsMiddleware",
7
8
  step: "build",
@@ -11,6 +12,7 @@ exports.flexibleChecksumsMiddlewareOptions = {
11
12
  const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({
12
13
  applyToStack: (clientStack) => {
13
14
  clientStack.add((0, flexibleChecksumsMiddleware_1.flexibleChecksumsMiddleware)(config, middlewareConfig), exports.flexibleChecksumsMiddlewareOptions);
15
+ clientStack.addRelativeTo((0, flexibleChecksumsResponseMiddleware_1.flexibleChecksumsResponseMiddleware)(config, middlewareConfig), flexibleChecksumsResponseMiddleware_1.flexibleChecksumsResponseMiddlewareOptions);
14
16
  },
15
17
  });
16
18
  exports.getFlexibleChecksumsPlugin = getFlexibleChecksumsPlugin;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createReadStreamOnBuffer = void 0;
4
+ function createReadStreamOnBuffer(buffer) {
5
+ return new Blob([buffer]).stream();
6
+ }
7
+ exports.createReadStreamOnBuffer = createReadStreamOnBuffer;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createReadStreamOnBuffer = void 0;
4
+ const stream_1 = require("stream");
5
+ function createReadStreamOnBuffer(buffer) {
6
+ const stream = new stream_1.Transform();
7
+ stream.push(buffer);
8
+ stream.push(null);
9
+ return stream;
10
+ }
11
+ exports.createReadStreamOnBuffer = createReadStreamOnBuffer;
@@ -5,7 +5,6 @@ import { hasHeader } from "./hasHeader";
5
5
  import { isStreaming } from "./isStreaming";
6
6
  import { selectChecksumAlgorithmFunction } from "./selectChecksumAlgorithmFunction";
7
7
  import { stringHasher } from "./stringHasher";
8
- import { validateChecksumFromResponse } from "./validateChecksumFromResponse";
9
8
  export const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next) => async (args) => {
10
9
  if (!HttpRequest.isInstance(args.request)) {
11
10
  return next(args);
@@ -60,12 +59,5 @@ export const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next)
60
59
  body: updatedBody,
61
60
  },
62
61
  });
63
- const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;
64
- if (requestValidationModeMember && input[requestValidationModeMember] === "ENABLED") {
65
- await validateChecksumFromResponse(result.response, {
66
- config,
67
- responseAlgorithms,
68
- });
69
- }
70
62
  return result;
71
63
  };
@@ -0,0 +1,36 @@
1
+ import { HttpRequest } from "@smithy/protocol-http";
2
+ import { isStreaming } from "./isStreaming";
3
+ import { createReadStreamOnBuffer } from "./streams/create-read-stream-on-buffer";
4
+ import { validateChecksumFromResponse } from "./validateChecksumFromResponse";
5
+ export const flexibleChecksumsResponseMiddlewareOptions = {
6
+ name: "flexibleChecksumsResponseMiddleware",
7
+ toMiddleware: "deserializerMiddleware",
8
+ relation: "after",
9
+ tags: ["BODY_CHECKSUM"],
10
+ override: true,
11
+ };
12
+ export const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next) => async (args) => {
13
+ if (!HttpRequest.isInstance(args.request)) {
14
+ return next(args);
15
+ }
16
+ const input = args.input;
17
+ const result = await next(args);
18
+ const response = result.response;
19
+ let collectedStream = undefined;
20
+ const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;
21
+ if (requestValidationModeMember && input[requestValidationModeMember] === "ENABLED") {
22
+ const isStreamingBody = isStreaming(response.body);
23
+ if (isStreamingBody) {
24
+ collectedStream = await config.streamCollector(response.body);
25
+ response.body = createReadStreamOnBuffer(collectedStream);
26
+ }
27
+ await validateChecksumFromResponse(result.response, {
28
+ config,
29
+ responseAlgorithms,
30
+ });
31
+ if (isStreamingBody && collectedStream) {
32
+ response.body = createReadStreamOnBuffer(collectedStream);
33
+ }
34
+ }
35
+ return result;
36
+ };
@@ -1,4 +1,5 @@
1
1
  import { flexibleChecksumsMiddleware } from "./flexibleChecksumsMiddleware";
2
+ import { flexibleChecksumsResponseMiddleware, flexibleChecksumsResponseMiddlewareOptions, } from "./flexibleChecksumsResponseMiddleware";
2
3
  export const flexibleChecksumsMiddlewareOptions = {
3
4
  name: "flexibleChecksumsMiddleware",
4
5
  step: "build",
@@ -8,5 +9,6 @@ export const flexibleChecksumsMiddlewareOptions = {
8
9
  export const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({
9
10
  applyToStack: (clientStack) => {
10
11
  clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);
12
+ clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);
11
13
  },
12
14
  });
@@ -0,0 +1,3 @@
1
+ export function createReadStreamOnBuffer(buffer) {
2
+ return new Blob([buffer]).stream();
3
+ }
@@ -0,0 +1,7 @@
1
+ import { Transform } from "stream";
2
+ export function createReadStreamOnBuffer(buffer) {
3
+ const stream = new Transform();
4
+ stream.push(buffer);
5
+ stream.push(null);
6
+ return stream;
7
+ }
@@ -1,4 +1,4 @@
1
- import { BodyLengthCalculator, ChecksumConstructor, Encoder, GetAwsChunkedEncodingStream, HashConstructor, StreamHasher } from "@smithy/types";
1
+ import { BodyLengthCalculator, ChecksumConstructor, Encoder, GetAwsChunkedEncodingStream, HashConstructor, StreamCollector, StreamHasher } from "@smithy/types";
2
2
  export interface PreviouslyResolved {
3
3
  /**
4
4
  * The function that will be used to convert binary data to a base64-encoded string.
@@ -33,4 +33,8 @@ export interface PreviouslyResolved {
33
33
  * @internal
34
34
  */
35
35
  streamHasher: StreamHasher<any>;
36
+ /**
37
+ * Collects streams into buffers.
38
+ */
39
+ streamCollector: StreamCollector;
36
40
  }
@@ -1,4 +1,7 @@
1
1
  import { BuildMiddleware } from "@smithy/types";
2
2
  import { PreviouslyResolved } from "./configuration";
3
3
  import { FlexibleChecksumsMiddlewareConfig } from "./getFlexibleChecksumsPlugin";
4
+ /**
5
+ * @internal
6
+ */
4
7
  export declare const flexibleChecksumsMiddleware: (config: PreviouslyResolved, middlewareConfig: FlexibleChecksumsMiddlewareConfig) => BuildMiddleware<any, any>;
@@ -0,0 +1,13 @@
1
+ import { DeserializeMiddleware, RelativeMiddlewareOptions } from "@smithy/types";
2
+ import { PreviouslyResolved } from "./configuration";
3
+ import { FlexibleChecksumsMiddlewareConfig } from "./getFlexibleChecksumsPlugin";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare const flexibleChecksumsResponseMiddlewareOptions: RelativeMiddlewareOptions;
8
+ /**
9
+ * @internal
10
+ *
11
+ * The validation counterpart to the flexibleChecksumsMiddleware.
12
+ */
13
+ export declare const flexibleChecksumsResponseMiddleware: (config: PreviouslyResolved, middlewareConfig: FlexibleChecksumsMiddlewareConfig) => DeserializeMiddleware<any, any>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Convert a buffer to a readable stream.
3
+ */
4
+ export declare function createReadStreamOnBuffer(buffer: Uint8Array): ReadableStream;
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from "stream";
3
+ /**
4
+ * Convert a buffer to a readable stream.
5
+ */
6
+ export declare function createReadStreamOnBuffer(buffer: Uint8Array): Readable;
@@ -4,6 +4,7 @@ import {
4
4
  Encoder,
5
5
  GetAwsChunkedEncodingStream,
6
6
  HashConstructor,
7
+ StreamCollector,
7
8
  StreamHasher,
8
9
  } from "@smithy/types";
9
10
  export interface PreviouslyResolved {
@@ -14,4 +15,5 @@ export interface PreviouslyResolved {
14
15
  sha1: ChecksumConstructor | HashConstructor;
15
16
  sha256: ChecksumConstructor | HashConstructor;
16
17
  streamHasher: StreamHasher<any>;
18
+ streamCollector: StreamCollector;
17
19
  }
@@ -0,0 +1,11 @@
1
+ import {
2
+ DeserializeMiddleware,
3
+ RelativeMiddlewareOptions,
4
+ } from "@smithy/types";
5
+ import { PreviouslyResolved } from "./configuration";
6
+ import { FlexibleChecksumsMiddlewareConfig } from "./getFlexibleChecksumsPlugin";
7
+ export declare const flexibleChecksumsResponseMiddlewareOptions: RelativeMiddlewareOptions;
8
+ export declare const flexibleChecksumsResponseMiddleware: (
9
+ config: PreviouslyResolved,
10
+ middlewareConfig: FlexibleChecksumsMiddlewareConfig
11
+ ) => DeserializeMiddleware<any, any>;
@@ -0,0 +1,3 @@
1
+ export declare function createReadStreamOnBuffer(
2
+ buffer: Uint8Array
3
+ ): ReadableStream;
@@ -0,0 +1,2 @@
1
+ import { Readable } from "stream";
2
+ export declare function createReadStreamOnBuffer(buffer: Uint8Array): Readable;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/middleware-flexible-checksums",
3
- "version": "3.398.0",
3
+ "version": "3.400.0",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types'",
6
6
  "build:cjs": "tsc -p tsconfig.cjs.json",
@@ -14,6 +14,9 @@
14
14
  },
15
15
  "main": "./dist-cjs/index.js",
16
16
  "module": "./dist-es/index.js",
17
+ "browser": {
18
+ "./dist-es/streams/create-read-stream-on-buffer": "./dist-es/streams/create-read-stream-on-buffer.browser"
19
+ },
17
20
  "types": "./dist-types/index.d.ts",
18
21
  "author": {
19
22
  "name": "AWS SDK for JavaScript Team",
@@ -31,6 +34,7 @@
31
34
  "tslib": "^2.5.0"
32
35
  },
33
36
  "devDependencies": {
37
+ "@smithy/node-http-handler": "^2.0.5",
34
38
  "concurrently": "7.0.0",
35
39
  "downlevel-dts": "0.10.1",
36
40
  "rimraf": "3.0.2",