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

perf(fetch): simplify url serializer #1774

Merged
merged 1 commit into from
Nov 25, 2022
Merged

Conversation

anonrig
Copy link
Member

@anonrig anonrig commented Nov 16, 2022

There is no need for the URLSerializer since we already have a reference to the URL object. url.toString() produces the same result

@codecov-commenter
Copy link

codecov-commenter commented Nov 16, 2022

Codecov Report

Base: 90.26% // Head: 90.26% // Decreases project coverage by -0.00% ⚠️

Coverage data is based on head (69852f5) compared to base (a3ce745).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1774      +/-   ##
==========================================
- Coverage   90.26%   90.26%   -0.01%     
==========================================
  Files          58       58              
  Lines        5188     5175      -13     
==========================================
- Hits         4683     4671      -12     
+ Misses        505      504       -1     
Impacted Files Coverage Δ
lib/fetch/dataURL.js 87.67% <100.00%> (-1.01%) ⬇️
lib/core/connect.js 100.00% <0.00%> (+1.72%) ⬆️

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.

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.

I'm fine with the change (URL's toString implements the url serializer algorithm) but performance of the node core version is almost definitely slower due to its seemingly unnecessary complexity.

https://github.com/nodejs/node/blob/5fad0b93667ffc6e4def52996b9529ac99b26319/lib/internal/url.js#L699


Totally unrelated, but removing the empty object from .toString would probably help performance as it would remove the validateObject call.

@anonrig
Copy link
Member Author

anonrig commented Nov 16, 2022

If URL's toString method is slow, let's fix it on the Node side. I'm opening a pull request to remove the unnecessary {} from all calls.

@anonrig
Copy link
Member Author

anonrig commented Nov 16, 2022

I opened a pull request and started the benchmark CI. We'll have the results in a couple of hours. @KhafraDev

@KhafraDev
Copy link
Member

Thanks, I've found an issue with the current undici serialization that I will fix once this is merged as well.

Copy link
Member

@ronag ronag left a comment

Choose a reason for hiding this comment

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

I kind of prefer the literal spec implementation... how much faster is this in practice?

@kibertoad
Copy link
Contributor

@ronag What's the benefit of including complexity within the lib if upstream produces same result? Shouldn't it be safe swap as long as there are tests covering existing behaviour?

@anonrig
Copy link
Member Author

anonrig commented Nov 21, 2022

I kind of prefer the literal spec implementation... how much faster is this in practice?

I understand the preference for spec implementation, but new URL is also spec-compliant. The performance is neglectable.

@ronag
Copy link
Member

ronag commented Nov 21, 2022

As far as I know URL.toString is not standard and just happens to be similar but could be changed.

@anonrig
Copy link
Member Author

anonrig commented Nov 21, 2022

As far as I know URL.toString is not standard and just happens to be similar but could be changed.

Then, I recommend making sure that it's spec compliant in the node core, instead of implementing it twice. I'll be happy to keep track of it. @Trott has more experience on this I believe. What do you think?

@ronag
Copy link
Member

ronag commented Nov 21, 2022

I think making URL.toString implement the spec is breaking due to:

if (serialized.endsWith('?')) {
   return serialized.slice(0, -1)
}

I'm pretty sure the echo system relies on that.

@ronag
Copy link
Member

ronag commented Nov 21, 2022

URL.href is standardised. Can we base it on that?

@ronag
Copy link
Member

ronag commented Nov 21, 2022

The href getter steps and the toJSON() method steps are to return the [serialization](https://url.spec.whatwg.org/#concept-url-serializer) of [this](https://webidl.spec.whatwg.org/#this)’s [URL](https://url.spec.whatwg.org/#concept-url-url).

However, given our

if (serialized.endsWith('?')) {
   return serialized.slice(0, -1)
}

I believe either we or node is implementing URL serialisation incorrectly. @KhafraDev ?

lib/fetch/dataURL.js Outdated Show resolved Hide resolved
lib/fetch/dataURL.js Outdated Show resolved Hide resolved
lib/fetch/dataURL.js Outdated Show resolved Hide resolved
lib/fetch/dataURL.js Outdated Show resolved Hide resolved
@anonrig
Copy link
Member Author

anonrig commented Nov 21, 2022

@KhafraDev @ronag I removed 2 faulty node-fetch tests, which are not spec-compliant, and updated my implementation.

@KhafraDev
Copy link
Member

I believe either we or node is implementing URL serialisation incorrectly

Yes, this was the issue I was going to fix. 😄

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.

can you add tests for urls with an empty fragment and an empty search query?

Copy link
Member

@ronag ronag left a comment

Choose a reason for hiding this comment

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

LGTM, although this is more of a refactor than a perf.

@ronag
Copy link
Member

ronag commented Nov 23, 2022

CI fails?

@anonrig
Copy link
Member Author

anonrig commented Nov 24, 2022

I couldn't find the CI error in the logs, and the tests succeeded locally. Does anybody have more in-depth knowledge?

@KhafraDev
Copy link
Member

KhafraDev commented Nov 24, 2022

Looks like

t.equal(
URLSerializer(new URL('https://www.google.com/#frag')),
'https://www.google.com/#frag'
)
and
t.equal(
URLSerializer(new URL('https://www.google.com/#frag'), true),
'https://www.google.com/'
)
are failing from the logs.

@@ -177,3 +177,14 @@ test('too long base64 url', async (t) => {
t.fail(`failed to fetch ${dataURL}`)
}
})

