Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make test pass in v19.x #1879

Merged
merged 8 commits into from
Jan 26, 2023
Merged

Make test pass in v19.x #1879

merged 8 commits into from
Jan 26, 2023

Conversation

mcollina
Copy link
Member

Signed-off-by: Matteo Collina hello@matteocollina.com

Signed-off-by: Matteo Collina <hello@matteocollina.com>
@mcollina
Copy link
Member Author

@KhafraDev could you take a look? WPT has more failures.

> undici@5.16.0 test:wpt
> node scripts/verifyVersion 18 || (node test/wpt/start-fetch.mjs && node test/wpt/start-FileAPI.mjs && node test/wpt/start-mimesniff.mjs && node test/wpt/start-xhr.mjs && node test/wpt/start-websockets.mjs)

[fetch]: Completed: 1320, failed: 134, success: 1186, expected failures: 134, unexpected failures: 0, skipped: 0
(node:51672) ExperimentalWarning: buffer.File is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51672) ExperimentalWarning: buffer.File is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51672) ExperimentalWarning: buffer.File is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:51672) ExperimentalWarning: buffer.File is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
{
  status: 1,
  name: 'Blob interface: existence and properties of interface object',
  message: `assert_false: self's property "Blob" should not have a getter expected false got true`,
  stack: 'Error\n' +
    '    at get_stack (evalmachine.<anonymous>:4513:16)\n' +
    '    at new AssertionError (evalmachine.<anonymous>:4506:17)\n' +
    '    at assert (evalmachine.<anonymous>:4490:11)\n' +
    '    at assert_false (evalmachine.<anonymous>:1476:4)\n' +
    '    at assert_wrapper (evalmachine.<anonymous>:1436:19)\n' +
    '    at IdlInterface.<anonymous> (evalmachine.<anonymous>:1467:9)\n' +
    '    at Test.step (evalmachine.<anonymous>:2590:17)\n' +
    '    at test (evalmachine.<anonymous>:628:25)\n' +
    '    at self.subsetTestByKey (evalmachine.<anonymous>:44:14)\n' +
    '    at IdlInterface.test_self (evalmachine.<anonymous>:1453:5)'
}
[FileAPI]: Completed: 234, failed: 11, success: 223, expected failures: 10, unexpected failures: 1, skipped: 0

@KhafraDev
Copy link
Member

The test is failing because of nodejs/node#45659, will have a fix soon

Signed-off-by: Matteo Collina <hello@matteocollina.com>
@mcollina mcollina marked this pull request as ready for review January 24, 2023 16:03
Copy link
Member

@KhafraDev KhafraDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mcollina
Copy link
Member Author

@dominykas could you take a look? I don't know how to support it.

@KhafraDev
Copy link
Member

it should be as easy as removing the line I linked to above

Signed-off-by: Matteo Collina <hello@matteocollina.com>
@codecov-commenter
Copy link

codecov-commenter commented Jan 24, 2023

Codecov Report

Base: 90.32% // Head: 90.33% // Increases project coverage by +0.01% 🎉

Coverage data is based on head (1a0cf69) compared to base (25a8aac).
Patch has no changes to coverable lines.

❗ Current head 1a0cf69 differs from pull request most recent head 990302f. Consider uploading reports for the commit 990302f to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1879      +/-   ##
==========================================
+ Coverage   90.32%   90.33%   +0.01%     
==========================================
  Files          70       70              
  Lines        6045     6045              
