dependabot[bot] opened a new pull request, #3739:
URL: https://github.com/apache/tinkerpop/pull/3739

   Bumps 
[@effect/platform-node](https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node)
 from 0.96.1 to 4.0.6.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/Effect-TS/effect/releases";>@​effect/platform-node's 
releases</a>.</em></p>
   <blockquote>
   <h2><code>@​effect/platform-node</code><a 
href="https://github.com/4";><code>@​4</code></a>.0.6</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9506";>#9506</a> <a 
href="https://github.com/Effect-TS/effect/commit/679f956c4a7527854ff78db071dd7aa417211a48";><code>679f956</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Use <code>Effect.fnUntraced</code> for internal functions that returned 
<code>Effect.gen</code>.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9262";>#9262</a> <a 
href="https://github.com/Effect-TS/effect/commit/51930c0683d4bafed700dffb2d02f47bf457eb7a";><code>51930c0</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Return a typed multipart parse error instead of a defect when a multipart 
request is missing its boundary.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9402";>#9402</a> <a 
href="https://github.com/Effect-TS/effect/commit/d1201f042528641b1905bdb2cd8d858105abef38";><code>d1201f0</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Release writables created by <code>NodeSink.fromWritable</code> and 
<code>fromWritableChannel</code> when upstream fails or the sink is 
interrupted, preserving the original exit cause. Writables using 
<code>endOnDone: false</code> remain open. Preserve stream body encoding errors 
in the Node HTTP client instead of reporting transport errors caused by request 
cleanup.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9575";>#9575</a> <a 
href="https://github.com/Effect-TS/effect/commit/c29ddd899c53c5d8194c4a0dfef2134304dda799";><code>c29ddd8</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Add streaming request payloads to <code>HttpApi</code>. An endpoint can declare 
<code>HttpApiSchema.StreamUint8Array</code> or the new 
<code>HttpApiSchema.StreamNdjson({ schema })</code> as its 
<code>payload</code>, and the handler receives a lazy <code>Stream</code> that 
reads the body as it pulls. Bad NDJSON lines fail the stream with 
<code>HttpApiSchemaError</code> (400). The new <code>maxBytes</code> and 
<code>maxElementBytes</code> limits fail it with the new 
<code>HttpApiPayloadTooLarge</code> (413), and a <code>content-length</code> 
over <code>maxBytes</code> is rejected before the handler runs. 
<code>StreamNdjson</code> also works as a success response.</p>
   <p><code>HttpApiClient</code> sends a <code>Stream</code> payload without 
buffering it and infers the stream's requirements. <code>HttpApiTest</code> 
passes stream payloads through unbuffered. <code>OpenApi.fromApi</code> marks 
streaming request bodies with <code>x-effect-stream</code>, and 
<code>openapi-generator</code> maps them, and NDJSON or JSON Lines bodies with 
an <code>itemSchema</code>, back to <code>StreamUint8Array</code> and 
<code>StreamNdjson</code>.</p>
   <p>The Node server drains up to 256 KiB of a body the handler left unread, 
then closes the connection, instead of reading the whole upload or leaving the 
socket stuck.</p>
   </li>
   <li>
   <p><a 
href="https://github.com/Effect-TS/effect/commit/3934c0c61857c03468c08c2477f49a6b977d28ff";><code>3934c0c</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Return 413 instead of 400 when buffered or decompressed request bodies exceed 
their size limit, while preserving 400 for other parse failures. Node HTTP 
servers drain oversized bodies so the response can reach the client without 
destroying the socket. Node stream readers expose <code>MaxBytesError</code> 
and an optional <code>destroyOnOverflow</code> setting; their default 
destruction behavior is unchanged.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9339";>#9339</a> <a 
href="https://github.com/Effect-TS/effect/commit/9a680d6985c6a27d7ebb29cd9eb674f3fe524505";><code>9a680d6</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Add raw 
HTTP/1.1 upgrades through <code>HttpClientRequest.upgrade</code>, 
<code>HttpClientResponse.upgrade</code>, the Node HTTP server, and 
<code>HttpApiSchema.Upgrade</code>. Node clients expose the upgraded connection 
as a <code>Socket</code>; HttpApi clients return <code>{ headers, socket 
}</code> and OpenAPI documents the 101 response.</p>
   <p>Custom <code>HttpClientResponse</code> implementations must add 
