@@ -40596,7 +40596,7 @@ var require_client_h1 = __commonJS({
4059640596 function writeH1(client, request2) {
4059740597 const { method, path: path4, host, upgrade, blocking, reset: reset2 } = request2;
4059840598 let { body, headers, contentLength } = request2;
40599- const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH";
40599+ const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH" ;
4060040600 if (util.isFormDataLike(body)) {
4060140601 if (!extractBody) {
4060240602 extractBody = require_body2().extractBody;
@@ -40804,7 +40804,7 @@ upgrade: ${upgrade}\r
4080440804 socket.write(body);
4080540805 socket.uncork();
4080640806 request2.onBodySent(body);
40807- if (!expectsPayload) {
40807+ if (!expectsPayload && request2.reset !== false ) {
4080840808 socket[kReset] = true;
4080940809 }
4081040810 }
@@ -40829,7 +40829,7 @@ upgrade: ${upgrade}\r
4082940829 socket.uncork();
4083040830 request2.onBodySent(buffer);
4083140831 request2.onRequestSent();
40832- if (!expectsPayload) {
40832+ if (!expectsPayload && request2.reset !== false ) {
4083340833 socket[kReset] = true;
4083440834 }
4083540835 client[kResume]();
@@ -40905,7 +40905,7 @@ upgrade: ${upgrade}\r
4090540905 }
4090640906 socket.cork();
4090740907 if (bytesWritten === 0) {
40908- if (!expectsPayload) {
40908+ if (!expectsPayload && request2.reset !== false ) {
4090940909 socket[kReset] = true;
4091040910 }
4091140911 if (contentLength === null) {
@@ -41012,7 +41012,9 @@ var require_client_h2 = __commonJS({
4101241012 kOnError,
4101341013 kMaxConcurrentStreams,
4101441014 kHTTP2Session,
41015- kResume
41015+ kResume,
41016+ kSize,
41017+ kHTTPContext
4101641018 } = require_symbols6();
4101741019 var kOpenStreams = Symbol("open streams");
4101841020 var h2ExperimentalWarned = false;
@@ -41109,9 +41111,10 @@ var require_client_h2 = __commonJS({
4110941111 version: "h2",
4111041112 defaultPipelining: Infinity,
4111141113 write(...args) {
41112- writeH2(client, ...args);
41114+ return writeH2(client, ...args);
4111341115 },
4111441116 resume() {
41117+ resumeH2(client);
4111541118 },
4111641119 destroy(err, callback) {
4111741120 if (closed) {
@@ -41128,6 +41131,18 @@ var require_client_h2 = __commonJS({
4112841131 }
4112941132 };
4113041133 }
41134+ function resumeH2(client) {
41135+ const socket = client[kSocket];
41136+ if ((socket == null ? void 0 : socket.destroyed) === false) {
41137+ if (client[kSize] === 0 && client[kMaxConcurrentStreams] === 0) {
41138+ socket.unref();
41139+ client[kHTTP2Session].unref();
41140+ } else {
41141+ socket.ref();
41142+ client[kHTTP2Session].ref();
41143+ }
41144+ }
41145+ }
4113141146 function onHttp2SessionError(err) {
4113241147 assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
4113341148 this[kSocket][kError] = err;
@@ -41146,11 +41161,22 @@ var require_client_h2 = __commonJS({
4114641161 util.destroy(this[kSocket], err);
4114741162 }
4114841163 function onHTTP2GoAway(code) {
41149- const err = new RequestAbortedError(`HTTP/2: "GOAWAY" frame received with code ${code}`);
41150- this[kSocket][kError] = err;
41151- this[kClient][kOnError](err);
41152- this.unref();
41164+ const err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util.getSocketInfo(this));
41165+ const client = this[kClient];
41166+ client[kSocket] = null;
41167+ client[kHTTPContext] = null;
41168+ if (this[kHTTP2Session] != null) {
41169+ this[kHTTP2Session].destroy(err);
41170+ this[kHTTP2Session] = null;
41171+ }
4115341172 util.destroy(this[kSocket], err);
41173+ const request2 = client[kQueue][client[kRunningIdx]];
41174+ client[kQueue][client[kRunningIdx]++] = null;
41175+ util.errorRequest(client, request2, err);
41176+ client[kPendingIdx] = client[kRunningIdx];
41177+ assert(client[kRunning] === 0);
41178+ client.emit("disconnect", client[kUrl], [client], err);
41179+ client[kResume]();
4115441180 }
4115541181 function shouldSendContentLength(method) {
4115641182 return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT";
@@ -41162,9 +41188,6 @@ var require_client_h2 = __commonJS({
4116241188 util.errorRequest(client, request2, new Error("Upgrade not supported for H2"));
4116341189 return false;
4116441190 }
41165- if (request2.aborted) {
41166- return false;
41167- }
4116841191 const headers = {};
4116941192 for (let n = 0; n < reqHeaders.length; n += 2) {
4117041193 const key = reqHeaders[n + 0];
@@ -41195,22 +41218,29 @@ var require_client_h2 = __commonJS({
4119541218 util.destroy(stream, err);
4119641219 }
4119741220 util.destroy(body, err);
41221+ client[kQueue][client[kRunningIdx]++] = null;
41222+ client[kResume]();
4119841223 };
4119941224 try {
4120041225 request2.onConnect(abort);
4120141226 } catch (err) {
4120241227 util.errorRequest(client, request2, err);
4120341228 }
41229+ if (request2.aborted) {
41230+ return false;
41231+ }
4120441232 if (method === "CONNECT") {
4120541233 session.ref();
4120641234 stream = session.request(headers, { endStream: false, signal });
4120741235 if (stream.id && !stream.pending) {
4120841236 request2.onUpgrade(null, null, stream);
4120941237 ++session[kOpenStreams];
41238+ client[kQueue][client[kRunningIdx]++] = null;
4121041239 } else {
4121141240 stream.once("ready", () => {
4121241241 request2.onUpgrade(null, null, stream);
4121341242 ++session[kOpenStreams];
41243+ client[kQueue][client[kRunningIdx]++] = null;
4121441244 });
4121541245 }
4121641246 stream.once("close", () => {
@@ -41280,12 +41310,14 @@ var require_client_h2 = __commonJS({
4128041310 var _a2;
4128141311 if (((_a2 = stream.state) == null ? void 0 : _a2.state) == null || stream.state.state < 6) {
4128241312 request2.onComplete([]);
41283- return;
4128441313 }
4128541314 if (session[kOpenStreams] === 0) {
4128641315 session.unref();
4128741316 }
4128841317 abort(new InformationalError("HTTP/2: stream half-closed (remote)"));
41318+ client[kQueue][client[kRunningIdx]++] = null;
41319+ client[kPendingIdx] = client[kRunningIdx];
41320+ client[kResume]();
4128941321 });
4129041322 stream.once("close", () => {
4129141323 session[kOpenStreams] -= 1;
@@ -41728,6 +41760,8 @@ var require_client2 = __commonJS({
4172841760 var connectH2 = require_client_h2();
4172941761 var deprecatedInterceptorWarned = false;
4173041762 var kClosedResolve = Symbol("kClosedResolve");
41763+ var noop2 = () => {
41764+ };
4173141765 function getPipelining(client) {
4173241766 var _a2;
4173341767 return client[kPipelining] ?? ((_a2 = client[kHTTPContext]) == null ? void 0 : _a2.defaultPipelining) ?? 1;
@@ -42012,16 +42046,14 @@ var require_client2 = __commonJS({
4201242046 });
4201342047 });
4201442048 if (client.destroyed) {
42015- util.destroy(socket.on("error", () => {
42016- }), new ClientDestroyedError());
42049+ util.destroy(socket.on("error", noop2), new ClientDestroyedError());
4201742050 return;
4201842051 }
4201942052 assert(socket);
4202042053 try {
4202142054 client[kHTTPContext] = socket.alpnProtocol === "h2" ? await connectH2(client, socket) : await connectH1(client, socket);
4202242055 } catch (err) {
42023- socket.destroy().on("error", () => {
42024- });
42056+ socket.destroy().on("error", noop2);
4202542057 throw err;
4202642058 }
4202742059 client[kConnecting] = false;
@@ -42344,9 +42376,9 @@ var require_pool_base2 = __commonJS({
4234442376 }
4234542377 async [kClose]() {
4234642378 if (this[kQueue].isEmpty()) {
42347- return Promise.all(this[kClients].map((c) => c.close()));
42379+ await Promise.all(this[kClients].map((c) => c.close()));
4234842380 } else {
42349- return new Promise((resolve) => {
42381+ await new Promise((resolve) => {
4235042382 this[kClosedResolve] = resolve;
4235142383 });
4235242384 }
@@ -42359,7 +42391,7 @@ var require_pool_base2 = __commonJS({
4235942391 }
4236042392 item.handler.onError(err);
4236142393 }
42362- return Promise.all(this[kClients].map((c) => c.destroy(err)));
42394+ await Promise.all(this[kClients].map((c) => c.destroy(err)));
4236342395 }
4236442396 [kDispatch](opts, handler2) {
4236542397 const dispatcher = this[kGetDispatcher]();
@@ -42757,6 +42789,8 @@ var require_proxy_agent2 = __commonJS({
4275742789 function defaultFactory(origin, opts) {
4275842790 return new Pool(origin, opts);
4275942791 }
42792+ var noop2 = () => {
42793+ };
4276042794 var ProxyAgent = class extends DispatcherBase {
4276142795 constructor(opts) {
4276242796 var _a2;
@@ -42808,8 +42842,7 @@ var require_proxy_agent2 = __commonJS({
4280842842 servername: ((_a3 = this[kProxyTls]) == null ? void 0 : _a3.servername) || proxyHostname
4280942843 });
4281042844 if (statusCode !== 200) {
42811- socket.on("error", () => {
42812- }).destroy();
42845+ socket.on("error", noop2).destroy();
4281342846 callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`));
4281442847 }
4281542848 if (opts2.protocol !== "https:") {
@@ -43440,6 +43473,9 @@ var require_readable2 = __commonJS({
4344043473 async blob() {
4344143474 return consume(this, "blob");
4344243475 }
43476+ async bytes() {
43477+ return consume(this, "bytes");
43478+ }
4344343479 async arrayBuffer() {
4344443480 return consume(this, "arrayBuffer");
4344543481 }
@@ -43571,6 +43607,22 @@ var require_readable2 = __commonJS({
4357143607 const start = bufferLength > 2 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 ? 3 : 0;
4357243608 return buffer.utf8Slice(start, bufferLength);
4357343609 }
43610+ function chunksConcat(chunks, length) {
43611+ if (chunks.length === 0 || length === 0) {
43612+ return new Uint8Array(0);
43613+ }
43614+ if (chunks.length === 1) {
43615+ return new Uint8Array(chunks[0]);
43616+ }
43617+ const buffer = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer);
43618+ let offset = 0;
43619+ for (let i = 0; i < chunks.length; ++i) {
43620+ const chunk = chunks[i];
43621+ buffer.set(chunk, offset);
43622+ offset += chunk.length;
43623+ }
43624+ return buffer;
43625+ }
4357443626 function consumeEnd(consume2) {
4357543627 const { type, body, resolve, stream, length } = consume2;
4357643628 try {
@@ -43579,15 +43631,11 @@ var require_readable2 = __commonJS({
4357943631 } else if (type === "json") {
4358043632 resolve(JSON.parse(chunksDecode(body, length)));
4358143633 } else if (type === "arrayBuffer") {
43582- const dst = new Uint8Array(length);
43583- let pos = 0;
43584- for (const buf of body) {
43585- dst.set(buf, pos);
43586- pos += buf.byteLength;
43587- }
43588- resolve(dst.buffer);
43634+ resolve(chunksConcat(body, length).buffer);
4358943635 } else if (type === "blob") {
4359043636 resolve(new Blob(body, { type: stream[kContentType] }));
43637+ } else if (type === "bytes") {
43638+ resolve(chunksConcat(body, length));
4359143639 }
4359243640 consumeFinish(consume2);
4359343641 } catch (err) {
0 commit comments