Repository navigation
chore(deps): update dependency @effect/platform-node to v4.1.0 - autoclosed - #247
Closed
renovate[bot] wants to merge 1 commit into
Closed
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
|
Preview |
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 27, 2026 16:02
42039a2 to
cc849bd
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 29, 2026 12:34
cc849bd to
26ee15c
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 29, 2026 18:23
26ee15c to
3077b8b
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 29, 2026 23:04
3077b8b to
6360b91
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 30, 2026 00:06
6360b91 to
3be735a
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 30, 2026 10:27
3be735a to
2a9b87d
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 30, 2026 10:34
2a9b87d to
9f49b34
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 30, 2026 10:52
9f49b34 to
26df8e2
Compare
renovate
Bot
force-pushed
the
renovate/effect-platform-node-4.x
branch
from
October 30, 2026 14:36
26df8e2 to
0c6da7c
Compare
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
4.0.5→4.1.0Release Notes
Effect-TS/effect (@effect/platform-node)
v4.1.0Compare Source
Minor Changes
8f23668Thanks @fubhy! - Replaceeffect/Cryptowith family-specificeffect/crypto/*services, opaque keys,CryptoError, a configurableWebCryptoreference and key schemas ineffect/Schema. Encoding secret or private keys through byte/format schemas requires{ allowEncode: true }.Breaking changes
SecureRandomfor randomness and UUIDs, andDigestwith algorithm values such asDigest.sha256for hashing. Replaceeffect/testing/TestCryptowithLayer.mockfor the required services.*Servicesbundles.NodeCrypto,BunCrypto,DenoCryptoandBrowserCryptooffer individual family layers and a combinedlayer, supplyingSecureRandomwhere needed. Core modules offerlayerWebCrypto.Digest.Digestinstead ofCrypto.CryptotoSqlMessageStorageandSingleRunner, and instead ofEventLogEncryptiontoSqlEventLogServerEncrypted.makeStorageandlayerStorage. ReplaceEventLogEncryption.sha256Stringwithdigest.digestHex(Digest.sha256, bytes).Existing workflow ID, activity idempotency key and event log table-name encodings are unchanged.
Event log encryption, identity key derivation and session authentication now run on
Aead,Digest,SignatureandSecureRandom.EventLogEncryption.makeandEventLogEncryption.layertake those services from context, so Node apps can use theNodeCryptolayers.EventLogEncryption.layerSubtleand the session auth functions use the Web Crypto layers on theWebCryptoreference instead ofglobalThis.crypto. Existing identities, derived signing keys and encrypted batches are unchanged.UUIDv7 and ULID generation is now monotonic below the maximum 48-bit timestamp, including within a millisecond and across clock rollback. Ordering is per
SecureRandominstance; the unsafe helpers and model UUIDv7 defaults share per-realm ordering.#10087
472c469Thanks @effect-bot! - Node.js 22.19.0 (required byundici8) is now the minimum for@effect/platform-node,@effect/platform-node-shared,@effect/opentelemetryand@effect/docgen, up from 18.NodeSocketWebSocket clients now use Node's globalWebSocketinstead ofws, so client-only usage no longer bundlesws.Breaking:
wsmoved to a newNodeWSmodule.NodeSocket.NodeWSandBunSocket.NodeWSare removed. ImportNodeWSfrom@effect/platform-nodeor@effect/platform-node-shared(on Bun, importwsdirectly). UseNodeWS.WebSocketin place ofNodeSocket.NodeWS.default.NodeSocket.layerWebSocketConstructorWSis removed. UseNodeWS.layerWebSocketConstructor.Behaviour changes for clients that pass handshake headers, which previously used
ws. UseNodeWS.layerWebSocketConstructorto keep the old behaviour:highWaterMarkfails the socket with aSocketReadError.ErrorEvent, soSocketOpenErrorcauses lack the underlying error code.Socket.WebSocketservice is a globalWebSocket, sowsinstanceofchecks andws-only methods such asterminate()andping()no longer apply.Hostheader is ignored.permessage-deflatemessages are still decompressed.http.globalAgent/https.globalAgent.Patch Changes
#10081
438ce72Thanks @effect-bot! -NodeHttpClient.layerNodeHttpnow encodesFormDatarequest bodies with the globalResponse, so it no longer loads theundicipackage. Bundles that use thenode:httpclient no longer include undici. File contents are still streamed as the upload needs them, and a file that cannot be read still fails the request with aTransportError. The Undici-backed client is unchanged.#10071
19d36b8Thanks @effect-bot! - Convert Node HTTP server request headers toHeadersinstead of casting them, so configured header redaction applies when request headers are logged or inspected.#10065
8e668feThanks @jpowersdev! - Preserve a leading UTF-8 BOM in URL-encoded body field names.#10067
ce9e999Thanks @jpowersdev! - Preserve a leading?in URL-encoded form field names.urlParamsBodypreviously dropped it as a query-string prefix, so?name=valuedecoded toname.Updated dependencies [
631d4f4,7ea1ea2,a2ccc14,ed20129,20795b9,a8e5e6c,66c796a,c4d298d,fb5dbee,8309b94,ac10e55,af23904,df8dce5,0c24a8f,468c6ee,2d1fcd4,8f23668,3f8f359,fe6b748,2a03584,40e145e,7217410,cf249fe,4f0fad1,e75708c,7890077,c4a00fc,f74db37,069cf72,9a07ebc,f40dc4e,fa516c6,ffd9237,93895b9,8938b19,e5a1479,89e1e1e,eda0960,65db606,7c42335,cb21d14,89e1e1e,c32eb78,be9895b,472c469,26b4bfe,e19c611,f97711f,4f16778,d2b6bc7,8e668fe,ce9e999,3d88452,3c42058,2ae4045,e853fa1,6dc3f7c,1513bbd,c065ed7,1194a4c,2cb498e,89e5443,2a9a425,e710bbb,b0d6e75,32b3570,9f93f4f,27370c7]:v4.0.7Compare Source
Patch Changes
#9751
fb38ce6Thanks @effect-bot! - Allow buffered payloads and typed101response headers onHttpApiSchema.Upgradeendpoints.HttpApiSchema.Upgrade({ protocol, headers })declares101headers, encoded likeWithHeadersheaders. Clients decode them and return{ headers, socket }, and OpenAPI lists them on the101.upgradefunction instead ofsocket:upgrade(), orupgrade({ headers })when headers are declared.426 Upgrade Requiredis returned before the payload is decoded.HttpServerRequestgainsupgradeWith({ headers }), andupgradeisupgradeWith({}). Third-partyHttpServerRequestimplementations must add it. WebSocket upgrades fail when headers are given.NodeHttpServerwaits for the request body to end before writing the101. On Node 25 and older, which do not parse upgrade request bodies, it readsContent-Lengthbodies from the connection and answers chunked ones with411 Length Required.NodeMultipartfails with aMultipartErrorwhen its source stream errors, instead of waiting for more input.#10004
4ee3a67Thanks @athammer! - FixNodeHttpServerhanging or reporting a defect when an HTTP/1 client disconnects before the response is written.#9978
07ca583Thanks @jpowersdev! - FixNodeMultipart.streamhanging when the source closes early or is already destroyed, including any file part still being read, and remove its source listeners once parsing finishes.#9828
45c467aThanks @tim-smart! - AddRedis.reserve, which leases a dedicated connection from a pool, so blocking commands likeXREAD BLOCKandBLPOPno longer hold up other commands on the shared connection.NodeRedis,BunRedisandDenoRedislayers acceptmaxConnections,minConnections,idleTimeoutandacquireTimeoutto size the pool.Redis.makenow requires aconnectoption, and hand-writtenRedisservices need areservemember.Updated dependencies [
ac3485a,3a4c691,4f0600e,110fd22,aa58cda,8e257e7,e62a149,958307b,dcd43a5,5fbccf4,3388cdd,81b0e14,a046435,f6d8968,5741c3a,381d5c6,d47478a,383716d,46dc30a,3d5c862,93ebc4f,c7b161a,e55945d,1a53d6a,5e25cc9,9503d5c,13efb72,8ca6abb,4a09dd1,346fc92,20e5ba8,f4b237e,1dd08ee,940be42,37be245,563fde0,938cecb,cf197c1,7ca71bb,1e73219,4dd860d,4d24a11,6bbc5ac,5fd25f4,a461561,832b3c6,837e906,cd1f2d4,fb38ce6,446c7ac,b48b7d8,dc66d90,d5a3dc3,482e0d5,d84f518,d34d399,5bbd25e,14eab6b,a3bd27a,ec19ab3,af8fcb3,6b82a28,3043aea,785577e,a8dbbce,65094ac,113ec70,ad3126e,eedfb27,45c467a,c983fc1,58f164f,f6df1aa,c05355c,ae7805c,9ffc621,c97b331,15297e5,41f6738,53f9352,b72f6a2,52e1716,50c863a,f09dc43,c148d27,a11ecdd,08e338e,8450ad5,39da87a,a2adb31,a6174d5,96e6004,3ebd645,3c3c79b,8c6d2fa,1ff35d2,2b100e9,e3938e5,f90101a,306c9a1,5b69c67,a12ffe3,f6cf0fd,3541f65,d50aaa2,3731ddb,3b8090c,137757a,a658477]:v4.0.6Compare Source
Patch Changes
#9506
679f956Thanks @tim-smart! - UseEffect.fnUntracedfor internal functions that returnedEffect.gen.#9262
51930c0Thanks @effect-bot! - Return a typed multipart parse error instead of a defect when a multipart request is missing its boundary.#9402
d1201f0Thanks @effect-bot! - Release writables created byNodeSink.fromWritableandfromWritableChannelwhen upstream fails or the sink is interrupted, preserving the original exit cause. Writables usingendOnDone: falseremain open. Preserve stream body encoding errors in the Node HTTP client instead of reporting transport errors caused by request cleanup.#9575
c29ddd8Thanks @tim-smart! - Add streaming request payloads toHttpApi. An endpoint can declareHttpApiSchema.StreamUint8Arrayor the newHttpApiSchema.StreamNdjson({ schema })as itspayload, and the handler receives a lazyStreamthat reads the body as it pulls. Bad NDJSON lines fail the stream withHttpApiSchemaError(400). The newmaxBytesandmaxElementByteslimits fail it with the newHttpApiPayloadTooLarge(413), and acontent-lengthovermaxBytesis rejected before the handler runs.StreamNdjsonalso works as a success response.HttpApiClientsends aStreampayload without buffering it and infers the stream's requirements.HttpApiTestpasses stream payloads through unbuffered.OpenApi.fromApimarks streaming request bodies withx-effect-stream, andopenapi-generatormaps them, and NDJSON or JSON Lines bodies with anitemSchema, back toStreamUint8ArrayandStreamNdjson.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.
3934c0cThanks @tim-smart! - 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 exposeMaxBytesErrorand an optionaldestroyOnOverflowsetting; their default destruction behavior is unchanged.#9339
9a680d6Thanks @fubhy! - Add raw HTTP/1.1 upgrades throughHttpClientRequest.upgrade,HttpClientResponse.upgrade, the Node HTTP server, andHttpApiSchema.Upgrade. Node clients expose the upgraded connection as aSocket; HttpApi clients return{ headers, socket }and OpenAPI documents the 101 response.Custom
HttpClientResponseimplementations must addupgrade. Fetch and XMLHttpRequest reject upgrade requests with aTransportErrorbefore anything is sent; Bun and Deno servers still support only WebSocket upgrades.#9417
7f823c1Thanks @fubhy! - Fix HTTP response framing: omit bodies for 204, 205 and 304, and removecontent-lengthfor 204 and 205. Node now aborts responses whose bodies do not matchcontent-length. Deno and Bun preserve raw WebResponseobjects when merging headers, and Deno preserves their status and headers for HEAD requests.#9415
6e614e6Thanks @fubhy! - - Fix HTTPS detection inHttpServerRequest.toURLand tracing. An exacthttporhttpsinx-forwarded-prototakes precedence; otherwise, infer HTTPS fromoriginalUrl. Paths starting with//preserve the request host.originalUrlwhen a Host header is present, fixingHttpMiddleware.searchParamsParser. Useurlinstead oforiginalUrlto read the path. Hostless requests are unchanged.urlandheaders.hostfrom the request target, ignoring a conflicting Host header.#9375
5a2d19fThanks @fubhy! - Use HTTP/2 authority for the exposedhostheader and request URL, even when Host is missing or conflicting. In Deno, also use the target authority for HTTP/1.1 absolute-form requests.#9566
9972b4fThanks @tim-smart! - Keep streaming request bodies uploading afterNodeHttpClient.layerNodeHttpreceives 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.#9413
29bee6fThanks @fubhy! - FixNodeHttpClient.layerUndicihanging when sendingHttpBody.formDatarequest bodies.#9564
ab0f384Thanks @tim-smart! - Defer100 Continueresponses until the application starts reading the request body, so early rejections ofExpect: 100-continuerequests do not prompt clients to upload.#9710
bb49b9aThanks @effect-bot! - Support HTTP/2 servers inNodeHttpServer.make,layerServer,layerandlayerConfigacceptHttp2.createServer()andHttp2.createSecureServer(), includingallowHTTP1, without a cast. HTTP/2 requests no longer expose pseudo-headers, soHttpServerRequest.toWebworks, andtoURLuses the request's:schemeand:authority. 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 withINTERNAL_ERRORinstead of ending cleanly, and shutdown closes idle HTTP/2 sessions, so it no longer waits for the graceful timeout on Node 22.Breaking (types only):
NodeHttpServerRequest.toIncomingMessageandtoServerResponsenow returnHttp.IncomingMessage | Http2.Http2ServerRequestandHttp.ServerResponse | Http2.Http2ServerResponse. Code that uses members only the HTTP/1.1 objects have needs to narrow first, for example onhttpVersionMajor.#9412
0317f20Thanks @fubhy! -NodeHttpServernow 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.#9380
5a13d9dThanks @fubhy! - FixNodeHttpServerrequests hanging when Node rejects the response headers. The server now sends a fallback error response, or destroys the response if that also fails.#9255
e24cd76Thanks @jayhemnani9910! - 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.#9458
26de861Thanks @tim-smart! - Avoid loading Node's internal undici on cold start when importingeffect/Schemaor starting a Node HTTP server before any web API is used.Schema.FormDataresolves the global constructor during validation, and@effect/platform-nodeloadsnode:httpandnode:httpswithout evaluating their lazy web API exports.#9701
e618f10Thanks @effect-bot! - Require an explicit trusted proxy policy before applying forwarded headers.HttpMiddleware.xForwardedHeadersnow takes{ trustedProxies }and only appliesX-Forwarded-*headers when the connecting peer is trusted.X-Forwarded-Foris read from the right, skipping trusted proxies, andX-Forwarded-Host/X-Forwarded-Protoare only used when they line up with it.HttpServerRequest.toURLno longer readsx-forwarded-protodirectly. It uses the newrequest.protocol, set by the trusted proxy middleware, before the transport scheme. The connecting peer stays available asrequest.peerAddress.#9503
74532b6Thanks @tim-smart! - Update repository dependencies to their latest compatible releases.#9280
da91aaeThanks @okarin1511! - Keep the thrown error as the cause when a Browser or Deno worker runner receives anerrorevent, and fix the grammar of themessageerrorfailure message.Updated dependencies [
ce13a48,f3bbbb4,5547315,6093cfb,30319d5,74a7596,bfb32a3,f8bf7f4,7f3d3df,db1046d,3c4f88a,916e709,916f843,66ec757,daac06f,c2552ec,b02c1cd,1855f1d,683ed2c,ac68940,22a8401,c53c194,ca6d1cc,47940c5,e8b24ef,2e8aae0,ad7497b,7f504a3,99e365d,954067d,3e1a035,41a1fe7,bcb3a86,739d3d1,ed4da35,3d84e19,cc00906,09ba1f5,9ff1a73,06bc532,97bfd84,25efaef,c10335b,a808972,20e844c,b9f73f3,5739878,28acdf3,59b6396,0bccc9c,fed70de,82648a2,afb5f32,28813f5,0fae934,f260830,19b63eb,14db221,679f956,b72707c,44c8c1d,1e7909b,0611a65,2fadc65,feb6ce5,5a2ed53,c8d26a4,0c8b446,05c3409,b04191b,05c3409,4067e64,e04563d,02d7fc5,561d2a1,8fe2dcc,a8086fa,88a33b4,e77372a,3dd4388,ba2b00c,a049d4a,84aeede,43e5e19,77bbf16,6af3a47,aac8d21,84c8dc4,78d1988,5676a2a,4b437bf,1af11fd,716f8df,ee27718,4d86d1b,5462ed7,658837c,00261cc,7cccb93,7c98228,5a8e248,8037a65,25912db,7f32606,0386f88,403298a,d1201f0,5a3ebc0,fac2191,fdb12dc,97909b8,c3983f4,3a5e65e,8b40fbc,3f3e119,7c7b8ed,d4f71bc,c66241e,f0e941e,5f8a6e5,2800a09,e9749b0,eaef09c,a3c56e5,bb61152,e9c842b,6d8c8e2,1f28187,0b9842b,c29ddd8,84c3405,3934c0c,048e7c8,1121334,9a680d6,85e2aee,34ec440,343a149,915117b,7f823c1,6e614e6,9990b39,22bf781,41f08b7,e8482ca,5ae85fa, [c477a0a](https://redirect.github.com/Effect-TS/effect/commit/cConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.