<code>upgrade</code>. Fetch and XMLHttpRequest reject upgrade requests with a 
<code>TransportError</code> before anything is sent; Bun and Deno servers still 
support only WebSocket upgrades.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9417";>#9417</a> <a 
href="https://github.com/Effect-TS/effect/commit/7f823c10d20ef53a1081e0d0e2008a4116140799";><code>7f823c1</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Fix HTTP 
response framing: omit bodies for 204, 205 and 304, and remove 
<code>content-length</code> for 204 and 205. Node now aborts responses whose 
bodies do not match <code>content-length</code>. Deno and Bun preserve raw Web 
<code>Response</code> objects when merging headers, and Deno preserves their 
status and headers for HEAD requests.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9415";>#9415</a> <a 
href="https://github.com/Effect-TS/effect/commit/6e614e6feb4281a9e81f5ec3be48e7905ff4292c";><code>6e614e6</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - - Fix 
HTTPS detection in <code>HttpServerRequest.toURL</code> and tracing. An exact 
<code>http</code> or <code>https</code> in <code>x-forwarded-proto</code> takes 
precedence; otherwise, infer HTTPS from <code>originalUrl</code>. Paths 
starting with <code>//</code> preserve the request host.</p>
   <ul>
   <li>Node server requests now expose an absolute <code>originalUrl</code> 
when a Host header is present, fixing 
<code>HttpMiddleware.searchParamsParser</code>. Use <code>url</code> instead of 
<code>originalUrl</code> to read the path. Hostless requests are unchanged.</li>
   <li>For absolute-form Node requests, derive <code>url</code> and 
<code>headers.host</code> from the request target, ignoring a conflicting Host 
header.</li>
   </ul>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9375";>#9375</a> <a 
href="https://github.com/Effect-TS/effect/commit/5a2d19f60e6608396389a66586848acbb3f98f12";><code>5a2d19f</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Use 
HTTP/2 authority for the exposed <code>host</code> header and request URL, even 
when Host is missing or conflicting. In Deno, also use the target authority for 
HTTP/1.1 absolute-form requests.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9566";>#9566</a> <a 
href="https://github.com/Effect-TS/effect/commit/9972b4ff2b563493492e29282212f7114c3d5dc6";><code>9972b4f</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Keep streaming request bodies uploading after 
<code>NodeHttpClient.layerNodeHttp</code> receives response headers, allowing 
bidirectional request and response streaming. Stop unfinished uploads when the 
response is consumed, the connection closes or the request is cancelled, 
including with keep-alive agents.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9413";>#9413</a> <a 
href="https://github.com/Effect-TS/effect/commit/29bee6fd4aada2898ea26727570866cf0c80cddc";><code>29bee6f</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Fix 
<code>NodeHttpClient.layerUndici</code> hanging when sending 
<code>HttpBody.formData</code> request bodies.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9564";>#9564</a> <a 
href="https://github.com/Effect-TS/effect/commit/ab0f38488716b891196edb12576f8c61a438165b";><code>ab0f384</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Defer <code>100 Continue</code> responses until the application starts reading 
the request body, so early rejections of <code>Expect: 100-continue</code> 
requests do not prompt clients to upload.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9710";>#9710</a> <a 
href="https://github.com/Effect-TS/effect/commit/bb49b9a15cf7238190f1231552f9c5f18cba31a4";><code>bb49b9a</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Support HTTP/2 servers in <code>NodeHttpServer</code>. <code>make</code>, 
<code>layerServer</code>, <code>layer</code> and <code>layerConfig</code> 
accept <code>Http2.createServer()</code> and 
<code>Http2.createSecureServer()</code>, including <code>allowHTTP1</code>, 
without a cast. HTTP/2 requests no longer expose pseudo-headers, so 
<code>HttpServerRequest.toWeb</code> works, and <code>toURL</code> uses the 
request's <code>:scheme</code> and <code>:authority</code>. Responses drop the 
connection-specific headers HTTP/2 forbids instead of being lost, a body that 
fails after the headers were sent resets the stream with 
<code>INTERNAL_ERROR</code> instead of ending cleanly, and shutdown closes idle 
HTTP/2 se
 ssions, so it no longer waits for the graceful timeout on Node 22.</p>
   <p>Breaking (types only): 
