Socket
Socket
Sign inDemoInstall

@aws-sdk/node-http-handler

Package Overview
Dependencies
Maintainers
5
Versions
140
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-sdk/node-http-handler - npm Package Compare versions

Comparing version 3.329.0 to 3.337.0

15

dist-cjs/node-http-handler.js

@@ -11,5 +11,5 @@ "use strict";

const set_connection_timeout_1 = require("./set-connection-timeout");
const set_socket_keep_alive_1 = require("./set-socket-keep-alive");
const set_socket_timeout_1 = require("./set-socket-timeout");
const write_request_body_1 = require("./write-request-body");
const set_socket_keep_alive_1 = require("./set-socket-keep-alive");
exports.DEFAULT_REQUEST_TIMEOUT = 0;

@@ -52,3 +52,12 @@ class NodeHttpHandler {

}
return new Promise((resolve, reject) => {
return new Promise((_resolve, _reject) => {
let writeRequestBodyPromise = undefined;
const resolve = async (arg) => {
await writeRequestBodyPromise;
_resolve(arg);
};
const reject = async (arg) => {
await writeRequestBodyPromise;
_reject(arg);
};
if (!this.config) {

@@ -107,3 +116,3 @@ throw new Error("Node HTTP request handler config is not resolved");

}
(0, write_request_body_1.writeRequestBody)(req, request);
writeRequestBodyPromise = (0, write_request_body_1.writeRequestBody)(req, request, this.config.requestTimeout);
});

@@ -110,0 +119,0 @@ }

31

dist-cjs/node-http2-handler.js

@@ -39,5 +39,14 @@ "use strict";

const { requestTimeout, disableConcurrentStreams } = this.config;
return new Promise((resolve, rejectOriginal) => {
return new Promise((_resolve, _reject) => {
var _a;
let fulfilled = false;
let writeRequestBodyPromise = undefined;
const resolve = async (arg) => {
await writeRequestBodyPromise;
_resolve(arg);
};
const reject = async (arg) => {
await writeRequestBodyPromise;
_reject(arg);
};
if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {

@@ -47,3 +56,3 @@ fulfilled = true;

abortError.name = "AbortError";
rejectOriginal(abortError);
reject(abortError);
return;

@@ -58,3 +67,3 @@ }

});
const reject = (err) => {
const rejectWithDestroy = (err) => {
if (disableConcurrentStreams) {

@@ -64,3 +73,3 @@ this.destroySession(session);

fulfilled = true;
rejectOriginal(err);
reject(err);
};

@@ -92,3 +101,3 @@ const queryString = (0, querystring_builder_1.buildQueryString)(query || {});

timeoutError.name = "TimeoutError";
reject(timeoutError);
rejectWithDestroy(timeoutError);
});

@@ -101,11 +110,11 @@ }

abortError.name = "AbortError";
reject(abortError);
rejectWithDestroy(abortError);
};
}
req.on("frameError", (type, code, id) => {
reject(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));
rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));
});
req.on("error", reject);
req.on("error", rejectWithDestroy);
req.on("aborted", () => {
reject(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));
rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));
});

@@ -118,6 +127,6 @@ req.on("close", () => {

if (!fulfilled) {
reject(new Error("Unexpected error: http2 request did not get a response"));
rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response"));
}
});
(0, write_request_body_1.writeRequestBody)(req, request);
writeRequestBodyPromise = (0, write_request_body_1.writeRequestBody)(req, request, requestTimeout);
});

@@ -124,0 +133,0 @@ }

@@ -5,12 +5,20 @@ "use strict";

const stream_1 = require("stream");
function writeRequestBody(httpRequest, request) {
const expect = request.headers["Expect"] || request.headers["expect"];
const MIN_WAIT_TIME = 1000;
async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) {
var _a;
const headers = (_a = request.headers) !== null && _a !== void 0 ? _a : {};
const expect = headers["Expect"] || headers["expect"];
if (expect === "100-continue") {
httpRequest.on("continue", () => {
writeBody(httpRequest, request.body);
});
await Promise.race([
new Promise((resolve) => {
setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs));
}),
new Promise((resolve) => {
httpRequest.on("continue", () => {
resolve();
});
}),
]);
}
else {
writeBody(httpRequest, request.body);
}
writeBody(httpRequest, request.body);
}

@@ -17,0 +25,0 @@ exports.writeRequestBody = writeRequestBody;

@@ -8,5 +8,5 @@ import { HttpResponse } from "@aws-sdk/protocol-http";

import { setConnectionTimeout } from "./set-connection-timeout";
import { setSocketKeepAlive } from "./set-socket-keep-alive";
import { setSocketTimeout } from "./set-socket-timeout";
import { writeRequestBody } from "./write-request-body";
import { setSocketKeepAlive } from "./set-socket-keep-alive";
export const DEFAULT_REQUEST_TIMEOUT = 0;

