eslint/eslint (eslint)
### [`v8.57.0`](https://togithub.com/eslint/eslint/releases/tag/v8.57.0)
[Compare Source](https://togithub.com/eslint/eslint/compare/v8.56.0...v8.57.0)
#### Features
- [`1120b9b`](https://togithub.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366) feat: Add loadESLint() API method for v8 ([#18098](https://togithub.com/eslint/eslint/issues/18098)) (Nicholas C. Zakas)
- [`dca7d0f`](https://togithub.com/eslint/eslint/commit/dca7d0f1c262bc72310147bcefe1d04ecf60acbc) feat: Enable `eslint.config.mjs` and `eslint.config.cjs` ([#18066](https://togithub.com/eslint/eslint/issues/18066)) (Nitin Kumar)
#### Bug Fixes
- [`2196d97`](https://togithub.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5) fix: handle absolute file paths in `FlatRuleTester` ([#18064](https://togithub.com/eslint/eslint/issues/18064)) (Nitin Kumar)
- [`69dd1d1`](https://togithub.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17) fix: Ensure config keys are printed for config errors ([#18067](https://togithub.com/eslint/eslint/issues/18067)) (Nitin Kumar)
- [`9852a31`](https://togithub.com/eslint/eslint/commit/9852a31edcf054bd5d15753ef18e2ad3216b1b71) fix: deep merge behavior in flat config ([#18065](https://togithub.com/eslint/eslint/issues/18065)) (Nitin Kumar)
- [`4c7e9b0`](https://togithub.com/eslint/eslint/commit/4c7e9b0b539ba879ac1799e81f3b6add2eed4b2f) fix: allow circular references in config ([#18056](https://togithub.com/eslint/eslint/issues/18056)) (Milos Djermanovic)
#### Documentation
- [`84922d0`](https://togithub.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708) docs: Show prerelease version in dropdown ([#18139](https://togithub.com/eslint/eslint/issues/18139)) (Nicholas C. Zakas)
- [`5b8c363`](https://togithub.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4) docs: Switch to Ethical Ads ([#18117](https://togithub.com/eslint/eslint/issues/18117)) (Milos Djermanovic)
- [`77dbfd9`](https://togithub.com/eslint/eslint/commit/77dbfd9887b201a46fc68631cbde50c08e1a8dbf) docs: show NEXT in version selectors ([#18052](https://togithub.com/eslint/eslint/issues/18052)) (Milos Djermanovic)
#### Chores
- [`1813aec`](https://togithub.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4) chore: upgrade [@eslint/js](https://togithub.com/eslint/js)[@8](https://togithub.com/8).57.0 ([#18143](https://togithub.com/eslint/eslint/issues/18143)) (Milos Djermanovic)
- [`5c356bb`](https://togithub.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f) chore: package.json update for [@eslint/js](https://togithub.com/eslint/js) release (Jenkins)
- [`f4a1fe2`](https://togithub.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16) test: add more tests for ignoring files and directories ([#18068](https://togithub.com/eslint/eslint/issues/18068)) (Nitin Kumar)
- [`42c0aef`](https://togithub.com/eslint/eslint/commit/42c0aefaf6ea8b998b1c6db61906a79c046d301a) ci: Enable CI for `v8.x` branch ([#18047](https://togithub.com/eslint/eslint/issues/18047)) (Milos Djermanovic)
prettier/eslint-plugin-prettier (eslint-plugin-prettier)
### [`v5.1.3`](https://togithub.com/prettier/eslint-plugin-prettier/blob/HEAD/CHANGELOG.md#513)
[Compare Source](https://togithub.com/prettier/eslint-plugin-prettier/compare/v5.1.2...v5.1.3)
##### Patch Changes
- [#629](https://togithub.com/prettier/eslint-plugin-prettier/pull/629) [`985b33c`](https://togithub.com/prettier/eslint-plugin-prettier/commit/985b33c56f146b2e65ae391a3af57f63b07ecbdf) Thanks [@JounQin](https://togithub.com/JounQin)! - chore: add `package.json` into `exports` map
okonet/lint-staged (lint-staged)
### [`v15.2.2`](https://togithub.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1522)
[Compare Source](https://togithub.com/okonet/lint-staged/compare/v15.2.1...v15.2.2)
##### Patch Changes
- [#1391](https://togithub.com/lint-staged/lint-staged/pull/1391) [`fdcdad4`](https://togithub.com/lint-staged/lint-staged/commit/fdcdad42ff96fea3c05598e378d3c44ad4a51bde) Thanks [@iiroj](https://togithub.com/iiroj)! - *Lint-staged* no longer tries to load configuration from files that are not checked out. This might happen when using sparse-checkout.
### [`v15.2.1`](https://togithub.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1521)
[Compare Source](https://togithub.com/okonet/lint-staged/compare/v15.2.0...v15.2.1)
##### Patch Changes
- [#1387](https://togithub.com/lint-staged/lint-staged/pull/1387) [`e4023f6`](https://togithub.com/lint-staged/lint-staged/commit/e4023f687616dcf4816545b8eefbcce50e255c9c) Thanks [@iiroj](https://togithub.com/iiroj)! - Ignore stdin of spawned commands so that they don't get stuck waiting. Until now, *lint-staged* has used the default settings to spawn linter commands. This means the `stdin` of the spawned commands has accepted input, and essentially gotten stuck waiting. Now the `stdin` is ignored and commands will no longer get stuck. If you relied on this behavior, please open a new issue and describe how; the behavior has not been intended.
prettier/prettier (prettier)
### [`v3.2.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#325)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.2.4...3.2.5)
[diff](https://togithub.com/prettier/prettier/compare/3.2.4...3.2.5)
##### Support Angular inline styles as single template literal ([#15968](https://togithub.com/prettier/prettier/pull/15968) by [@sosukesuzuki](https://togithub.com/sosukesuzuki))
[Angular v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) supports single string inline styles.
```ts
// Input
@Component({
template: `
`,
})
export class AppComponent {}
```
##### Use `"json"` parser for `tsconfig.json` by default ([#16012](https://togithub.com/prettier/prettier/pull/16012) by [@sosukesuzuki](https://togithub.com/sosukesuzuki))
In [v2.3.0](https://prettier.io/blog/2024/01/12/3.2.0#new-jsonc-parser-added-15831httpsgithubcomprettierprettierpull15831-by-fiskerhttpsgithubcomfisker), we introduced `"jsonc"` parser which adds trialing comma **by default**.
When adding a new parser we also define how it will be used based on the [`linguist-languages`](https://www.npmjs.com/package/linguist-languages) data.
`tsconfig.json` is a special file used by [TypeScript](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#using-tsconfigjson-or-jsconfigjson), it uses `.json` file extension, but it actually uses the [JSON with Comments](https://code.visualstudio.com/docs/languages/json#\_json-with-comments) syntax. However, we found that there are many third-party tools not recognize it correctly because of the confusing `.json` file extension.
We decide to treat it as a JSON file for now to avoid the extra configuration step.
To keep using the `"jsonc"` parser for your `tsconfig.json` files, add the following to your `.pretterrc` file
```json
{
"overrides": [
{
"files": ["tsconfig.json", "jsconfig.json"],
"options": {
"parser": "jsonc"
}
}
]
}
```
```
```
### [`v3.2.4`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#324)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.2.3...3.2.4)
[diff](https://togithub.com/prettier/prettier/compare/3.2.3...3.2.4)
##### Fix incorrect parser inference ([#15947](https://togithub.com/prettier/prettier/pull/15947) by [@fisker](https://togithub.com/fisker))
Files like `.eslintrc.json` were incorrectly formatted as JSONC files.
```jsx
// Input
prettier --file-info .eslintrc.json
{ "ignored": false, "inferredParser": "jsonc" }
// Prettier 3.2.4
prettier --file-info .eslintrc.json
{ "ignored": false, "inferredParser": "json" }
```
### [`v3.2.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#323)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.2.2...3.2.3)
[diff](https://togithub.com/prettier/prettier/compare/3.2.2...3.2.3)
##### Throw errors for invalid code ([#15881](https://togithub.com/prettier/prettier/pull/15881) by [@fisker](https://togithub.com/fisker), [@Josh-Cena](https://togithub.com/Josh-Cena), [@auvred](https://togithub.com/auvred))
```ts
// Input
1++;
// Prettier 3.2.2
1++;
// Prettier 3.2.3
SyntaxError: Invalid left-hand side expression in unary operation (1:1)
> 1 | 1++;
| ^
```
```ts
// Input
try {} catch (error = 1){}
// Prettier 3.2.2
try {
} catch (error) {}
// Prettier 3.2.3
SyntaxError: Catch clause variable cannot have an initializer. (1:23)
> 1 | try {} catch (error = 1){}
| ^
```
##### Fix parser inference ([#15927](https://togithub.com/prettier/prettier/pull/15927) by [@fisker](https://togithub.com/fisker))
```console
// Prettier 3.2.2
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "json" }
// Prettier 3.2.3
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "jsonc" }
```
### [`v3.2.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#322)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.2.1...3.2.2)
[diff](https://togithub.com/prettier/prettier/compare/3.2.1...3.2.2)
##### Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute ([#15896](https://togithub.com/prettier/prettier/pull/15896) by [@eelco](https://togithub.com/eelco))
For example this code would crash before:
```jsx
```
##### Fix formatting error on optional call expression and member chain ([#15920](https://togithub.com/prettier/prettier/pull/15920) by [@sosukesuzuki](https://togithub.com/sosukesuzuki))
```jsx
// Input
a(() => {}, c?.d());
// Prettier 3.2.1
TypeError: Cannot read properties of undefined (reading 'type')
// Prettier 3.2.2
a(() => {}, c?.d());
```
### [`v3.2.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#321)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.2.0...3.2.1)
[diff](https://togithub.com/prettier/prettier/compare/3.2.0...3.2.1)
##### Fix formatting error on member chain ([#15915](https://togithub.com/prettier/prettier/pull/15915) by [@sosukesuzuki](https://togithub.com/sosukesuzuki))
```jsx
// Input
test().test2().test2(thing?.something);
// Prettier 3.2.0
TypeError: Cannot read properties of undefined (reading 'type')
// Prettier 3.2.1
test().test2().test2(thing?.something);
```
### [`v3.2.0`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#320)
[Compare Source](https://togithub.com/prettier/prettier/compare/3.1.1...3.2.0)
[diff](https://togithub.com/prettier/prettier/compare/3.1.1...3.2.0)
🔗 [Release Notes](https://prettier.io/blog/2024/01/13/3.2.0.html)
Configuration
📅 Schedule: Branch creation - "before 6am on Thursday" in timezone Europe/Kiev, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
8.56.0
->8.57.0
5.1.2
->5.1.3
15.2.0
->15.2.2
3.1.1
->3.2.5
Release Notes
eslint/eslint (eslint)
### [`v8.57.0`](https://togithub.com/eslint/eslint/releases/tag/v8.57.0) [Compare Source](https://togithub.com/eslint/eslint/compare/v8.56.0...v8.57.0) #### Features - [`1120b9b`](https://togithub.com/eslint/eslint/commit/1120b9b7b97f10f059d8b7ede19de2572f892366) feat: Add loadESLint() API method for v8 ([#18098](https://togithub.com/eslint/eslint/issues/18098)) (Nicholas C. Zakas) - [`dca7d0f`](https://togithub.com/eslint/eslint/commit/dca7d0f1c262bc72310147bcefe1d04ecf60acbc) feat: Enable `eslint.config.mjs` and `eslint.config.cjs` ([#18066](https://togithub.com/eslint/eslint/issues/18066)) (Nitin Kumar) #### Bug Fixes - [`2196d97`](https://togithub.com/eslint/eslint/commit/2196d97094ba94d6d750828879a29538d1600de5) fix: handle absolute file paths in `FlatRuleTester` ([#18064](https://togithub.com/eslint/eslint/issues/18064)) (Nitin Kumar) - [`69dd1d1`](https://togithub.com/eslint/eslint/commit/69dd1d1387b7b53617548d1f9f2c149f179e6e17) fix: Ensure config keys are printed for config errors ([#18067](https://togithub.com/eslint/eslint/issues/18067)) (Nitin Kumar) - [`9852a31`](https://togithub.com/eslint/eslint/commit/9852a31edcf054bd5d15753ef18e2ad3216b1b71) fix: deep merge behavior in flat config ([#18065](https://togithub.com/eslint/eslint/issues/18065)) (Nitin Kumar) - [`4c7e9b0`](https://togithub.com/eslint/eslint/commit/4c7e9b0b539ba879ac1799e81f3b6add2eed4b2f) fix: allow circular references in config ([#18056](https://togithub.com/eslint/eslint/issues/18056)) (Milos Djermanovic) #### Documentation - [`84922d0`](https://togithub.com/eslint/eslint/commit/84922d0bfa10689a34a447ab8e55975ff1c1c708) docs: Show prerelease version in dropdown ([#18139](https://togithub.com/eslint/eslint/issues/18139)) (Nicholas C. Zakas) - [`5b8c363`](https://togithub.com/eslint/eslint/commit/5b8c3636a3d7536535a6878eca0e5b773e4829d4) docs: Switch to Ethical Ads ([#18117](https://togithub.com/eslint/eslint/issues/18117)) (Milos Djermanovic) - [`77dbfd9`](https://togithub.com/eslint/eslint/commit/77dbfd9887b201a46fc68631cbde50c08e1a8dbf) docs: show NEXT in version selectors ([#18052](https://togithub.com/eslint/eslint/issues/18052)) (Milos Djermanovic) #### Chores - [`1813aec`](https://togithub.com/eslint/eslint/commit/1813aecc4660582b0678cf32ba466eb9674266c4) chore: upgrade [@eslint/js](https://togithub.com/eslint/js)[@8](https://togithub.com/8).57.0 ([#18143](https://togithub.com/eslint/eslint/issues/18143)) (Milos Djermanovic) - [`5c356bb`](https://togithub.com/eslint/eslint/commit/5c356bb0c6f53c570224f8e9f02c4baca8fc6d2f) chore: package.json update for [@eslint/js](https://togithub.com/eslint/js) release (Jenkins) - [`f4a1fe2`](https://togithub.com/eslint/eslint/commit/f4a1fe2e45aa1089fe775290bf530de82f34bf16) test: add more tests for ignoring files and directories ([#18068](https://togithub.com/eslint/eslint/issues/18068)) (Nitin Kumar) - [`42c0aef`](https://togithub.com/eslint/eslint/commit/42c0aefaf6ea8b998b1c6db61906a79c046d301a) ci: Enable CI for `v8.x` branch ([#18047](https://togithub.com/eslint/eslint/issues/18047)) (Milos Djermanovic)prettier/eslint-plugin-prettier (eslint-plugin-prettier)
### [`v5.1.3`](https://togithub.com/prettier/eslint-plugin-prettier/blob/HEAD/CHANGELOG.md#513) [Compare Source](https://togithub.com/prettier/eslint-plugin-prettier/compare/v5.1.2...v5.1.3) ##### Patch Changes - [#629](https://togithub.com/prettier/eslint-plugin-prettier/pull/629) [`985b33c`](https://togithub.com/prettier/eslint-plugin-prettier/commit/985b33c56f146b2e65ae391a3af57f63b07ecbdf) Thanks [@JounQin](https://togithub.com/JounQin)! - chore: add `package.json` into `exports` mapokonet/lint-staged (lint-staged)
### [`v15.2.2`](https://togithub.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1522) [Compare Source](https://togithub.com/okonet/lint-staged/compare/v15.2.1...v15.2.2) ##### Patch Changes - [#1391](https://togithub.com/lint-staged/lint-staged/pull/1391) [`fdcdad4`](https://togithub.com/lint-staged/lint-staged/commit/fdcdad42ff96fea3c05598e378d3c44ad4a51bde) Thanks [@iiroj](https://togithub.com/iiroj)! - *Lint-staged* no longer tries to load configuration from files that are not checked out. This might happen when using sparse-checkout. ### [`v15.2.1`](https://togithub.com/okonet/lint-staged/blob/HEAD/CHANGELOG.md#1521) [Compare Source](https://togithub.com/okonet/lint-staged/compare/v15.2.0...v15.2.1) ##### Patch Changes - [#1387](https://togithub.com/lint-staged/lint-staged/pull/1387) [`e4023f6`](https://togithub.com/lint-staged/lint-staged/commit/e4023f687616dcf4816545b8eefbcce50e255c9c) Thanks [@iiroj](https://togithub.com/iiroj)! - Ignore stdin of spawned commands so that they don't get stuck waiting. Until now, *lint-staged* has used the default settings to spawn linter commands. This means the `stdin` of the spawned commands has accepted input, and essentially gotten stuck waiting. Now the `stdin` is ignored and commands will no longer get stuck. If you relied on this behavior, please open a new issue and describe how; the behavior has not been intended.prettier/prettier (prettier)
### [`v3.2.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#325) [Compare Source](https://togithub.com/prettier/prettier/compare/3.2.4...3.2.5) [diff](https://togithub.com/prettier/prettier/compare/3.2.4...3.2.5) ##### Support Angular inline styles as single template literal ([#15968](https://togithub.com/prettier/prettier/pull/15968) by [@sosukesuzuki](https://togithub.com/sosukesuzuki)) [Angular v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) supports single string inline styles. ```ts // Input @Component({ template: `{{ hello }}
`, }) export class AppComponent {} // Prettier 3.2.4 const template = "foobar"; @Component({ [template]: `{{ hello }}
`, }) export class AppComponent {} // Prettier 3.2.5 const template = "foobar"; @Component({ [template]: `{{ hello }}
`, }) export class AppComponent {} ``` ##### Use `"json"` parser for `tsconfig.json` by default ([#16012](https://togithub.com/prettier/prettier/pull/16012) by [@sosukesuzuki](https://togithub.com/sosukesuzuki)) In [v2.3.0](https://prettier.io/blog/2024/01/12/3.2.0#new-jsonc-parser-added-15831httpsgithubcomprettierprettierpull15831-by-fiskerhttpsgithubcomfisker), we introduced `"jsonc"` parser which adds trialing comma **by default**. When adding a new parser we also define how it will be used based on the [`linguist-languages`](https://www.npmjs.com/package/linguist-languages) data. `tsconfig.json` is a special file used by [TypeScript](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#using-tsconfigjson-or-jsconfigjson), it uses `.json` file extension, but it actually uses the [JSON with Comments](https://code.visualstudio.com/docs/languages/json#\_json-with-comments) syntax. However, we found that there are many third-party tools not recognize it correctly because of the confusing `.json` file extension. We decide to treat it as a JSON file for now to avoid the extra configuration step. To keep using the `"jsonc"` parser for your `tsconfig.json` files, add the following to your `.pretterrc` file ```json { "overrides": [ { "files": ["tsconfig.json", "jsconfig.json"], "options": { "parser": "jsonc" } } ] } ``` ``` ``` ### [`v3.2.4`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#324) [Compare Source](https://togithub.com/prettier/prettier/compare/3.2.3...3.2.4) [diff](https://togithub.com/prettier/prettier/compare/3.2.3...3.2.4) ##### Fix incorrect parser inference ([#15947](https://togithub.com/prettier/prettier/pull/15947) by [@fisker](https://togithub.com/fisker)) Files like `.eslintrc.json` were incorrectly formatted as JSONC files. ```jsx // Input prettier --file-info .eslintrc.json { "ignored": false, "inferredParser": "jsonc" } // Prettier 3.2.4 prettier --file-info .eslintrc.json { "ignored": false, "inferredParser": "json" } ``` ### [`v3.2.3`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#323) [Compare Source](https://togithub.com/prettier/prettier/compare/3.2.2...3.2.3) [diff](https://togithub.com/prettier/prettier/compare/3.2.2...3.2.3) ##### Throw errors for invalid code ([#15881](https://togithub.com/prettier/prettier/pull/15881) by [@fisker](https://togithub.com/fisker), [@Josh-Cena](https://togithub.com/Josh-Cena), [@auvred](https://togithub.com/auvred)) ```ts // Input 1++; // Prettier 3.2.2 1++; // Prettier 3.2.3 SyntaxError: Invalid left-hand side expression in unary operation (1:1) > 1 | 1++; | ^ ``` ```ts // Input try {} catch (error = 1){} // Prettier 3.2.2 try { } catch (error) {} // Prettier 3.2.3 SyntaxError: Catch clause variable cannot have an initializer. (1:23) > 1 | try {} catch (error = 1){} | ^ ``` ##### Fix parser inference ([#15927](https://togithub.com/prettier/prettier/pull/15927) by [@fisker](https://togithub.com/fisker)) ```console // Prettier 3.2.2 prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "json" } // Prettier 3.2.3 prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "jsonc" } ``` ### [`v3.2.2`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#322) [Compare Source](https://togithub.com/prettier/prettier/compare/3.2.1...3.2.2) [diff](https://togithub.com/prettier/prettier/compare/3.2.1...3.2.2) ##### Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute ([#15896](https://togithub.com/prettier/prettier/pull/15896) by [@eelco](https://togithub.com/eelco)) For example this code would crash before: ```jsx ``` ##### Fix formatting error on optional call expression and member chain ([#15920](https://togithub.com/prettier/prettier/pull/15920) by [@sosukesuzuki](https://togithub.com/sosukesuzuki)) ```jsx // Input a(() => {}, c?.d()); // Prettier 3.2.1 TypeError: Cannot read properties of undefined (reading 'type') // Prettier 3.2.2 a(() => {}, c?.d()); ``` ### [`v3.2.1`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#321) [Compare Source](https://togithub.com/prettier/prettier/compare/3.2.0...3.2.1) [diff](https://togithub.com/prettier/prettier/compare/3.2.0...3.2.1) ##### Fix formatting error on member chain ([#15915](https://togithub.com/prettier/prettier/pull/15915) by [@sosukesuzuki](https://togithub.com/sosukesuzuki)) ```jsx // Input test().test2().test2(thing?.something); // Prettier 3.2.0 TypeError: Cannot read properties of undefined (reading 'type') // Prettier 3.2.1 test().test2().test2(thing?.something); ``` ### [`v3.2.0`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#320) [Compare Source](https://togithub.com/prettier/prettier/compare/3.1.1...3.2.0) [diff](https://togithub.com/prettier/prettier/compare/3.1.1...3.2.0) 🔗 [Release Notes](https://prettier.io/blog/2024/01/13/3.2.0.html)Configuration
📅 Schedule: Branch creation - "before 6am on Thursday" in timezone Europe/Kiev, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.