<code>NodeHttpServerRequest.toIncomingMessage</code> and 
<code>toServerResponse</code> now return <code>Http.IncomingMessage | 
Http2.Http2ServerRequest</code> and <code>Http.ServerResponse | 
Http2.Http2ServerResponse</code>. Code that uses members only the HTTP/1.1 
objects have needs to narrow first, for example on 
<code>httpVersionMajor</code>.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9412";>#9412</a> <a 
href="https://github.com/Effect-TS/effect/commit/0317f202dde1488bf7806c690c4ecc9068f80019";><code>0317f20</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - 
<code>NodeHttpServer</code> now responds with a 500 when a handler returns a 
status outside 200-599. Previously a 1xx status left the client without a final 
response, and statuses above 599 were sent as is.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9380";>#9380</a> <a 
href="https://github.com/Effect-TS/effect/commit/5a13d9d1b7ab05e0bd9179a3f82b2bd5c81b2350";><code>5a13d9d</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Fix 
<code>NodeHttpServer</code> requests hanging when Node rejects the response 
headers. The server now sends a fallback error response, or destroys the 
response if that also fails.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9255";>#9255</a> <a 
href="https://github.com/Effect-TS/effect/commit/e24cd76392bc23d69d55558ea649d1620ff2ad82";><code>e24cd76</code></a>
 Thanks <a 
href="https://github.com/jayhemnani9910";><code>@​jayhemnani9910</code></a>! - 
Abort the connection when a streamed response body fails after headers are 
sent. Previously the response ended normally, so clients treated the truncated 
body as complete.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9458";>#9458</a> <a 
href="https://github.com/Effect-TS/effect/commit/26de86100cda8617e077ce66f0a6bb8dfe738fb6";><code>26de861</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Avoid loading Node's internal undici on cold start when importing 
<code>effect/Schema</code> or starting a Node HTTP server before any web API is 
used. <code>Schema.FormData</code> resolves the global constructor during 
validation, and <code>@effect/platform-node</code> loads <code>node:http</code> 
and <code>node:https</code> without evaluating their lazy web API exports.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9701";>#9701</a> <a 
href="https://github.com/Effect-TS/effect/commit/e618f1050f41424439eb82478fcf1c5da5a3244d";><code>e618f10</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Require an explicit trusted proxy policy before applying forwarded 
headers.</p>
   <p><code>HttpMiddleware.xForwardedHeaders</code> now takes <code>{ 
trustedProxies }</code> and only applies <code>X-Forwarded-*</code> headers 
when the connecting peer is trusted. <code>X-Forwarded-For</code> is read from 
the right, skipping trusted proxies, and <code>X-Forwarded-Host</code> / 
<code>X-Forwarded-Proto</code> are only used when they line up with it.</p>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/Effect-TS/effect/blob/main/packages/platform/node/CHANGELOG.md";>@​effect/platform-node's
 changelog</a>.</em></p>
   <blockquote>
   <h2>4.0.6</h2>
   <h3>Patch Changes</h3>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9506";>#9506</a> <a 
href="https://github.com/Effect-TS/effect/commit/679f956c4a7527854ff78db071dd7aa417211a48";><code>679f956</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Use <code>Effect.fnUntraced</code> for internal functions that returned 
<code>Effect.gen</code>.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9262";>#9262</a> <a 
href="https://github.com/Effect-TS/effect/commit/51930c0683d4bafed700dffb2d02f47bf457eb7a";><code>51930c0</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Return a typed multipart parse error instead of a defect when a multipart 
request is missing its boundary.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9402";>#9402</a> <a 
href="https://github.com/Effect-TS/effect/commit/d1201f042528641b1905bdb2cd8d858105abef38";><code>d1201f0</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Release writables created by <code>NodeSink.fromWritable</code> and 
<code>fromWritableChannel</code> when upstream fails or the sink is 
interrupted, preserving the original exit cause. Writables using 
<code>endOnDone: false</code> remain open. Preserve stream body encoding errors 
in the Node HTTP client instead of reporting transport errors caused by request 
cleanup.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9575";>#9575</a> <a 
href="https://github.com/Effect-TS/effect/commit/c29ddd899c53c5d8194c4a0dfef2134304dda799";><code>c29ddd8</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Add streaming request payloads to <code>HttpApi</code>. An endpoint can declare 
<code>HttpApiSchema.StreamUint8Array</code> or the new 
<code>HttpApiSchema.StreamNdjson({ schema })</code> as its 
<code>payload</code>, and the handler receives a lazy <code>Stream</code> that 
reads the body as it pulls. Bad NDJSON lines fail the stream with 
<code>HttpApiSchemaError</code> (400). The new <code>maxBytes</code> and 
<code>maxElementBytes</code> limits fail it with the new 
<code>HttpApiPayloadTooLarge</code> (413), and a <code>content-length</code> 
over <code>maxBytes</code> is rejected before the handler runs. 
<code>StreamNdjson</code> also works as a success response.</p>
   <p><code>HttpApiClient</code> sends a <code>Stream</code> payload without 
buffering it and infers the stream's requirements. <code>HttpApiTest</code> 
passes stream payloads through unbuffered. <code>OpenApi.fromApi</code> marks 
streaming request bodies with <code>x-effect-stream</code>, and 
<code>openapi-generator</code> maps them, and NDJSON or JSON Lines bodies with 
an <code>itemSchema</code>, back to <code>StreamUint8Array</code> and 
<code>StreamNdjson</code>.</p>
   <p>The Node server drains up to 256 KiB of a body the handler left unread, 
then closes the connection, instead of reading the whole upload or leaving the 
socket stuck.</p>
   </li>
   <li>
   <p><a 
href="https://github.com/Effect-TS/effect/commit/3934c0c61857c03468c08c2477f49a6b977d28ff";><code>3934c0c</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Return 413 instead of 400 when buffered or decompressed request bodies exceed 
their size limit, while preserving 400 for other parse failures. Node HTTP 
servers drain oversized bodies so the response can reach the client without 
destroying the socket. Node stream readers expose <code>MaxBytesError</code> 
and an optional <code>destroyOnOverflow</code> setting; their default 
destruction behavior is unchanged.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9339";>#9339</a> <a 
href="https://github.com/Effect-TS/effect/commit/9a680d6985c6a27d7ebb29cd9eb674f3fe524505";><code>9a680d6</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Add raw 
HTTP/1.1 upgrades through <code>HttpClientRequest.upgrade</code>, 
<code>HttpClientResponse.upgrade</code>, the Node HTTP server, and 
<code>HttpApiSchema.Upgrade</code>. Node clients expose the upgraded connection 
as a <code>Socket</code>; HttpApi clients return <code>{ headers, socket 
}</code> and OpenAPI documents the 101 response.</p>
   <p>Custom <code>HttpClientResponse</code> implementations must add 
<code>upgrade</code>. Fetch and XMLHttpRequest reject upgrade requests with a 
<code>TransportError</code> before anything is sent; Bun and Deno servers still 
support only WebSocket upgrades.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9417";>#9417</a> <a 
href="https://github.com/Effect-TS/effect/commit/7f823c10d20ef53a1081e0d0e2008a4116140799";><code>7f823c1</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Fix HTTP 
response framing: omit bodies for 204, 205 and 304, and remove 
<code>content-length</code> for 204 and 205. Node now aborts responses whose 
bodies do not match <code>content-length</code>. Deno and Bun preserve raw Web 
<code>Response</code> objects when merging headers, and Deno preserves their 
status and headers for HEAD requests.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9415";>#9415</a> <a 
href="https://github.com/Effect-TS/effect/commit/6e614e6feb4281a9e81f5ec3be48e7905ff4292c";><code>6e614e6</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - - Fix 
HTTPS detection in <code>HttpServerRequest.toURL</code> and tracing. An exact 
<code>http</code> or <code>https</code> in <code>x-forwarded-proto</code> takes 
precedence; otherwise, infer HTTPS from <code>originalUrl</code>. Paths 
starting with <code>//</code> preserve the request host.</p>
   <ul>
   <li>Node server requests now expose an absolute <code>originalUrl</code> 
when a Host header is present, fixing 
<code>HttpMiddleware.searchParamsParser</code>. Use <code>url</code> instead of 
<code>originalUrl</code> to read the path. Hostless requests are unchanged.</li>
   <li>For absolute-form Node requests, derive <code>url</code> and 
<code>headers.host</code> from the request target, ignoring a conflicting Host 
header.</li>
   </ul>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9375";>#9375</a> <a 
href="https://github.com/Effect-TS/effect/commit/5a2d19f60e6608396389a66586848acbb3f98f12";><code>5a2d19f</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Use 
HTTP/2 authority for the exposed <code>host</code> header and request URL, even 
when Host is missing or conflicting. In Deno, also use the target authority for 
HTTP/1.1 absolute-form requests.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9566";>#9566</a> <a 
href="https://github.com/Effect-TS/effect/commit/9972b4ff2b563493492e29282212f7114c3d5dc6";><code>9972b4f</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Keep streaming request bodies uploading after 
<code>NodeHttpClient.layerNodeHttp</code> receives response headers, allowing 
bidirectional request and response streaming. Stop unfinished uploads when the 
response is consumed, the connection closes or the request is cancelled, 
including with keep-alive agents.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9413";>#9413</a> <a 
href="https://github.com/Effect-TS/effect/commit/29bee6fd4aada2898ea26727570866cf0c80cddc";><code>29bee6f</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Fix 
<code>NodeHttpClient.layerUndici</code> hanging when sending 
<code>HttpBody.formData</code> request bodies.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9564";>#9564</a> <a 
href="https://github.com/Effect-TS/effect/commit/ab0f38488716b891196edb12576f8c61a438165b";><code>ab0f384</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Defer <code>100 Continue</code> responses until the application starts reading 
the request body, so early rejections of <code>Expect: 100-continue</code> 
requests do not prompt clients to upload.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9710";>#9710</a> <a 
href="https://github.com/Effect-TS/effect/commit/bb49b9a15cf7238190f1231552f9c5f18cba31a4";><code>bb49b9a</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Support HTTP/2 servers in <code>NodeHttpServer</code>. <code>make</code>, 
<code>layerServer</code>, <code>layer</code> and <code>layerConfig</code> 
accept <code>Http2.createServer()</code> and 
<code>Http2.createSecureServer()</code>, including <code>allowHTTP1</code>, 
without a cast. HTTP/2 requests no longer expose pseudo-headers, so 
<code>HttpServerRequest.toWeb</code> works, and <code>toURL</code> uses the 
request's <code>:scheme</code> and <code>:authority</code>. Responses drop the 
connection-specific headers HTTP/2 forbids instead of being lost, a body that 
fails after the headers were sent resets the stream with 
<code>INTERNAL_ERROR</code> instead of ending cleanly, and shutdown closes idle 
HTTP/2 se
 ssions, so it no longer waits for the graceful timeout on Node 22.</p>
   <p>Breaking (types only): 
<code>NodeHttpServerRequest.toIncomingMessage</code> and 
<code>toServerResponse</code> now return <code>Http.IncomingMessage | 
Http2.Http2ServerRequest</code> and <code>Http.ServerResponse | 
Http2.Http2ServerResponse</code>. Code that uses members only the HTTP/1.1 
objects have needs to narrow first, for example on 
<code>httpVersionMajor</code>.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9412";>#9412</a> <a 
href="https://github.com/Effect-TS/effect/commit/0317f202dde1488bf7806c690c4ecc9068f80019";><code>0317f20</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - 
<code>NodeHttpServer</code> now responds with a 500 when a handler returns a 
status outside 200-599. Previously a 1xx status left the client without a final 
response, and statuses above 599 were sent as is.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9380";>#9380</a> <a 
href="https://github.com/Effect-TS/effect/commit/5a13d9d1b7ab05e0bd9179a3f82b2bd5c81b2350";><code>5a13d9d</code></a>
 Thanks <a href="https://github.com/fubhy";><code>@​fubhy</code></a>! - Fix 
<code>NodeHttpServer</code> requests hanging when Node rejects the response 
headers. The server now sends a fallback error response, or destroys the 
response if that also fails.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9255";>#9255</a> <a 
href="https://github.com/Effect-TS/effect/commit/e24cd76392bc23d69d55558ea649d1620ff2ad82";><code>e24cd76</code></a>
 Thanks <a 
href="https://github.com/jayhemnani9910";><code>@​jayhemnani9910</code></a>! - 
Abort the connection when a streamed response body fails after headers are 
sent. Previously the response ended normally, so clients treated the truncated 
body as complete.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9458";>#9458</a> <a 
href="https://github.com/Effect-TS/effect/commit/26de86100cda8617e077ce66f0a6bb8dfe738fb6";><code>26de861</code></a>
 Thanks <a href="https://github.com/tim-smart";><code>@​tim-smart</code></a>! - 