@@ -48,3 +48,12 @@ export class NodeHttpHandler {

}
return new Promise((resolve, reject) => {
return new Promise((_resolve, _reject) => {
let writeRequestBodyPromise = undefined;
const resolve = async (arg) => {
await writeRequestBodyPromise;
_resolve(arg);
};
const reject = async (arg) => {
await writeRequestBodyPromise;
_reject(arg);
};
if (!this.config) {

@@ -103,5 +112,5 @@ throw new Error("Node HTTP request handler config is not resolved");

}
writeRequestBody(req, request);
writeRequestBodyPromise = writeRequestBody(req, request, this.config.requestTimeout);
});
}
}

@@ -36,4 +36,13 @@ import { HttpResponse } from "@aws-sdk/protocol-http";

const { requestTimeout, disableConcurrentStreams } = this.config;
return new Promise((resolve, rejectOriginal) => {
return new Promise((_resolve, _reject) => {
let fulfilled = false;
let writeRequestBodyPromise = undefined;
const resolve = async (arg) => {
await writeRequestBodyPromise;
_resolve(arg);
};
const reject = async (arg) => {
await writeRequestBodyPromise;
_reject(arg);
};
if (abortSignal?.aborted) {

@@ -43,3 +52,3 @@ fulfilled = true;

abortError.name = "AbortError";
rejectOriginal(abortError);
reject(abortError);
return;

@@ -54,3 +63,3 @@ }

});
const reject = (err) => {
const rejectWithDestroy = (err) => {
if (disableConcurrentStreams) {

@@ -60,3 +69,3 @@ this.destroySession(session);

fulfilled = true;
rejectOriginal(err);
reject(err);
};

@@ -88,3 +97,3 @@ const queryString = buildQueryString(query || {});

timeoutError.name = "TimeoutError";
reject(timeoutError);
rejectWithDestroy(timeoutError);
});

@@ -97,11 +106,11 @@ }

abortError.name = "AbortError";
reject(abortError);
rejectWithDestroy(abortError);
};
}
req.on("frameError", (type, code, id) => {
reject(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));
rejectWithDestroy(new Error(`Frame type id ${type} in stream id ${id} has failed with code ${code}.`));
});
req.on("error", reject);
req.on("error", rejectWithDestroy);
req.on("aborted", () => {
reject(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));
rejectWithDestroy(new Error(`HTTP/2 stream is abnormally aborted in mid-communication with result code ${req.rstCode}.`));
});

@@ -114,6 +123,6 @@ req.on("close", () => {

if (!fulfilled) {
reject(new Error("Unexpected error: http2 request did not get a response"));
rejectWithDestroy(new Error("Unexpected error: http2 request did not get a response"));
}
});
writeRequestBody(req, request);
writeRequestBodyPromise = writeRequestBody(req, request, requestTimeout);
});

@@ -120,0 +129,0 @@ }

import { Readable } from "stream";
export function writeRequestBody(httpRequest, request) {
const expect = request.headers["Expect"] || request.headers["expect"];
const MIN_WAIT_TIME = 1000;
export async function writeRequestBody(httpRequest, request, maxContinueTimeoutMs = MIN_WAIT_TIME) {
const headers = request.headers ?? {};
const expect = headers["Expect"] || headers["expect"];
if (expect === "100-continue") {
httpRequest.on("continue", () => {
writeBody(httpRequest, request.body);
});
await Promise.race([
new Promise((resolve) => {
setTimeout(resolve, Math.max(MIN_WAIT_TIME, maxContinueTimeoutMs));
}),
new Promise((resolve) => {
httpRequest.on("continue", () => {
resolve();
});
}),
]);
}
else {
writeBody(httpRequest, request.body);
}
writeBody(httpRequest, request.body);
}

@@ -13,0 +20,0 @@ function writeBody(httpRequest, body) {

@@ -6,3 +6,4 @@ import { HttpRequest } from "@aws-sdk/types";

httpRequest: ClientRequest | ClientHttp2Stream,
request: HttpRequest
): void;
request: HttpRequest,
maxContinueTimeoutMs?: number
): Promise<void>;

@@ -6,2 +6,9 @@ /// <reference types="node" />

import { ClientHttp2Stream } from "http2";
export declare function writeRequestBody(httpRequest: ClientRequest | ClientHttp2Stream, request: HttpRequest): void;
/**
* This resolves when writeBody has been called.
*
* @param httpRequest - opened Node.js request.
* @param request - container with the request body.
* @param maxContinueTimeoutMs - maximum time to wait for the continue event. Minimum of 1000ms.
*/
export declare function writeRequestBody(httpRequest: ClientRequest | ClientHttp2Stream, request: HttpRequest, maxContinueTimeoutMs?: number): Promise<void>;
{
"name": "@aws-sdk/node-http-handler",
"version": "3.329.0",
"version": "3.337.0",
"description": "Provides a way to make requests",

@@ -25,6 +25,6 @@ "scripts": {

"dependencies": {
"@aws-sdk/abort-controller": "3.329.0",
"@aws-sdk/protocol-http": "3.329.0",
"@aws-sdk/querystring-builder": "3.329.0",
"@aws-sdk/types": "3.329.0",
"@aws-sdk/abort-controller": "3.337.0",
"@aws-sdk/protocol-http": "3.337.0",
"@aws-sdk/querystring-builder": "3.337.0",
"@aws-sdk/types": "3.337.0",
"tslib": "^2.5.0"

@@ -31,0 +31,0 @@ },

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