==========================================
+ Hits         5460     5461       +1     
+ Misses        585      584       -1     
Impacted Files Coverage Δ
lib/fetch/file.js 90.80% <0.00%> (+1.14%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

Signed-off-by: Matteo Collina <hello@matteocollina.com>
Signed-off-by: Matteo Collina <hello@matteocollina.com>
@mcollina
Copy link
Member Author

I think this is almost good to go. Could I get a couple of LGTMs?

@ronag
Copy link
Member

ronag commented Jan 25, 2023

Checks are still failing?

@mcollina
Copy link
Member Author

Only on Windows. @KhafraDev PTAL:

> node scripts/verifyVersion 18 || (node test/wpt/start-fetch.mjs && node test/wpt/start-FileAPI.mjs && node test/wpt/start-mimesniff.mjs && node test/wpt/start-xhr.mjs && node test/wpt/start-websockets.mjs)

Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\content-encoding\bad-gzip-body.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\data-urls\base64.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\data-urls\processing.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\accept-header.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\header-value-combining.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\header-value-null-byte.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\http-response-code.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\integrity.sub.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\request-headers-nonascii.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\request-upload.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\scheme-blob.sub.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\stream-response.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\stream-safe-creation.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\basic\text-utf8.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\credentials\authentication-redirection.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\redirect\redirect-location.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\redirect\redirect-method.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\redirect\redirect-schemes.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\redirect\redirect-to-dataurl.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\json.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-cancel-stream.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-clone.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-static-error.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-stream-disturbed-1.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-stream-disturbed-2.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-stream-disturbed-3.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-stream-disturbed-4.any.js
Test timed out: D:\a\undici\undici\test\wpt\tests\fetch\api\response\response-stream-disturbed-5.any.js
{
  status: 1,
  name: 'response.arrayBuffer() rejects if already aborted',
  message: 'assert_unreached: Should have rejected: undefined Reached unreachable code',
  stack: 'Error\n' +
    '    at get_stack (evalmachine.<anonymous>:4513:16)\n' +
    '    at new AssertionError (evalmachine.<anonymous>:4506:17)\n' +
    '    at assert (evalmachine.<anonymous>:4490:11)\n' +
    '    at assert_unreached (evalmachine.<anonymous>:2348:5)\n' +
    '    at Test.<anonymous> (evalmachine.<anonymous>:2683:5)\n' +
    '    at Test.step (evalmachine.<anonymous>:2590:17)\n' +
    '    at evalmachine.<anonymous>:2637:27\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
    '    at async Test.<anonymous> (evalmachine.<anonymous>:237:5)'
}
[fetch]: Completed: 1320, failed: 138, success: 1182, expected failures: 137, unexpected failures: 1, skipped: 0
Error: Process completed with exit code 1.

@mcollina
Copy link
Member Author

{
  status: 1,
  name: 'Underlying connection is closed when aborting after receiving response',
  message: 'promise_test: Unhandled rejection with value: object "TypeError: fetch failed"',
  stack: 'Error\n' +
    '    at get_stack (evalmachine.<anonymous>:4513:16)\n' +
    '    at new AssertionError (evalmachine.<anonymous>:4506:17)\n' +
    '    at assert (evalmachine.<anonymous>:4490:11)\n' +
    '    at Test.<anonymous> (evalmachine.<anonymous>:759:9)\n' +
    '    at Test.step (evalmachine.<anonymous>:2590:17)\n' +
    '    at evalmachine.<anonymous>:2637:27'
}

@KhafraDev
Copy link
Member

KhafraDev commented Jan 25, 2023

I can't repro locally (I've ran the wpt runner hundreds of times, not a single test failure/hang on v19.5.0), but these tests do occasionally have issues:

  • The first failure has been an issue for some time, and a really hard problem to diagnose. For some reason, the abort event is being dispatched after the response has succeeded, and the body consumed. What should be happening is that the controller is aborted after the request succeeds, and then reads the body. This is what the test is doing:
const ac = new AbortController()

const response = await fetch('...', { controller: ac.signal })

ac.abort() // "abort" event is dispatched, and once the event is handled, the response should be in an "aborted" state. This should theoretically happen before calling the body mixin below.

await response.arrayBuffer() // check if response's state is "aborted", and if so, reject.
  • The second is strange because it's not an issue with the test; somewhere in fetch an error is being thrown (causing the "fetch failed" message).

Sooo.... the first test is flaky and the second one is an issue in fetch (maybe the server was closed?). Although I reran the tests one more time and it passed.

@mcollina
Copy link
Member Author