test('https://domain.com#', (t) => {
const domain = 'https://domain.com#'
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
const domain = 'https://domain.com#'
const domain = 'https://domain.com/#'

unless this is expected, and then there's a bug in url serializer?

Copy link
Member Author

Choose a reason for hiding this comment

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

I think this is correct. In chrome, the result has / too.

test/fetch/data-uri.js Outdated Show resolved Hide resolved
@KhafraDev
Copy link
Member

KhafraDev commented Nov 24, 2022

Okay so the last issue hopefully is that you need to call t.end() after the test has run to signify that it's over, or use t.plan(1) to plan a single test. This is only needed when the tests are synchronous, and not very fun to debug from experience. You need to do this for both tests you added.

@anonrig
Copy link
Member Author

anonrig commented Nov 24, 2022

I understood what the issue is. If I used a async function in the test callback, I wouldn't need t.plan(1) or t.end(). Thanks for the help @KhafraDev

@ronag ronag merged commit 7ffc264 into nodejs:main Nov 25, 2022
louis-bompart referenced this pull request in coveo/cli Nov 29, 2022
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@babel/core](https://babel.dev/docs/en/next/babel-core)
([source](https://togithub.com/babel/babel)) | [`7.20.2` ->
`7.20.5`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.20.2/7.20.5)
|
[![age](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/compatibility-slim/7.20.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/confidence-slim/7.20.2)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@babel/core](https://babel.dev/docs/en/next/babel-core)
([source](https://togithub.com/babel/babel)) | [`7.20.2` ->
`7.20.5`](https://renovatebot.com/diffs/npm/@babel%2fcore/7.20.2/7.20.5)
|
[![age](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/compatibility-slim/7.20.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@babel%2fcore/7.20.5/confidence-slim/7.20.2)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@coveo/atomic](https://docs.coveo.com/en/atomic/latest/)
([source](https://togithub.com/coveo/ui-kit)) | [`1.123.1` ->
`1.124.0`](https://renovatebot.com/diffs/npm/@coveo%2fatomic/1.123.1/1.124.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@coveo%2fatomic/1.124.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@coveo%2fatomic/1.124.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@coveo%2fatomic/1.124.0/compatibility-slim/1.123.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@coveo%2fatomic/1.124.0/confidence-slim/1.123.1)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [@coveo/headless](https://docs.coveo.com/en/headless/latest/)
([source](https://togithub.com/coveo/ui-kit)) | [`1.111.2` ->
`1.111.3`](https://renovatebot.com/diffs/npm/@coveo%2fheadless/1.111.2/1.111.3)
|
[![age](https://badges.renovateapi.com/packages/npm/@coveo%2fheadless/1.111.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@coveo%2fheadless/1.111.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@coveo%2fheadless/1.111.3/compatibility-slim/1.111.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@coveo%2fheadless/1.111.3/confidence-slim/1.111.2)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@mui/material](https://mui.com/material-ui/getting-started/overview/)
([source](https://togithub.com/mui/material-ui)) | [`5.10.15` ->
`5.10.16`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/5.10.15/5.10.16)
|
[![age](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.10.16/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.10.16/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.10.16/compatibility-slim/5.10.15)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.10.16/confidence-slim/5.10.15)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
| [`5.44.0` ->
`5.45.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.44.0/5.45.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.45.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.45.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.45.0/compatibility-slim/5.44.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.45.0/confidence-slim/5.44.0)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
| [`5.44.0` ->
`5.45.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.44.0/5.45.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.45.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.45.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.45.0/compatibility-slim/5.44.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.45.0/confidence-slim/5.44.0)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [aws-sdk](https://togithub.com/aws/aws-sdk-js) | [`2.1261.0` ->
`2.1263.0`](https://renovatebot.com/diffs/npm/aws-sdk/2.1261.0/2.1263.0)
|
[![age](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1263.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1263.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1263.0/compatibility-slim/2.1261.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1263.0/confidence-slim/2.1261.0)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[devtools-protocol](https://togithub.com/ChromeDevTools/devtools-protocol)
| [`0.0.1075032` ->
`0.0.1075693`](https://renovatebot.com/diffs/npm/devtools-protocol/0.0.1075032/0.0.1075693)
|
[![age](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1075693/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1075693/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1075693/compatibility-slim/0.0.1075032)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1075693/confidence-slim/0.0.1075032)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [github/codeql-action](https://togithub.com/github/codeql-action) |
`678fc3a` -> `312e093` |
[![age](https://badges.renovateapi.com/packages/github-tags/github%2fcodeql-action//age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/github-tags/github%2fcodeql-action//adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/github-tags/github%2fcodeql-action//compatibility-slim/v2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/github-tags/github%2fcodeql-action//confidence-slim/v2)](https://docs.renovatebot.com/merge-confidence/)
| action | digest |
| [lint-staged](https://togithub.com/okonet/lint-staged) | [`13.0.3` ->
`13.0.4`](https://renovatebot.com/diffs/npm/lint-staged/13.0.3/13.0.4) |
[![age](https://badges.renovateapi.com/packages/npm/lint-staged/13.0.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/lint-staged/13.0.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/lint-staged/13.0.4/compatibility-slim/13.0.3)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/lint-staged/13.0.4/confidence-slim/13.0.3)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [oclif](https://togithub.com/oclif/oclif) | [`3.2.28` ->
`3.2.31`](https://renovatebot.com/diffs/npm/oclif/3.2.28/3.2.31) |
[![age](https://badges.renovateapi.com/packages/npm/oclif/3.2.31/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/oclif/3.2.31/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/oclif/3.2.31/compatibility-slim/3.2.28)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/oclif/3.2.31/confidence-slim/3.2.28)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [undici](https://undici.nodejs.org)
([source](https://togithub.com/nodejs/undici)) | [`5.12.0` ->
`5.13.0`](https://renovatebot.com/diffs/npm/undici/5.12.0/5.13.0) |
[![age](https://badges.renovateapi.com/packages/npm/undici/5.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/undici/5.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/undici/5.13.0/compatibility-slim/5.12.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/undici/5.13.0/confidence-slim/5.12.0)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |

---

### Release Notes

<details>
<summary>babel/babel</summary>

###
[`v7.20.5`](https://togithub.com/babel/babel/blob/HEAD/CHANGELOG.md#v7205-2022-11-28)

[Compare
Source](https://togithub.com/babel/babel/compare/v7.20.2...v7.20.5)

##### 👓 Spec Compliance

- `babel-helpers`, `babel-plugin-transform-destructuring`,
`babel-plugin-transform-modules-commonjs`, `babel-preset-env`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`,
`babel-traverse`
- [#&#8203;15183](https://togithub.com/babel/babel/pull/15183) Improve
array destructuring spec compliance
([@&#8203;SuperSodaSea](https://togithub.com/SuperSodaSea))
- `babel-cli`, `babel-helpers`,
`babel-plugin-proposal-class-properties`,
`babel-plugin-proposal-class-static-block`,
`babel-plugin-transform-classes`, `babel-plugin-transform-runtime`,
`babel-preset-env`
- [#&#8203;15182](https://togithub.com/babel/babel/pull/15182) fix:
apply toPropertyKey when defining class members
([@&#8203;JLHwung](https://togithub.com/JLHwung))
- `babel-helper-create-class-features-plugin`, `babel-helpers`,
`babel-plugin-proposal-decorators`,
`babel-plugin-proposal-private-property-in-object`, `babel-preset-env`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
- [#&#8203;15133](https://togithub.com/babel/babel/pull/15133) fix:
validate rhs of `in` when transpiling `#p in C`
([@&#8203;JLHwung](https://togithub.com/JLHwung))

##### 🐛 Bug Fix

-   `babel-parser`
- [#&#8203;15225](https://togithub.com/babel/babel/pull/15225) Parse
`using[foo]` as computed member expression
([@&#8203;JLHwung](https://togithub.com/JLHwung))
- [#&#8203;15207](https://togithub.com/babel/babel/pull/15207) Export
`ParseResult` type ([@&#8203;davydof](https://togithub.com/davydof))
- [#&#8203;15198](https://togithub.com/babel/babel/pull/15198) fix:
parse `import module, ...`
([@&#8203;JLHwung](https://togithub.com/JLHwung))
-   `babel-helper-wrap-function`, `babel-preset-env`, `babel-traverse`
- [#&#8203;15181](https://togithub.com/babel/babel/pull/15181) fix: Edge
cases for async functions and `noNewArrow` assumption
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
- `babel-plugin-transform-arrow-functions`,
`babel-plugin-transform-parameters`, `babel-traverse`
- [#&#8203;15163](https://togithub.com/babel/babel/pull/15163) fix:
Throw error when compiling `super()` in arrow functions with default /
rest parameters
([@&#8203;SuperSodaSea](https://togithub.com/SuperSodaSea))
- `babel-helpers`, `babel-node`,
`babel-plugin-proposal-async-generator-functions`,
`babel-plugin-transform-regenerator`, `babel-preset-env`,
`babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
- [#&#8203;15194](https://togithub.com/babel/babel/pull/15194) fix: Bump
`regenerator` and add tests
([@&#8203;SuperSodaSea](https://togithub.com/SuperSodaSea))
-   `babel-helper-create-regexp-features-plugin`
- [#&#8203;15192](https://togithub.com/babel/babel/pull/15192) fix:
Update `regjsparser` for `@babel/standalone`
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-parser`, `babel-types`
- [#&#8203;15109](https://togithub.com/babel/babel/pull/15109) fix:
Babel 8 types
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-generator`
- [#&#8203;15143](https://togithub.com/babel/babel/pull/15143) Don't
print inner comments as leading when wrapping in `(``)`
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))
-   `babel-plugin-transform-block-scoping`, `babel-traverse`
- [#&#8203;15167](https://togithub.com/babel/babel/pull/15167) Register
`switch`'s `discriminant` in the outer scope
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 💅 Polish

-   `babel-generator`
- [#&#8203;15173](https://togithub.com/babel/babel/pull/15173) Improve
generator behavior when `comments:false`
([@&#8203;liuxingbaoyu](https://togithub.com/liuxingbaoyu))
-   `babel-plugin-transform-block-scoping`
- [#&#8203;15164](https://togithub.com/babel/babel/pull/15164) Only
extract IDs for TDZ checks in assign when necessary
([@&#8203;nicolo-ribaudo](https://togithub.com/nicolo-ribaudo))

##### 🏠 Internal

-   `babel-core`, `babel-parser`
- [#&#8203;15202](https://togithub.com/babel/babel/pull/15202) Bump
typescript to 4.9.3 ([@&#8203;JLHwung](https://togithub.com/JLHwung))

</details>

<details>
<summary>coveo/ui-kit (@&#8203;coveo/atomic)</summary>

###
[`v1.124.0`](https://togithub.com/coveo/ui-kit/blob/HEAD/packages/atomic/CHANGELOG.md#&#8203;11240-httpsgithubcomcoveoui-kitcomparecoveoatomic11232coveoatomic11240-2022-11-25)

[Compare
Source](https://togithub.com/coveo/ui-kit/compare/66d6bd75c7d4597d87852bc47049f6ada4755d81...f79744c362a79fc44a4e71fed6660da17e5f8a95)

##### Features

- **atomic:** add ipx facets
([#&#8203;2565](https://togithub.com/coveo/ui-kit/issues/2565))
([d58e5df](https://togithub.com/coveo/ui-kit/commit/d58e5df7dc53b7c9c24795436e1c87bc42936912))

####
[1.123.2](https://togithub.com/coveo/ui-kit/compare/@coveo/atomic@1.123.1...@coveo/atomic@1.123.2)
(2022-11-24)

**Note:** Version bump only for package
[@&#8203;coveo/atomic](https://togithub.com/coveo/atomic)

####
[1.123.1](https://togithub.com/coveo/ui-kit/compare/@coveo/atomic@1.123.0...@coveo/atomic@1.123.1)
(2022-11-22)

**Note:** Version bump only for package
[@&#8203;coveo/atomic](https://togithub.com/coveo/atomic)

###
[`v1.123.2`](https://togithub.com/coveo/ui-kit/blob/HEAD/packages/atomic/CHANGELOG.md#&#8203;11232-httpsgithubcomcoveoui-kitcomparecoveoatomic11231coveoatomic11232-2022-11-24)

[Compare
Source](https://togithub.com/coveo/ui-kit/compare/153d290030481d5579a954d2029fe1a5600752bb...66d6bd75c7d4597d87852bc47049f6ada4755d81)

**Note:** Version bump only for package
[@&#8203;coveo/atomic](https://togithub.com/coveo/atomic)

</details>

<details>
<summary>coveo/ui-kit (@&#8203;coveo/headless)</summary>

###
[`v1.111.3`](https://togithub.com/coveo/ui-kit/blob/HEAD/packages/headless/CHANGELOG.md#&#8203;11113-httpsgithubcomcoveoui-kitcomparecoveoheadless11112coveoheadless11113-2022-11-24)

[Compare
Source](https://togithub.com/coveo/ui-kit/compare/153d290030481d5579a954d2029fe1a5600752bb...66d6bd75c7d4597d87852bc47049f6ada4755d81)

**Note:** Version bump only for package
[@&#8203;coveo/headless](https://togithub.com/coveo/headless)

</details>

<details>
<summary>mui/material-ui</summary>

###
[`v5.10.16`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#&#8203;51016)

[Compare
Source](https://togithub.com/mui/material-ui/compare/v5.10.15...v5.10.16)

<!-- generated comparing v5.10.15..master -->

*Nov 28, 2022*

A big thanks to the 13 contributors who made this release possible. This
release contains various 🐛 bug fixes, 📚 documentation, and ⚙️
infrastructure improvements.

##### `@mui/material@5.10.16`

- ​<!-- 21 -->\[Autocomplete] Fix inferred value type when `multiple`
prop is `true`
([#&#8203;35275](https://togithub.com/mui/material-ui/issues/35275))
[@&#8203;fenghan34](https://togithub.com/fenghan34)
- ​<!-- 19 -->\[Chip] Add `skipFocusWhenDisabled` prop to not allow
focussing deletable chip if disabled
([#&#8203;35065](https://togithub.com/mui/material-ui/issues/35065))
[@&#8203;sai6855](https://togithub.com/sai6855)
- ​<!-- 18 -->\[Chip] Remove unnecessary handleKeyDown event handler
([#&#8203;35231](https://togithub.com/mui/material-ui/issues/35231))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 05 -->\[FormControl] Add missing types in `useFormControl`
([#&#8203;35168](https://togithub.com/mui/material-ui/issues/35168))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)
- ​<!-- 04 -->\[IconButton] Add missing color classes
([#&#8203;33820](https://togithub.com/mui/material-ui/issues/33820))
[@&#8203;Zetta56](https://togithub.com/Zetta56)
- ​<!-- 03 -->\[SwipeableDrawer] Make paper ref accessible
([#&#8203;35082](https://togithub.com/mui/material-ui/issues/35082))
[@&#8203;sai6855](https://togithub.com/sai6855)

##### `@mui/system@5.10.16`

- ​<!-- 02 -->\[system] Remove unnecessary parsed theme
([#&#8203;35239](https://togithub.com/mui/material-ui/issues/35239))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 01 -->\[theme] Fix TypeScript type for custom variants in
responsive font sizes
([#&#8203;35057](https://togithub.com/mui/material-ui/issues/35057))
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli)

##### `@mui/base@5.0.0-alpha.108`

- ​<!-- 20 -->\[Base] Allow useSlotProps to receive undefined
elementType
([#&#8203;35192](https://togithub.com/mui/material-ui/issues/35192))
[@&#8203;leventdeniz](https://togithub.com/leventdeniz)

##### Docs

- ​<!-- 13 -->\[docs] Improve feedback precision
([#&#8203;34641](https://togithub.com/mui/material-ui/issues/34641))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 12 -->\[docs] Add Black Friday notification
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 11 -->\[docs] Fix migration feedback
([#&#8203;35232](https://togithub.com/mui/material-ui/issues/35232))
[@&#8203;alexfauquette](https://togithub.com/alexfauquette)
- ​<!-- 10 -->\[docs] Improve the useSelect demo styling
([#&#8203;33883](https://togithub.com/mui/material-ui/issues/33883))
[@&#8203;michaldudak](https://togithub.com/michaldudak)
- ​<!-- 09 -->\[docs] Fix layout jump on first mistake
([#&#8203;35215](https://togithub.com/mui/material-ui/issues/35215))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 08 -->\[docs] Support demos with side effect imports
([#&#8203;35177](https://togithub.com/mui/material-ui/issues/35177))
[@&#8203;m4theushw](https://togithub.com/m4theushw)
- ​<!-- 07 -->\[examples] Fix Next.js errors
([#&#8203;35246](https://togithub.com/mui/material-ui/issues/35246))
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari)
- ​<!-- 06 -->\[examples] Updated Remix examples with the lates changes
using React 18
([#&#8203;35092](https://togithub.com/mui/material-ui/issues/35092))
[@&#8203;58bits](https://togithub.com/58bits)

##### Core

- ​<!-- 17 -->\[core] Remove unused pattern
([#&#8203;35165](https://togithub.com/mui/material-ui/issues/35165))
[@&#8203;iamxukai](https://togithub.com/iamxukai)
- ​<!-- 16 -->\[core] Fix Base version in changelog
([#&#8203;35224](https://togithub.com/mui/material-ui/issues/35224))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)
- ​<!-- 15 -->\[core] Migrate `describeConformance` to TypeScript
([#&#8203;35193](https://togithub.com/mui/material-ui/issues/35193))
[@&#8203;flaviendelangle](https://togithub.com/flaviendelangle)
- ​<!-- 14 -->\[core] Skip CI for docs and examples paths
([#&#8203;35225](https://togithub.com/mui/material-ui/issues/35225))
[@&#8203;siriwatknp](https://togithub.com/siriwatknp)

All contributors of this release in alphabetical order:
[@&#8203;58bits](https://togithub.com/58bits),
[@&#8203;alexfauquette](https://togithub.com/alexfauquette),
[@&#8203;fenghan34](https://togithub.com/fenghan34),
[@&#8203;flaviendelangle](https://togithub.com/flaviendelangle),
[@&#8203;iamxukai](https://togithub.com/iamxukai),
[@&#8203;leventdeniz](https://togithub.com/leventdeniz),
[@&#8203;m4theushw](https://togithub.com/m4theushw),
[@&#8203;michaldudak](https://togithub.com/michaldudak),
[@&#8203;oliviertassinari](https://togithub.com/oliviertassinari),
[@&#8203;sai6855](https://togithub.com/sai6855),
[@&#8203;siriwatknp](https://togithub.com/siriwatknp),
[@&#8203;ZeeshanTamboli](https://togithub.com/ZeeshanTamboli),
[@&#8203;Zetta56](https://togithub.com/Zetta56)

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v5.45.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#&#8203;5450-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5440v5450-2022-11-28)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.44.0...v5.45.0)

##### Bug Fixes

- **eslint-plugin:** \[array-type] --fix flag removes parentheses from
type
([#&#8203;5997](https://togithub.com/typescript-eslint/typescript-eslint/issues/5997))
([42b33af](https://togithub.com/typescript-eslint/typescript-eslint/commit/42b33af256e5269feb214c7bb161079f770964fa))
- **eslint-plugin:** \[keyword-spacing] prevent crash on no options
([#&#8203;6073](https://togithub.com/typescript-eslint/typescript-eslint/issues/6073))
([1f19998](https://togithub.com/typescript-eslint/typescript-eslint/commit/1f19998e3ec6d592fc679a7490708e2e96816f4c))
- **eslint-plugin:** \[member-ordering] support private fields
([#&#8203;5859](https://togithub.com/typescript-eslint/typescript-eslint/issues/5859))
([f02761a](https://togithub.com/typescript-eslint/typescript-eslint/commit/f02761af19848a84b8d1832bd00fd6c95d38fa0c))
- **eslint-plugin:** \[prefer-readonly] report if a member's property is
reassigned
([#&#8203;6043](https://togithub.com/typescript-eslint/typescript-eslint/issues/6043))
([6e079eb](https://togithub.com/typescript-eslint/typescript-eslint/commit/6e079eb35cfec79ba9965627477117f026d161ac))

##### Features

- **eslint-plugin:** \[member-ordering] add a required option for
required vs. optional member ordering
([#&#8203;5965](https://togithub.com/typescript-eslint/typescript-eslint/issues/5965))
([2abadc6](https://togithub.com/typescript-eslint/typescript-eslint/commit/2abadc6c26cd6300764157d405a2462b754d050b))

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v5.45.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#&#8203;5450-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5440v5450-2022-11-28)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.44.0...v5.45.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

</details>

<details>
<summary>aws/aws-sdk-js</summary>

###
[`v2.1263.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#&#8203;212630)

[Compare
Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1262.0...v2.1263.0)

- bugfix: event_listeners: differentiate identity type in
VALIDATE_CREDENTIALS listener
- bugfix: region_config: Set signatureVersion to bearer explcitly when
defined in service API
- feature: ARCZonalShift: Amazon Route 53 Application Recovery
Controller Zonal Shift is a new service that makes it easy to shift
traffic away from an Availability Zone in a Region. See the developer
guide for more information:
https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route53-recovery.html
- feature: ComputeOptimizer: Adds support for a new recommendation
preference that makes it possible for customers to optimize their EC2
recommendations by utilizing an external metrics ingestion service to
provide metrics.
- feature: ConfigService: With this release, you can use AWS Config to
evaluate your resources for compliance with Config rules before they are
created or updated. Using Config rules in proactive mode enables you to
test and build compliant resource templates or check resource
configurations at the time they are provisioned.
- feature: EC2: Introduces ENA Express, which uses AWS SRD and dynamic
routing to increase throughput and minimize latency, adds support for
trust relationships between Reachability Analyzer and AWS Organizations
to enable cross-account analysis, and adds support for Infrastructure
Performance metric subscriptions.
- feature: EKS: Adds support for additional EKS add-ons metadata and
filtering fields
- feature: FSx: This release adds support for 4GB/s / 160K PIOPS FSx for
ONTAP file systems and 10GB/s / 350K PIOPS FSx for OpenZFS file systems
(Single_AZ\_2). For FSx for ONTAP, this also adds support for DP
volumes, snapshot policy, copy tags to backups, and Multi-AZ route table
updates.
- feature: Glue: This release allows the creation of Custom Visual
Transforms (Dynamic Transforms) to be created via AWS Glue CLI/SDK.
- feature: Inspector2: This release adds support for Inspector to scan
AWS Lambda.
- feature: Lambda: Adds support for Lambda SnapStart, which helps
improve the startup performance of functions. Customers can now manage
SnapStart based functions via CreateFunction and
UpdateFunctionConfiguration APIs
- feature: LicenseManagerUserSubscriptions: AWS now offers
fully-compliant, Amazon-provided licenses for Microsoft Office
Professional Plus 2021 Amazon Machine Images (AMIs) on Amazon EC2. These
AMIs are now available on the Amazon EC2 console and on AWS Marketplace
to launch instances on-demand without any long-term licensing
commitments.
- feature: Macie2: Added support for configuring Macie to continually
sample objects from S3 buckets and inspect them for sensitive data.
Results appear in statistics, findings, and other data that Macie
provides.
- feature: QuickSight: This release adds new Describe APIs and updates
Create and Update APIs to support the data model for Dashboards,
Analyses, and Templates.
- feature: S3Control: Added two new APIs to support Amazon S3
Multi-Region Access Point failover controls:
GetMultiRegionAccessPointRoutes and SubmitMultiRegionAccessPointRoutes.
The failover control APIs are supported in the following Regions:
us-east-1, us-west-2, eu-west-1, ap-southeast-2, and ap-northeast-1.
- feature: SecurityHub: Adding StandardsManagedBy field to
DescribeStandards API response

###
[`v2.1262.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#&#8203;212620)

[Compare
Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1261.0...v2.1262.0)

-   bugfix: ResourceExplorer2: Add dualstack by default for FIPS
-   bugfix: Signer: Set Authorization header correctly in Bearer Signer
-   bugfix: Signer: Read identity type from service.api.signatureVersion
- feature: Backup: AWS Backup introduces support for legal hold and
application stack backups. AWS Backup Audit Manager introduces support
for cross-Region, cross-account reports.
- feature: CloudWatch: Adds cross-account support to the GetMetricData
API. Adds cross-account support to the ListMetrics API through the usage
of the IncludeLinkedAccounts flag and the new OwningAccounts field.
- feature: CloudWatchLogs: Updates to support CloudWatch Logs data
protection and CloudWatch cross-account observability
- feature: Drs: Non breaking changes to existing APIs, and additional
APIs added to support in-AWS failing back using AWS Elastic Disaster
Recovery.
- feature: ECS: This release adds support for ECS Service Connect, a new
capability that simplifies writing and operating resilient distributed
applications. This release updates the TaskDefinition, Cluster, Service
mutation APIs with Service connect constructs and also adds a new
ListServicesByNamespace API.
- feature: EFS: This release adds elastic as a new ThroughputMode value
for EFS file systems and adds AFTER\_1\_DAY as a value for
TransitionToIARules.
-   feature: Endpoint: Add pattern global dualstack by default
- feature: IoTWireless: This release includes a new feature for
customers to calculate the position of their devices by adding three new
APIs: UpdateResourcePosition, GetResourcePosition, and
GetPositionEstimate.
- feature: Iot: Job scheduling enables the scheduled rollout of a Job
with start and end times and a customizable end behavior when end time
is reached. This is available for continuous and snapshot jobs. Added
support for MQTT5 properties to AWS IoT TopicRule Republish Action.
- feature: IotData: This release adds support for MQTT5 properties to
AWS IoT HTTP Publish API.
- feature: Kendra: Amazon Kendra now supports preview of table
information from HTML tables in the search results. The most relevant
cells with their corresponding rows, columns are displayed as a preview
in the search result. The most relevant table cell or cells are also
highlighted in table preview.
- feature: Mgn: This release adds support for Application and Wave
management. We also now support custom post-launch actions.
- feature: OAM: Amazon CloudWatch Observability Access Manager is a new
service that allows configuration of the CloudWatch cross-account
observability feature.
- feature: Organizations: This release introduces delegated
administrator for AWS Organizations, a new feature to help you delegate
the management of your Organizations policies, enabling you to govern
your AWS organization in a decentralized way. You can now allow member
accounts to manage Organizations policies.
- feature: RDS: This release enables new Aurora and RDS feature called
Blue/Green Deployments that makes updates to databases safer, simpler
and faster.
- feature: Textract: This release adds support for classifying and
splitting lending documents by type, and extracting information by using
the Analyze Lending APIs. This release also includes support for
summarized information of the processed lending document package, in
addition to per document results.
- feature: TranscribeService: This release adds support for 'inputType'
for post-call and real-time (streaming) Call Analytics within Amazon
Transcribe.

</details>

<details>
<summary>ChromeDevTools/devtools-protocol</summary>

###
[`v0.0.1075693`](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1075032...v0.0.1075693)

[Compare
Source](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1075032...v0.0.1075693)

</details>

<details>
<summary>okonet/lint-staged</summary>

###
[`v13.0.4`](https://togithub.com/okonet/lint-staged/releases/tag/v13.0.4)

[Compare
Source](https://togithub.com/okonet/lint-staged/compare/v13.0.3...v13.0.4)

##### Bug Fixes

- **deps:** update all dependencies
([336f3b5](https://togithub.com/okonet/lint-staged/commit/336f3b513a8b36579165b2e6fb6e7059b988fe84))
- **deps:** update all dependencies
([ec995e5](https://togithub.com/okonet/lint-staged/commit/ec995e53fb173f2863cb3cc08a92ffa9252dc25d))

</details>

<details>
<summary>oclif/oclif</summary>

### [`v3.2.31`](https://togithub.com/oclif/oclif/releases/tag/3.2.31)

[Compare
Source](https://togithub.com/oclif/oclif/compare/3.2.30...3.2.31)

##### Bug Fixes

- **deps:** bump github-slugger from 1.4.0 to 1.5.0
([a41baca](https://togithub.com/oclif/oclif/commit/a41baca347b3115452ff03aa4d0e603a1454c0cf))

### [`v3.2.30`](https://togithub.com/oclif/oclif/releases/tag/3.2.30)

[Compare
Source](https://togithub.com/oclif/oclif/compare/3.2.28...3.2.30)

##### Bug Fixes

- **deps:** bump minimatch from 3.0.4 to 3.1.2
([dcd7ba2](https://togithub.com/oclif/oclif/commit/dcd7ba26816e3564d95579f31d3316b4cea8c712))

</details>

<details>
<summary>nodejs/undici</summary>

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

[Compare
Source](https://togithub.com/nodejs/undici/compare/v5.12.0...v5.13.0)

##### What's Changed

- fix(wpt): move formdata tests to correct folder by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1739](https://togithub.com/nodejs/undici/pull/1739)
- fix(fetch): set Symbol.toStringTag properly on classes by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1742](https://togithub.com/nodejs/undici/pull/1742)
- fetch: implement isomorphic encoding by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1741](https://togithub.com/nodejs/undici/pull/1741)
- fetch: implement isomorphic decoding by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1743](https://togithub.com/nodejs/undici/pull/1743)
- fetch: update extractBody to better match spec by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1745](https://togithub.com/nodejs/undici/pull/1745)
- chore(docs/assets): compress image by
[@&#8203;Fdawgs](https://togithub.com/Fdawgs) in
[https://github.com/nodejs/undici/pull/1749](https://togithub.com/nodejs/undici/pull/1749)
- feat: implement `8.2 Set request’s referrer policy on redirect` by
[@&#8203;metcoder95](https://togithub.com/metcoder95) in
[https://github.com/nodejs/undici/pull/1717](https://togithub.com/nodejs/undici/pull/1717)
- fetch: remove duplicate checks by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1751](https://togithub.com/nodejs/undici/pull/1751)
- webidl: small changes by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1754](https://togithub.com/nodejs/undici/pull/1754)
- webidl: add `argumentLengthCheck` guard by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1755](https://togithub.com/nodejs/undici/pull/1755)
- feat(MockInterceptor): allow async reply callbacks by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1758](https://togithub.com/nodejs/undici/pull/1758)
- Fix filereader types by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1762](https://togithub.com/nodejs/undici/pull/1762)
- types: Refine internal TS export/imports to be more robust by
[@&#8203;kibertoad](https://togithub.com/kibertoad) in
[https://github.com/nodejs/undici/pull/1769](https://togithub.com/nodejs/undici/pull/1769)
- fix: remove unnecessary toLowerCase by
[@&#8203;anonrig](https://togithub.com/anonrig) in
[https://github.com/nodejs/undici/pull/1771](https://togithub.com/nodejs/undici/pull/1771)
- perf: simplify isValidHeaderName by
[@&#8203;anonrig](https://togithub.com/anonrig) in
[https://github.com/nodejs/undici/pull/1772](https://togithub.com/nodejs/undici/pull/1772)
- fetch(HeadersList): s/has/contains by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1775](https://togithub.com/nodejs/undici/pull/1775)
- fix(fetch): match spec text by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1777](https://togithub.com/nodejs/undici/pull/1777)
- wpt: add gzip-body.any.js by
[@&#8203;KhafraDev](https://togithub.com/KhafraDev) in
[https://github.com/nodejs/undici/pull/1778](https://togithub.com/nodejs/undici/pull/1778)
- feat: more informative error messages by
[@&#8203;benmccann](https://togithub.com/benmccann) in
[https://github.com/nodejs/undici/pull/1781](https://togithub.com/nodejs/undici/pull/1781)
- perf(fetch): simplify url serializer by
[@&#8203;anonrig](https://togithub.com/anonrig) in
[https://github.com/nodejs/undici/pull/1774](https://togithub.com/nodejs/undici/pull/1774)
- fix(fetch): remove unnecessary encode operation by
[@&#8203;anonrig](https://togithub.com/anonrig) in
[https://github.com/nodejs/undici/pull/1773](https://togithub.com/nodejs/undici/pull/1773)
- chore(doc/fetch) update doc for fetch duplex
([#&#8203;1760](https://togithub.com/nodejs/undici/issues/1760)) by
[@&#8203;zizifn](https://togithub.com/zizifn) in
[https://github.com/nodejs/undici/pull/1765](https://togithub.com/nodejs/undici/pull/1765)

##### New Contributors

- [@&#8203;benmccann](https://togithub.com/benmccann) made their first
contribution in
[https://github.com/nodejs/undici/pull/1781](https://togithub.com/nodejs/undici/pull/1781)
- [@&#8203;zizifn](https://togithub.com/zizifn) made their first
contribution in
[https://github.com/nodejs/undici/pull/1765](https://togithub.com/nodejs/undici/pull/1765)

**Full Changelog**:
nodejs/undici@v5.12.0...v5.13.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 2am" (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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->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://app.renovatebot.com/dashboard#github/coveo/cli).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4zNy4wIiwidXBkYXRlZEluVmVyIjoiMzQuNDAuMiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
anonrig added a commit to anonrig/undici that referenced this pull request Apr 4, 2023
crysmags pushed a commit to crysmags/undici that referenced this pull request Feb 27, 2024
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.

6 participants