chore(deps): update devdependencies (non-major)
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
@semantic-release/npm | devDependencies | patch | 11.0.2 -> 11.0.3 |
prettier (source) | devDependencies | minor | 3.1.1 -> 3.5.3 |
Release Notes
semantic-release/npm (@semantic-release/npm)
v11.0.3
Bug Fixes
- deps: raised the minimum accepted range of npm to v10.5.0 (#759) (a0313f8), closes semantic-release/semantic-release#3202
even though our existing range allowed anyone to update as soon as the new npm version was available, this will encourage being on a version that does not report the ip vulnerability a bit more forcefully
prettier/prettier (prettier)
v3.5.3
ConditionalTypeAnnotation
(#17196 by @fisker)
Flow: Fix missing parentheses in // Input
type T<U> = 'a' | ('b' extends U ? 'c' : empty);
type T<U> = 'a' & ('b' extends U ? 'c' : empty);
// Prettier 3.5.2
type T<U> = "a" | "b" extends U ? "c" : empty;
type T<U> = "a" & "b" extends U ? "c" : empty;
// Prettier 3.5.3
type T<U> = "a" | ("b" extends U ? "c" : empty);
type T<U> = "a" & ("b" extends U ? "c" : empty);
v3.5.2
module-sync
condition (#17156 by @fisker)
Remove In Prettier 3.5.0, we added module-sync
condition to package.json
, so that require("prettier")
can use ESM version, but turns out it doesn't work if CommonJS and ESM plugins both imports builtin plugins. To solve this problem, we decide simply remove the module-sync
condition, so require("prettier")
will still use the CommonJS version, we'll revisit until require(ESM)
feature is more stable.
v3.5.1
#17100 by @sosukesuzuki)
Fix CLI crash when cache for old version exists (Prettier 3.5 uses a different cache format than previous versions, Prettier 3.5.0 crashes when reading existing cache file, Prettier 3.5.1 fixed the problem.
#17101 by @remcohaszing)
Support dockercompose and github-actions-workflow in VSCode (Prettier now supports the dockercompose
and github-actions-workflow
languages in Visual Studio Code.
v3.5.0
v3.4.2
#16796 by @tats-u)
Treat U+30A0 & U+30FB in Katakana Block as CJK (Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.
<!-- Input (--prose-wrap=never) -->
C言
語
・
C++
・
Go
・
Rust
<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust
<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
U+30A0 can be used as the replacement of the -
in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).
#16891 by @fisker)
Fix comments print on class methods with decorators (// Input
class A {
@​decorator
/**
* The method description
*
*/
async method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
// Prettier 3.4.1
class A {
@​decorator
async /**
* The method description
*
*/
method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
// Prettier 3.4.2
class A {
@​decorator
/**
* The method description
*
*/
async method(foo: Foo, bar: Bar) {
console.log(foo);
}
}
#16899 by @seiyab)
Fix non-idempotent formatting (This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.
// Input
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
// Prettier 3.4.1 (first)
<div>
foo
<span>
longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
</span>, abc
</div>;
// Prettier 3.4.1 (second)
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
// Prettier 3.4.2
<div>
foo
<span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
, abc
</div>;
v3.4.1
v-on
(#16887 by @fisker)
Remove unnecessary parentheses around assignment in <!-- Input -->
<template>
<button @​click="foo += 2">Click</button>
</template>
<!-- Prettier 3.4.0 -->
<template>
<button @​click="(foo += 2)">Click</button>
</template>
<!-- Prettier 3.4.1 -->
<template>
<button @​click="foo += 2">Click</button>
</template>
v3.4.0
v3.3.3
#16391 by @cdignam-segment)
Add parentheses for nullish coalescing in ternary (This change adds clarity to operator precedence.
// Input
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;
// Prettier 3.3.2
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;
// Prettier 3.3.3
foo ? (bar ?? foo) : baz;
(foo ?? bar) ? a : b;
a ? b : (foo ?? bar);
#16458 by @y-schneider)
Add parentheses for decorator expressions (Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5.
// Input
@​(foo`tagged template`)
class X {}
// Prettier 3.3.2
@​foo`tagged template`
class X {}
// Prettier 3.3.3
@​(foo`tagged template`)
class X {}
@let
declaration syntax (#16474 by @sosukesuzuki)
Support Adds support for Angular v18 @let
declaration syntax.
Please see the following code example. The @let
declaration allows you to define local variables within the template:
@​let name = 'Frodo';
<h1>Dashboard for {{name}}</h1>
Hello, {{name}}
For more details, please refer to the excellent blog post by the Angular Team: Introducing @let in Angular.
We also appreciate the Angular Team for kindly answering our questions to implement this feature.
v3.3.2
@
(#16358 by @Princeyadav05)
Fix handlebars path expressions starts with {{! Input }}
<div>{{@​x.y.z}}</div>
{{! Prettier 3.3.1 }}
<div>{{@​x}}</div>
{{! Prettier 3.3.2 }}
<div>{{@​x.y.z}}</div>
v3.3.1
#16347 by @fisker)
Preserve empty lines in front matter (<!-- Input -->
---
foo:
- bar1
- bar2
- bar3
---
Markdown
<!-- Prettier 3.3.0 -->
---
foo:
- bar1
- bar2
- bar3
---
Markdown
<!-- Prettier 3.3.1 -->
---
foo:
- bar1
- bar2
- bar3
---
Markdown
#16348 by @fisker)
Preserve explicit language in front matter (<!-- Input -->
---yaml
title: Hello
slug: home
---
<!-- Prettier 3.3.0 -->
---
title: Hello
slug: home
---
<!-- Prettier 3.3.1 -->
---yaml
title: Hello
slug: home
---
#16349 by @fisker)
Avoid line breaks in import attributes (// Input
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };
// Prettier 3.3.0
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type:
"json" };
// Prettier 3.3.1
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };
v3.3.0
v3.2.5
#15968 by @sosukesuzuki)
Support Angular inline styles as single template literal (Angular v17 supports single string inline styles.
// Input
@​Component({
template: `<div>...</div>`,
styles: `h1 { color: blue; }`,
})
export class AppComponent {}
// Prettier 3.2.4
@​Component({
template: `<div>...</div>`,
styles: `h1 { color: blue; }`,
})
export class AppComponent {}
// Prettier 3.2.5
@​Component({
template: `<div>...</div>`,
styles: `
h1 {
color: blue;
}
`,
})
export class AppComponent {}
#15969 by @JounQin)
Unexpected embedded formatting for Angular template (Computed template should not be considered as Angular component template
// Input
const template = "foobar";
@​Component({
[template]: `<h1>{{ hello }}</h1>`,
})
export class AppComponent {}
// Prettier 3.2.4
const template = "foobar";
@​Component({
[template]: `<h1>{{ hello }}</h1>`,
})
export class AppComponent {}
// Prettier 3.2.5
const template = "foobar";
@​Component({
[template]: `<h1>{{ hello }}</h1>`,
})
export class AppComponent {}
"json"
parser for tsconfig.json
by default (#16012 by @sosukesuzuki)
Use In v3.2.0, we introduced "jsonc"
parser which adds trailing comma by default.
When adding a new parser we also define how it will be used based on the linguist-languages
data.
tsconfig.json
is a special file used by TypeScript, it uses .json
file extension, but it actually uses the 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 .prettierrc
file
{
"overrides": [
{
"files": ["tsconfig.json", "jsconfig.json"],
"options": {
"parser": "jsonc"
}
}
]
}
v3.2.4
prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "jsonc" }
v3.2.3
#15881 by @fisker, @Josh-Cena, @auvred)
Throw errors for invalid code (// Input
1++;
// Prettier 3.2.2
1++;
// Prettier 3.2.3
SyntaxError: Invalid left-hand side expression in unary operation (1:1)
> 1 | 1++;
| ^
// 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){}
| ^
#15927 by @fisker)
Fix parser inference (// 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
#15896 by @eelco)
Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute (For example this code would crash before:
<style {...spread}>{`.{}`}</style>
#15920 by @sosukesuzuki)
Fix formatting error on optional call expression and member chain (// 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
#15915 by @sosukesuzuki)
Fix formatting error on member chain (// 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
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.