I reliably reproduce the failures 100% of times in my Windows v10 virtualized.

@KhafraDev
Copy link
Member

Ill setup a vm then, in the meantime the tests can be marked as flaky in the status file(s) https://github.com/nodejs/undici/tree/main/test/wpt/status

Signed-off-by: Matteo Collina <hello@matteocollina.com>
@mcollina
Copy link
Member Author

@KhafraDev works!

@ronag ronag merged commit 47f574d into main Jan 26, 2023
@mcollina mcollina deleted the update-tests-v19 branch January 26, 2023 10:36
anonrig pushed a commit to anonrig/undici that referenced this pull request Apr 4, 2023
* Make test pass in v19.x

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* enable v19

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* github CI timeout

Signed-off-by: Matteo Collina <hello@matteocollina.com>

Signed-off-by: Matteo Collina <hello@matteocollina.com>
metcoder95 pushed a commit to metcoder95/undici that referenced this pull request Jul 21, 2023
* Make test pass in v19.x

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* enable v19

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* github CI timeout

Signed-off-by: Matteo Collina <hello@matteocollina.com>

Signed-off-by: Matteo Collina <hello@matteocollina.com>
kodiakhq bot referenced this pull request in X-oss-byte/Canary-nextjs Sep 18, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [undici](https://undici.nodejs.org) ([source](https://github.com/nodejs/undici)) | [`5.14.0` -> `5.19.1`](https://renovatebot.com/diffs/npm/undici/5.14.0/5.19.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/5.14.0/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/5.14.0/5.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

### GitHub Vulnerability Alerts

#### [CVE-2023-23936](https://github.com/nodejs/undici/security/advisories/GHSA-5r9g-qh6m-jxff)

### Impact

undici library does not protect `host` HTTP header from CRLF injection vulnerabilities.

### Patches

This issue was patched in Undici v5.19.1.

### Workarounds

Sanitize the `headers.host` string before passing to undici.

### References

Reported at https://hackerone.com/reports/1820955.

### Credits

Thank you to Zhipeng Zhang ([@&#8203;timon8](https://hackerone.com/timon8)) for reporting this vulnerability.

---

### Release Notes

<details>
<summary>nodejs/undici (undici)</summary>

### [`v5.19.1`](https://github.com/nodejs/undici/releases/tag/v5.19.1)

[Compare Source](https://github.com/nodejs/undici/compare/v5.19.0...v5.19.1)

#### ⚠️ Security Release ⚠️

-   [Regular Expression Denial of Service in Headers](https://github.com/nodejs/undici/security/advisories/GHSA-r6ch-mqf9-qc9w) with CVE-2023-24807
-   [CRLF Injection in Nodejs ‘undici’ via host](https://github.com/nodejs/undici/security/advisories/GHSA-5r9g-qh6m-jxff) with CVE-2023-23936

This release is part of the Node.js security release train: https://nodejs.org/en/blog/vulnerability/february-2023-security-releases/

### [`v5.19.0`](https://github.com/nodejs/undici/releases/tag/v5.19.0)

[Compare Source](https://github.com/nodejs/undici/compare/v5.18.0...v5.19.0)

#### What's Changed

-   fix(fetch): raise AbortSignal max event listeners by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1910](https://github.com/nodejs/undici/pull/1910)
-   fix: content-disposition header parsing by [@&#8203;climba03003](https://github.com/climba03003) in [https://github.com/nodejs/undici/pull/1911](https://github.com/nodejs/undici/pull/1911)
-   fix: remove test by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1916](https://github.com/nodejs/undici/pull/1916)
-   feat: add Headers.prototype.getSetCookie by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1915](https://github.com/nodejs/undici/pull/1915)
-   fix(headers): clone getSetCookie list & add getSetCookie type by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1917](https://github.com/nodejs/undici/pull/1917)
-   doc(mock): update out-of-date reply documentation by [@&#8203;p9f](https://github.com/p9f) in [https://github.com/nodejs/undici/pull/1913](https://github.com/nodejs/undici/pull/1913)
-   fix(types): add missing keepAlive params by [@&#8203;SkeLLLa](https://github.com/SkeLLLa) in [https://github.com/nodejs/undici/pull/1918](https://github.com/nodejs/undici/pull/1918)
-   Make the fetch() abort test pass locally, on Linux and Mac, Node 18/19. by [@&#8203;mcollina](https://github.com/mcollina) in [https://github.com/nodejs/undici/pull/1927](https://github.com/nodejs/undici/pull/1927)

#### New Contributors

-   [@&#8203;climba03003](https://github.com/climba03003) made their first contribution in [https://github.com/nodejs/undici/pull/1911](https://github.com/nodejs/undici/pull/1911)
-   [@&#8203;p9f](https://github.com/p9f) made their first contribution in [https://github.com/nodejs/undici/pull/1913](https://github.com/nodejs/undici/pull/1913)

**Full Changelog**: nodejs/undici@v5.18.0...v5.19.0

### [`v5.18.0`](https://github.com/nodejs/undici/releases/tag/v5.18.0)

[Compare Source](https://github.com/nodejs/undici/compare/v5.17.1...v5.18.0)

##### What's Changed

-   Add ability to set TCP keepalive by [@&#8203;xconverge](https://github.com/xconverge) in [https://github.com/nodejs/undici/pull/1904](https://github.com/nodejs/undici/pull/1904)
-   use faster timers by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1908](https://github.com/nodejs/undici/pull/1908)
-   fix: ensure header value is a string by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1899](https://github.com/nodejs/undici/pull/1899)

**Full Changelog**: nodejs/undici@v5.17.1...v5.18.0

### [`v5.17.1`](https://github.com/nodejs/undici/releases/tag/v5.17.1)

[Compare Source](https://github.com/nodejs/undici/compare/v5.17.0...v5.17.1)

#### What's Changed

-   fix: bad buffer slice (nodejs/undici@d2be675)

**Full Changelog**: nodejs/undici@v5.17.0...v5.17.1

### [`v5.17.0`](https://github.com/nodejs/undici/releases/tag/v5.17.0)

[Compare Source](https://github.com/nodejs/undici/compare/v5.16.0...v5.17.0)

#### What's Changed

-   fix(wpts): Blob is a global getter in >=v19.x.x by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1880](https://github.com/nodejs/undici/pull/1880)
-   doc: fix anchor links dispatcher.stream by [@&#8203;RafaelGSS](https://github.com/RafaelGSS) in [https://github.com/nodejs/undici/pull/1881](https://github.com/nodejs/undici/pull/1881)
-   wpt: make runner more resilient by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1884](https://github.com/nodejs/undici/pull/1884)
-   Make test pass in v19.x by [@&#8203;mcollina](https://github.com/mcollina) in [https://github.com/nodejs/undici/pull/1879](https://github.com/nodejs/undici/pull/1879)
-   Correct the type of DispatchOptions\["headers"] by [@&#8203;pan93412](https://github.com/pan93412) in [https://github.com/nodejs/undici/pull/1896](https://github.com/nodejs/undici/pull/1896)
-   perf(content-type parser): faster string collector by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1894](https://github.com/nodejs/undici/pull/1894)
-   feat: expose content-type parser by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1895](https://github.com/nodejs/undici/pull/1895)
-   fix(types): Update DispatchOptions type for missing "blocking" by [@&#8203;xconverge](https://github.com/xconverge) in [https://github.com/nodejs/undici/pull/1889](https://github.com/nodejs/undici/pull/1889)
-   fix(types): update error type definitions by [@&#8203;rafaelcr](https://github.com/rafaelcr) in [https://github.com/nodejs/undici/pull/1888](https://github.com/nodejs/undici/pull/1888)
-   fix: ensure connection header is a string by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1900](https://github.com/nodejs/undici/pull/1900)
-   fix: throw if invalid content-type header by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1901](https://github.com/nodejs/undici/pull/1901)
-   fix(fetch): use semicolon for Cookie header delimiter by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1906](https://github.com/nodejs/undici/pull/1906)
-   Use FastBuffer by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1907](https://github.com/nodejs/undici/pull/1907)

#### New Contributors

-   [@&#8203;pan93412](https://github.com/pan93412) made their first contribution in [https://github.com/nodejs/undici/pull/1896](https://github.com/nodejs/undici/pull/1896)
-   [@&#8203;rafaelcr](https://github.com/rafaelcr) made their first contribution in [https://github.com/nodejs/undici/pull/1888](https://github.com/nodejs/undici/pull/1888)

**Full Changelog**: nodejs/undici@v5.16.0...v5.17.0

### [`v5.16.0`](https://github.com/nodejs/undici/releases/tag/v5.16.0)

[Compare Source](https://github.com/nodejs/undici/compare/v5.15.2...v5.16.0)

#### What's Changed

-   Add feature to specify custom headers for proxies by [@&#8203;Sebmaster](https://github.com/Sebmaster) in [https://github.com/nodejs/undici/pull/1877](https://github.com/nodejs/undici/pull/1877)

#### New Contributors

-   [@&#8203;Sebmaster](https://github.com/Sebmaster) made their first contribution in [https://github.com/nodejs/undici/pull/1877](https://github.com/nodejs/undici/pull/1877)

**Full Changelog**: nodejs/undici@v5.15.2...v5.16.0

### [`v5.15.2`](https://github.com/nodejs/undici/compare/9d5f23177408dc16d3d4cbb8cebf463081c54e16...9457c9719029945ef9ff36b71d58557443730942)

[Compare Source](https://github.com/nodejs/undici/compare/v5.15.1...v5.15.2)

### [`v5.15.1`](https://github.com/nodejs/undici/releases/tag/v5.15.1)

[Compare Source](https://github.com/nodejs/undici/compare/v5.15.0...v5.15.1)

#### What's Changed

-   fix(websocket): simplify typedarray copying by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1854](https://github.com/nodejs/undici/pull/1854)
-   fix: wpts on node v18.13.0+ by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1859](https://github.com/nodejs/undici/pull/1859)
-   perf: allow keep alive for HEAD requests by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1858](https://github.com/nodejs/undici/pull/1858)
-   fix: flaky abort test by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1863](https://github.com/nodejs/undici/pull/1863)

**Full Changelog**: nodejs/undici@v5.15.0...v5.15.1

### [`v5.15.0`](https://github.com/nodejs/undici/releases/tag/v5.15.0)

[Compare Source](https://github.com/nodejs/undici/compare/v5.14.0...v5.15.0)

#### What's Changed

-   \[types] update ProxyAgent Options (timeout) by [@&#8203;sosoba](https://github.com/sosoba) in [https://github.com/nodejs/undici/pull/1801](https://github.com/nodejs/undici/pull/1801)
-   feat: implement websockets by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1795](https://github.com/nodejs/undici/pull/1795)
-   feat(websocket): handle ping/pong frames & fix fragmented frames by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1809](https://github.com/nodejs/undici/pull/1809)
-   docs: add basic fetch & company docs by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1810](https://github.com/nodejs/undici/pull/1810)
-   make formdata body immutable and encode it only once by [@&#8203;jimmywarting](https://github.com/jimmywarting) in [https://github.com/nodejs/undici/pull/1814](https://github.com/nodejs/undici/pull/1814)
-   test: add regression test for [#&#8203;1814](https://github.com/nodejs/undici/issues/1814) by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1815](https://github.com/nodejs/undici/pull/1815)
-   feat(websocket): only consume necessary bytes by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1812](https://github.com/nodejs/undici/pull/1812)
-   websocket: use Buffer.allocUnsafe by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1817](https://github.com/nodejs/undici/pull/1817)
-   build(deps-dev): bump [@&#8203;sinonjs/fake-timers](https://github.com/sinonjs/fake-timers) from 9.1.2 to 10.0.2 by [@&#8203;dependabot](https://github.com/dependabot) in [https://github.com/nodejs/undici/pull/1819](https://github.com/nodejs/undici/pull/1819)
-   fix(websocket): deprecation warning & 64-bit unsigned int body length by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1818](https://github.com/nodejs/undici/pull/1818)
-   Use nodejs.stream.destroyed symbol by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1816](https://github.com/nodejs/undici/pull/1816)
-   fetch: removal of redundant condition by [@&#8203;debadree25](https://github.com/debadree25) in [https://github.com/nodejs/undici/pull/1821](https://github.com/nodejs/undici/pull/1821)
-   fix(request): request headers array by [@&#8203;jd-carroll](https://github.com/jd-carroll) in [https://github.com/nodejs/undici/pull/1807](https://github.com/nodejs/undici/pull/1807)
-   fix(websocket): validate payload length received by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1822](https://github.com/nodejs/undici/pull/1822)
-   fix(websocket): run parser in loop, instead of recursively by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1828](https://github.com/nodejs/undici/pull/1828)
-   fix(fetch): weaker refs by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1824](https://github.com/nodejs/undici/pull/1824)
-   websocket: add tests for opening handshake by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1831](https://github.com/nodejs/undici/pull/1831)
-   websocket: add tests for constructor, close, and send by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1832](https://github.com/nodejs/undici/pull/1832)
-   websocket: more test coverage by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1833](https://github.com/nodejs/undici/pull/1833)
-   fix(WPTs): flaky abort test by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1835](https://github.com/nodejs/undici/pull/1835)
-   wpt: add test by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1836](https://github.com/nodejs/undici/pull/1836)
-   fix: don't send keep-alive if we want reset by [@&#8203;ronag](https://github.com/ronag) in [https://github.com/nodejs/undici/pull/1846](https://github.com/nodejs/undici/pull/1846)
-   fetch: update body consume to match spec by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1847](https://github.com/nodejs/undici/pull/1847)
-   feat: allow connection header in request by [@&#8203;metcoder95](https://github.com/metcoder95) in [https://github.com/nodejs/undici/pull/1829](https://github.com/nodejs/undici/pull/1829)
-   feat: add cookie parsing ability by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1848](https://github.com/nodejs/undici/pull/1848)
-   fix(cookie): add docs & expose in node v16 by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1849](https://github.com/nodejs/undici/pull/1849)
-   fix(cookies): work with global Headers by [@&#8203;KhafraDev](https://github.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1850](https://github.com/nodejs/undici/pull/1850)
-   docs(Dispatcher): adjust documentation for reset flag by [@&#8203;metcoder95](https://github.com/metcoder95) in [https://github.com/nodejs/undici/pull/1852](https://github.com/nodejs/undici/pull/1852)
-   Fix broken interceptor test by [@&#8203;mcollina](https://github.com/mcollina) in [https://github.com/nodejs/undici/pull/1853](https://github.com/nodejs/undici/pull/1853)

#### New Contributors

-   [@&#8203;sosoba](https://github.com/sosoba) made their first contribution in [https://github.com/nodejs/undici/pull/1801](https://github.com/nodejs/undici/pull/1801)
-   [@&#8203;debadree25](https://github.com/debadree25) made their first contribution in [https://github.com/nodejs/undici/pull/1821](https://github.com/nodejs/undici/pull/1821)
-   [@&#8203;jd-carroll](https://github.com/jd-carroll) made their first contribution in [https://github.com/nodejs/undici/pull/1807](https://github.com/nodejs/undici/pull/1807)

**Full Changelog**: nodejs/undici@v5.14.0...v5.15.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 **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.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/sammyfilly/Canary-nextjs).
crysmags pushed a commit to crysmags/undici that referenced this pull request Feb 27, 2024
* Make test pass in v19.x

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* enable v19

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* fixup

Signed-off-by: Matteo Collina <hello@matteocollina.com>

* github CI timeout

Signed-off-by: Matteo Collina <hello@matteocollina.com>

Signed-off-by: Matteo Collina <hello@matteocollina.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants