What's Changed
- fetch: fix content-encoding order by @tsctx in #3343
- Add regression test for broken body by @mcollina in #3346
- build(deps): bump node from
075a5ccto9af472bin /build by @dependabot[bot] in #3355 - fix: post request signal by @Gigioliva in #3354
- Revert "fix: post request signal (#3354)" by @ronag in #3359
- websocket: don't use pooled buffer in mask pool by @tsctx in #3357
- fix: consider bytes read when dumping by @ronag in #3360
- refactor: simplify signal handling by @ronag in #3362
- fix: use explicit flag for when use has interacted with stream by @ronag in #3361
- Refactor example documentation structure and add CacheableLookup example by @DarkGL in #3363
- refactor: simplify request error handling by @ronag in #3364
- fix: ensure onConnect is always called by @ronag in #3327
- Refactor responseHeader to responseHeaders by @DarkGL in #3375
- fix: don't override user defined MaxListeners by @fawazahmed0 in #3372
- fix: forward dispatch return value by @ronag in #3368
- build(deps): bump github/codeql-action from 3.25.7 to 3.25.11 by @dependabot[bot] in #3382
- build(deps): bump codecov/codecov-action from 4.4.1 to 4.5.0 by @dependabot[bot] in #3384
- build(deps): bump actions/dependency-review-action from 4.3.2 to 4.3.3 by @dependabot[bot] in #3383
- build(deps): bump step-security/harden-runner from 2.8.0 to 2.8.1 by @dependabot[bot] in #3381
- fix: throw on retry when payload is consume by downstream by @climba03003 in #3389
- Remove file by @KhafraDev in #3367
- build(deps): bump node from
9af472bto138d0b5in /build by @dependabot[bot] in #3392 - feat!: upgrade llhttp to 9.2.0 (#2705) by @metcoder95 in #3388
- websocket: reduce memory usage by @tsctx in #3393
- feat: implement
BodyReadable.bytesby @tsctx in #3391 - websocket: avoid using Buffer.byteLength by @tsctx in #3394
- separate whatwg websocket logic from rfc 6455 by @KhafraDev in #3396
- websocket: add fast-path for string input by @tsctx in #3395
- Add generic type for opaque object by @jfhr in #3385
- build(deps): bump node from
138d0b5to67225d4in /build by @dependabot[bot] in #3398 - interceptors: move throwOnError to interceptor by @mertcanaltin in #3331
- chore!: drop interceptors by @metcoder95 in #3399
- build(deps-dev): bump @fastify/busboy from 2.1.1 to 3.0.0 by @dependabot[bot] in #3404
- fix: don't call onConnect automatically by @ronag in #3407
- In CITGM, skip tests that are flaky there by @mcollina in #3413
- Update esbuild to 0.19.10 by @mcollina in #3415
- Fix signature of RetryHandler by @JbIPS in #3416
- docs: fix ToC in CONTRIBUTING.md by @richardlau in #3420
- Fix fetch
duplexdocs by @Ethan-Arrowood in #3422 - fix: restore externalized Node.js dep compatibility by @richardlau in #3421
- fix: cast falsy servername to null to avoid falsy inequality by @ronag in #3426
- Add backport action by @mcollina in #3427
- build(deps): bump node from
67225d4to858234ain /build by @dependabot[bot] in #3411 - build(deps): bump github/codeql-action from 3.25.11 to 3.25.15 by @dependabot[bot] in #3432
- build(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4 by @dependabot[bot] in #3431
- build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4 by @dependabot[bot] in #3430
- build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0 by @dependabot[bot] in #3428
- build(deps): bump step-security/harden-runner from 2.8.1 to 2.9.0 by @dependabot[bot] in #3429
- build(deps): bump superagent from 9.0.2 to 10.0.0 in /benchmarks by @dependabot[bot] in #3439
- build(deps): bump node from
17e6738to30c5be9in /build by @dependabot[bot] in #3443 - docs: use default link of Web Streams API by @trivikr in #3446
- fix: increased memory in finalization first appearing in v6.16.0 by @snyamathi in #3445
- test: add test for memory leak by @snyamathi in #3450
- build: parametrize the location of wasm-opt by @khardix in #3454
- test: streamline test scripts in regard of without-intl and run more tests for without-intl case by @Uzlopak in #3453
- feat!: drop throwOnError by @metcoder95 in #3451
- types: allow non strict HTTPMethod by @Uzlopak in #3457
- build(deps-dev): bump borp from 0.15.0 to 0.17.0 by @dependabot[bot] in #3424
- remove core isErrored and isReadable by @KhafraDev in #3459
- use bodyUnusable to check if body is unusable by @KhafraDev in #3460
- perf: non-recursive implementation of euclidian gcd in balanced pool by @Uzlopak in #3461
- fix: do validation first before actual business logic, like super() by @Uzlopak in #3463
- use FinalizationRegistry for cloned response body by @KhafraDev in #3458
- perf: use isIPv6 for checking if hostname is isIPv6 by @Uzlopak in #3466
- fix: stripURLForReferrer jsdoc in fetch logic by @Uzlopak in #3471
- fix: remove kInterceptors in ProxyAgent by @Uzlopak in #3474
- fix: fix codesmells in retry-handler by @Uzlopak in #3475
- add autocompletable header types by @KhafraDev in #3462
- fix: add missing kOriginalDispatch Symbol in mock-logic by @Uzlopak in #3470
- fix: fix jsdoc in cookies/parse.js by @Uzlopak in #3469
- fix: remove unnecessary parameters in USVString calls by @Uzlopak in #3467
- fix: add jsdoc in tree.js, avoiding codesmells by @Uzlopak in #3476
- perf: set isLowerCase param on all calls of HeadersList.append by @Uzlopak in #3468
- fix: instantiation of ResponseError, pass headers and data correctly by @Uzlopak in #3472
- ci: add WPT updater by @Uzlopak in #3482
- meta: move nightly comment body to issue body by @avivkeller in #3484
- chore: improve jsdoc in cookies by @Uzlopak in #3478
- chore: improve jsdoc and minor changes in EventSource by @Uzlopak in #3480
- types: add Autocomplete utility type by @Uzlopak in #3479
- fix: instantiation of SecureProxyConnectionError should pass options to parent class by @Uzlopak in #3473
- chore: replace standard and snazzy with neostandard by @Uzlopak in #3485
- fix: workflow commit user by @tsctx in #3491
- build(deps): bump node from
30c5be9toa20e858in /build by @dependabot[bot] in #3496 - chore: add --noEmit for typescript tests by @Uzlopak in #3498
- perf: only create wasm buffer if requested by @Uzlopak in #3499
- fix(types): MockAgent accepts ProxyAgent, EnvHttpProxyAgent and RetryAgent for agent option by @Uzlopak in #3497
- stricter Headers brand checks in cookies by @KhafraDev in #3500
- Update WPT by @github-actions[bot] in #3488
- fix: setEncoding should not throw on body #1125 by @Uzlopak in #3505
- websocket: set websocket readyState on fail by @KhafraDev in #3507
- build(deps-dev): bump jsdom from 24.1.3 to 25.0.0 by @dependabot[bot] in #3511
- build(deps): bump wait-on from 7.2.0 to 8.0.0 in /benchmarks by @dependabot[bot] in #3513
- Update WPT by @github-actions[bot] in #3515
- fix: reduce memory usage in client-h1 by @Uzlopak in #3510
- fix: refactor fast timers, fix UND_ERR_CONNECT_TIMEOUT on event loop blocking by @Uzlopak in #3495
- ci: make autobahn workflow reusable workflow, run the autobahn on nightly tests by @Uzlopak in #3503
- remove third party everything support in fetch by @KhafraDev in #3502
- remove double validation in webidl by @KhafraDev in #3516
- test: improve gc detection by @Uzlopak in #3504
- Update WPT by @github-actions[bot] in #3519
- populate defaultValues in webidl dict. converter when passing null or undefined by @KhafraDev in #3518
- change webidl.util.Type return to an enum value by @KhafraDev in #3520
- set default argument values to undefined instead of {} by @KhafraDev in #3521
- ci: fix nightly workflow by @Uzlopak in #3525
- Update WPT by @github-actions[bot] in #3527
- remove unused symbol by @KhafraDev in #3530
- fix formdata arg validation by @KhafraDev in #3529
- build(deps): bump github/codeql-action from 3.25.15 to 3.26.6 by @dependabot[bot] in #3534
- build(deps): bump hendrikmuhs/ccache-action from 1.2.13 to 1.2.14 by @dependabot[bot] in #3536
- build(deps): bump step-security/harden-runner from 2.9.0 to 2.9.1 by @dependabot[bot] in #3535
- build(deps): bump actions/upload-artifact from 4.3.4 to 4.4.0 by @dependabot[bot] in #3537
- Remove patched DOM types by @eXhumer in #3533
- chore: minor changes in client-h1, use subarray instead of slice by @Uzlopak in #3538
- fix: run asserts first if possible by @Uzlopak in #3541
- build(deps): bump node from
a20e858toa17f484in /build by @dependabot[bot] in #3542 - chore: noop per file by @Uzlopak in #3544
- build(deps): bump node from
a17f484toef7b4bbin /build by @dependabot[bot] in #3547 - chore: rename buildUrl to serializePathWithQuery + jsdoc by @Uzlopak in #3545
- fix: add jsdoc and do minor changes in utils.js by @Uzlopak in #3550
- Update WPT by @github-actions[bot] in #3556
- Update WPT by @github-actions[bot] in #3561
- feat: jsdoc and minor optimizations in client-h1.js by @Uzlopak in #3551
- fix: handle websocket closed correctly by @KhafraDev in #3565
- fix: extract noop everywhere by @Uzlopak in #3559
- chore: add jsdoc for lib/web/websocket/util.js, minor rewrite of utf8Decode by @Uzlopak in #3563
- jsdoc: lib/api/readable.js, fix some types by @Uzlopak in #3567
- fix: use fasttimers for all connection timeouts by @Uzlopak in #3552
- chore: use 'use strict' in cjs files by @Uzlopak in #3568
- chore: update typescript testing deps by @Uzlopak in #3571
- build(deps)!: bump concurrently from 8.2.2 to 9.0.0 in /benchmarks (node < 18 unsupported) by @dependabot[bot] in #3574
- build(deps): bump node from
ef7b4bbto3cb4748in /build by @dependabot[bot] in #3573 - chore: improve jsdoc of lib/core/tree.js by @Uzlopak in #3572
- Update WPT by @github-actions[bot] in #3576
- jsdoc: improve typing of deepClone by @Uzlopak in #3575
- chore: improve jsdoc of lib/core/constants.js by @Uzlopak in #3570
- chore: upgrade fixed queue, lint accordingly, add jsdoc by @Uzlopak in #3577
- Update WPT by @github-actions[bot] in #3581
- ci: less flaky test/request-timeout.js test by @Uzlopak in #3580
- chore: remove pluralizer by @Uzlopak in #3586
- util: rename validateHandler to assertRequestHandler, minor changes in util.js by @Uzlopak in #3583
- mock: remove Error.captureStackTrace in MockNotMatchedError by @Uzlopak in #3587
- fix: DRY up lib/core/diagnostics.js by @Uzlopak in #3585
- fix: husky deprecation warning by @eXhumer in #3593
- Update WPT by @github-actions[bot] in #3598
- chore: remove unused
pre-commitdependency by @eXhumer in #3599 - diagnostics-channel: use not deprecated subscribe fn by @Uzlopak in #3600
- Update WPT by @github-actions[bot] in #3607
- fetch: make fullyReadBody sync by @Uzlopak in #3603
- jsdoc: add jsdoc to lib/web/fetch/constants.js by @Uzlopak in #3597
- fetch: pullAlgorithm passes the async resume function through by @Uzlopak in #3604
- fix: typo in Client.md by @SkeLLLa in #3612
- Update WPT by @github-actions[bot] in #3615
- Update WPT by @github-actions[bot] in #3622
- fetch: avoid async function in mainFetch to generate response by @Uzlopak in #3605
- Update WPT by @github-actions[bot] in #3626
- append crlf to formdata body by @KhafraDev in #3625
- fix: fire
closeon failed WebSocket connection by @eXhumer in #3566 - fix: fire close on failed WebSocket connection by @KhafraDev in #3628
- handle body errors by @KhafraDev in #3632
- make cloned request inherit dispatcher by @KhafraDev in #3631
- Remove symbols from web specs by @KhafraDev in #3633
- cleanup web symbol removal by @KhafraDev in #3638
- build(deps): bump mitata from 0.1.14 to 1.0.4 in /benchmarks by @dependabot[bot] in #3641
- feat: implement WebSocketStream by @KhafraDev in #3560
- export WebSocketStream, add docs and types by @KhafraDev in #3645
- build(deps): bump node from
3cb4748to83b4d7bin /build by @dependabot[bot] in #3621 - feat: add DNS interceptor by @metcoder95 in #3490
- prefer fail over close the websocket connection in error cases by @KhafraDev in #3651
- fix: various typos by @NathanBaulch in #3640
- Update WPT by @github-actions[bot] in #3634
- test: increase bitness in
test/fixtures/*.pemby @LiviaMedeiros in #3659 - mock: fix mocking of Uint8Array and ArrayBuffers as provided mock-responses by @Uzlopak in #3662
- test: less flaky timers acceptance test, rework fast timer tests to pass them faster by @Uzlopak in #3656
- build(deps): bump github/codeql-action from 3.26.6 to 3.26.10 by @dependabot[bot] in #3664
- build(deps): bump peter-evans/create-pull-request from 6.1.0 to 7.0.5 by @dependabot[bot] in #3665
- build(deps): bump fastify/github-action-merge-dependabot from 3.10.1 to 3.10.2 by @dependabot[bot] in #3667
- build(deps): bump codecov/codecov-action from 4.5.0 to 4.6.0 by @dependabot[bot] in #3668
- ws: move implementation agnostic onFail logic to shared function by @KhafraDev in #3663
- build(deps): bump step-security/harden-runner from 2.9.1 to 2.10.1 by @dependabot[bot] in #3666
- Update WPT by @github-actions[bot] in #3669
- fix: add option
ignoreTrailingSlashto MockAgent and.intercept()by @Uzlopak in #3655 - fix: ignore leading and trailing crlfs in formdata body by @KhafraDev in #3677
- test: add test to ensure full type when parsing multipart/form-data' by @Uzlopak in #3683
- test: use globalThis.Headers and skip if is missing by @Uzlopak in #3684
- jsdoc: adds some jsdoc to fetch headers implementation, minor changes by @Uzlopak in #3687
- feat: check maxHeadersSize on client instantiation and not on Parser instantion by @Uzlopak in #3654
- test: remove test for issue 1670 by @Uzlopak in #3690
- replace instanceof in brand checks with isPrototypeOf by @KhafraDev in #3692
- test: make fetch test independent from internet connection by @Uzlopak in #3691
- build(deps-dev): bump esbuild from 0.19.12 to 0.24.0 by @dependabot[bot] in #3698
- fix: restructure determineRequestsReferrer to match better spec by @Uzlopak in #3699
- set ws readyState if closed before connection could be established by @KhafraDev in #3701
- types: fix return type of WebidlUtil.Type by @Uzlopak in #3685
- fetch: refactor referrer policy util functions by @Uzlopak in #3706
- fix: PoolBase kClose and kDestroy should await and not return the Promise by @Uzlopak in #3716
- fix: data-url set extractValue of collectAnHTTPQuotedString by default to false by @Uzlopak in #3717
- faster brand check by @tsctx in #3720
- web: mark as uncloneable when possible by @jazelly in #3709
- chore(H2): onboard H2 into Undici queueing system by @metcoder95 in #3707
- http: extract listeners from client-h1 by @Uzlopak in #3725
- http2: extract listenHandlers and one bugfix by @Uzlopak in #3722
- feat: http caching by @flakey5 in #3562
- build(deps-dev): bump borp from 0.17.0 to 0.18.0 by @dependabot[bot] in #3734
- docs: fix broken link in readme by @pastelsky in #3591
- chore: add jsdoc to lib/web/websocket/constants.js by @Uzlopak in #3564
- chore: remove redundant async in readable.js by @Uzlopak in #3643
- fix(types): add missing
cacheprop to RequestInit by @rindeal in #3569 - [http-cache] follow up by @Uzlopak in #3733
- fix(#3736): leaked error event on response body by @metcoder95 in #3740
- fix: unsafe methods not causing cache purge by @flakey5 in #3739
- build(deps): bump node from
83b4d7btof1b4315in /build by @dependabot[bot] in #3756 - fix filename* parsing by @KhafraDev in #3768
- fix http2 test by @KhafraDev in #3769
- add unsafe-url referrerPolicy test by @KhafraDev in #3772
- chore(docs): add request() example for conditionally reading the body by @styfle in #3743
- fix: dns interceptor ip ttl by @luddd3 in #3770
- add node v23 workflow by @tsctx in #3780
- fix: dns interceptor affinity by @luddd3 in #3778
- fix aborting Streams by @epistemancering in #3754
- add tests from cookie package by @KhafraDev in #3789
- disable failing test by @ronag in #3782
- fix: http2 queueing by @metcoder95 in #3761
- test(interceptors): fix dns testing on windows by @metcoder95 in #3793
- feat: use resolved ports in dns interceptor by @luddd3 in #3786
- fix: cache by @ronag in #3804
- fix: assume blocking unless HEAD by @ronag in #3771
- chore: use common WASM builder by @mhdawson in #3791
- refactor: silence neostandard import rules error by @jerome-benoit in #3776
- build(deps): bump actions/dependency-review-action from 4.3.4 to 4.4.0 by @dependabot[bot] in #3797
- build(deps): bump github/codeql-action from 3.26.10 to 3.27.0 by @dependabot[bot] in #3796
- build(deps): bump fastify/github-action-merge-dependabot from 3.10.2 to 3.11.0 by @dependabot[bot] in #3795
- docs: add example using proxy with fetch by @dancastillo in #3800
- fix: handle Headers in RedirectHandler by @iiAku in #3777
- Skip debuglog tests by @mcollina in #3810
- build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 by @dependabot[bot] in #3794
- h2: do not emit data after goaway by @mcollina in #3811
- fix redirect interceptor with FormData body by @KhafraDev in #3815
- docs: fix broken links in undici webpage by @dancastillo in #3807
- fix: handle undici Headers and Maps in redirect-handler by @iiAku in #3819
- fix: handle undefined deref() of WeakRef(socket) by @hochoy in #3751
- build(deps-dev): bump @sinonjs/fake-timers from 11.3.1 to 12.0.0 by @dependabot[bot] in #3823
- fix: range end is zero-indexed by @DTrombett in #3826
- lib: more cache fixes by @flakey5 in #3816
- fix: cache fixes by @ronag in #3830
- Headers webidl errors by @KhafraDev in #3833
- Fix goaway by @mcollina in #3835
- refactor: maxEntriesCount by @ronag in #3832
- Update WPT by @github-actions[bot] in #3693
- docs: fix broken links by using absolute path by @dancastillo in #3820
- fix: memory store by @ronag in #3834
- Update Dispatch.md to Dispatcher.md by @bcomnes in #3839
- lib: add
nowAbsoluteto fast timers by @flakey5 in #3749 - feat: cache etag support by @flakey5 in #3758
- feat: support request cache control directives by @flakey5 in #3658
- Bench updates prior to release by @mcollina in #3845
- fix(#3817): send servername for SNI on TLS by @metcoder95 in #3821
- Revert nowAbsolute, add regression test by @mcollina in #3850
- fix: missing error handler by @ronag in #3859
- fix: 301 and 302 change method to GET by @DTrombett in #3862
- feat: sqlite cache store by @flakey5 in #3657
- fix: sending formdata bodies with http2 by @KhafraDev in #3863
- Update return type of RetryCallback by @mqayyuum in #3851
- fix: cleanup sqlite store by @ronag in #3868
- refactor: sqlite versioning by @ronag in #3870
- fix: pass down context in onConnect by @DTrombett in #3858
- fix: cache fixes by @ronag in #3871
- fix: we can redirect disturbed request body if it's not going to be used by @ronag in #3873
- perf: only prune if adding new entry by @ronag in #3872
- fix: Fixed the issue that there is no running request when http2 goaway by @ShenHongFei in #3875
- feat: new hooks by @ronag in #3878
- Multiple fixes for SQLiteStore, enable it in CI by @mcollina in #3881
- Update WPT by @github-actions[bot] in #3838
- cache: fix stale-while-revalidate and stale-if-error by @flakey5 in #3865
- refactor: port redirect handler to new hooks by @ronag in #3879
- Drop node v18 by @mcollina in #3880
- build(deps-dev): bump borp from 0.18.0 to 0.19.0 by @dependabot[bot] in #3882
- perf: store data as blobs in sql cache by @ronag in #3885
- test: add cache testing suite by @flakey5 in #3842
- fix: move statusMessage as optional arg in end by @ronag in #3886
- fix: port retry to new hooks by @ronag in #3883
- fix: cache rm unused branch by @ronag in #3889
- fix: response error interceptor broken by @luddd3 in #3805
- Make the responseError interceptor backward compatible, add a body property by @mcollina in #3891
- feat: add support for Timeout and Trailers by @metcoder95 in #3854
- Correctly parse JSON contentType in responseError interceptor by @mcollina in #3892
- Mark http/2 support as stable by @mcollina in #3893
- test: fix dns interceptor flakiness by @luddd3 in #3902
- fix(#3901): migrate dns interceptor to new hooks by @metcoder95 in #3903
- feat(interceptors): migrate decorator handler to new hooks by @metcoder95 in #3905
- feat: Adjust allowed error codes for detecting node:sqlite by @xconverge in #3900
- build(deps): bump actions/dependency-review-action from 4.4.0 to 4.5.0 by @dependabot[bot] in #3913
- build(deps): bump codecov/codecov-action from 4.6.0 to 5.0.7 by @dependabot[bot] in #3910
- Move Tomas to past collaborators by @delvedor in #3909
- docs: add advanced usage examples for ProxyAgent by @mertcanaltin in #3906
- fix: publish undici:client:sendHeaders message on H2 by @fengmk2 in #3921
- Add support schedule by @mcollina in #3923
- cache: do not set undefined etag by @mcollina in #3925
- test: cleanup cache tests by @flakey5 in #3926
- fix mimetype parser wrong operator by @tsctx in #3924
- correctly set if-none-match by @mcollina in #3933
- Add example for
request+ "Garbage Collection" by @WTCT-TOP in #3916 - fix: response error interceptor by @Gigioliva in #3930
- build(deps-dev): bump neostandard from 0.11.9 to 0.12.0 by @dependabot[bot] in #3938
- fix(#3937): respect correct host header by @metcoder95 in #3940
- fix: handle case no content type by @Gigioliva in #3931
- support array of headers in WrapHandler by @KhafraDev in #3941
- build(deps): bump step-security/harden-runner from 2.10.1 to 2.10.2 by @dependabot[bot] in #3911
- test: Update WPT by @github-actions[bot] in #3888
- build(deps-dev): bump @fastify/busboy from 3.0.0 to 3.1.0 by @dependabot[bot] in #3939
- Support SQLite unflagged without useless warnings by @mcollina in #3947
- docs: enhance documentation by @metcoder95 in #3945
- fix: dns interceptor undefined function by @luddd3 in #3958
- More cache fixes by @flakey5 in #3955
- fix(3951): typo on errorede dns lookup by @metcoder95 in #3956
- feat: add missing error type by @Gigioliva in #3964
- websocket: improve frame parsing by @tsctx in #3447
- fix(#3966): account for network errors by @metcoder95 in #3967
- build(deps-dev): bump @fastify/busboy from 3.1.0 to 3.1.1 by @dependabot[bot] in #3971
- Update WPT by @github-actions[bot] in #3954
- docs: fix dispatcher stream example links by @luddd3 in #3972
- fix:
undici:request:headersdoes not indicate completion of a response by @legendecas in #3974 - build(deps): bump cronometro from 3.0.2 to 4.0.1 in /benchmarks by @dependabot[bot] in #3976
- fix(#3975): do not unref timeout by @metcoder95 in #3977
- fix: bad response on h2 server by @metcoder95 in #3978
- build(deps): bump peter-evans/create-pull-request from 7.0.5 to 7.0.6 by @dependabot[bot] in #3981
- build(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0 by @dependabot[bot] in #3983
- chore: ensure automated v7 release compared to v7 by @trivikr in #3986
- test: ignore test for CITGM by @metcoder95 in #3993
- fix: retry flaky test by @metcoder95 in #3992
- Update WPT by @github-actions[bot] in #3991
- fix: dual-stack retries infinite loop by @luddd3 in #4001
- build(deps): bump codecov/codecov-action from 5.0.7 to 5.1.2 by @dependabot[bot] in #3980
- build(deps): bump github/codeql-action from 3.27.0 to 3.28.1 by @dependabot[bot] in #4003
- tests: Update Cache Tests by @github-actions[bot] in #3965
- ReadableStreamFrom pull until cannot on empty enqueu by @KhafraDev in #4002
- Resolve circular dependency by @mcollina in #4006
- Fix typo in update cache tests action by @flakey5 in #4008
- fix: sqlite null ref by @ronag in #4016
- fix: sqlite remove unnecessary parameter by @ronag in #4017
- feat: sqlite add set and minor cleanup by @ronag in #4018
- fix: apply byte offset on Buffer.from by @ronag in #4019
- fix: fetch body fallback random number generation by @Uzlopak in #4023
- Add release instructions by @mcollina in #4022
- Update Cache Tests by @github-actions[bot] in #4020
- Update WPT by @github-actions[bot] in #4011
- docs: document about global dispatcher and errors (#3987) by @zuozp8 in #4014
- docs: fix incorrect method signature of
onResponseErrorby @tmair in #4030 - feat(docs): copy to clipboard button by @shivarm in #4037
- don't check AbortSignal maxListeners on some node versions by @KhafraDev in #4045
- feat: mark
EnvHttpProxyAgentas stable by @aduh95 in #4049 - test: fix windows wpt by @metcoder95 in #4050
- fix: do not throw unhandled exception when data is undefined in interceptor.reply by @frederikprijck in #4036
- fix: handle missing vary header values by @gurgunday in #4031
- Update WPT by @github-actions[bot] in #4028
- Update WPT by @github-actions[bot] in #4062
- fix: fix EnvHttpProxyAgent for the Node.js bundle by @joyeecheung in #4064
- feat(docs): button to switch dark and light mode by @shivarm in #4044
- feat: add mock call history to access request configuration in test by @blephy in #4029
- fix: Fix retry-handler.js when retry-after header is a Date by @fgiova in #4084
- Update Cache Tests by @github-actions[bot] in #4027
- Allow disabling autoSelectFamily in an Agent by @hitsthings in #4070
- Removed clients with unrecoverable errors from the Pool by @mcollina in #4088
- Update WPT by @github-actions[bot] in #4067
- lib: limit string split length by @gurgunday in #4098
- docs/PULL_REQUEST_TEMPLATE: deep-link to certificate of origin by @alxndrsn in #4102
- cache: fix typo by @alxndrsn in #4101
- disable header de-duplication in test servers by @alxndrsn in #4110
- CacheRevalidationHandler: add missing header to comment by @alxndrsn in #4111
- Fix typo in Agent.md by @Exifers in #4115
- build(deps-dev): bump @matteo.collina/tspl from 0.1.1 to 0.2.0 by @dependabot[bot] in #4119
- fix 4105 by @KhafraDev in #4117
- Update WPT by @github-actions[bot] in #4100
- cache: ensure vary & revalidation headers are case-insensitive by @alxndrsn in #4112
- fix: export UndiciHeaders type and set dispatch headers to UndiciHeaders by @dancastillo in #3849
- feat(h2): emit connectionerror upon GOAWAY frame by @metcoder95 in #4123
- Update WPT by @github-actions[bot] in #4126
- Update DNS caching example to include other interceptors, production configuration by @GeoffreyBooth in #4127
- feat: implement h2c client by @metcoder95 in #4118
- cache: more efficient sqlite indices by @ronag in #4142
- skip now failing wpts by @mcollina in #4145
- apply some sqlite pragma optimizations by @ronag in #4147
- types(websocket): Import from stream/web by @Jiralite in #4038
- cache: don't check size if not necessary by @ronag in #4140
- docs: fix inteceptors typo by @dario-piotrowicz in #4151
- Update WPT by @github-actions[bot] in #4141
- build(deps-dev): bump esbuild from 0.24.2 to 0.25.2 by @dependabot[bot] in #4130
- build(deps): bump step-security/harden-runner from 2.10.2 to 2.11.1 by @dependabot[bot] in #4134
- Update WPT by @github-actions[bot] in #4155
- Update WPT by @github-actions[bot] in #4170
- feat: add new
acceptNonStandardSearchParametersMockAgent option by @dario-piotrowicz in #4148 - fix: cache: treat cache-control request header case-insensitively by @alxndrsn in #4131
- cache: honour unqualified no-cache response directive by @alxndrsn in #4178
- build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1 by @dependabot[bot] in #4079
- Ensure conflicting flat headers in HTTP/2 are combined correctly by @pimterry in #4196
- Add stats of client and pool to be accessible through agent by @tdeekens in #4157
- Fix missing code in diagnostics example by @islandryu in #4195
- Doc cors spec compliance by @FelixVaughan in #4202
- Restore cache tests & fix max-age behavior by @mcollina in #4198
- Add "clientLifetime" option to close and remove connections from the pool after a specified time. by @dhalbrook in #4175
- remove spurious only by @mcollina in #4207
- add node v24 workflow by @tsctx in #4206
- Update WPT by @github-actions[bot] in #4172
- chore: add
pnpm-lock.yamlto.gitignoreby @styfle in #4227 - fix: agent memory leak by @styfle in #4223
- Add ability to detect when MemoryCacheStore reaches max size by @FelixVaughan in #4224
- feat(ProxyAgent): match Curl behavior in HTTP->HTTP Proxy connections by @caitp in #4180
- docs: correct example in FormData request by @inyourtime in #4226
- Update WPT by @github-actions[bot] in #4214
- feat(fetch): add zstandard decompression support by @J3m5 in #4238
- fix(debug): remove extra forward slash in logs by @aidant in #4236
- types: EventSource short handlers can be null by @Uzlopak in #4246
- remove finalizationregistry workaround by @mcollina in #4250
- build(deps): bump actions/dependency-review-action from 4.5.0 to 4.7.1 by @dependabot[bot] in #4255
- build(deps): bump github/codeql-action from 3.28.1 to 3.28.18 by @dependabot[bot] in #4252
- build(deps): bump codecov/codecov-action from 5.1.2 to 5.4.3 by @dependabot[bot] in #4253
- build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by @dependabot[bot] in #4254
- Query unaware interceptors cache fix by @FelixVaughan in #4240
- docs: fix interceptor order description in compose method by @mcollina in #4251
- chore: require node native modules with
node:-prefix by @Uzlopak in #4256 - fix: eventsource does not reconnect on network error by @Uzlopak in #4247
- fix: add guard by @GeoffreyBooth in #4262
- Extract webidl by @Uzlopak in #4259
- build(deps): bump peter-evans/create-pull-request from 7.0.6 to 7.0.8 by @dependabot[bot] in #4132
- build(deps-dev): bump fast-check from 3.23.2 to 4.1.1 by @dependabot[bot] in #4167
- build(deps): bump actions/upload-artifact from 4.5.0 to 4.6.2 by @dependabot[bot] in #4137
- build(deps-dev): bump tsd from 0.31.2 to 0.32.0 by @dependabot[bot] in #4168
- build(deps): bump hendrikmuhs/ccache-action from 1.2.14 to 1.2.18 by @dependabot[bot] in #4190
- build(deps): bump fastify/github-action-merge-dependabot from 3.11.0 to 3.11.1 by @dependabot[bot] in #4135
- build(deps): bump step-security/harden-runner from 2.11.1 to 2.12.0 by @dependabot[bot] in #4188
- build(deps-dev): bump borp from 0.19.0 to 0.20.0 by @dependabot[bot] in #4194
- Fix several WPT failures by @tsctx in #4263
- Update WPT by @github-actions[bot] in #4235
- node.js
fetchis wrongly typed (#4271) by @bpasero in #4272 - Fix: Provide body on retry error, preserve socket by @fatal10110 in #4228
- add cause to WebSocket error by @KhafraDev in #4274
- doc: undici vs fetch by @FelixVaughan in #4245
- bench: add websockets by @tsctx in #3203
- webidl: remove fallback for USVString by @Uzlopak in #4264
- fix: Use correct
Dispatcher.RequestOptionsby @IvanDimanov-OfficeRnD in #4281 - feat: add install() function for global WHATWG fetch classes by @mcollina in #4286
- Fixed RedirectHandler type by @rahulyadav5524 in #4278
- feat(#4086): proxy keep alive by @metcoder95 in #4128
- Add
cleanMockstoMockClientandMockPoolby @DemianParkhomenko in #4176 - fetch: add missing new operator on TypeError instantiation in readAllBytes by @Uzlopak in #4297
- Skip failing wpts by @mcollina in #4294
- feat: add request body diagnostic channels by @legendecas in #4289
- Fix timer guards to avoid TypeError under fake‐timers and polyfilled … by @1ly4s0 in #4213
- cache: update MemoryCacheStore default limits by @mcollina in #4292
- fix: EnvHttpProxyAgent.Options should accept ProxyAgent.Options by @urugator in #4243
- test: remove tspl on 2283 test by @Uzlopak in #4301
- chore: reduce amount of intermediate functions by @Uzlopak in #4298
- ci: disable shared builtin CI tests by @mcollina in #4276
- webidl: remove unnecessary parameters from webidl.converters.RequestInfo and webidl.converters.RequestInit by @Uzlopak in #4304
- fetch: remove await, add jsdoc for some body read functions by @Uzlopak in #4303
- test: use assert and not testcontext in issue-2283.js by @Uzlopak in #4306
- chore: jsdoc use
@returnseverywhere by @Uzlopak in #4302 - chore: fix typo by @pimothyxd in #4312
- build(deps): bump github/codeql-action from 3.28.18 to 3.29.2 by @dependabot[bot] in #4315
- feat: throw error when maxRedirections is used with undici.request() by @mcollina in #4311
- Clarify the type option of the cache interceptor by @fredericDelaporte in #4299
- cache: allow caching heuristically cacheable error status codes by @mcollina in #4318
- chore(doc): update undici vs fetch by @styfle in #4319
- don't set a finalizer on cloned request by @tsctx in #4320
- websocketstream: close readablestream properly by @KhafraDev in #4322
- add ping(websocket, payload) util by @KhafraDev in #4325
- fix sending ping with no payload by @KhafraDev in #4329
- refactor: eliminate eager llhttp promise creation by @mcollina in #4337
- Fix misleading cacheByDefault documentation by @fredericDelaporte in #4338
- add websocket to websocket diagnostic channels by @KhafraDev in #4321
- speed up flaky websocket test by @KhafraDev in #4343
- fetch: minor modifications by @Uzlopak in #4347
- fetch: make readable-stream methods sync by @Uzlopak in #4346
- remove creating an extra Promise just for common cleanup by @bmeck in #4339
- chore: extract createDeferredPromise from fetch/utils.js by @Uzlopak in #4345
- MockAgent.prototype.get support ignoreTrailingSlash option by @lisez in #4344
- chore: more jsdoc and minor improvements for lib/api/readable.js, by @Uzlopak in #4351
- ci: skip Node.js 20 tests on Windows by @mcollina in #4353
- Update WPT by @github-actions[bot] in #4267
- feat(ProxyAgent) improve Curl-y behavior in HTTP->HTTP Proxy connections (#4180) by @caitp in #4340
- fix: detect and prevent redirect loops with Client/Pool by @mcollina in #4361
- remove node:buffer imports by @KhafraDev in #4362
- fix: remove deprecated maxRedirections option from types by @mcollina in #4363
- Amend the GC warning in the README to clarify that consuming bodies is recommended but not required by @mcollina in #4364
- fix(inteceptor/dump): handle preemptive network errors by @metcoder95 in #4354
- feat: add SnapshotAgent for HTTP request recording and playback by @mcollina in #4270
- Fix flaky snapshot-testing by @mcollina in #4367
- Actually flush the file in lib/mock/snapshot-recorder.js by @mcollina in #4378
- docs: clarify Node.js version support in LTS table by @mcollina in https://github.com/nodejs/undici/pull/4375
- cache: fix excessive caching and some other lack of caching by @fredericDelaporte in https://github.com/nodejs/undici/pull/4335
- feat(websocket): add handshake response info to undici:websocket:open diagnostic event by @tawseefnabi in https://github.com/nodejs/undici/pull/4396
- feat: add install() function to type definitions by @jsaguet in https://github.com/nodejs/undici/pull/4384
- build(deps): bump github/codeql-action from 3.29.2 to 3.29.5 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4380
- build(deps): bump cronometro from 4.0.3 to 5.3.0 in /benchmarks by @dependabot[bot] in https://github.com/nodejs/undici/pull/4171
- build(deps): bump step-security/harden-runner from 2.12.0 to 2.13.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4379
- fix: h2 CI by @metcoder95 in https://github.com/nodejs/undici/pull/4395
- feat: EventSource can be configured with reconnectionTime by @Uzlopak in https://github.com/nodejs/undici/pull/4260
- build(deps-dev): bump tsd from 0.32.0 to 0.33.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4404
- eventsource: deflake reconnectionTime tests by @Uzlopak in https://github.com/nodejs/undici/pull/4406
- cache: change normaliseHeaders to normalizeHeaders by @Uzlopak in https://github.com/nodejs/undici/pull/4408
- build(deps-dev): bump jest from 29.7.0 to 30.0.5 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4387
- build(deps-dev): bump cross-env from 7.0.3 to 10.0.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4386
- cache-control: no-cache: use quoted-string form by @alxndrsn in https://github.com/nodejs/undici/pull/4177
- test: fix snapshot testing flaky test by @Uzlopak in https://github.com/nodejs/undici/pull/4410
- fix formdata constructor args mark optional by @tsctx in https://github.com/nodejs/undici/pull/4411
- Update WPT by @github-actions[bot] in https://github.com/nodejs/undici/pull/4358
- Update Cache Tests by @github-actions[bot] in https://github.com/nodejs/undici/pull/4096
- chore: improve imports and requires by @Uzlopak in https://github.com/nodejs/undici/pull/4418
- refactor: snapshot-recorder by @Uzlopak in https://github.com/nodejs/undici/pull/4413
- Update WPT by @github-actions[bot] in https://github.com/nodejs/undici/pull/4416
- fix: better set a finalizer on cloned response by @tsctx in https://github.com/nodejs/undici/pull/4419
- feat: extract sri from fetch, upgrade to latest spec by @Uzlopak in https://github.com/nodejs/undici/pull/4307
- Update WPT by @github-actions[bot] in https://github.com/nodejs/undici/pull/4422
- build(deps-dev): bump @fastify/busboy from 3.1.1 to 3.2.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4428
- fix: memory leak in Agent by @hexchain in https://github.com/nodejs/undici/pull/4425
- chore: remove lib/api/util.js by @Uzlopak in https://github.com/nodejs/undici/pull/3578
- ci: reenable shared builtin CI tests by @richardlau in https://github.com/nodejs/undici/pull/4426
- Decompression Interceptor by @FelixVaughan in https://github.com/nodejs/undici/pull/4317
- chore: update llhttp by @Uzlopak in https://github.com/nodejs/undici/pull/4431
- chore: remove unused exceptions in try catch blocks by @Uzlopak in https://github.com/nodejs/undici/pull/4440
- types: remove type Error = unknown for diagnostic-channels by @Uzlopak in https://github.com/nodejs/undici/pull/4438
- chore: avoid overriding global escape and unescape by @Uzlopak in https://github.com/nodejs/undici/pull/4437
- cache : serialize Query only if needed, avoid throwing error by @Uzlopak in https://github.com/nodejs/undici/pull/4441
- types: add SnapshotRecorderMode by @Uzlopak in https://github.com/nodejs/undici/pull/4442
- Drop npm token, use OIDC instead by @mcollina in https://github.com/nodejs/undici/pull/4447
- fetch: instantiate readableStream in extractBody with sync methods by @Uzlopak in https://github.com/nodejs/undici/pull/4350
- fix: remove async on
[kClose]and[kDestroy], only return Promise by @Uzlopak in https://github.com/nodejs/undici/pull/4450 - fetch: make consumeBody sync by @Uzlopak in https://github.com/nodejs/undici/pull/4449
- perf: make
client.connect()sync by @Uzlopak in https://github.com/nodejs/undici/pull/4455 - fetch: remove promise in exported fetch by @Uzlopak in https://github.com/nodejs/undici/pull/4452
- fix(#4451): implement http2 cookie support by @metcoder95 in https://github.com/nodejs/undici/pull/4453
- test: cache store tests should properly be skipped by @Uzlopak in https://github.com/nodejs/undici/pull/4463
- test: fix IPv6 skip check for test/client.js by @Uzlopak in https://github.com/nodejs/undici/pull/4466
- test: remove skip check for AbortSignal.timeout, as it exists since node18 by @Uzlopak in https://github.com/nodejs/undici/pull/4464
- test: investigate macos failing by @Uzlopak in https://github.com/nodejs/undici/pull/4467
- test: remove obsolete < node v18 test case for http2 by @Uzlopak in https://github.com/nodejs/undici/pull/4461
- perf: avoid intermediate promise on
BodyReadable.dumpby @Uzlopak in https://github.com/nodejs/undici/pull/4459 - test: remove skip check for long-lived-abort-controller test (was flaky 10 months ago) by @Uzlopak in https://github.com/nodejs/undici/pull/4465
- test: remove skip checks for existance of global available Blob and File by @Uzlopak in https://github.com/nodejs/undici/pull/4460
- perf (fetch): use less promises for ReadableStream by @Uzlopak in https://github.com/nodejs/undici/pull/4457
- fix: catch synchronous errors in request callbacks by @mcollina in https://github.com/nodejs/undici/pull/4443
- fix: avoid instanceof MockNotMatchedError by @Uzlopak in https://github.com/nodejs/undici/pull/4474
- eventsource: remove promise for #reconnect method by @Uzlopak in https://github.com/nodejs/undici/pull/4469
- feat: make UndiciErrors reliable to instanceof by @Uzlopak in https://github.com/nodejs/undici/pull/4472
- chore: call super() after type checks by @Uzlopak in https://github.com/nodejs/undici/pull/4475
- chore: FixedQueue does not need special constructor by @Uzlopak in https://github.com/nodejs/undici/pull/4476
- fix: buildAndValidateMockOptions should always get an object passed and always return an object by @Uzlopak in https://github.com/nodejs/undici/pull/4479
- fix: remove unused ResponseStatusCodeError by @Uzlopak in https://github.com/nodejs/undici/pull/4473
- chore: pool and dispatcherbase dont need constructor, use no array helper functions by @Uzlopak in https://github.com/nodejs/undici/pull/4477
- lint: avoid unintented use of globals in code and tests, improve test for installing/overwriting globals by @Uzlopak in https://github.com/nodejs/undici/pull/4478
- test: fix macos flakyness by @Uzlopak in https://github.com/nodejs/undici/pull/4468
- fix: 'no-referrer-when-downgrade' in determineRequestsReferrer should return referrerURL by @Uzlopak in https://github.com/nodejs/undici/pull/4482
- fix: deflake cache-fastimers-fix.js by @Uzlopak in https://github.com/nodejs/undici/pull/4491
- fix: improve validation of IP addresses as trustworthy, correct ipv4 check by @Uzlopak in https://github.com/nodejs/undici/pull/4489
- test (pool.js): fix flakyness of clientTtl test by @Uzlopak in https://github.com/nodejs/undici/pull/4494
- test (eventsource): refactor tests for eventsource, speed them up by @Uzlopak in https://github.com/nodejs/undici/pull/4493
- fix: remove useless catch in client-h1.js by @Uzlopak in https://github.com/nodejs/undici/pull/4481
- test: skip flaky encoding test on macos and node20 by @Uzlopak in https://github.com/nodejs/undici/pull/4497
- fix: implement proper stale-while-revalidate behavior per RFC 5861 by @mcollina in https://github.com/nodejs/undici/pull/4492
- test (websocket): speed up test/websocket/issue-2679.js by @Uzlopak in https://github.com/nodejs/undici/pull/4501
- webidl: fix existing and add missing buffer source converters by @Renegade334 in https://github.com/nodejs/undici/pull/4503
- use real wpt test server by @KhafraDev in https://github.com/nodejs/undici/pull/4486
- test: another try to fix flaky macos and node 20 by @Uzlopak in https://github.com/nodejs/undici/pull/4490
- build(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4507
- build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.3 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4509
- fix writing to websocketstream with SharedArrayBuffer/SharedArrayBuff… by @KhafraDev in https://github.com/nodejs/undici/pull/4504
- test: use faketimers for test/client-keep-alive, refactor a little by @Uzlopak in https://github.com/nodejs/undici/pull/4499
- build(deps): bump github/codeql-action from 3.29.7 to 3.30.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4510
- build(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4508
- fix(h2): adjust :scheme on h2 requests by @metcoder95 in https://github.com/nodejs/undici/pull/4454
- chore: use lowercase filenames, remove unused verifyVersion.js by @Uzlopak in https://github.com/nodejs/undici/pull/4514
- chore: refactor workflows by @Uzlopak in https://github.com/nodejs/undici/pull/4513
- chore: use
[]instead of new Array(0) by @Uzlopak in https://github.com/nodejs/undici/pull/4435 - change webidl attribute to bitwise flag by @KhafraDev in https://github.com/nodejs/undici/pull/4505
- chore: make also cache-tests integrated as a submodule by @Uzlopak in https://github.com/nodejs/undici/pull/4517
- ci: fine grained test nodejs workflow by @Uzlopak in https://github.com/nodejs/undici/pull/4516
- feat: Support for capping the number of origins in Agent by @JoshMock in https://github.com/nodejs/undici/pull/4365
- wpt: properly handle write permissions errors in wpt-runner setup by @Uzlopak in https://github.com/nodejs/undici/pull/4518
- fetch: process content-encoding header only if relevant by @Uzlopak in https://github.com/nodejs/undici/pull/4496
- websocket: always emit error event by @KhafraDev in https://github.com/nodejs/undici/pull/4521
- refactor: parseHttpDate by @Uzlopak in https://github.com/nodejs/undici/pull/4421
- fix: wpt should use master branch by @Uzlopak in https://github.com/nodejs/undici/pull/4524
- fix: shell command built from environment values by @kreeksec in https://github.com/nodejs/undici/pull/4392
- example: use metcoders https-pem for the example by @Uzlopak in https://github.com/nodejs/undici/pull/4436
- Disable SIMD for PPC64 architecture, add UNDICI_NO_WASM_SIMD env to facilitate testing by @mcollina in https://github.com/nodejs/undici/pull/4530
- fix: make error symbols non enumerable by @Uzlopak in https://github.com/nodejs/undici/pull/4531
- chore: extract infra and encoding methods by @Uzlopak in https://github.com/nodejs/undici/pull/4523
- ci: remove h2 by @Uzlopak in https://github.com/nodejs/undici/pull/4534
- ci: make nodejs-shared wf reusable, install binaryen for wasm-opt, test on node-nightly by @Uzlopak in https://github.com/nodejs/undici/pull/4535
- ci: fix nightly shared library case by @Uzlopak in https://github.com/nodejs/undici/pull/4543
- test: consume bodies of fetch responses to fix failing macos 20 ci by @Uzlopak in https://github.com/nodejs/undici/pull/4528
- docs: add Cache Interceptor example to README by @tawseefnabi in https://github.com/nodejs/undici/pull/4393
- test: remove node20 version check by @Uzlopak in https://github.com/nodejs/undici/pull/4544
- types: use MessagePort instance type in MessageEvent by @Renegade334 in https://github.com/nodejs/undici/pull/4546
- ci: set write permissions on job level by @Uzlopak in https://github.com/nodejs/undici/pull/4537
- lint: activate n/no-process-exit by @Uzlopak in https://github.com/nodejs/undici/pull/4548
- ci: run benchmarks on pull_requests and by pushing on specific branches only by @Uzlopak in https://github.com/nodejs/undici/pull/4536
- chore: activate n/prefer-node-protocol to enforce
'node:'prefix for requiring node built-ins by @Uzlopak in https://github.com/nodejs/undici/pull/4547 - feat(H2): correct CONNECT behaviour by @metcoder95 in https://github.com/nodejs/undici/pull/4541
- test: fix plans by @Uzlopak in https://github.com/nodejs/undici/pull/4550
- feat: add runtime feature "detection" by @Uzlopak in https://github.com/nodejs/undici/pull/4545
- perf: use less promises in extractBody by @Uzlopak in https://github.com/nodejs/undici/pull/4458
- fix(proxy-agent): add missing return after callback-call by @Uzlopak in https://github.com/nodejs/undici/pull/4553
- fix: remove redundant line in retry-handler by @Uzlopak in https://github.com/nodejs/undici/pull/4554
- ci: add no-wasm-simd option by @Uzlopak in https://github.com/nodejs/undici/pull/4533
- fix: use lazyloaders for runtime feature detection by @Uzlopak in https://github.com/nodejs/undici/pull/4557
- fix: minor changes in dispatcher-base.js and types for Dispatcher by @Uzlopak in https://github.com/nodejs/undici/pull/4556
- http2: refactor and split tests of http2.js into multiple files by @Uzlopak in https://github.com/nodejs/undici/pull/4561
- fix: dns-interceptor test should await plan to complete by @Uzlopak in https://github.com/nodejs/undici/pull/4560
- chore: remove istanbul instructions by @Uzlopak in https://github.com/nodejs/undici/pull/4559
- fix: keep promise chains intact by @Uzlopak in https://github.com/nodejs/undici/pull/4558
- build(deps): bump wait-on from 8.0.5 to 9.0.1 in /benchmarks by @dependabot[bot] in https://github.com/nodejs/undici/pull/4567
- chore: remove tspl from eventsource by @Uzlopak in https://github.com/nodejs/undici/pull/4569
- chore: remove tspl from fetch by @Uzlopak in https://github.com/nodejs/undici/pull/4570
- feat: add getUpstream() method to BalancedPool by @mcollina in https://github.com/nodejs/undici/pull/4586
- fetch: handle invalid priority values properly by @Uzlopak in https://github.com/nodejs/undici/pull/4522
- ci: fix test coverage for codecov by @Uzlopak in https://github.com/nodejs/undici/pull/4520
- types: optional
statusinResponse.redirectby @gineika in https://github.com/nodejs/undici/pull/4591 - docs: unix socket add-on by @FelixVaughan in https://github.com/nodejs/undici/pull/4587
- build(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4601
- build(deps): bump hendrikmuhs/ccache-action from 1.2.18 to 1.2.19 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4600
- build(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4603
- build(deps): bump actions/setup-node from 4.0.2 to 5.0.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4604
- build(deps): bump actions/github-script from 7.0.1 to 8.0.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4602
- build(deps): bump step-security/harden-runner from 2.13.0 to 2.13.1 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4598
- build(deps): bump github/codeql-action from 3.30.0 to 3.30.5 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4599
- build(deps): bump actions/dependency-review-action from 4.7.3 to 4.8.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4597
- fix: cacheStores types and usage in README by @lucalooz in https://github.com/nodejs/undici/pull/4605
- Feat dns interceptor storage by @SuperOleg39 in https://github.com/nodejs/undici/pull/4589
- docs: add crawling best practices by @Uzlopak in https://github.com/nodejs/undici/pull/4590
- fix:
304 not modifiedreply upon revalidation did not update cache. by @daan944 in https://github.com/nodejs/undici/pull/4617 - chore: use testcontext for test:infra by @Uzlopak in https://github.com/nodejs/undici/pull/4579
- fetch: improve regexes in data-uri.js by @Uzlopak in https://github.com/nodejs/undici/pull/4483
- perf: optimize validate http token by @PandaWorker in https://github.com/nodejs/undici/pull/4608
- test: improve long-lived-abort-controller test by @Uzlopak in https://github.com/nodejs/undici/pull/4621
- ci: add node.js 25 to test matrix by @shivarm in https://github.com/nodejs/undici/pull/4626
- chore: use testcontext for test/utils tests by @Uzlopak in https://github.com/nodejs/undici/pull/4577
- chore: remove tspl from websocket by @Uzlopak in https://github.com/nodejs/undici/pull/4568
- fix(ws) onSocketClose being called multiple times by @KhafraDev in https://github.com/nodejs/undici/pull/4632
- fix: prevent duplicate debug logs when multiple undici instances exist by @mcollina in https://github.com/nodejs/undici/pull/4630
- chore: use testcontext for busboy tests by @Uzlopak in https://github.com/nodejs/undici/pull/4572
- test: fix flaky http2-dispatcher test by @mcollina in https://github.com/nodejs/undici/pull/4633
- build(deps): bump uWebSockets.js from v20.52.0 to v20.54.0 in /benchmarks by @dependabot[bot] in https://github.com/nodejs/undici/pull/4635
- Run the gc() in long-lived-abort-controller test by @mcollina in https://github.com/nodejs/undici/pull/4638
- Do not destroy the HTTP2 stream twice in tests by @mcollina in https://github.com/nodejs/undici/pull/4637
- Fix http2-dispatcher test by @mcollina in https://github.com/nodejs/undici/pull/4640
- fix: fetch blob with range off-by-one error by @platypii in https://github.com/nodejs/undici/pull/4643
- fix: ensure HTTP/2 sends Content-Length for empty POST requests by @mcollina in https://github.com/nodejs/undici/pull/4613
- build(deps): bump uWebSockets.js from v20.54.0 to v20.55.0 in /benchmarks by @dependabot[bot] in https://github.com/nodejs/undici/pull/4645
- feat(#2458): WebSocket through HTTP/2 by @metcoder95 in https://github.com/nodejs/undici/pull/4540
- docs(README): correct the example code for the consumption of respons… by @tenkirin in https://github.com/nodejs/undici/pull/4658
- build(deps): bump github/codeql-action from 3.30.5 to 4.31.2 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4653
- build(deps): bump fastify/github-action-merge-dependabot from 3.11.1 to 3.11.2 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4655
- build(deps): bump actions/setup-node from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4652
- build(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4651
- build(deps): bump actions/dependency-review-action from 4.8.0 to 4.8.1 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4654
- don't freeze urlList for opaque filtered responses by @KhafraDev in https://github.com/nodejs/undici/pull/4656
- fix fd parsing unquoted attribute values by @KhafraDev in https://github.com/nodejs/undici/pull/4662
- build(deps): bump uWebSockets.js from v20.55.0 to v20.56.0 in /benchmarks by @dependabot[bot] in https://github.com/nodejs/undici/pull/4665
- feat(dispatcher/proxy-agent): new diagnostics event 'undici:proxy:connected' by @SuperOleg39 in https://github.com/nodejs/undici/pull/4659
- Feat/round robin pool by @FelixVaughan in https://github.com/nodejs/undici/pull/4650
- Formdata ignore epilogue preamble by @KhafraDev in https://github.com/nodejs/undici/pull/4672
- build(deps): bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/nodejs/undici/pull/4682
- fix: snapshot url exclusion by @FelixVaughan in https://github.com/nodejs/undici/pull/4670
- feat: support h2c over unix domain sockets by @chrros95 in https://github.com/nodejs/undici/pull/4690
- fix(docs): remove unused TypeScript example code block by @kerolloz in https://github.com/nodejs/undici/pull/4701
- feat: add deduplicate interceptor for request deduplication by @mcollina in https://github.com/nodejs/undici/pull/4679
- chore: use testcontext for mock tests by @Uzlopak in https://github.com/nodejs/undici/pull/4582
- fix(test): remove hardcoded folder name in client-error-stack-trace test by @mcollina in https://github.com/nodejs/undici/pull/4707
New Contributors
- @Gigioliva made their first contribution in #3354
- @fawazahmed0 made their first contribution in #3372
- @jfhr made their first contribution in #3385
- @JbIPS made their first contribution in #3416
- @richardlau made their first contribution in #3420
- @avivkeller made their first contribution in #3484
- @NathanBaulch made their first contribution in #3640
- @flakey5 made their first contribution in #3562
- @pastelsky made their first contribution in #3591
- @rindeal made their first contribution in #3569
- @styfle made their first contribution in #3743
- @luddd3 made their first contribution in #3770
- @epistemancering made their first contribution in #3754
- @jerome-benoit made their first contribution in #3776
- @hochoy made their first contribution in #3751
- @DTrombett made their first contribution in #3826
- @bcomnes made their first contribution in #3839
- @mqayyuum made their first contribution in #3851
- @ShenHongFei made their first contribution in #3875
- @WTCT-TOP made their first contribution in #3916
- @legendecas made their first contribution in #3974
- @zuozp8 made their first contribution in #4014
- @tmair made their first contribution in #4030
- @shivarm made their first contribution in #4037
- @frederikprijck made their first contribution in #4036
- @joyeecheung made their first contribution in #4064
- @blephy made their first contribution in #4029
- @fgiova made their first contribution in #4084
- @hitsthings made their first contribution in #4070
- @alxndrsn made their first contribution in #4102
- @Exifers made their first contribution in #4115
- @GeoffreyBooth made their first contribution in #4127
- @Jiralite made their first contribution in #4038
- @dario-piotrowicz made their first contribution in #4151
- @tdeekens made their first contribution in #4157
- @islandryu made their first contribution in #4195
- @FelixVaughan made their first contribution in #4202
- @dhalbrook made their first contribution in #4175
- @caitp made their first contribution in #4180
- @inyourtime made their first contribution in #4226
- @J3m5 made their first contribution in #4238
- @aidant made their first contribution in #4236
- @bpasero made their first contribution in #4272
- @IvanDimanov-OfficeRnD made their first contribution in #4281
- @rahulyadav5524 made their first contribution in #4278
- @DemianParkhomenko made their first contribution in #4176
- @1ly4s0 made their first contribution in #4213
- @urugator made their first contribution in #4243
- @pimothyxd made their first contribution in #4312
- @fredericDelaporte made their first contribution in #4299
- @bmeck made their first contribution in #4339
- @lisez made their first contribution in #4344
- @tawseefnabi made their first contribution in https://github.com/nodejs/undici/pull/4396
- @jsaguet made their first contribution in https://github.com/nodejs/undici/pull/4384
- @hexchain made their first contribution in https://github.com/nodejs/undici/pull/4425
- @Renegade334 made their first contribution in https://github.com/nodejs/undici/pull/4503
- @JoshMock made their first contribution in https://github.com/nodejs/undici/pull/4365
- @kreeksec made their first contribution in https://github.com/nodejs/undici/pull/4392
- @gineika made their first contribution in https://github.com/nodejs/undici/pull/4591
- @lucalooz made their first contribution in https://github.com/nodejs/undici/pull/4605
- @SuperOleg39 made their first contribution in https://github.com/nodejs/undici/pull/4589
- @daan944 made their first contribution in https://github.com/nodejs/undici/pull/4617
- @PandaWorker made their first contribution in https://github.com/nodejs/undici/pull/4608
- @platypii made their first contribution in https://github.com/nodejs/undici/pull/4643
- @tenkirin made their first contribution in https://github.com/nodejs/undici/pull/4658
- @kerolloz made their first contribution in https://github.com/nodejs/undici/pull/4701
Full Changelog: v6.22.0...v6.23.0