Avoid loading Node's internal undici on cold start when importing 
<code>effect/Schema</code> or starting a Node HTTP server before any web API is 
used. <code>Schema.FormData</code> resolves the global constructor during 
validation, and <code>@effect/platform-node</code> loads <code>node:http</code> 
and <code>node:https</code> without evaluating their lazy web API exports.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/Effect-TS/effect/pull/9701";>#9701</a> <a 
href="https://github.com/Effect-TS/effect/commit/e618f1050f41424439eb82478fcf1c5da5a3244d";><code>e618f10</code></a>
 Thanks <a href="https://github.com/effect-bot";><code>@​effect-bot</code></a>! 
- Require an explicit trusted proxy policy before applying forwarded 
headers.</p>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/3b28bf686bf26e9700edd39c025aff2744dc5303";><code>3b28bf6</code></a>
 Version Packages (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9197";>#9197</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/3d84e19f8f14bccf0aa57b11825590c3bae162f4";><code>3d84e19</code></a>
 Fix cluster shard release stalling on a defect restart (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9716";>#9716</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/afa5da3c8a9848215e49535dd3d39179bfd67715";><code>afa5da3</code></a>
 Fix multipart Content-Disposition filename decoding and parse errors (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9699";>#9699</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/e618f1050f41424439eb82478fcf1c5da5a3244d";><code>e618f10</code></a>
 Require a trusted proxy policy for forwarded headers (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9701";>#9701</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/db1046d1fa0e4b5818c51d28017a89579b6261d6";><code>db1046d</code></a>
 Encode HttpClientRequest.basicAuth credentials as UTF-8 (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9698";>#9698</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/97bfd84bb147e10ed562e4c1ffa589cdaf83a596";><code>97bfd84</code></a>
 Support SQL Server in cluster SqlMessageStorage (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/6441";>#6441</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/3e1a035d9c470ced858b7757f6d102b3aa9be008";><code>3e1a035</code></a>
 Fix ClusterCron calculateNextRunFromPrevious not resuming after a lost run 
(#...</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/bb49b9a15cf7238190f1231552f9c5f18cba31a4";><code>bb49b9a</code></a>
 Support HTTP/2 servers in NodeHttpServer (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9710";>#9710</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/c29ddd899c53c5d8194c4a0dfef2134304dda799";><code>c29ddd8</code></a>
 Add streaming request payload support to HttpApi (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9575";>#9575</a>)</li>
   <li><a 
href="https://github.com/Effect-TS/effect/commit/a4b38dde7f3fdc1b54a49bffdaca912b4c47c76e";><code>a4b38dd</code></a>
 Match finite number strings in linear time (<a 
href="https://github.com/Effect-TS/effect/tree/HEAD/packages/platform/node/issues/9596";>#9596</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/Effect-TS/effect/commits/@effect/[email protected]/packages/platform/node";>compare
 view</a></li>
   </ul>
   </details>
   <details>
   <summary>Maintainer changes</summary>
   <p>This version was pushed to npm by <a 
href="https://www.npmjs.com/~GitHub%20Actions";>GitHub Actions</a>, a new 
releaser for <code>@​effect/platform-node</code> since your current version.</p>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@effect/platform-node&package-manager=npm_and_yarn&previous-version=0.96.1&new-version=4.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
   
   Dependabot will resolve any conflicts with this PR as long as you don't 
alter it yourself. You can also trigger a rebase manually by commenting 
`@dependabot rebase`.
   
   [//]: # (dependabot-automerge-start)
   [//]: # (dependabot-automerge-end)
   
   ---
   
   <details>
   <summary>Dependabot commands and options</summary>
   <br />
   
   You can trigger Dependabot actions by commenting on this PR:
   - `@dependabot rebase` will rebase this PR
   - `@dependabot recreate` will recreate this PR, overwriting any edits that 
have been made to it
   - `@dependabot show <dependency name> ignore conditions` will show all of 
the ignore conditions of the specified dependency
   - `@dependabot ignore this major version` will close this PR and stop 
Dependabot creating any more for this major version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this minor version` will close this PR and stop 
Dependabot creating any more for this minor version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this dependency` will close this PR and stop 
Dependabot creating any more for this dependency (unless you reopen the PR or 
upgrade to it yourself)
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to