-
Notifications
You must be signed in to change notification settings - Fork 542
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: improve isomorphic decode performance #1791
Conversation
b1f2fc8
to
c714b89
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there still a performance improvement?
Considering that a majority of inputs are likely less than 65k characters, would it be possible to use the initial implementation of String.fromCharCode(...input)
only if the input is smaller than that? That way the small inputs have a fast path, and larger ones use a fallback (slower) method.
You are right @KhafraDev. I’ll update my pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM as a refactor... but I'm sceptical this is faster in any meaningful way
I don't think this could make things faster. |
c714b89
to
494d277
Compare
I've added the optimization recommended by @KhafraDev. Since the benchmark uses a payload greater than 65k in length, there seems to be a performance effect. I don't know if it's worth it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this provide any significant perf improvement? I'm sceptical... Seems more like added complexity without benefit.
I can revert to the previous change (without arguments length path), or just close this. |
I'm fine with the reduce version. |
If the original 3.8x faster benchmark is correct, it seems like an easy addition for better data url fetch performance without any side effects. |
In either scenario, this pull request is faster then previous implementation
Implementationimport cronometro from 'cronometro'
const MAXIMUM_ARGUMENT_LENGTH = 65535
function slow(input) {
let output = ''
for (let i = 0; i < input.length; i++) {
output += String.fromCharCode(input[i])
}
return output
}
function fast(input) {
if (input.length < MAXIMUM_ARGUMENT_LENGTH) {
return String.fromCharCode(...input)
}
return input.reduce((previous, current) => previous + String.fromCharCode(current), '')
}
const value = new Array(300).fill(4)
const valueLarge = new Array(66000).fill(4)
cronometro({
'slow-length-300'() {
return slow(value)
},
'fast-length-300'() {
return fast(value)
},
'slow-length-66000'() {
return slow(valueLarge)
},
'fast-length-66000'() {
return fast(valueLarge)
}
}, { iterations: 100000 }) |
Yes, interestingly there is a significant perf diff with |
[![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 | |---|---|---|---|---|---|---|---| | [@coveo/platform-client](https://togithub.com/coveo/platform-client) | [`37.12.0` -> `37.13.0`](https://renovatebot.com/diffs/npm/@coveo%2fplatform-client/37.12.0/37.13.0) | [![age](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/compatibility-slim/37.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/confidence-slim/37.12.0)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@coveo/platform-client](https://togithub.com/coveo/platform-client) | [`37.12.0` -> `37.13.0`](https://renovatebot.com/diffs/npm/@coveo%2fplatform-client/37.12.0/37.13.0) | [![age](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/compatibility-slim/37.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@coveo%2fplatform-client/37.13.0/confidence-slim/37.12.0)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@coveo/semantic-monorepo-tools](https://togithub.com/coveo/semantic-monorepo-tools) | [`1.5.8` -> `1.5.10`](https://renovatebot.com/diffs/npm/@coveo%2fsemantic-monorepo-tools/1.5.8/1.5.10) | [![age](https://badges.renovateapi.com/packages/npm/@coveo%2fsemantic-monorepo-tools/1.5.10/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@coveo%2fsemantic-monorepo-tools/1.5.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@coveo%2fsemantic-monorepo-tools/1.5.10/compatibility-slim/1.5.8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@coveo%2fsemantic-monorepo-tools/1.5.10/confidence-slim/1.5.8)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@mui/material](https://mui.com/material-ui/getting-started/overview/) ([source](https://togithub.com/mui/material-ui)) | [`5.10.17` -> `5.11.0`](https://renovatebot.com/diffs/npm/@mui%2fmaterial/5.10.17/5.11.0) | [![age](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.11.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.11.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.11.0/compatibility-slim/5.10.17)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@mui%2fmaterial/5.11.0/confidence-slim/5.10.17)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@npmcli/arborist](https://togithub.com/npm/cli) | [`6.1.4` -> `6.1.5`](https://renovatebot.com/diffs/npm/@npmcli%2farborist/6.1.4/6.1.5) | [![age](https://badges.renovateapi.com/packages/npm/@npmcli%2farborist/6.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@npmcli%2farborist/6.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@npmcli%2farborist/6.1.5/compatibility-slim/6.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@npmcli%2farborist/6.1.5/confidence-slim/6.1.4)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`18.11.11` -> `18.11.14`](https://renovatebot.com/diffs/npm/@types%2fnode/18.11.11/18.11.14) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.14/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.14/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.14/compatibility-slim/18.11.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/18.11.14/confidence-slim/18.11.11)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.45.1` -> `5.46.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.45.1/5.46.1) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.46.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.46.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.46.1/compatibility-slim/5.45.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2feslint-plugin/5.46.1/confidence-slim/5.45.1)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.45.1` -> `5.46.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.45.1/5.46.1) | [![age](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.46.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.46.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.46.1/compatibility-slim/5.45.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@typescript-eslint%2fparser/5.46.1/confidence-slim/5.45.1)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [actions/checkout](https://togithub.com/actions/checkout) | `93ea575` -> `755da8c` | [![age](https://badges.renovateapi.com/packages/github-tags/actions%2fcheckout//age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/github-tags/actions%2fcheckout//adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/github-tags/actions%2fcheckout//compatibility-slim/v3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/github-tags/actions%2fcheckout//confidence-slim/v3)](https://docs.renovatebot.com/merge-confidence/) | action | digest | | [actions/setup-python](https://togithub.com/actions/setup-python) | `13ae5bb` -> `2c3dd9e` | [![age](https://badges.renovateapi.com/packages/github-tags/actions%2fsetup-python//age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/github-tags/actions%2fsetup-python//adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/github-tags/actions%2fsetup-python//compatibility-slim/v4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/github-tags/actions%2fsetup-python//confidence-slim/v4)](https://docs.renovatebot.com/merge-confidence/) | action | digest | | [aws-sdk](https://togithub.com/aws/aws-sdk-js) | [`2.1269.0` -> `2.1274.0`](https://renovatebot.com/diffs/npm/aws-sdk/2.1269.0/2.1274.0) | [![age](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1274.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1274.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1274.0/compatibility-slim/2.1269.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/aws-sdk/2.1274.0/confidence-slim/2.1269.0)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [devtools-protocol](https://togithub.com/ChromeDevTools/devtools-protocol) | [`0.0.1079624` -> `0.0.1082281`](https://renovatebot.com/diffs/npm/devtools-protocol/0.0.1079624/0.0.1082281) | [![age](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1082281/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1082281/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1082281/compatibility-slim/0.0.1079624)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/devtools-protocol/0.0.1082281/confidence-slim/0.0.1079624)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [github/codeql-action](https://togithub.com/github/codeql-action) | `b2a92eb` -> `a669cc5` | [![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 | | [pacote](https://togithub.com/npm/pacote) | [`15.0.6` -> `15.0.7`](https://renovatebot.com/diffs/npm/pacote/15.0.6/15.0.7) | [![age](https://badges.renovateapi.com/packages/npm/pacote/15.0.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/pacote/15.0.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/pacote/15.0.7/compatibility-slim/15.0.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/pacote/15.0.7/confidence-slim/15.0.6)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [prettier](https://prettier.io) ([source](https://togithub.com/prettier/prettier)) | [`2.8.0` -> `2.8.1`](https://renovatebot.com/diffs/npm/prettier/2.8.0/2.8.1) | [![age](https://badges.renovateapi.com/packages/npm/prettier/2.8.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/prettier/2.8.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/prettier/2.8.1/compatibility-slim/2.8.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/prettier/2.8.1/confidence-slim/2.8.0)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [puppeteer](https://togithub.com/puppeteer/puppeteer/tree/main#readme) ([source](https://togithub.com/puppeteer/puppeteer)) | [`19.3.0` -> `19.4.0`](https://renovatebot.com/diffs/npm/puppeteer/19.3.0/19.4.0) | [![age](https://badges.renovateapi.com/packages/npm/puppeteer/19.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/puppeteer/19.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/puppeteer/19.4.0/compatibility-slim/19.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/puppeteer/19.4.0/confidence-slim/19.3.0)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [react-router-dom](https://togithub.com/remix-run/react-router) | [`6.4.4` -> `6.4.5`](https://renovatebot.com/diffs/npm/react-router-dom/6.4.4/6.4.5) | [![age](https://badges.renovateapi.com/packages/npm/react-router-dom/6.4.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/react-router-dom/6.4.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/react-router-dom/6.4.5/compatibility-slim/6.4.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/react-router-dom/6.4.5/confidence-slim/6.4.4)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [supertest](https://togithub.com/visionmedia/supertest) | [`6.3.2` -> `6.3.3`](https://renovatebot.com/diffs/npm/supertest/6.3.2/6.3.3) | [![age](https://badges.renovateapi.com/packages/npm/supertest/6.3.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/supertest/6.3.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/supertest/6.3.3/compatibility-slim/6.3.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/supertest/6.3.3/confidence-slim/6.3.2)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`4.9.3` -> `4.9.4`](https://renovatebot.com/diffs/npm/typescript/4.9.3/4.9.4) | [![age](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/compatibility-slim/4.9.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/confidence-slim/4.9.3)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [typescript](https://www.typescriptlang.org/) ([source](https://togithub.com/Microsoft/TypeScript)) | [`4.9.3` -> `4.9.4`](https://renovatebot.com/diffs/npm/typescript/4.9.3/4.9.4) | [![age](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/compatibility-slim/4.9.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/typescript/4.9.4/confidence-slim/4.9.3)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [undici](https://undici.nodejs.org) ([source](https://togithub.com/nodejs/undici)) | [`5.13.0` -> `5.14.0`](https://renovatebot.com/diffs/npm/undici/5.13.0/5.14.0) | [![age](https://badges.renovateapi.com/packages/npm/undici/5.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/undici/5.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/undici/5.14.0/compatibility-slim/5.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/undici/5.14.0/confidence-slim/5.13.0)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | --- ### Release Notes <details> <summary>coveo/platform-client</summary> ### [`v37.13.0`](https://togithub.com/coveo/platform-client/releases/tag/v37.13.0) [Compare Source](https://togithub.com/coveo/platform-client/compare/v37.12.0...v37.13.0) ##### Features - **maestro:** support empty crawling module log requests ([#​588](https://togithub.com/coveo/platform-client/issues/588)) ([67b8a93](https://togithub.com/coveo/platform-client/commit/67b8a93ab6152439de33bdcdcec6e4cb041c0295)) </details> <details> <summary>coveo/semantic-monorepo-tools</summary> ### [`v1.5.10`](https://togithub.com/coveo/semantic-monorepo-tools/blob/HEAD/CHANGELOG.md#​1510-2022-12-12) [Compare Source](https://togithub.com/coveo/semantic-monorepo-tools/compare/v1.5.9...v1.5.10) ### [`v1.5.9`](https://togithub.com/coveo/semantic-monorepo-tools/blob/HEAD/CHANGELOG.md#​159-2022-12-12) [Compare Source](https://togithub.com/coveo/semantic-monorepo-tools/compare/v1.5.8...v1.5.9) </details> <details> <summary>mui/material-ui</summary> ### [`v5.11.0`](https://togithub.com/mui/material-ui/blob/HEAD/CHANGELOG.md#​5110) [Compare Source](https://togithub.com/mui/material-ui/compare/v5.10.17...v5.11.0) <!-- generated comparing v5.10.17..master --> *Dec 13, 2022* A big thanks to the 19 contributors who made this release possible. Here are some highlights ✨: - 🔥 [@​mnajdova](https://togithub.com/mnajdova) enabled configuration of the `sx` prop in the `theme` ([#​35150](https://togithub.com/mui/material-ui/issues/35150)) - Many other 🐛 bug fixes, 📚 documentation, and ⚙️ infrastructure improvements. ##### `@mui/material@5.11.0` - \[Alert] Update icon color in all variants ([#​35414](https://togithub.com/mui/material-ui/issues/35414)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[Select] Fix `MenuProps.PopoverClasses` being overriden ([#​35394](https://togithub.com/mui/material-ui/issues/35394)) [@​vitorfrs-dev](https://togithub.com/vitorfrs-dev) - \[SwipeableDrawer] Fixed typescript warning "prop open undefined" ([#​34710](https://togithub.com/mui/material-ui/issues/34710)) [@​kraftware](https://togithub.com/kraftware) ##### `@mui/icons-material@5.11.0` - \[icons] Restore the PhoneInTalk icons ([#​35409](https://togithub.com/mui/material-ui/issues/35409)) [@​michaldudak](https://togithub.com/michaldudak) ##### `@mui/system@5.11.0` ##### BREAKING CHANGES - \[system] Enable configuring the `sx` prop in the `theme` ([#​35150](https://togithub.com/mui/material-ui/issues/35150)) [@​mnajdova](https://togithub.com/mnajdova) The breaking change is regarding an experimental API: ```diff -import { styled, experimental_sx } from '@​mui/material/styles'; +import { styled } from '@​mui/material/styles'; -const Component = styled('div)(experimental_sx({ p: 1 }}); +const Component = styled('div)(({ theme }) => theme.unstable_sx({ p: 1 }}); ``` ##### `@mui/joy@5.0.0-alpha.58` - \[Joy] Miscellaneous fixes ([#​35447](https://togithub.com/mui/material-ui/issues/35447)) [@​siriwatknp](https://togithub.com/siriwatknp) ##### `@mui/base@5.0.0-alpha.110` - \[PopperUnstyled] Update PopperTooltip to have correct width when closing with transition ([#​34714](https://togithub.com/mui/material-ui/issues/34714)) [@​EduardoSCosta](https://togithub.com/EduardoSCosta) ##### `@mui/material-next@6.0.0-alpha.66` - \[Material You] Add ripple on the button ([#​35299](https://togithub.com/mui/material-ui/issues/35299)) [@​mnajdova](https://togithub.com/mnajdova) ##### Docs - \[docs] Simplify state management in Text Field demo page ([#​35051](https://togithub.com/mui/material-ui/issues/35051)) [@​PratikDev](https://togithub.com/PratikDev) - \[docs] Improve `Responsive App bar with Drawer` demo ([#​35418](https://togithub.com/mui/material-ui/issues/35418)) [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) - \[docs] Improve line-height readability ([#​35387](https://togithub.com/mui/material-ui/issues/35387)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Improve a bit the Composition docs ([#​35329](https://togithub.com/mui/material-ui/issues/35329)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[docs] Refactor `ToggleButtonSizes` demo ([#​35375](https://togithub.com/mui/material-ui/issues/35375)) [@​Armanio](https://togithub.com/Armanio) - \[docs] Standardize the usage of callouts in the MUI Core docs ([#​35361](https://togithub.com/mui/material-ui/issues/35361)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - \[docs] Format feedback to add a link to the commented section ([#​35381](https://togithub.com/mui/material-ui/issues/35381)) [@​alexfauquette](https://togithub.com/alexfauquette) - \[docs] Direct users from Material UI to MUI Base for duplicated components ([#​35293](https://togithub.com/mui/material-ui/issues/35293)) [@​samuelsycamore](https://togithub.com/samuelsycamore) - \[docs] Fix typo in FormControl API docs ([#​35449](https://togithub.com/mui/material-ui/issues/35449)) [@​Spanishiwa](https://togithub.com/Spanishiwa) - \[docs] Update callouts design ([#​35390](https://togithub.com/mui/material-ui/issues/35390)) [@​danilo-leal](https://togithub.com/danilo-leal) - \[website] New wave of open roles ([#​35240](https://togithub.com/mui/material-ui/issues/35240)) [@​mnajdova](https://togithub.com/mnajdova) - \[website] Developer survey 2022 ([#​35407](https://togithub.com/mui/material-ui/issues/35407)) [@​joserodolfofreitas](https://togithub.com/joserodolfofreitas) ##### Core - \[core] Fix [@​mui/material](https://togithub.com/mui/material) package building ([#​35324](https://togithub.com/mui/material-ui/issues/35324)) [@​timbset](https://togithub.com/timbset) - \[core] Fix leaking theme color override ([#​35444](https://togithub.com/mui/material-ui/issues/35444)) [@​oliviertassinari](https://togithub.com/oliviertassinari) - \[typescript] Add null to return type of OverridableComponent ([#​35311](https://togithub.com/mui/material-ui/issues/35311)) [@​tsollbach](https://togithub.com/tsollbach) - \[website] Migrate X page to use CSS theme variables ([#​34922](https://togithub.com/mui/material-ui/issues/34922)) [@​jesrodri](https://togithub.com/jesrodri) - \[website] Migrate `/core` page to use CSS variables ([#​35366](https://togithub.com/mui/material-ui/issues/35366)) [@​siriwatknp](https://togithub.com/siriwatknp) All contributors of this release in alphabetical order: [@​alexfauquette](https://togithub.com/alexfauquette), [@​Armanio](https://togithub.com/Armanio), [@​danilo-leal](https://togithub.com/danilo-leal), [@​EduardoSCosta](https://togithub.com/EduardoSCosta), [@​flaviendelangle](https://togithub.com/flaviendelangle), [@​jesrodri](https://togithub.com/jesrodri), [@​joserodolfofreitas](https://togithub.com/joserodolfofreitas), [@​kraftware](https://togithub.com/kraftware), [@​michaldudak](https://togithub.com/michaldudak), [@​mnajdova](https://togithub.com/mnajdova), [@​oliviertassinari](https://togithub.com/oliviertassinari), [@​PratikDev](https://togithub.com/PratikDev), [@​samuelsycamore](https://togithub.com/samuelsycamore), [@​siriwatknp](https://togithub.com/siriwatknp), [@​Spanishiwa](https://togithub.com/Spanishiwa), [@​timbset](https://togithub.com/timbset), [@​tsollbach](https://togithub.com/tsollbach), [@​vitorfrs-dev](https://togithub.com/vitorfrs-dev), [@​ZeeshanTamboli](https://togithub.com/ZeeshanTamboli) </details> <details> <summary>npm/cli</summary> ### [`v6.1.5`](https://togithub.com/npm/cli/blob/HEAD/workspaces/arborist/CHANGELOG.md#​615-httpsgithubcomnpmclicomparearborist-v614arborist-v615-2022-12-07) [Compare Source](https://togithub.com/npm/cli/compare/baf598d94cd6fa0747445009f5d4f66a981ebd03...1ceed7b6a762214904ff4a4a08e364153fd1e1dc) ##### Bug Fixes - [`83fb125`](https://togithub.com/npm/cli/commit/83fb125446a9fb217eedf53ca98c203d7d48527b) [#​5923](https://togithub.com/npm/cli/pull/5923) audit package mismatch in special case ([@​fritzy](https://togithub.com/fritzy)) ##### Dependencies - [`372d158`](https://togithub.com/npm/cli/commit/372d158d2637120600a95abee64355ed1cb6f990) [#​5935](https://togithub.com/npm/cli/pull/5935) `minimatch@5.1.1` ([#​5935](https://togithub.com/npm/cli/issues/5935)) - [`0a3fe00`](https://togithub.com/npm/cli/commit/0a3fe000e2723ae6fdb8b1d3154fd3835057c992) [#​5933](https://togithub.com/npm/cli/pull/5933) `minipass@4.0.0` - [`cf0a174`](https://togithub.com/npm/cli/commit/cf0a17407abc577c27420a1c8a4a0c08c7cefce9) `ssri@10.0.1` - [`3da9a1a`](https://togithub.com/npm/cli/commit/3da9a1a4ebcf1779035b5f9ae985c087f617efe3) `pacote@15.0.7` - [`fee9b66`](https://togithub.com/npm/cli/commit/fee9b6686892a1c7f976c36ddd5d89b70c416817) `npm-registry-fetch@14.0.3` - [`e940917`](https://togithub.com/npm/cli/commit/e940917befcdaf44ee7e24d31b540f4de8507734) `cacache@17.0.3` - [`875bd56`](https://togithub.com/npm/cli/commit/875bd56c33ca5eef80c2a50a11808445f2a39a2a) `npm-package-arg@10.1.0` </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v5.46.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5461-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5460v5461-2022-12-12) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.0...v5.46.1) **Note:** Version bump only for package [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) ### [`v5.46.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5460-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5451v5460-2022-12-08) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.1...v5.46.0) ##### Bug Fixes - **eslint-plugin:** \[ban-types] update message to suggest `object` instead of `Record<string, unknown>` ([#​6079](https://togithub.com/typescript-eslint/typescript-eslint/issues/6079)) ([d91a5fc](https://togithub.com/typescript-eslint/typescript-eslint/commit/d91a5fc41be5bc2a0625574e9c9496f61fb7471d)) ##### Features - **eslint-plugin:** \[prefer-nullish-coalescing] logic and test for strict null checks ([#​6174](https://togithub.com/typescript-eslint/typescript-eslint/issues/6174)) ([8a91cbd](https://togithub.com/typescript-eslint/typescript-eslint/commit/8a91cbd9fbe5bc4cf750cd949d2b8d48ff4c311d)) #### [5.45.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.0...v5.45.1) (2022-12-05) ##### Bug Fixes - **eslint-plugin:** \[keyword-spacing] unexpected space before/after in `import type` ([#​6095](https://togithub.com/typescript-eslint/typescript-eslint/issues/6095)) ([98caa92](https://togithub.com/typescript-eslint/typescript-eslint/commit/98caa92ca89bdf0ca6ba6e4ff1f13c60221579e8)) - **eslint-plugin:** \[no-shadow] add call and method signatures to `ignoreFunctionTypeParameterNameValueShadow` ([#​6129](https://togithub.com/typescript-eslint/typescript-eslint/issues/6129)) ([9d58b6b](https://togithub.com/typescript-eslint/typescript-eslint/commit/9d58b6be246507d20af67c84a5e9bb592d97cff5)) - **eslint-plugin:** \[prefer-optional-chain] collect MetaProperty type ([#​6083](https://togithub.com/typescript-eslint/typescript-eslint/issues/6083)) ([d7114d3](https://togithub.com/typescript-eslint/typescript-eslint/commit/d7114d3ab09d1b93627d3b3dbb9862e37ee29c97)) - **eslint-plugin:** \[sort-type-constituents, sort-type-union-intersection-members] handle some required parentheses cases in the fixer ([#​6118](https://togithub.com/typescript-eslint/typescript-eslint/issues/6118)) ([5d49d5d](https://togithub.com/typescript-eslint/typescript-eslint/commit/5d49d5dbee4425fc8bc01c5e748d161f3619477b)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v5.46.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5461-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5460v5461-2022-12-12) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.46.0...v5.46.1) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.46.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5460-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5451v5460-2022-12-08) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.1...v5.46.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) #### [5.45.1](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.45.0...v5.45.1) (2022-12-05) ##### Bug Fixes - **parser:** remove the jsx option requirement for automatic jsx pragma resolution ([#​6134](https://togithub.com/typescript-eslint/typescript-eslint/issues/6134)) ([e777f5e](https://togithub.com/typescript-eslint/typescript-eslint/commit/e777f5e225b9ddfb6bb1eaa74cbc5171a17ac017)) </details> <details> <summary>aws/aws-sdk-js</summary> ### [`v2.1274.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#​212740) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1273.0...v2.1274.0) - feature: CloudTrail: Merging mainline branch for service model into mainline release branch. There are no new APIs. - feature: RDS: This deployment adds ClientPasswordAuthType field to the Auth structure of the DBProxy. ### [`v2.1273.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#​212730) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1272.0...v2.1273.0) - feature: CustomerProfiles: This release allows custom strings in PartyType and Gender through 2 new attributes in the CreateProfile and UpdateProfile APIs: PartyTypeString and GenderString. - feature: EC2: This release updates DescribeFpgaImages to show supported instance types of AFIs in its response. - feature: KinesisVideo: This release adds support for public preview of Kinesis Video Stream at Edge enabling customers to provide configuration for the Kinesis Video Stream EdgeAgent running on an on-premise IoT device. Customers can now locally record from cameras and stream videos to the cloud on configured schedule. - feature: MigrationHubRefactorSpaces: This release adds support for Lambda alias service endpoints. Lambda alias ARNs can now be passed into CreateService. - feature: RDS: Update the RDS API model to support copying option groups during the CopyDBSnapshot operation - feature: Rekognition: Adds support for "aliases" and "categories", inclusion and exclusion filters for labels and label categories, and aggregating labels by video segment timestamps for Stored Video Label Detection APIs. - feature: SageMakerMetrics: This release introduces support SageMaker Metrics APIs. ### [`v2.1272.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#​212720) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1271.0...v2.1272.0) - feature: IoTFleetWise: Deprecated assignedValue property for actuators and attributes. Added a message to invalid nodes and invalid decoder manifest exceptions. - feature: MediaLive: Link devices now support buffer size (latency) configuration. A higher latency value means a longer delay in transmitting from the device to MediaLive, but improved resiliency. A lower latency value means a shorter delay, but less resiliency. - feature: MediaPackageVod: This release provides the approximate number of assets in a packaging group. ### [`v2.1271.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#​212710) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1270.0...v2.1271.0) - feature: AutoScaling: Adds support for metric math for target tracking scaling policies, saving you the cost and effort of publishing a custom metric to CloudWatch. Also adds support for VPC Lattice by adding the Attach/Detach/DescribeTrafficSources APIs and a new health check type to the CreateAutoScalingGroup API. - feature: IoTTwinMaker: This release adds the following new features: 1) New APIs for managing a continuous sync of assets and asset models from AWS IoT SiteWise. 2) Support user friendly names for component types (ComponentTypeName) and properties (DisplayName). - feature: MigrationHubStrategy: This release adds known application filtering, server selection for assessments, support for potential recommendations, and indications for configuration and assessment status. For more information, see the AWS Migration Hub documentation at https://docs.aws.amazon.com/migrationhub/index.html ### [`v2.1270.0`](https://togithub.com/aws/aws-sdk-js/blob/HEAD/CHANGELOG.md#​212700) [Compare Source](https://togithub.com/aws/aws-sdk-js/compare/v2.1269.0...v2.1270.0) - feature: CloudFront: Introducing UpdateDistributionWithStagingConfig that can be used to promote the staging configuration to the production. - feature: CostExplorer: This release adds the LinkedAccountName field to the GetAnomalies API response under RootCause - feature: EKS: Adds support for EKS add-ons configurationValues fields and DescribeAddonConfiguration function </details> <details> <summary>ChromeDevTools/devtools-protocol</summary> ### [`v0.0.1082281`](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1081726...v0.0.1082281) [Compare Source](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1081726...v0.0.1082281) ### [`v0.0.1081726`](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1081314...v0.0.1081726) [Compare Source](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1081314...v0.0.1081726) ### [`v0.0.1081314`](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1079624...v0.0.1081314) [Compare Source](https://togithub.com/ChromeDevTools/devtools-protocol/compare/v0.0.1079624...v0.0.1081314) </details> <details> <summary>npm/pacote</summary> ### [`v15.0.7`](https://togithub.com/npm/pacote/blob/HEAD/CHANGELOG.md#​1507-httpsgithubcomnpmpacotecomparev1506v1507-2022-12-07) [Compare Source](https://togithub.com/npm/pacote/compare/v15.0.6...v15.0.7) ##### Dependencies - [`a734d61`](https://togithub.com/npm/pacote/commit/a734d61379c3b5690ad2e10d382dc5486b93266b) [#​250](https://togithub.com/npm/pacote/pull/250) bump minipass from 3.3.6 to 4.0.0 </details> <details> <summary>prettier/prettier</summary> ### [`v2.8.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​281) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.0...2.8.1) [diff](https://togithub.com/prettier/prettier/compare/2.8.0...2.8.1) ##### Fix SCSS map in arguments ([#​9184](https://togithub.com/prettier/prettier/pull/9184) by [@​agamkrbit](https://togithub.com/agamkrbit)) <!-- prettier-ignore --> ```scss // Input $display-breakpoints: map-deep-merge( ( "print-only": "only print", "screen-only": "only screen", "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, "sm")-1})", ), $display-breakpoints ); // Prettier 2.8.0 $display-breakpoints: map-deep-merge( ( "print-only": "only print", "screen-only": "only screen", "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, " sm ")-1})", ), $display-breakpoints ); // Prettier 2.8.1 $display-breakpoints: map-deep-merge( ( "print-only": "only print", "screen-only": "only screen", "xs-only": "only screen and (max-width: #{map-get($grid-breakpoints, "sm")-1})", ), $display-breakpoints ); ``` ##### Support auto accessors syntax ([#​13919](https://togithub.com/prettier/prettier/pull/13919) by [@​sosukesuzuki](https://togithub.com/sosukesuzuki)) Support for [Auto Accessors Syntax](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/#auto-accessors-in-classes) landed in TypeScript 4.9. (Doesn't work well with `babel-ts` parser) <!-- prettier-ignore --> ```tsx class Foo { accessor foo: number = 3; } ``` </details> <details> <summary>puppeteer/puppeteer</summary> ### [`v19.4.0`](https://togithub.com/puppeteer/puppeteer/releases/tag/puppeteer-core-v19.4.0): puppeteer-core: v19.4.0 [Compare Source](https://togithub.com/puppeteer/puppeteer/compare/puppeteer-v19.3.0...puppeteer-v19.4.0) ##### Features - ability to send headers via ws connection to browser in node.js environment ([#​9314](https://togithub.com/puppeteer/puppeteer/issues/9314)) ([937fffa](https://togithub.com/puppeteer/puppeteer/commit/937fffaedc340ea12d5f6636d3ba6598cb22e397)), closes [#​7218](https://togithub.com/puppeteer/puppeteer/issues/7218) - **chromium:** roll to Chromium 109.0.5412.0 (r1069273) ([#​9364](https://togithub.com/puppeteer/puppeteer/issues/9364)) ([1875da6](https://togithub.com/puppeteer/puppeteer/commit/1875da61916df1fbcf98047858c01075bd9af189)), closes [#​9233](https://togithub.com/puppeteer/puppeteer/issues/9233) - **puppeteer-core:** keydown supports commands ([#​9357](https://togithub.com/puppeteer/puppeteer/issues/9357)) ([b7ebc5d](https://togithub.com/puppeteer/puppeteer/commit/b7ebc5d9bb9b9940ffdf470e51d007f709587d40)) ##### Bug Fixes - **puppeteer-core:** avoid type instantiation errors ([#​9370](https://togithub.com/puppeteer/puppeteer/issues/9370)) ([17f31a9](https://togithub.com/puppeteer/puppeteer/commit/17f31a9ee408ca5a08fe6dbceb8915e710156bd3)), closes [#​9369](https://togithub.com/puppeteer/puppeteer/issues/9369) </details> <details> <summary>remix-run/react-router</summary> ### [`v6.4.5`](https://togithub.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#​645) [Compare Source](https://togithub.com/remix-run/react-router/compare/react-router-dom@6.4.4...react-router-dom@6.4.5) ##### Patch Changes - Updated dependencies: - `@remix-run/router@1.0.5` - `react-router@6.4.5` </details> <details> <summary>visionmedia/supertest</summary> ### [`v6.3.3`](https://togithub.com/ladjs/supertest/releases/tag/v6.3.3) [Compare Source](https://togithub.com/visionmedia/supertest/compare/v6.3.2...v6.3.3) - chore: bump deps [`2910f73`](https://togithub.com/visionmedia/supertest/commit/2910f73) </details> <details> <summary>Microsoft/TypeScript</summary> ### [`v4.9.4`](https://togithub.com/microsoft/TypeScript/releases/tag/v4.9.4): TypeScript 4.9.4 [Compare Source](https://togithub.com/Microsoft/TypeScript/compare/v4.9.3...v4.9.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v4.9.4](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+4.9.4%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) #### Changes: - [`e286821`](https://togithub.com/Microsoft/TypeScript/commit/e2868216f637e875a74c675845625eb15dcfe9a2) Bump version to 4.9.4 and LKG. - [`eb5419f`](https://togithub.com/Microsoft/TypeScript/commit/eb5419fc8d980859b98553586dfb5f40d811a745) Cherry-pick [#​51704](https://togithub.com/Microsoft/TypeScript/issues/51704) to release 4.9 ([#​51712](https://togithub.com/Microsoft/TypeScript/issues/51712)) - [`b4d382b`](https://togithub.com/Microsoft/TypeScript/commit/b4d382b9b12460adf2da4cc0d1429cf19f8dc8be) Cherry-pick changes for narrowing to tagged literal types. - [`e7a02f4`](https://togithub.com/Microsoft/TypeScript/commit/e7a02f43fce47e1a39259ada5460bcc33c8e98b5) Port of [#​51626](https://togithub.com/Microsoft/TypeScript/issues/51626) and [#​51689](https://togithub.com/Microsoft/TypeScript/issues/51689) to release-4.9 ([#​51627](https://togithub.com/Microsoft/TypeScript/issues/51627)) - [`1727912`](https://togithub.com/Microsoft/TypeScript/commit/1727912f0437a7f367d90040fc4b0b4f3efd017a) Cherry-pick fix around `visitEachChild` to release-4.9. ([#​51544](https://togithub.com/Microsoft/TypeScript/issues/51544)) This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=117&\_a=release-summary). </details> <details> <summary>nodejs/undici</summary> ### [`v5.14.0`](https://togithub.com/nodejs/undici/releases/tag/v5.14.0) [Compare Source](https://togithub.com/nodejs/undici/compare/v5.13.0...v5.14.0) #### What's Changed - fetch: implement [https://github.com/whatwg/fetch/pull/1544](https://togithub.com/whatwg/fetch/pull/1544) by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1780](https://togithub.com/nodejs/undici/pull/1780) - fix(fetch): set content-length header for FormData body by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1785](https://togithub.com/nodejs/undici/pull/1785) - fix(fetch): parse multipart/form-data non-ASCII field names by [@​repsac-by](https://togithub.com/repsac-by) in [https://github.com/nodejs/undici/pull/1786](https://togithub.com/nodejs/undici/pull/1786) - fix(fetch): connection is cancelled when redirecting by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1787](https://togithub.com/nodejs/undici/pull/1787) - build(deps-dev): bump sinon from 14.0.2 to 15.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/1788](https://togithub.com/nodejs/undici/pull/1788) - wpt: update `response-static-error.any.js` by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1789](https://togithub.com/nodejs/undici/pull/1789) - fix: connect option types by [@​Kaciras](https://togithub.com/Kaciras) in [https://github.com/nodejs/undici/pull/1790](https://togithub.com/nodejs/undici/pull/1790) - fix(fetch): send headers in the case that they were sent by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1784](https://togithub.com/nodejs/undici/pull/1784) - fetch: prefer global over lazy loading by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1793](https://togithub.com/nodejs/undici/pull/1793) - perf: reduce number of native calls from fetch.body by [@​anonrig](https://togithub.com/anonrig) in [https://github.com/nodejs/undici/pull/1792](https://togithub.com/nodejs/undici/pull/1792) - perf: improve isomorphic decode performance by [@​anonrig](https://togithub.com/anonrig) in [https://github.com/nodejs/undici/pull/1791](https://togithub.com/nodejs/undici/pull/1791) - More correct filereader event firing by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1796](https://togithub.com/nodejs/undici/pull/1796) - build(deps-dev): bump tsd from 0.24.1 to 0.25.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/1797](https://togithub.com/nodejs/undici/pull/1797) - feat(fetch): add in native File class support by [@​KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/1779](https://togithub.com/nodejs/undici/pull/1779) - perf: Keep weak reference to session for re-use by [@​ronag](https://togithub.com/ronag) in [https://github.com/nodejs/undici/pull/1802](https://togithub.com/nodejs/undici/pull/1802) #### New Contributors - [@​Kaciras](https://togithub.com/Kaciras) made their first contribution in [https://github.com/nodejs/undici/pull/1790](https://togithub.com/nodejs/undici/pull/1790) **Full Changelog**: nodejs/undici@v5.13.0...v5.14.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:eyJjcmVhdGVkSW5WZXIiOiIzNC41MS4wIiwidXBkYXRlZEluVmVyIjoiMzQuNTQuMiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
No description provided.