Update all dependencies #10

Open
kjuulh wants to merge 1 commits from renovate/all into main
Owner

This PR contains the following updates:

Package Type Update Change
@types/node (source) devDependencies major 17.0.4 -> 22.9.1
postcss (source) devDependencies patch 8.4.12 -> 8.4.49
prettier (source) devDependencies major ^2.6.2 -> ^3.0.0
prettier-plugin-tailwindcss devDependencies minor ^0.1.1 -> ^0.6.0
sass devDependencies minor 1.50.1 -> 1.81.0
tailwindcss (source) devDependencies minor 3.0.24 -> 3.4.15
typescript (source) devDependencies major 4.5.4 -> 5.6.3

Release Notes

postcss/postcss (postcss)

v8.4.49

Compare Source

v8.4.48

Compare Source

  • Fixed position calculation in error/warnings methods (by @​romainmenke).

v8.4.47

Compare Source

  • Removed debug code.

v8.4.46

Compare Source

  • Fixed Cannot read properties of undefined (reading 'before').

v8.4.45

Compare Source

  • Removed unnecessary fix which could lead to infinite loop.

v8.4.44

Compare Source

  • Another way to fix markClean is not a function error.

v8.4.43

Compare Source

  • Fixed markClean is not a function error.

v8.4.42

Compare Source

  • Fixed CSS syntax error on long minified files (by @​varpstar).

v8.4.41

Compare Source

v8.4.40

Compare Source

  • Moved to getter/setter in nodes types to help Sass team (by @​nex3).

v8.4.39

Compare Source

v8.4.38

Compare Source

v8.4.37

Compare Source

  • Fixed original.column are not numbers error in another case.

v8.4.36

Compare Source

  • Fixed original.column are not numbers error on broken previous source map.

v8.4.35

Compare Source

  • Avoid ! in node.parent.nodes type.
  • Allow to pass undefined to node adding method to simplify types.

v8.4.34

Compare Source

  • Fixed AtRule#nodes type (by Tim Weißenfels).
  • Cleaned up code (by Dmitry Kirillov).

v8.4.33

Compare Source

  • Fixed NoWorkResult behavior difference with normal mode (by Romain Menke).
  • Fixed NoWorkResult usage conditions (by @​ahmdammarr).

v8.4.32

Compare Source

  • Fixed postcss().process() types (by Andrew Ferreira).

v8.4.31

Compare Source

  • Fixed \r parsing to fix CVE-2023-44270.

v8.4.30

Compare Source

  • Improved source map performance (by Romain Menke).

v8.4.29

Compare Source

  • Fixed Node#source.offset (by Ido Rosenthal).
  • Fixed docs (by Christian Oliff).

v8.4.28

Compare Source

  • Fixed Root.source.end for better source map (by Romain Menke).
  • Fixed Result.root types when process() has no parser.

v8.4.27

Compare Source

  • Fixed Container clone methods types.

v8.4.26

Compare Source

  • Fixed clone methods types.

v8.4.25

Compare Source

v8.4.24

Compare Source

  • Fixed Plugin types.

v8.4.23

Compare Source

  • Fixed warnings in TypeDoc.

v8.4.22

Compare Source

  • Fixed TypeScript support with node16 (by Remco Haszing).

v8.4.21

Compare Source

  • Fixed Input#error types (by Aleks Hudochenkov).

v8.4.20

Compare Source

  • Fixed source map generation for childless at-rules like @layer.

v8.4.19

Compare Source

  • Fixed whitespace preserving after AST transformations (by Romain Menke).

v8.4.18

Compare Source

  • Fixed an error on absolute: true with empty sourceContent (by Rene Haas).

v8.4.17

Compare Source

  • Fixed Node.before() unexpected behavior (by Romain Menke).
  • Added TOC to docs (by Mikhail Dedov).

v8.4.16

Compare Source

  • Fixed Root AST migration.

v8.4.15

Compare Source

  • Fixed AST normalization after using custom parser with old PostCSS AST.

v8.4.14

Compare Source

  • Print “old plugin API” warning only if plugin was used (by @​zardoy).

v8.4.13

Compare Source

  • Fixed append() error after using .parent (by Jordan Pittman).
prettier/prettier (prettier)

v3.3.3

Compare Source

diff

Add parentheses for nullish coalescing in ternary (#​16391 by @​cdignam-segment)

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);
Add parentheses for decorator expressions (#​16458 by @​y-schneider)

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 {}
Support @let declaration syntax (#​16474 by @​sosukesuzuki)

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

Compare Source

diff

Fix handlebars path expressions starts with @ (#​16358 by @​Princeyadav05)
{{! Input }}
<div>{{@&#8203;x.y.z}}</div>

{{! Prettier 3.3.1 }}
<div>{{@&#8203;x}}</div>

{{! Prettier 3.3.2 }}
<div>{{@&#8203;x.y.z}}</div>

v3.3.1

Compare Source

diff

Preserve empty lines in front matter (#​16347 by @​fisker)
<!-- Input -->
---
foo:
  - bar1

  - bar2

  - bar3
---
Markdown

<!-- Prettier 3.3.0 -->

---
foo:
  - bar1
  - bar2
  - bar3
---

Markdown

<!-- Prettier 3.3.1 -->
---
foo:
  - bar1

  - bar2

  - bar3
---

Markdown
Preserve explicit language in front matter (#​16348 by @​fisker)
<!-- Input -->
---yaml
title: Hello
slug: home
---

<!-- Prettier 3.3.0 -->
---
title: Hello
slug: home
---

<!-- Prettier 3.3.1 -->
---yaml
title: Hello
slug: home
---
Avoid line breaks in import attributes (#​16349 by @​fisker)
// 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

Compare Source

diff

🔗 Release Notes

v3.2.5

Compare Source

diff

Support Angular inline styles as single template literal (#​15968 by @​sosukesuzuki)

Angular v17 supports single string inline styles.

// Input
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `h1 { color: blue; }`,
})
export class AppComponent {}

// Prettier 3.2.4
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `h1 { color: blue; }`,
})
export class AppComponent {}

// Prettier 3.2.5
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `
    h1 {
      color: blue;
    }
  `,
})
export class AppComponent {}

Unexpected embedded formatting for Angular template (#​15969 by @​JounQin)

Computed template should not be considered as Angular component template

// Input
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{       hello }}</h1>`,
})
export class AppComponent {}

// Prettier 3.2.4
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{ hello }}</h1>`,
})
export class AppComponent {}

// Prettier 3.2.5
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{       hello }}</h1>`,
})
export class AppComponent {}
Use "json" parser for tsconfig.json by default (#​16012 by @​sosukesuzuki)

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

Compare Source

prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "jsonc" }

v3.2.3

Compare Source

diff

Throw errors for invalid code (#​15881 by @​fisker, @​Josh-Cena, @​auvred)
// 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){}
    |                       ^
Fix parser inference (#​15927 by @​fisker)
// 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

Compare Source

diff

Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute (#​15896 by @​eelco)

For example this code would crash before:

<style {...spread}>{`.{}`}</style>
Fix formatting error on optional call expression and member chain (#​15920 by @​sosukesuzuki)
// 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

Compare Source

diff

Fix formatting error on member chain (#​15915 by @​sosukesuzuki)
// 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

Compare Source

diff

🔗 Release Notes

v3.1.1

Compare Source

diff

Fix config file search (#​15363 by @​fisker)

Previously, we start search for config files from the filePath as a directory, if it happened to be a directory and contains config file, it will be used by mistake.

├─ .prettierrc
└─ test.js         (A directory)
  └─ .prettierrc
// Prettier 3.1.0
await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
// <CWD>/test.js/.prettierrc

// Prettier 3.1.1
await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
// <CWD>/.prettierrc

Since Prettier v3, we stopped following symbolic links, however in some use cases, the symbolic link patterns can't be filtered out, and there is no way to prevent Prettier from throwing errors.

In Prettier 3.1.1, you can use --no-error-on-unmatched-pattern to simply skip symbolic links.

Consistently use tabs in ternaries when useTabs is true (#​15662 by @​auvred)
// Input
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
	  ? ddddddddddddddd
	  : eeeeeeeeeeeeeee
	    ? fffffffffffffff
	    : gggggggggggggggg;

// Prettier 3.1.0
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
	  ? ddddddddddddddd
	  : eeeeeeeeeeeeeee
	    ? fffffffffffffff
	    : gggggggggggggggg;

// Prettier 3.1.1
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
		? ddddddddddddddd
		: eeeeeeeeeeeeeee
			? fffffffffffffff
			: gggggggggggggggg;
Improve config file search (#​15663 by @​fisker)

The Prettier config file search performance has been improved by more effective cache strategy.

Fix unstable and ugly formatting for comments in destructuring patterns (#​15708 by @​sosukesuzuki)
// Input
const {
  foo,
  // bar
  // baz
}: Foo = expr;

// Prettier 3.1.0
const {
  foo1,
} // bar
// baz
: Foo = expr;

// Prettier 3.1.0 second output
const {
  foo1, // bar
} // baz
: Foo = expr;

// Prettier 3.1.1
const {
  foo1,
  // bar
  // baz
}: Foo = expr;
Support "Import Attributes" (#​15718 by @​fisker)

TypeScript 5.3 supports the latest updates to the import attributes proposal.

import something from "./something.json" with { type: "json" };
Fix false claim in docs that cursorOffset is incompatible with rangeStart/rangeEnd (#​15750 by @​ExplodingCabbage)

The cursorOffset option has in fact been compatible with rangeStart/rangeEnd for over 5 years, thanks to work by @​ds300. However, Prettier's documentation (including the CLI --help text) continued to claim otherwise, falsely. The documentation is now fixed.

Keep curly braces and from keyword in empty import statements (#​15756 by @​fisker)
// Input
import { } from 'foo';
import { /* comment */ } from 'bar';

// Prettier 3.1.0
import {} from "foo";
import /* comment */ "bar";

// Prettier 3.1.1
import {} from "foo";
import {} from /* comment */ "bar";
Keep empty import attributes and assertions (#​15757 by @​fisker)
// Input
import foo from "foo" with {};
import bar from "bar" assert {};

// Prettier 3.1.0
import foo from "foo";
import bar from "bar";

// Prettier 3.1.1
import foo from "foo" with {};
import bar from "bar" assert {};

v3.1.0

Compare Source

diff

🔗 Release Notes

v3.0.3

Compare Source

diff

Add preferUnplugged: true to package.json (#​15169 by @​fisker and @​so1ve)

Prettier v3 uses dynamic imports, user will need to unplug Prettier when Yarn's PnP mode is enabled, add preferUnplugged: true to package.json, so Yarn will install Prettier as unplug by default.

Support shared config that forbids require() (#​15233 by @​fisker)

If an external shared config package is used, and the package exports don't have require or default export.

In Prettier 3.0.2 Prettier fails when attempt to require() the package, and throws an error.

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json
Allow argument of require() to break (#​15256 by @​fisker)
// Input
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);

// Prettier 3.0.2
const plugin = require(global.STANDALONE
  ? path.join(__dirname, "../standalone.js")
  : path.join(__dirname, ".."));

// Prettier 3.0.3
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);
Do not print trailing commas in arrow function type parameter lists in ts code blocks (#​15286 by @​sosukesuzuki)
<!-- Input -->
```ts
const foo = <T>() => {}
```

<!-- Prettier 3.0.2 -->
```ts
const foo = <T,>() => {}
```

<!-- Prettier 3.0.3 -->
```ts
const foo = <T>() => {}
```
Support TypeScript 5.2 using / await using declaration (#​15321 by @​sosukesuzuki)

Support for the upcoming Explicit Resource Management feature in ECMAScript. using / await using declaration

{
   using foo = new Foo();
   await using bar = new Bar();
}

v3.0.2

Compare Source

diff

Break after = of assignment if RHS is poorly breakable AwaitExpression or YieldExpression (#​15204 by @​seiyab)
// Input
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);

// Prettier 3.0.1
const { section, rubric, authors, tags } = await utils.upsertCommonData(
  mainData,
);

// Prettier 3.0.2
const { section, rubric, authors, tags } =
  await utils.upsertCommonData(mainData);
Do not add trailing comma for grouped scss comments (#​15217 by @​auvred)
/* Input */
$foo: (
	'property': (),
	// comment 1
	// comment 2
)

/* Prettier 3.0.1 */
$foo: (
  "property": (),
  // comment 1
  // comment 2,
);

/* Prettier 3.0.2 */
$foo: (
  "property": (),
  // comment 1
  // comment 2
);
Print declare and export keywords for nested namespace (#​15249 by @​sosukesuzuki)
// Input
declare namespace abc1.def {}
export namespace abc2.def {}

// Prettier 3.0.1
namespace abc1.def {}
namespace abc2.def {}

// Prettier 3.0.2
declare namespace abc1.def {}
export namespace abc2.def {}

v3.0.1

Compare Source

diff

Fix cursor positioning for a special case (#​14812 by @​fisker)
// <|> is the cursor position

/* Input */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>  } from "fs"

/* Prettier 3.0.0 */
// All messages are represented in JSON.
// So, the prettier.py <|>controls a subprocess which spawns "node {this_file}".
import {} from "fs"

/* Prettier 3.0.1 */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>} from "fs"
Fix plugins/estree.d.ts to make it a module (#​15018 by @​kingyue737)

Add export {} in plugins/estree.d.ts to fix the "File is not a module" error

Add parenthesis around leading multiline comment in return statement (#​15037 by @​auvred)
// Input
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expression
  )
}

// Prettier 3.0.0
function fn() {
  return /**
   * @&#8203;type {...}
   */ expression;
}

// Prettier 3.0.1
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expression
  );
}
Add support for Vue "Generic Components" (#​15066 by @​auvred)

https://blog.vuejs.org/posts/vue-3-3#generic-components

<!-- Input -->
<script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"></script>

<!-- Prettier 3.0.0 -->
<script
  setup
  lang="ts"
  generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"
></script>

<!-- Prettier 3.0.1 -->
<script
  setup
  lang="ts"
  generic="
    T extends Type1 & Type2 & (Type3 | Type4),
    U extends string | number | boolean
  "
></script>
Fix comments print in IfStatement (#​15076 by @​fisker)
function a(b) {
  if (b) return 1; // comment
  else return 2;
}

/* Prettier 3.0.0 */
Error: Comment "comment" was not printed. Please report this error!

/* Prettier 3.0.1 */
function a(b) {
  if (b) return 1; // comment
  else return 2;
}
Add missing type definition for printer.preprocess (#​15123 by @​so1ve)
export interface Printer<T = any> {
  // ...
+ preprocess?:
+   | ((ast: T, options: ParserOptions<T>) => T | Promise<T>)
+   | undefined;
}
Add missing getVisitorKeys method type definition for Printer (#​15125 by @​auvred)
const printer: Printer = {
  print: () => [],
  getVisitorKeys(node, nonTraversableKeys) {
    return ["body"];
  },
};
Add typing to support readonly array properties of AST Node (#​15127 by @​auvred)
// Input
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");

// Prettier 3.0.0
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
//                  ^ Argument of type '"readonlyArray"' is not assignable to parameter of type '"regularArray"'. ts(2345)

// Prettier 3.0.1
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
Add space before unary minus followed by a function call (#​15129 by @​pamelalozano)
// Input
div {
  margin: - func();
}

// Prettier 3.0.0
div {
  margin: -func();
}

// Prettier 3.0.1
div {
  margin: - func();
}

v3.0.0

Compare Source

diff

🔗 Release Notes

v2.8.8

Compare Source

This version is a republished version of v2.8.7.
A bad version was accidentally published and it can't be unpublished, apologies for the churn.

v2.8.7

Compare Source

diff

Allow multiple decorators on same getter/setter (#​14584 by @​fisker)
// Input
class A {
  @&#8203;decorator()
  get foo () {}
  
  @&#8203;decorator()
  set foo (value) {}
}

// Prettier 2.8.6
SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3)
  3 |   get foo () {}
  4 |   
> 5 |   @&#8203;decorator()
    |   ^^^^^^^^^^^^
  6 |   set foo (value) {}
  7 | }

// Prettier 2.8.7
class A {
  @&#8203;decorator()
  get foo() {}

  @&#8203;decorator()
  set foo(value) {}
}

v2.8.6

Compare Source

diff

Allow decorators on private members and class expressions (#​14548 by @​fisker)
// Input
class A {
  @&#8203;decorator()
  #privateMethod () {}
}

// Prettier 2.8.5
SyntaxError: Decorators are not valid here. (2:3)
  1 | class A {
> 2 |   @&#8203;decorator()
    |   ^^^^^^^^^^^^
  3 |   #privateMethod () {}
  4 | }

// Prettier 2.8.6
class A {
  @&#8203;decorator()
  #privateMethod() {}
}

v2.8.5

Compare Source

diff

Support TypeScript 5.0 (#​14391 by @​fisker, #​13819 by @​fisker, @​sosukesuzuki)

TypeScript 5.0 introduces two new syntactic features:

  • const modifiers for type parameters
  • export type * declarations
Add missing parentheses for decorator (#​14393 by @​fisker)
// Input
class Person {
  @&#8203;(myDecoratorArray[0])
  greet() {}
}

// Prettier 2.8.4
class Person {
  @&#8203;myDecoratorArray[0]
  greet() {}
}

// Prettier 2.8.5
class Person {
  @&#8203;(myDecoratorArray[0])
  greet() {}
}
Add parentheses for TypeofTypeAnnotation to improve readability (#​14458 by @​fisker)
// Input
type A = (typeof node.children)[];

// Prettier 2.8.4
type A = typeof node.children[];

// Prettier 2.8.5
type A = (typeof node.children)[];
Support max_line_length=off when parsing .editorconfig (#​14516 by @​josephfrazier)

If an .editorconfig file is in your project and it sets max_line_length=off for the file you're formatting,
it will be interpreted as a printWidth of Infinity rather than being ignored
(which previously resulted in the default printWidth of 80 being applied, if not overridden by Prettier-specific configuration).

<!-- Input -->
<div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/>

<!-- Prettier 2.8.4 -->
<div
  className="HelloWorld"
  title={`You are visitor number ${num}`}
  onMouseOver={onMouseOver}
/>;

<!-- Prettier 2.8.5 -->
<div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />;

v2.8.4

Compare Source

diff

Fix leading comments in mapped types with readonly (#​13427 by @​thorn0, @​sosukesuzuki)
// Input
type Type = {
  // comment
  readonly [key in Foo];
};

// Prettier 2.8.3
type Type = {
  readonly // comment
  [key in Foo];
};

// Prettier 2.8.4
type Type = {
  // comment
  readonly [key in Foo];
};
Group params in opening block statements (#​14067 by @​jamescdavis)

This is a follow-up to #​13930 to establish wrapping consistency between opening block statements and else blocks by
grouping params in opening blocks. This causes params to break to a new line together and not be split across lines
unless the length of params exceeds the print width. This also updates the else block wrapping to behave exactly the
same as opening blocks.

{{! Input }}
{{#block param param param param param param param param param param as |blockParam|}}
  Hello
{{else block param param param param param param param param param param as |blockParam|}}
  There
{{/block}}

{{! Prettier 2.8.3 }}
{{#block
  param
  param
  param
  param
  param
  param
  param
  param
  param
  param
  as |blockParam|
}}
  Hello
{{else block param
param
param
param
param
param
param
param
param
param}}
  There
{{/block}}

{{! Prettier 2.8.4 }}
{{#block
  param param param param param param param param param param
  as |blockParam|
}}
  Hello
{{else block
  param param param param param param param param param param
  as |blockParam|
}}
  There
{{/block}}
Ignore files in .sl/ (#​14206 by @​bolinfest)

In Sapling SCM, .sl/ is the folder where it stores its state, analogous to .git/ in Git. It should be ignored in Prettier like the other SCM folders.

Recognize @satisfies in Closure-style type casts (#​14262 by @​fisker)
// Input
const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});

// Prettier 2.8.3
const a = /** @&#8203;satisfies {Record<string, string>} */ { hello: 1337 };
const b = /** @&#8203;type {Record<string, string>} */ ({ hello: 1337 });

// Prettier 2.8.4
const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337});
const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337});
Fix parens in inferred function return types with extends (#​14279 by @​fisker)
// Input
type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;

// Prettier 2.8.3 (First format)
type Foo<T> = T extends (a) => a is infer R extends string ? R : never;

// Prettier 2.8.3 (Second format)
SyntaxError: '?' expected. 

// Prettier 2.8.4
type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never;

v2.8.3

Compare Source

diff

Allow self-closing tags on custom elements (#​14170 by @​fisker)

See Angular v15.1.0 release note for details.

// Input
<app-test/>

// Prettier 2.8.2
SyntaxError: Only void and foreign elements can be self closed "app-test" (1:1)
> 1 | <app-test/>
    | ^^^^^^^^^
  2 |

// Prettier 2.8.3
<app-test />

v2.8.2

Compare Source

diff

<!-- Input -->
We now don't strictly follow the release notes format suggested by [Keep a Changelog].

[Keep a Changelog]: https://example.com/

<!-- Prettier 2.8.1 -->
We now don't strictly follow the release notes format suggested by [Keep a Changelog].

[keep a changelog]: https://example.com/
<!--
^^^^^^^^^^^^^^^^^^ lowercased
-->

<!-- Prettier 2.8.2 -->
<Same as input>
Preserve self-closing tags (#​13691 by @​dcyriller)
{{! Input }}
<div />
<div></div>
<custom-component />
<custom-component></custom-component>
<i />
<i></i>
<Component />
<Component></Component>

{{! Prettier 2.8.1 }}
<div></div>
<div></div>
<custom-component></custom-component>
<custom-component></custom-component>
<i></i>
<i></i>
<Component />
<Component />

{{! Prettier 2.8.2 }}
<div />
<div></div>
<custom-component />
<custom-component></custom-component>
<i />
<i></i>
<Component />
<Component />
Allow custom "else if"-like blocks with block params (#​13930 by @​jamescdavis)

#​13507 added support for custom block keywords used with else, but failed to allow block params. This updates printer-glimmer to allow block params with custom "else if"-like blocks.

{{! Input }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading as |book|}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}

{{! Prettier 2.8.1 }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}

{{! Prettier 2.8.2 }}
{{#when isAtWork as |work|}}
  Ship that
  {{work}}!
{{else when isReading as |book|}}
  You can finish
  {{book}}
  eventually...
{{else}}
  Go to bed!
{{/when}}
Preserve empty lines between nested SCSS maps (#​13931 by @​jneander)
/* Input */
$map: (
  'one': (
     'key': 'value',
  ),

  'two': (
     'key': 'value',
  ),
)

/* Prettier 2.8.1 */
$map: (
  'one': (
     'key': 'value',
  ),
  'two': (
     'key': 'value',
  ),
)

/* Prettier 2.8.2 */
$map: (
  'one': (
     'key': 'value',
  ),

  'two': (
     'key': 'value',
  ),
)
Fix missing parentheses when an expression statement starts with let[ (#​14000, #​14044 by @​fisker, @​thorn0)
// Input
(let[0] = 2);

// Prettier 2.8.1
let[0] = 2;

// Prettier 2.8.1 (second format)
SyntaxError: Unexpected token (1:5)
> 1 | let[0] = 2;
    |     ^
  2 |

// Prettier 2.8.2
(let)[0] = 2;
Fix semicolon duplicated at the end of LESS file (#​14007 by @​mvorisek)
// Input
@&#8203;variable: {
  field: something;
};

// Prettier 2.8.1
@&#8203;variable: {
  field: something;
}; ;

// Prettier 2.8.2
@&#8203;variable: {
  field: something;
};
Fix no space after unary minus when followed by opening parenthesis in LESS (#​14008 by @​mvorisek)
// Input
.unary_minus_single {
  margin: -(@&#8203;a);
}

.unary_minus_multi {
  margin: 0 -(@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}

// Prettier 2.8.1
.unary_minus_single {
  margin: - (@&#8203;a);
}

.unary_minus_multi {
  margin: 0 - (@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}

// Prettier 2.8.2
.unary_minus_single {
  margin: -(@&#8203;a);
}

.unary_minus_multi {
  margin: 0 -(@&#8203;a);
}

.binary_minus {
  margin: 0 - (@&#8203;a);
}
Do not change case of property name if inside a variable declaration in LESS (#​14034 by @​mvorisek)
// Input
@&#8203;var: {
  preserveCase: 0;
};

// Prettier 2.8.1
@&#8203;var: {
  preservecase: 0;
};

// Prettier 2.8.2
@&#8203;var: {
  preserveCase: 0;
};
Fix formatting for auto-accessors with comments (#​14038 by @​fisker)
// Input
class A {
  @&#8203;dec()
  // comment
  accessor b;
}

// Prettier 2.8.1
class A {
  @&#8203;dec()
  accessor // comment
  b;
}

// Prettier 2.8.1 (second format)
class A {
  @&#8203;dec()
  accessor; // comment
  b;
}

// Prettier 2.8.2
class A {
  @&#8203;dec()
  // comment
  accessor b;
}
Add parentheses for TSTypeQuery to improve readability (#​14042 by @​onishi-kohei)
// Input
a as (typeof node.children)[number]
a as (typeof node.children)[]
a as ((typeof node.children)[number])[]

// Prettier 2.8.1
a as typeof node.children[number];
a as typeof node.children[];
a as typeof node.children[number][];

// Prettier 2.8.2
a as (typeof node.children)[number];
a as (typeof node.children)[];
a as (typeof node.children)[number][];
Fix displacing of comments in default switch case (#​14047 by @​thorn0)

It was a regression in Prettier 2.6.0.

// Input
switch (state) {
  default:
    result = state; // no change
    break;
}

// Prettier 2.8.1
switch (state) {
  default: // no change
    result = state;
    break;
}

// Prettier 2.8.2
switch (state) {
  default:
    result = state; // no change
    break;
}
Support type annotations on auto accessors via babel-ts (#​14049 by @​sosukesuzuki)

The bug that @babel/parser cannot parse auto accessors with type annotations has been fixed. So we now support it via babel-ts parser.

class Foo {
  accessor prop: number;
}
Fix formatting of empty type parameters (#​14073 by @​fisker)
// Input
const foo: bar</* comment */> = () => baz;

// Prettier 2.8.1
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.8.2
const foo: bar</* comment */> = () => baz;
Add parentheses to head of ExpressionStatement instead of the whole statement (#​14077 by @​fisker)
// Input
({}).toString.call(foo) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo);

// Prettier 2.8.1
({}.toString.call(foo) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo));

// Prettier 2.8.2
({}).toString.call(foo.forEach) === "[object Array]"
  ? foo.forEach(iterateArray)
  : iterateObject(foo);
Fix comments after directive (#​14081 by @​fisker)
// Input
"use strict" /* comment */;

// Prettier 2.8.1 (with other js parsers except `babel`)
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.8.2
<Same as input>
Fix formatting for comments inside JSX attribute (#​14082 by @​fisker)
// Input
function MyFunctionComponent() {
  <button label=/*old*/"new">button</button>
}

// Prettier 2.8.1
Error: Comment "old" was not printed. Please report this error!

// Prettier 2.8.2
function MyFunctionComponent() {
  <button label=/*old*/ "new">button</button>;
}
Quote numeric keys for json-stringify parser (#​14083 by @​fisker)
// Input
{0: 'value'}

// Prettier 2.8.1
{
  0: "value"
}

// Prettier 2.8.2
{
  "0": "value"
}
Fix removing commas from function arguments in maps (#​14089 by @​sosukesuzuki)
/* Input */
$foo: map-fn(
  (
    "#{prop}": inner-fn($first, $second),
  )
);

/* Prettier 2.8.1 */
$foo: map-fn(("#{prop}": inner-fn($first $second)));

/* Prettier 2.8.2 */
$foo: map-fn(
  (
    "#{prop}": inner-fn($first, $second),
  )
);

Do not insert space in LESS property access (#​14103 by @​fisker)
// Input
a {
  color: @&#8203;colors[@&#8203;white];
}

// Prettier 2.8.1
a {
  color: @&#8203;colors[ @&#8203;white];
}

// Prettier 2.8.2
<Same as input>

v2.8.1

Compare Source

diff

Fix SCSS map in arguments (#​9184 by @​agamkrbit)
// 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 by @​sosukesuzuki)

Support for Auto Accessors Syntax landed in TypeScript 4.9.

(Doesn't work well with babel-ts parser)

class Foo {
  accessor foo: number = 3;
}

v2.8.0

Compare Source

diff

🔗 Release Notes

v2.7.1

Compare Source

diff

Keep useful empty lines in description (#​13013 by @​chimurai)

v2.7.0

Compare Source

"""
First line
Second Line
"""
type Person {
name: String
}

tailwindlabs/prettier-plugin-tailwindcss (prettier-plugin-tailwindcss)

v0.6.9

Compare Source

  • Introduce tailwindStylesheet option to replace tailwindEntryPoint (#​330)

v0.6.8

Compare Source

v0.6.7

Compare Source

  • Improved performance with large Svelte, Liquid, and Angular files (#​312)
  • Add support for @plugin and @config in v4 (#​316)
  • Add support for Tailwind CSS v4.0.0-alpha.25 (#​317)

v0.6.6

Compare Source

  • Add support for prettier-plugin-multiline-arrays (#​299)
  • Add resolution cache for known plugins (#​301)
  • Support Tailwind CSS v4.0.0-alpha.19 (#​310)

v0.6.5

Compare Source

  • Only re-apply string escaping when necessary (#​295)

v0.6.4

Compare Source

  • Export PluginOptions type (#​292)

v0.6.3

Compare Source

  • Improve detection of string concatenation (#​288)

v0.6.2

Compare Source

Changed
  • Only remove duplicate Tailwind classes (#​277)
  • Make sure escapes in classes are preserved in string literals (#​286)

v0.6.1

Compare Source

Added
  • Add new tailwindPreserveDuplicates option to disable removal of duplicate classes (#​276)
Fixed
  • Improve handling of whitespace removal when concatenating strings (#​276)
  • Fix a bug where Angular expressions may produce invalid code after sorting (#​276)
  • Disabled whitespace and duplicate class removal for Liquid and Svelte (#​276)

v0.6.0

Compare Source

Changed
  • Remove duplicate classes (#​272)
  • Remove extra whitespace around classes (#​272)

v0.5.14

Compare Source

Fixed
  • Fix detection of v4 projects on Windows (#​265)

v0.5.13

Compare Source

Added
  • Add support for @zackad/prettier-plugin-twig-melody (#​255)

v0.5.12

Compare Source

Added
  • Add support for prettier-plugin-sort-imports (#​241)
  • Add support for Tailwind CSS v4.0 (#​249)

v0.5.11

Compare Source

Changed
  • Bumped bundled version of Tailwind CSS to v3.4.1 (#​240)

v0.5.10

Compare Source

Changed
  • Bumped bundled version of Tailwind CSS to v3.4 (#​235)

v0.5.9

Compare Source

Fixed
  • Fixed location of embedded preflight CSS file (#​231)

v0.5.8

Compare Source

Added
  • Re-enable support for prettier-plugin-marko (#​229)

v0.5.7

Compare Source

Fixed
  • Fix sorting inside dynamic custom attributes (#​225)

v0.5.6

Compare Source

Fixed
  • Fix sorting inside {{ … }} expressions when using @shopify/prettier-plugin-liquid v1.3+ (#​222)

v0.5.5

Compare Source

Fixed
  • Sort classes inside className in Astro (#​215)
  • Support member access on function calls (#​218)

v0.5.4

Compare Source

Fixed
  • Type tailwindFunctions and tailwindAttributes as optional (#​206)
  • Don’t break @apply … #{'!important'} sorting in SCSS (#​212)

v0.5.3

Compare Source

Fixed
  • Fix CJS __dirname interop on Windows (#​204)

v0.5.2

Compare Source

Fixed
  • Fix intertop with bundled CJS dependencies (#​199)

v0.5.1

Compare Source

Fixed
  • Fix detection of v4 projects on Windows (#​265)

v0.5.0

Compare Source

Added
  • Sort expressions in Astro's class:list attribute (#​192)
  • Re-enabled support for plugins when using Prettier v3+ (#​195)

v0.4.1

Compare Source

Fixed
  • Don't move partial classes inside Twig attributes (#​184)

v0.4.0

Compare Source

Added
  • Export types for Prettier config (#​162)
  • Add Prettier v3 support (#​179)
Fixed
  • Don't move partial classes inside Liquid script attributes (#​164)
  • Do not split classes by non-ASCII whitespace (#​166)
  • Match tagged template literals with tag expressions (#​169)

v0.3.0

Compare Source

Added
  • Added support for prettier-plugin-marko (#​151)
  • Allow sorting of custom attributes, functions, and tagged template literals (#​155)
Fixed
  • Speed up formatting (#​153)
  • Fix plugin compatibility when loaded with require (#​159)

v0.2.8

Compare Source

Changed
  • Remove support for @prettier/plugin-php (#​152)

v0.2.7

Compare Source

Fixed
  • Don't break liquid tags inside attributes when sorting classes (#​143)

v0.2.6

Compare Source

Added
  • Support ESM and TS config files (#​137)
Fixed
  • Load tailwindcss modules from nearest instance only (#​139)

v0.2.5

Compare Source

Fixed
  • Fix class sorting in capture liquid tag (#​131)

v0.2.4

Compare Source

Fixed
  • Sort class attribute on components and custom elements in Astro (#​129)

v0.2.3

Compare Source

Fixed
  • Don't sort classes in Glimmer concat helper (#​119)
  • Add support for @ianvs/prettier-plugin-sort-imports (#​122)

v0.2.2

Compare Source

Fixed
  • Add prettier plugins to peer dependencies (#​114)
  • Traverse await expression blocks in Svelte (#​118)

v0.2.1

Compare Source

Fixed
  • Fix support for latest Shopify Liquid plugin (#​109)

v0.2.0

Compare Source

Changed
  • Don't bundle prettier-plugin-svelte (#​101)
Added
  • Improve compatibility with other Prettier plugins (#​101, #​102)
sass/dart-sass (sass)

v1.81.0

Compare Source

  • Fix a few cases where deprecation warnings weren't being emitted for global
    built-in functions whose names overlap with CSS calculations.

  • Add support for the CSS round() calculation with a single argument, as long
    as that argument might be a unitless number.

v1.80.7

Compare Source

Embedded Host
  • Don't treat 0 as undefined for the green and blue channels in the
    LegacyColor constructor.

v1.80.6

Compare Source

Command-Line Interface
  • Make @parcel/watcher an optional dependency so this can still be installed
    on operating systems where it's unavailable.

v1.80.5

Compare Source

Embedded Host
  • Don't produce phantom @import deprecations when using an importer with the
    legacy API.

v1.80.4

Compare Source

  • No user-visible changes.

v1.80.3

Compare Source

  • Fix a bug where @import url("...") would crash in plain CSS files.

  • Improve consistency of how warnings are emitted by different parts of the
    compiler. This should result in minimal user-visible changes, but different
    types of warnings should now respond more reliably to flags like --quiet,
    --verbose, and --silence-deprecation.

v1.80.2

Compare Source

  • Fix a bug where deprecation warnings were incorrectly emitted for the
    plain-CSS invert() function.

v1.80.1

Compare Source

  • Fix a bug where repeated deprecation warnings were not automatically limited.

v1.80.0

Compare Source

  • @import is now officially deprecated, as are global built-in functions that
    are available within built-in modules. See the Sass blog post for more
    details on the deprecation process.
Embedded Host
  • Fix an error that would sometimes occur when deprecation warnings were
    emitted when using a custom importer with the legacy API.

v1.79.6

Compare Source

  • Fix a bug where Sass would add an extra */ after loud comments with
    whitespace after an explicit */ in the indented syntax.

  • Potentially breaking bug fix: Adding text after an explicit */ in the
    indented syntax is now an error, rather than silently generating invalid CSS.

Embedded Host
  • Properly export the SassBoolean type.

v1.79.5

Compare Source

  • Changes to how selector.unify() and @extend combine selectors:

    • The relative order of pseudo-classes (like :hover) and pseudo-elements
      (like ::before) within each original selector is now preserved when
      they're combined.

    • Pseudo selectors are now consistently placed at the end of the combined
      selector, regardless of which selector they came from. Previously, this
      reordering only applied to pseudo-selectors in the second selector.

  • Tweak the color transformation matrices for OKLab and OKLCH to match the
    newer, more accurate values in the CSS spec.

  • Fix a slight inaccuracy case when converting to srgb-linear and
    display-p3.

  • Potentially breaking bug fix: math.unit() now wraps multiple denominator
    units in parentheses. For example, px/(em*em) instead of px/em*em.

Command-Line Interface
  • Use @parcel/watcher to watch the filesystem when running from JavaScript and
    not using --poll. This should mitigate more frequent failures users have
    been seeing since version 4.0.0 of Chokidar, our previous watching tool, was
    released.
JS API
  • Fix SassColor.interpolate() to allow an undefined options parameter, as
    the types indicate.
Embedded Sass
  • Properly pass missing color channel values to and from custom functions.

v1.79.4

Compare Source

JS API
  • Fix a bug where passing green or blue to color.change() for legacy
    colors would fail.

v1.79.3

Compare Source

  • Update the $channel parameter in the suggested replacement for
    color.red(), color.green(), color.blue(), color.hue(),
    color.saturation(), color.lightness(), color.whiteness(), and
    color.blackness() to use a quoted string.

v1.79.2

Compare Source

  • Add a $space parameter to the suggested replacement for color.red(),
    color.green(), color.blue(), color.hue(), color.saturation(),
    color.lightness(), color.whiteness(), and color.blackness().

  • Update deprecation warnings for the legacy JS API to include a link to
    relevant documentation.

v1.79.1

Compare Source

  • No user-visible changes.

v1.79.0

Compare Source

  • Breaking change: Passing a number with unit % to the $alpha parameter
    of color.change(), color.adjust(), change-color(), and adjust-color()
    is now interpreted as a percentage, instead of ignoring the unit. For example,
    color.change(red, $alpha: 50%) now returns rgb(255 0 0 / 0.5).

  • Potentially breaking compatibility fix: Sass no longer rounds RGB channels
    to the nearest integer. This means that, for example, rgb(0 0 1) != rgb(0 0 0.6). This matches the latest version of the CSS spec and browser behavior.

  • Potentially breaking compatibility fix: Passing large positive or negative
    values to color.adjust() can now cause a color's channels to go outside that
    color's gamut. In most cases this will currently be clipped by the browser and
    end up showing the same color as before, but once browsers implement gamut
    mapping it may produce a different result.

  • Add support for CSS Color Level 4 color spaces. Each color value now tracks
    its color space along with the values of each channel in that color space.
    There are two general principles to keep in mind when dealing with new color
    spaces:

    1. With the exception of legacy color spaces (rgb, hsl, and hwb), colors
      will always be emitted in the color space they were defined in unless
      they're explicitly converted.

    2. The color.to-space() function is the only way to convert a color to
      another color space. Some built-in functions may do operations in a
      different color space, but they'll always convert back to the original space
      afterwards.

  • rgb colors can now have non-integer channels and channels outside the normal
    gamut of 0-255. These colors are always emitted using the rgb() syntax so
    that modern browsers that are being displayed on wide-gamut devices can
    display the most accurate color possible.

  • Add support for all the new color syntax defined in Color Level 4, including:

    • oklab(), oklch(), lab(), and lch() functions;
    • a top-level hwb() function that matches the space-separated CSS syntax;
    • and a color() function that supports the srgb, srgb-linear,
      display-p3, a98-rgb, prophoto-rgb, rec2020, xyz, xyz-d50, and
      xyz-d65 color spaces.
  • Add new functions for working with color spaces:

    • color.to-space($color, $space) converts $color to the given $space. In
      most cases this conversion is lossless—the color may end up out-of-gamut for
      the destination color space, but browsers will generally display it as best
      they can regardless. However, the hsl and hwb spaces can't represent
      out-of-gamut colors and so will be clamped.

    • color.channel($color, $channel, $space: null) returns the value of the
      given $channel in $color, after converting it to $space if necessary.
      It should be used instead of the old channel-specific functions such as
      color.red() and color.hue().

    • color.same($color1, $color2) returns whether two colors represent the same
      color even across color spaces. It differs from $color1 == $color2 because
      == never consider colors in different (non-legacy) spaces as equal.

    • color.is-in-gamut($color, $space: null) returns whether $color is
      in-gamut for its color space (or $space if it's passed).

    • color.to-gamut($color, $space: null) returns $color constrained to its
      space's gamut (or to $space's gamut, if passed). This is generally not
      recommended since even older browsers will display out-of-gamut colors as
      best they can, but it may be necessary in some cases.

    • color.space($color): Returns the name of $color's color space.

    • color.is-legacy($color): Returns whether $color is in a legacy color
      space (rgb, hsl, or hwb).

    • color.is-powerless($color, $channel, $space: null): Returns whether the
      given $channel of $color is powerless in $space (or its own color
      space). A channel is "powerless" if its value doesn't affect the way the
      color is displayed, such as hue for a color with 0 chroma.

    • color.is-missing($color, $channel): Returns whether $channel's value is
      missing in $color. Missing channels can be explicitly specified using the
      special value none and can appear automatically when color.to-space()
      returns a color with a powerless channel. Missing channels are usually
      treated as 0, except when interpolating between two colors and in
      color.mix() where they're treated as the same value as the other color.

  • Update existing functions to support color spaces:

    • hsl() and color.hwb() no longer forbid out-of-bounds values. Instead,
      they follow the CSS spec by clamping them to within the allowed range.

    • color.change(), color.adjust(), and color.scale() now support all
      channels of all color spaces. However, if you want to modify a channel
      that's not in $color's own color space, you have to explicitly specify the
      space with the $space parameter. (For backwards-compatibility, this
      doesn't apply to legacy channels of legacy colors—for example, you can still
      adjust an rgb color's saturation without passing $space: hsl).

    • color.mix() and color.invert() now support the standard CSS algorithm
      for interpolating between two colors (the same one that's used for gradients
      and animations). To use this, pass the color space to use for interpolation
      to the $method parameter. For polar color spaces like hsl and oklch,
      this parameter also allows you to specify how hue interpolation is handled.

    • color.complement() now supports a $space parameter that indicates which
      color space should be used to take the complement.

    • color.grayscale() now operates in the oklch space for non-legacy colors.

    • color.ie-hex-str() now automatically converts its color to the rgb space
      and gamut-maps it so that it can continue to take colors from any color
      space.

  • The following functions are now deprecated, and uses should be replaced with
    the new color-space-aware functions defined above:

    • The color.red(), color.green(), color.blue(), color.hue(),
      color.saturation(), color.lightness(), color.whiteness(), and
      color.blackness() functions, as well as their global counterparts, should
      be replaced with calls to color.channel().

    • The global adjust-hue(), saturate(), desaturate(), lighten(),
      darken(), transaprentize(), fade-out(), opacify(), and fade-in()
      functions should be replaced by color.adjust() or color.scale().

  • Add a global-builtin future deprecation, which can be opted-into with the
    --future-deprecation flag or the futureDeprecations option in the JS or
    Dart API. This emits warnings when any global built-in functions that are
    now available in sass: modules are called. It will become active by default
    in an upcoming release alongside the @import deprecation.

Dart API
  • Added a ColorSpace class which represents the various color spaces defined
    in the CSS spec.

  • Added SassColor.space which returns a color's color space.

  • Added SassColor.channels and .channelsOrNull which returns a list
    of channel values, with missing channels converted to 0 or exposed as null,
    respectively.

  • Added SassColor.isLegacy, .isInGamut, .channel(), .isChannelMissing(),
    .isChannelPowerless(), .toSpace(), .toGamut(), .changeChannels(), and
    .interpolate() which do the same thing as the Sass functions of the
    corresponding names.

  • SassColor.rgb() now allows out-of-bounds and non-integer arguments.

  • SassColor.hsl() and .hwb() now allow out-of-bounds arguments.

  • Added SassColor.hwb(), .srgb(), .srgbLinear(), .displayP3(),
    .a98Rgb(), .prophotoRgb(), .rec2020(), .xyzD50(), .xyzD65(),
    .lab(), .lch(), .oklab(), .oklch(), and .forSpace() constructors.

  • Deprecated SassColor.red, .green, .blue, .hue, .saturation,
    .lightness, .whiteness, and .blackness in favor of
    SassColor.channel().

  • Deprecated SassColor.changeRgb(), .changeHsl(), and .changeHwb() in
    favor of SassColor.changeChannels().

  • Added SassNumber.convertValueToUnit() as a shorthand for
    SassNumber.convertValue() with a single numerator.

  • Added InterpolationMethod and HueInterpolationMethod which collectively
    represent the method to use to interpolate two colors.

JS API
  • While the legacy API has been deprecated since we released the modern API, we
    now emit warnings when the legacy API is used to make sure users are aware
    that it will be removed in Dart Sass 2.0.0. In the meantime, you can silence
    these warnings by passing legacy-js-api in silenceDeprecations when using
    the legacy API.

  • Modify SassColor to accept a new space option, with support for all the
    new color spaces defined in Color Level 4.

  • Add SassColor.space which returns a color's color space.

  • Add SassColor.channels and .channelsOrNull which returns a list of channel
    values, with missing channels converted to 0 or exposed as null, respectively.

  • Add SassColor.isLegacy, .isInGamut(), .channel(), .isChannelMissing(),
    .isChannelPowerless(), .toSpace(), .toGamut(), .change(), and
    .interpolate() which do the same thing as the Sass functions of the
    corresponding names.

  • Deprecate SassColor.red, .green, .blue, .hue, .saturation,
    .lightness, .whiteness, and .blackness in favor of
    SassColor.channel().

Embedded Sass
  • Add Color SassScript value, with support for all the new color spaces
    defined in Color Level 4.

  • Remove RgbColor, HslColor and HwbColor SassScript values.

v1.78.0

Compare Source

  • The meta.feature-exists function is now deprecated. This deprecation is
    named feature-exists.

  • Fix a crash when using @at-root without any queries or children in the
    indented syntax.

JS API
  • Backport the deprecation options (fatalDeprecations, futureDeprecations,
    and silenceDeprecations) to the legacy JS API. The legacy JS API is itself
    deprecated, and you should move off of it if possible, but this will allow
    users of bundlers and other tools that are still using the legacy API to
    still control deprecation warnings.

  • Fix a bug where accessing SourceSpan.url would crash when a relative URL was
    passed to the Sass API.

Embedded Sass
  • Explicitly expose a sass executable from the sass-embedded npm package.
    This was intended to be included in 1.63.0, but due to the way
    platform-specific dependency executables are installed it did not work as
    intended. Now users can run npx sass for local installs or just sass when
    sass-embedded is installed globally.

  • Add linux-riscv64, linux-musl-riscv64, and android-riscv64 support for the
    sass-embedded npm package.

  • Fix an edge case where the Dart VM could hang when shutting down when requests
    were in flight.

  • Fix a race condition where the embedded host could fail to shut down if it was
    closed around the same time a new compilation was started.

  • Fix a bug where parse-time deprecation warnings could not be controlled by
    the deprecation options in some circumstances.

v1.77.8

Compare Source

  • No user-visible changes.

v1.77.7

Compare Source

  • Declarations that appear after nested rules are deprecated, because the
    semantics Sass has historically used are different from the semantics
    specified by CSS. In the future, Sass will adopt the standard CSS semantics.

    See the Sass website for details.

  • Potentially breaking bug fix: // in certain places such as unknown
    at-rule values was being preserved in the CSS output, leading to potentially
    invalid CSS. It's now properly parsed as a silent comment and omitted from the
    CSS output.

v1.77.6

Compare Source

  • Fix a few cases where comments and occasionally even whitespace wasn't allowed
    between the end of Sass statements and the following semicolon.

v1.77.5

Compare Source

  • Fully trim redundant selectors generated by @extend.

v1.77.4

Compare Source

Embedded Sass
  • Support passing Version input for fatalDeprecations as string over
    embedded protocol.

  • Fix a bug in the JS Embedded Host where Version could be incorrectly accepted
    as input for silenceDeprecations and futureDeprecations in pure JS.

v1.77.3

Compare Source

Dart API
  • Deprecation.duplicateVariableFlags has been deprecated and replaced with
    Deprecation.duplicateVarFlags to make it consistent with the
    duplicate-var-flags name used on the command line and in the JS API.

v1.77.2

Compare Source

  • Don't emit deprecation warnings for functions and mixins beginning with __.

  • Allow user-defined functions whose names begin with _ and otherwise look
    like vendor-prefixed functions with special CSS syntax.

Command-Line Interface
  • Properly handle the --silence-deprecation flag.

  • Handle the --fatal-deprecation and --future-deprecation flags for
    --interactive mode.

v1.77.1

Compare Source

  • Fix a crash that could come up with importers in certain contexts.

v1.77.0

Compare Source

  • Don't throw errors for at-rules in keyframe blocks.

v1.76.0

Compare Source

  • Throw errors for misplaced statements in keyframe blocks.

  • Mixins and functions whose names begin with -- are now deprecated for
    forwards-compatibility with the in-progress CSS functions and mixins spec.
    This deprecation is named css-function-mixin.

v1.75.0

Compare Source

  • Fix a bug in which stylesheet canonicalization could be cached incorrectly
    when custom importers or the Node.js package importer made decisions based on
    the URL of the containing stylesheet.
JS API
  • Allow importer to be passed without url in StringOptionsWithImporter.

v1.74.1

Compare Source

  • No user-visible changes.

v1.72.0

Compare Source

  • Support adjacent /s without whitespace in between when parsing plain CSS
    expressions.

  • Allow the Node.js pkg: importer to load Sass stylesheets for package.json
    exports field entries without extensions.

  • When printing suggestions for variables, use underscores in variable names
    when the original usage used underscores.

JavaScript API
  • Properly resolve pkg: imports with the Node.js package importer when
    arguments are passed to the JavaScript process.

v1.71.1

Compare Source

Command-Line Interface
  • Ship the musl Linux release with the proper Dart executable.
JavaScript API
  • Export the NodePackageImporter class in ESM mode.

  • Allow NodePackageImporter to locate a default directory even when the
    entrypoint is an ESM module.

Dart API
  • Make passing a null argument to NodePackageImporter() a static error rather
    than just a runtime error.
Embedded Sass
  • In the JS Embedded Host, properly install the musl Linux embedded compiler
    when running on musl Linux.

v1.71.0

Compare Source

For more information about pkg: importers, see the
announcement
on the Sass blog.

Command-Line Interface
  • Add a --pkg-importer flag to enable built-in pkg: importers. Currently
    this only supports the Node.js package resolution algorithm, via
    --pkg-importer=node. For example, @use "pkg:bootstrap" will load
    node_modules/bootstrap/scss/bootstrap.scss.
JavaScript API
  • Add a NodePackageImporter importer that can be passed to the importers
    option. This loads files using the pkg: URL scheme according to the Node.js
    package resolution algorithm. For example, @use "pkg:bootstrap" will load
    node_modules/bootstrap/scss/bootstrap.scss. The constructor takes a single
    optional argument, which indicates the base directory to use when locating
    node_modules directories. It defaults to
    path.dirname(require.main.filename).
Dart API
  • Add a NodePackageImporter importer that can be passed to the importers
    option. This loads files using the pkg: URL scheme according to the Node.js
    package resolution algorithm. For example, @use "pkg:bootstrap" will load
    node_modules/bootstrap/scss/bootstrap.scss. The constructor takes a single
    argument, which indicates the base directory to use when locating
    node_modules directories.

v1.70.0

Compare Source

JavaScript API
  • Add a sass.initCompiler() function that returns a sass.Compiler object
    which supports compile() and compileString() methods with the same API as
    the global Sass object. On the Node.js embedded host, each sass.Compiler
    object uses a single long-lived subprocess, making compiling multiple
    stylesheets much more efficient.

  • Add a sass.initAsyncCompiler() function that returns a sass.AsyncCompiler
    object which supports compileAsync() and compileStringAsync() methods with
    the same API as the global Sass object. On the Node.js embedded host, each
    sass.AsynCompiler object uses a single long-lived subprocess, making
    compiling multiple stylesheets much more efficient.

Embedded Sass
  • Support the CompileRequest.silent field. This allows compilations with no
    logging to avoid unnecessary request/response cycles.

  • The Dart Sass embedded compiler now reports its name as "dart-sass" rather
    than "Dart Sass", to match the JS API's info field.

v1.69.7

Compare Source

Embedded Sass
  • In the JS Embedded Host, properly install the x64 Dart Sass executable on
    ARM64 Windows.

v1.69.6

Compare Source

  • Produce better output for numbers with complex units in meta.inspect() and
    debugging messages.

  • Escape U+007F DELETE when serializing strings.

  • When generating CSS error messages to display in-browser, escape all code
    points that aren't in the US-ASCII region. Previously only code points U+0100
    LATIN CAPITAL LETTER A WITH MACRON were escaped.

  • Provide official releases for musl LibC and for Android.

  • Don't crash when running meta.apply() in asynchronous mode.

JS API
  • Fix a bug where certain exceptions could produce SourceSpans that didn't
    follow the documented SourceSpan API.

v1.69.5

Compare Source

JS API
  • Compatibility with Node.js 21.0.0.

v1.69.4

Compare Source

  • No user-visible changes.

v1.69.3

Compare Source

Embedded Sass
  • Fix TypeScript type locations in package.json.

v1.69.2

Compare Source

JS API
  • Fix a bug where Sass crashed when running in the browser if there was a global
    variable named process.

v1.69.1

Compare Source

  • No user-visible changes.

v1.69.0

Compare Source

  • Add a meta.get-mixin() function that returns a mixin as a first-class Sass
    value.

  • Add a meta.apply() mixin that includes a mixin value.

  • Add a meta.module-mixins() function which returns a map from mixin names in
    a module to the first-class mixins that belong to those names.

  • Add a meta.accepts-content() function which returns whether or not a mixin
    value can take a content block.

  • Add support for the relative color syntax from CSS Color 5. This syntax
    cannot be used to create Sass color values. It is always emitted as-is in the
    CSS output.

Dart API
  • Deprecate Deprecation.calcInterp since it was never actually emitted as a
    deprecation.
Embedded Sass
  • Fix a rare race condition where the embedded compiler could freeze when a
    protocol error was immediately followed by another request.

v1.68.0

Compare Source

  • Fix the source spans associated with the abs-percent deprecation.
JS API
  • Non-filesystem importers can now set the nonCanonicalScheme field, which
    declares that one or more URL schemes (without :) will never be used for
    URLs returned by the canonicalize() method.

  • Add a containingUrl field to the canonicalize() and findFileUrl()
    methods of importers, which is set to the canonical URL of the stylesheet that
    contains the current load. For filesystem importers, this is always set; for
    other importers, it's set only if the current load has no URL scheme, or if
    its URL scheme is declared as non-canonical by the importer.

Dart API
  • Add AsyncImporter.isNonCanonicalScheme, which importers (async or sync) can
    use to indicate that a certain URL scheme will never be used for URLs returned
    by the canonicalize() method.

  • Add AsyncImporter.containingUrl, which is set during calls to the
    canonicalize() method to the canonical URL of the stylesheet that contains
    the current load. This is set only if the current load has no URL scheme, or
    if its URL scheme is declared as non-canonical by the importer.

Embedded Sass
  • The CalculationValue.interpolation field is deprecated and will be removed
    in a future version. It will no longer be set by the compiler, and if the host
    sets it it will be treated as equivalent to CalculationValue.string except
    that "(" and ")" will be added to the beginning and end of the string
    values.

  • Properly include TypeScript types in the sass-embedded package.

v1.67.0

Compare Source

  • All functions defined in CSS Values and Units 4 are now once again parsed as
    calculation objects: round(), mod(), rem(), sin(), cos(), tan(),
    asin(), acos(), atan(), atan2(), pow(), sqrt(), hypot(),
    log(), exp(), abs(), and sign().

    Unlike in 1.65.0, function calls are not locked into being parsed as
    calculations or plain Sass functions at parse-time. This means that
    user-defined functions will take precedence over CSS calculations of the same
    name. Although the function names calc() and clamp() are still forbidden,
    users may continue to freely define functions whose names overlap with other
    CSS calculations (including abs(), min(), max(), and round() whose
    names overlap with global Sass functions).

  • Breaking change: As a consequence of the change in calculation parsing
    described above, calculation functions containing interpolation are now parsed
    more strictly than before. However, almost all interpolations that would
    have produced valid CSS will continue to work. The only exception is
    #{$variable}% which is not valid in Sass and is no longer valid in
    calculations. Instead of this, either use $variable directly and ensure it
    already has the % unit, or write ($variable * 1%).

  • Potentially breaking bug fix: The importer used to load a given file is no
    longer used to load absolute URLs that appear in that file. This was
    unintented behavior that contradicted the Sass specification. Absolute URLs
    will now correctly be loaded only from the global importer list. This applies
    to the modern JS API, the Dart API, and the embedded protocol.

Embedded Sass
  • Substantially improve the embedded compiler's performance when compiling many
    files or files that require many importer or function call round-trips with
    the embedded host.

v1.66.1

Compare Source

JS API
  • Fix a bug where Sass compilation could crash in strict mode if passed a
    callback that threw a string, boolean, number, symbol, or bignum.

v1.66.0

Compare Source

  • Breaking change: Drop support for the additional CSS calculations defined
    in CSS Values and Units 4. Custom Sass functions whose names overlapped with
    these new CSS functions were being parsed as CSS calculations instead, causing
    an unintentional breaking change outside our normal [compatibility policy] for
    CSS compatibility changes.

    Support will be added again in a future version, but only after Sass has
    emitted a deprecation warning for all functions that will break for at least
    three months prior to the breakage.

v1.65.1

Compare Source

  • Update abs-percent deprecatedIn version to 1.65.0.

v1.65.0

Compare Source

  • All functions defined in CSS Values and Units 4 are now parsed as calculation
    objects: round(), mod(), rem(), sin(), cos(), tan(), asin(),
    acos(), atan(), atan2(), pow(), sqrt(), hypot(), log(), exp(),
    abs(), and sign().

  • Deprecate explicitly passing the % unit to the global abs() function. In
    future releases, this will emit a CSS abs() function to be resolved by the
    browser. This deprecation is named abs-percent.

v1.64.2

Compare Source

  • No user-visible changes.

v1.64.1

Compare Source

Embedded Sass
  • Fix a bug where a valid SassCalculation.clamp() with less than 3 arguments
    would throw an error.

v1.64.0

Compare Source

  • Comments that appear before or between @use and @forward rules are now
    emitted in source order as much as possible, instead of always being emitted
    after the CSS of all module dependencies.

  • Fix a bug where an interpolation in a custom property name crashed if the file
    was loaded by a @use nested in an @import.

JavaScript API
  • Add a new SassCalculation type that represents the calculation objects added
    in Dart Sass 1.40.0.

  • Add Value.assertCalculation(), which returns the value if it's a
    SassCalculation and throws an error otherwise.

  • Produce a better error message when an environment that supports some Node.js
    APIs loads the browser entrypoint but attempts to access the filesystem.

Embedded Sass
  • Fix a bug where nested relative @imports failed to load when using the
    deprecated functions render or renderSync and those relative imports were
    loaded multiple times across different files.

v1.63.6

Compare Source

JavaScript API
  • Fix import sass from 'sass' again after it was broken in the last release.
Embedded Sass
  • Fix the exports declaration in package.json.

v1.63.5

Compare Source

JavaScript API
  • Fix a bug where loading the package through both CJS require() and ESM
    import could crash on Node.js.
Embedded Sass
  • Fix a deadlock when running at high concurrency on 32-bit systems.

  • Fix a race condition where the embedded compiler could deadlock or crash if a
    compilation ID was reused immediately after the compilation completed.

v1.63.4

Compare Source

JavaScript API
  • Re-enable support for import sass from 'sass' when loading the package from
    an ESM module in Node.js. However, this syntax is now deprecated; ESM users
    should use import * as sass from 'sass' instead.

    On the browser and other ESM-only platforms, only import * as sass from 'sass' is supported.

  • Properly export the legacy API values TRUE, FALSE, NULL, and types from
    the ECMAScript module API.

Embedded Sass
  • Fix a race condition where closing standard input while requests are in-flight
    could sometimes cause the process to hang rather than shutting down
    gracefully.

  • Properly include the root stylesheet's URL in the set of loaded URLs when it
    fails to parse.

v1.63.3

Compare Source

JavaScript API
  • Fix loading Sass as an ECMAScript module on Node.js.

v1.63.2

Compare Source

  • No user-visible changes.

v1.63.1

Compare Source

  • No user-visible changes.

v1.63.0

Compare Source

JavaScript API
  • Dart Sass's JS API now supports running in the browser. Further details and
    instructions for use are in the README.
Embedded Sass
  • The Dart Sass embedded compiler is now included as part of the primary Dart
    Sass distribution, rather than a separate executable. To use the embedded
    compiler, just run sass --embedded from any Sass executable (other than the
    pure JS executable).

    The Node.js embedded host will still be distributed as the sass-embedded
    package on npm. The only change is that it will now provide direct access to a
    sass executable with the same CLI as the sass package.

  • The Dart Sass embedded compiler now uses version 2.0.0 of the Sass embedded
    protocol. See the spec for a full description of the
    protocol, and the changelog for a summary of
    changes since version 1.2.0.

  • The Dart Sass embedded compiler now runs multiple simultaneous compilations in
    parallel, rather than serially.

v1.62.1

Compare Source

  • Fix a bug where :has(+ &) and related constructs would drop the leading
    combinator.

v1.62.0

Compare Source

  • Deprecate the use of multiple !global or !default flags on the same
    variable. This deprecation is named duplicate-var-flags.

  • Allow special numbers like var() or calc() in the global functions:
    grayscale(), invert(), saturate(), and opacity(). These are also
    native CSS filter functions. This is in addition to number values which were
    already allowed.

  • Fix a cosmetic bug where an outer rule could be duplicated after nesting was
    resolved, instead of re-using a shared rule.

v1.61.0

Compare Source

  • Potentially breaking change: Drop support for End-of-Life Node.js 12.

  • Fix remaining cases for the performance regression introduced in 1.59.0.

Embedded Sass
  • The JS embedded host now loads files from the working directory when using the
    legacy API.

v1.60.0

Compare Source

  • Add support for the pi, e, infinity, -infinity, and NaN constants in
    calculations. These will be interpreted as the corresponding numbers.

  • Add support for unknown constants in calculations. These will be interpreted
    as unquoted strings.

  • Serialize numbers with value infinity, -infinity, and NaN to calc()
    expressions rather than CSS-invalid identifiers. Numbers with complex units
    still can't be serialized.

v1.59.3

Compare Source

  • Fix a performance regression introduced in 1.59.0.

  • The NPM release of 1.59.0 dropped support for Node 12 without actually
    indicating so in its pubspec. This release temporarily adds back support so
    that the latest Sass version that declares it supports Node 12 actually does
    so. However, Node 12 is now end-of-life, so we will drop support for it
    properly in an upcoming release.

v1.59.2

Compare Source

  • No user-visible changes.

v1.59.1

Compare Source

  • No user-visible changes.

v1.59.0

Compare Source

Command Line Interface
  • Added a new --fatal-deprecation flag that lets you treat a deprecation
    warning as an error. You can pass an individual deprecation ID
    (e.g. slash-div) or you can pass a Dart Sass version to treat all
    deprecations initially emitted in that version or earlier as errors.

  • New --future-deprecation flag that lets you opt into warning for use of
    certain features that will be deprecated in the future. At the moment, the
    only option is --future-deprecation=import, which will emit warnings for
    Sass @import rules, which are not yet deprecated, but will be in the future.

Dart API
  • New Deprecation enum, which contains the different current and future
    deprecations used by the new CLI flags.

  • The compile methods now take in fatalDeprecations and futureDeprecations
    parameters, which work similarly to the CLI flags.

v1.58.3

Compare Source

  • No user-visible changes.

v1.58.2

Compare Source

Command Line Interface
  • Add a timestamp to messages printed in --watch mode.

  • Print better calc()-based suggestions for /-as-division expression that
    contain calculation-incompatible constructs like unary minus.

v1.58.1

Compare Source

  • Emit a unitless hue when serializing hsl() colors. The deg unit is
    incompatible with IE, and while that officially falls outside our
    compatibility policy, it's better to lean towards greater compatibility.

v1.58.0

Compare Source

  • Remove sourcemap comments from Sass sources. The generated sourcemap comment
    for the compiled CSS output remains unaffected.

  • Fix a bug in @extend logic where certain selectors with three or more
    combinators were incorrectly considered superselectors of similar selectors
    with fewer combinators, causing them to be incorrectly trimmed from the
    output.

  • Produce a better error message for a number with a leading + or -, a
    decimal point, but no digits.

  • Produce a better error message for a nested property whose name starts with
    --.

  • Fix a crash when a selector ends in an escaped backslash.

  • Add the relative length units from CSS Values 4 and CSS Contain 3 as known
    units to validate bad computation in calc.

Command Line Interface
  • The --watch flag will now track loads through calls to meta.load-css() as
    long as their URLs are literal strings without any interpolation.

v1.57.1

Compare Source

  • No user-visible changes.

v1.57.0

Compare Source

  • Add a split($string, $separator, $limit: null) function to sass:string
    that splits a string into separate substrings based on a separator string.
JavaScript API
  • Potentially breaking bug fix: Custom functions in both the modern and
    legacy API now properly reject signatures with whitespace between the function
    name and parentheses.

  • Custom functions in the legacy API now allow signatures with whitespace before
    the function name, to match a bug in Node Sass.

Dart API
  • Potentially breaking bug fix: Callable.fromSignature() and
    AsyncCallable.fromSignature() now reject signatures with whitespace between
    the function name and parentheses.

v1.56.2

Compare Source

Embedded Sass

v1.56.1

Compare Source

Embedded Sass
  • Importer results now validate that contents is actually a string and whether
    sourceMapUrl is an absolute URL.

v1.56.0

Compare Source

  • Potentially breaking change: To match the CSS spec, SassScript expressions
    beginning with not or ( are no longer supported at the beginning of
    parenthesized sections of media queries. For example,

    @&#8203;media (width >= 500px) and (not (grid))
    

    will now be emitted unchanged, instead of producing

    @&#8203;media (width >= 500px) and (false)
    

    See the Sass website for details.

  • Potentially breaking bug fix: Angle units like rad or turn are now
    properly converted to equivalent deg values for hsl(), hsla(),
    adjust-hue(), color.adjust(), and color.change().

    See the Sass website for
    details.

  • Fix indentation for selectors that span multiple lines in a @media query.

  • Emit a deprecation warning when passing $alpha values with units to
    color.adjust() or color.change(). This will be an error in Dart Sass
    2.0.0.

    See the Sass website for
    details.

  • Emit a deprecation warning when passing a $weight value with no units or
    with units other than % to color.mix(). This will be an error in Dart Sass
    2.0.0.

    See the Sass website for
    details.

  • Emit a deprecation warning when passing $n values with units to list.nth()
    or list.set-nth(). This will be an error in Dart Sass 2.0.0.

    See the Sass website for
    details.

  • Improve existing deprecation warnings to wrap /-as-division suggestions in
    calc() expressions.

  • Properly mark the warning for passing numbers with units to random() as a
    deprecation warning.

  • Fix a bug where @extend could behave unpredicatably when used along with
    meta.load-css() and shared modules that contained no CSS themselves but
    loaded CSS from other modules.

Dart API
  • Emit a deprecation warning when passing a sassIndex with units to
    Value.sassIndexToListIndex(). This will be an error in Dart Sass 2.0.0.
JS API
  • Importer results now validate whether contents is actually a string type.

  • Importer result argument errors are now rendered correctly.

v1.55.0

Compare Source

  • Potentially breaking bug fix: Sass numbers are now universally stored as
    64-bit floating-point numbers, rather than sometimes being stored as integers.
    This will generally make arithmetic with very large numbers more reliable and
    more consistent across platforms, but it does mean that numbers between nine
    quadrillion and nine quintillion will no longer be represented with full
    accuracy when compiling Sass on the Dart VM.

  • Potentially breaking bug fix: Sass equality is now properly transitive.
    Two numbers are now considered equal (after doing unit conversions) if they
    round to the same 1e-11th. Previously, numbers were considered equal if they
    were within 1e-11 of one another, which led to some circumstances where $a == $b and $b == $c but $a != $b.

  • Potentially breaking bug fix: Various functions in sass:math no longer
    treat floating-point numbers that are very close (but not identical) to
    integers as integers. Instead, these functions now follow the floating-point
    specification exactly. For example, math.pow(0.000000000001, -1) now returns
    1000000000000 instead of Infinity.

  • Emit a deprecation warning for $a -$b and $a +$b, since these look like
    they could be unary operations but they're actually parsed as binary
    operations. Either explicitly write $a - $b or $a (-$b). See
    https://sass-lang.com/d/strict-unary for more details.

Dart API
  • Add an optional argumentName parameter to SassScriptException() to make it
    easier to throw exceptions associated with particular argument names.

  • Most APIs that previously returned num now return double. All APIs
    continue to accept num, although in Dart 2.0.0 these APIs will be changed
    to accept only double.

JS API
  • Fix a bug in which certain warning spans would not have their properties
    accessible by the JS API.

v1.54.9

Compare Source

  • Fix an incorrect span in certain @media query deprecation warnings.

v1.54.8

Compare Source

  • No user-visible changes.

v1.54.7

Compare Source

  • Add support for 32-bit ARM releases on Linux.

v1.54.6

Compare Source

  • Fix a bug where a @media query could be incorrectly omitted from a
    stylesheet if it had multiple levels of nested @media queries within it
    and the inner queries were mergeable but the outer query was not.

v1.54.5

Compare Source

  • Properly consider a ~ c to be a superselector of a ~ b ~ c and a + b + c.

  • Properly consider b > c to be a superselector of a > b > c, and similarly
    for other combinators.

  • Properly calculate specificity for selector pseudoclasses.

  • Deprecate use of random() when $limit has units to make it explicit that
    random() currently ignores units. A future version will no longer ignore
    units.

  • Don't throw an error when the same module is @forwarded multiple times
    through a configured module.

Embedded Sass
  • Rather than downloading the embedded compiler for the local platform on
    install, the sass-embedded npm package now declares optional dependencies on
    platform-specific embedded compiler packages.

v1.54.4

Compare Source

  • Improve error messages when passing incorrect units that are also
    out-of-bounds to various color functions.

v1.54.3

Compare Source

  • Release a native ARM64 executable for Mac OS.

v1.54.2

Compare Source

  • No user-visible changes.

v1.54.1

Compare Source

  • When unifying selectors for @extend and selector.unify(), ensure that
    :root, :scope, :host, and :host-context only appear at the beginning
    of complex selectors.

v1.54.0

Compare Source

  • Deprecate selectors with leading or trailing combinators, or with multiple
    combinators in a row. If they're included in style rules after nesting is
    resolved, Sass will now produce a deprecation warning and, in most cases, omit
    the selector. Leading and trailing combinators can still be freely used for
    nesting purposes.

    See https://sass-lang.com/d/bogus-combinators for more details.

  • Add partial support for new media query syntax from Media Queries Level 4. The
    only exception are logical operations nested within parentheses, as these were
    previously interpreted differently as SassScript expressions.

    A parenthesized media condition that begins with not or an opening
    parenthesis now produces a deprecation warning. In a future release, these
    will be interpreted as plain CSS instead.

  • Deprecate passing non-deg units to color.hwb()'s $hue argument.

  • Fix a number of bugs when determining whether selectors with pseudo-elements
    are superselectors.

  • Treat * as a superselector of all selectors.

Dart API
  • Add a top-level fakeFromImport() function for testing custom importers
    that use AsyncImporter.fromImport.
JS API
  • Add a charset option that controls whether or not Sass emits a
    @charset/BOM for non-ASCII stylesheets.

  • Fix Sass npm package types for TS 4.7+ Node16 and NodeNext module resolution.

v1.53.0

Compare Source

  • Add support for calling var() with an empty second argument, such as
    var(--side, ).
JS API
  • Fix a bug where meta.load-css() would sometimes resolve relative URLs
    incorrectly when called from a mixin using the legacy JS API.
Embedded Sass
  • Respect npm's proxy settings when downloading the embedded Sass compiler.

v1.52.3

Compare Source

  • Fix crash when trailing loud comments (/* ... */) appear twice in a row
    across two different imports which themselves imported the same file each.

v1.52.2

Compare Source

  • Preserve location of trailing loud comments (/* ... */) instead of pushing
    the comment to the next line.

v1.52.1

Compare Source

Command Line Interface
  • Fix a bug where --watch mode would close immediately in TTY mode. This was
    caused by our change to close --watch when stdin was closed outside of TTY
    mode, which has been reverted for now while we work on a fix.

v1.52.0

Compare Source

  • Add support for arbitrary modifiers at the end of plain CSS imports, in
    addition to the existing supports() and media queries. Sass now allows any
    sequence of identifiers of functions after the URL of an import for forwards
    compatibility with future additions to the CSS spec.

  • Fix an issue where source locations tracked through variable references could
    potentially become incorrect.

  • Fix a bug where a loud comment in the source can break the source map when
    embedding the sources, when using the command-line interface or the legacy JS
    API.

JS API
  • SassNumber.assertUnit() and SassNumber.assertNoUnits() now correctly
    return the number called on when it passes the assertion.

v1.51.0

Compare Source

  • Potentially breaking change: Change the order of maps returned by
    map.deep-merge() to match those returned by map.merge(). All keys that
    appeared in the first map will now be listed first in the same order they
    appeared in that map, followed by any new keys added from the second map.

  • Improve the string output of some AST nodes in error messages.

tailwindlabs/tailwindcss (tailwindcss)

v3.4.15

Compare Source

  • Bump versions for security vulnerabilities (#​14697)
  • Ensure the TypeScript types for the boxShadow theme configuration allows arrays (#​14856)
  • Set fallback for opacity variables to ensure setting colors with the selection:* variant works in Chrome 131 (#​15003)

v3.4.14

Compare Source

Fixed
  • Don't set display: none on elements that use hidden="until-found" (#​14625)

v3.4.13

Compare Source

Fixed
  • Improve source glob verification performance (#​14481)

v3.4.12

Compare Source

Fixed
  • Ensure using @apply with utilities that use @defaults works with rules defined in the base layer when using optimizeUniversalDefaults (#​14427)

v3.4.11

Compare Source

Fixed
  • Allow anchor-size(…) in arbitrary values (#​14393)

v3.4.10

Compare Source

Fixed
  • Bump versions of plugins in the Standalone CLI (#​14185)

v3.4.9

Compare Source

Fixed
  • No longer warns when broad glob patterns are detecting vendor folders

v3.4.8

Compare Source

Fixed
  • Fix minification when using nested CSS (#​14105)
  • Warn when broad glob patterns are used in the content configuration (#​14140)

v3.4.7

Compare Source

Fixed
  • Fix class detection in Slim templates with attached attributes and ID (#​14019)
  • Ensure attribute values in data-* and aria-* modifiers are always quoted in the generated CSS (#​14037)

v3.4.6

Compare Source

Fixed
  • Fix detection of some utilities in Slim/Pug templates (#​14006)
Changed
  • Loosen :is() wrapping rules when using an important selector (#​13900)

v3.4.5

Compare Source

Fixed
  • Disable automatic var() injection for anchor properties (#​13826)
  • Use no value instead of blur(0px) for backdrop-blur-none and blur-none utilities (#​13830)
  • Add .mts and .cts config file detection (#​13940)
  • Don't generate utilities like px-1 unnecessarily when using utilities like px-1.5 (#​13959)
  • Always generate -webkit-backdrop-filter for backdrop-* utilities (#​13997)

v3.4.4

Compare Source

Fixed
  • Make it possible to use multiple <alpha-value> placeholders in a single color definition (#​13740)
  • Don't prefix classes in arbitrary values of has-*, group-has-*, and peer-has-* variants (#​13770)
  • Support negative values for {col,row}-{start,end} utilities (#​13781)
  • Update embedded browserslist database (#​13792)

v3.4.3

Compare Source

Fixed
  • Revert changes to glob handling (#​13384)

v3.4.2

Compare Source

Fixed
  • Ensure max specificity of 0,0,1 for button and input Preflight rules (#​12735)
  • Improve glob handling for folders with (, ), [ or ] in the file path (#​12715)
  • Split :has rules when using experimental.optimizeUniversalDefaults (#​12736)
  • Sort arbitrary properties alphabetically across multiple class lists (#​12911)
  • Add mix-blend-plus-darker utility (#​12923)
  • Ensure dashes are allowed in variant modifiers (#​13303)
  • Fix crash showing completions in Intellisense when using a custom separator (#​13306)
  • Transpile import.meta.url in config files (#​13322)
  • Reset letter spacing for form elements (#​13150)
  • Fix missing xx-large and remove double x-large absolute size (#​13324)
  • Don't error when encountering nested CSS unless trying to @apply a class that uses nesting (#​13325)
  • Ensure that arbitrary properties respect important configuration (#​13353)
  • Change dark mode selector so @apply works correctly with pseudo elements (#​13379)

v3.4.1

Compare Source

Fixed
  • Don't remove keyframe stops when using important utilities (#​12639)
  • Don't add spaces to gradients and grid track names when followed by calc() (#​12704)
  • Restore old behavior for class dark mode strategy (#​12717)
Added
  • Add new selector and variant strategies for dark mode (#​12717)
Changed
  • Support rtl and ltr variants on same element as dir attribute (#​12717)

v3.4.0

Compare Source

Tailwind CSS

Tailwind CSS v3.4 has arrived! Check out the announcement post for a guided tour through all of the highlights.

Added
  • Add svh, lvh, and dvh values to default height/min-height/max-height theme (#​11317)
  • Add has-* variants for :has(...) pseudo-class (#​11318)
  • Add text-wrap utilities including text-balance and text-pretty (#​11320, #​12031)
  • Extend default opacity scale to include all steps of 5 (#​11832)
  • Update Preflight html styles to include shadow DOM :host pseudo-class (#​11200)
  • Increase default values for grid-rows-* utilities from 1–6 to 1–12 (#​12180)
  • Add size-* utilities (#​12287)
  • Add utilities for CSS subgrid (#​12298)
  • Add spacing scale to min-w-*, min-h-*, and max-w-* utilities (#​12300)
  • Add forced-color-adjust utilities (#​11931)
  • Add forced-colors variant (#​11694, #​12582)
  • Add appearance-auto utility (#​12404)
  • Add logical property values for float and clear utilities (#​12480)
  • Add * variant for targeting direct children (#​12551)
Changed
  • Simplify the sans font-family stack (#​11748)
  • Disable the tap highlight overlay on iOS (#​12299)
  • Improve relative precedence of rtl, ltr, forced-colors, and dark variants (#​12584)

v3.3.7

Compare Source

Fixed
  • Fix support for container query utilities with arbitrary values (#​12534)
  • Fix custom config loading in Standalone CLI (#​12616)

v3.3.6

Compare Source

Fixed
  • Don’t add spaces to negative numbers following a comma (#​12324)
  • Don't emit @config in CSS when watching via the CLI (#​12327)
  • Improve types for resolveConfig (#​12272)
  • Ensure configured font-feature-settings for mono are included in Preflight (#​12342)
  • Improve candidate detection in minified JS arrays (without spaces) (#​12396)
  • Don't crash when given applying a variant to a negated version of a simple utility (#​12514)
  • Fix support for slashes in arbitrary modifiers (#​12515)
  • Fix source maps of variant utilities that come from an @layer rule (#​12508)
  • Fix loading of built-in plugins when using an ESM or TypeScript config with the Standalone CLI (#​12506)

v3.3.5

Compare Source

Fixed
  • Fix incorrect spaces around - in calc() expression (#​12283)

v3.3.4

Compare Source

Fixed
  • Improve normalisation of calc()-like functions (#​11686)
  • Skip calc() normalisation in nested theme() calls (#​11705)
  • Fix incorrectly generated CSS when using square brackets inside arbitrary properties (#​11709)
  • Make content optional for presets in TypeScript types (#​11730)
  • Handle variable colors that have variable fallback values (#​12049)
  • Batch reading content files to prevent too many open files error (#​12079)
  • Skip over classes inside :not(…) when nested in an at-rule (#​12105)
  • Update types to work with Node16 module resolution (#​12097)
  • Don’t crash when important and parent selectors are equal in @apply (#​12112)
  • Eliminate irrelevant rules when applying variants (#​12113)
  • Improve RegEx parser, reduce possibilities as the key for arbitrary properties (#​12121)
  • Fix sorting of utilities that share multiple candidates (#​12173)
  • Ensure variants with arbitrary values and a modifier are correctly matched in the RegEx based parser (#​12179)
  • Fix crash when watching renamed files on FreeBSD (#​12193)
  • Allow plugins from a parent document to be used in an iframe (#​12208)
  • Add types for tailwindcss/nesting (#​12269)
  • Bump jiti, fast-glob, and browserlist dependencies (#​11550)
  • Improve automatic var injection for properties that accept a <dashed-ident> (#​12236)

v3.3.3

Compare Source

Fixed
  • Fix issue where some pseudo-element variants generated the wrong selector (#​10943, #​10962, #​11111)
  • Make font settings propagate into buttons, inputs, etc. (#​10940)
  • Fix parsing of theme() inside calc() when there are no spaces around operators (#​11157)
  • Ensure repeating-conic-gradient is detected as an image (#​11180)
  • Move unknown pseudo-elements outside of :is by default (#​11345)
  • Escape animation names when prefixes contain special characters (#​11470)
  • Don't prefix arbitrary classes in group and peer variants (#​11454)
  • Sort classes using position of first matching rule (#​11504)
  • Allow variant to be an at-rule without a prelude (#​11589)
  • Make PostCSS plugin async to improve performance (#​11548)
  • Don’t error when a config file is missing (f97759f)
Added
Changed
  • Reset padding for <dialog> elements in preflight (#​11069)

v3.3.2

Compare Source

Fixed
  • Don’t move unknown pseudo-elements to the end of selectors (#​10943, #​10962)
  • Inherit gradient stop positions when using variants (#​11002)
  • Honor default to position of gradient when using implicit transparent colors (#​11002)
  • Ensure @tailwindcss/oxide doesn't leak in the stable engine (#​10988)
  • Ensure multiple theme(spacing[5]) calls with bracket notation in arbitrary properties work (#​11039)
  • Normalize arbitrary modifiers (#​11057)
Changed

v3.3.1

Compare Source

Fixed
  • Fix edge case bug when loading a TypeScript config file with webpack (#​10898)
  • Fix variant, @apply, and important selectors when using :is() or :has() with pseudo-elements (#​10903)
  • Fix safelist config types (#​10901)
  • Fix build errors caused by @tailwindcss/line-clamp warning (#​10915, #​10919)
  • Fix "process is not defined" error (#​10919)

v3.3.0

Compare Source

Tailwind CSS

Tailwind CSS v3.3 is here! Check out the announcement post for a deep dive into all of the cool new stuff.

Added
  • Support ESM and TypeScript config files (#​10785)
  • Extend default color palette with new 950 shades (#​10879)
  • Add line-height modifier support to font-size utilities (#​9875)
  • Add support for using variables as arbitrary values without var(...) (#​9880, #​9962)
  • Add logical properties support for inline direction (#​10166)
  • Add hyphens utilities (#​10071)
  • Add from-{position}, via-{position} and to-{position} utilities (#​10886)
  • Add list-style-image utilities (#​10817)
  • Add caption-side utilities (#​10470)
  • Add line-clamp utilities from @tailwindcss/line-clamp to core (#​10768, #​10876, #​10862)
  • Add delay-0 and duration-0 utilities (#​10294)
  • Add justify-normal and justify-stretch utilities (#​10560)
  • Add content-normal and content-stretch utilities (#​10645)
  • Add whitespace-break-spaces utility (#​10729)
  • Add support for configuring default font-variation-settings for a font-family (#​10034, #​10515)
Fixed
  • Disallow using multiple selectors in arbitrary variants (#​10655)
  • Sort class lists deterministically for Prettier plugin (#​10672)
  • Ensure CLI builds have a non-zero exit code on failure (#​10703)
  • Ensure module dependencies for value null, is an empty Set (#​10877)
  • Fix format assumption when resolving module dependencies (#​10878)
Changed
  • Mark rtl and ltr variants as stable and remove warnings (#​10764)
  • Use inset instead of top, right, bottom, and left properties (#​10765)
  • Make dark and rtl/ltr variants insensitive to DOM order (#​10766)
  • Use :is to make important selector option insensitive to DOM order (#​10835)

v3.2.7

Compare Source

Fixed
  • Fix use of :where(.btn) when matching !btn (#​10601)
  • Revert including outline-color in transition and transition-colors by default (#​10604)

v3.2.6

Compare Source

Fixed
  • Fix installation failing with yarn and pnpm by dropping oxide-api-shim (add1636)

v3.2.5

Compare Source

Added
  • Add standalone CLI build for 64-bit Windows on ARM (node16-win-arm64) (#​10001)
Fixed
  • Cleanup unused variantOrder (#​9829)
  • Fix foo-[abc]/[def] not being handled correctly (#​9866)
  • Add container queries plugin to standalone CLI (#​9865)
  • Support renaming of output files by PostCSS plugins in CLI (#​9944)
  • Improve return value of resolveConfig, unwrap ResolvableTo (#​9972)
  • Clip unbalanced brackets in arbitrary values (#​9973)
  • Don’t reorder webkit scrollbar pseudo elements (#​9991)
  • Deterministic sorting of arbitrary variants (#​10016)
  • Add data key to theme types (#​10023)
  • Prevent invalid arbitrary variant selectors from failing the build (#​10059)
  • Properly handle subtraction followed by a variable (#​10074)
  • Fix missing string[] in the theme.dropShadow types (#​10072)
  • Update list of length units (#​10100)
  • Fix not matching arbitrary properties when closely followed by square brackets (#​10212)
  • Allow direct nesting in root or @layer nodes (#​10229)
  • Don't prefix classes in arbitrary variants (#​10214)
  • Fix perf regression when checking for changed content (#​10234)
  • Fix missing blocklist member in the Config type (#​10239)
  • Escape group names in selectors (#​10276)
  • Consider earlier variants before sorting functions (#​10288)
  • Allow variants with slashes (#​10336)
  • Ensure generated CSS is always sorted in the same order for a given set of templates (#​10382)
  • Handle variants when the same class appears multiple times in a selector (#​10397)
  • Handle group/peer variants with quoted strings (#​10400)
  • Parse alpha value from rgba/hsla colors when using variables (#​10429)
  • Sort by layer inside variants layer (#​10505)
  • Add --watch=always option to prevent exit when stdin closes (#​9966)
Changed
  • Alphabetize theme keys in default config (#​9953)
  • Update esbuild to v17 (#​10368)
  • Include outline-color in transition and transition-colors utilities (#​10385)

v3.2.4

Compare Source

Added
  • Add blocklist option to prevent generating unwanted CSS (#​9812)
Fixed
  • Fix watching of files on Linux when renames are involved (#​9796)
  • Make sure errors are always displayed when watching for changes (#​9810)

v3.2.3

Compare Source

Fixed
  • Fixed use of raw content in the CLI (#​9773)
  • Pick up changes from files that are both context and content deps (#​9787)
  • Sort pseudo-elements ONLY after classes when using variants and @apply (#​9765)
  • Support important utilities in the safelist (pattern must include a !) (#​9791)

v3.2.2

Compare Source

Fixed
  • Escape special characters in resolved content base paths (#​9650)
  • Don't reuse container for array returning variant functions (#​9644)
  • Exclude non-relevant selectors when generating rules with the important modifier (#​9677)
  • Fix merging of arrays during config resolution (#​9706)
  • Ensure configured font-feature-settings are included in Preflight (#​9707)
  • Fix fractional values not being parsed properly inside arbitrary properties (#​9705)
  • Fix incorrect selectors when using @apply in selectors with combinators and pseudos (#​9722)
  • Fix cannot read properties of undefined (reading 'modifier') (#​9656, aa979d6)

v3.2.1

Compare Source

Fixed
  • Fix missing supports in types (#​9616)
  • Fix missing PostCSS dependencies in the CLI (#​9617)
  • Ensure micromatch is a proper CLI dependency (#​9620)
  • Ensure modifier values exist when using a modifiers object for matchVariant (ba6551d)

v3.2.0

Compare Source

We just released Tailwind CSS v3.2! Read the announcement post for more details about the most exciting new features.


Added
  • Add new @config directive (#​9405)
  • Add new relative: true option to resolve content paths relative to the config file (#​9396)
  • Add new supports-* variant (#​9453)
  • Add new min-* and max-* variants (#​9558)
  • Add new aria-* variants (#​9557, #​9588)
  • Add new data-* variants (#​9559, #​9588)
  • Add new break-keep utility for word-break: keep-all (#​9393)
  • Add new collapse utility for visibility: collapse (#​9181)
  • Add new fill-none utility for fill: none (#​9403)
  • Add new stroke-none utility for stroke: none (#​9403)
  • Add new place-content-baseline utility for place-content: baseline (#​9498)
  • Add new place-items-baseline utility for place-items: baseline (#​9507)
  • Add new content-baseline utility for align-content: baseline (#​9507)
  • Add support for configuring default font-feature-settings for a font family (#​9039)
  • Add standalone CLI build for 32-bit Linux on ARM (node16-linux-armv7) (#​9084)
  • Add future flag to disable color opacity utility plugins (#​9088)
  • Add negative value support for outline-offset (#​9136)
  • Add support for modifiers to matchUtilities (#​9541)
  • Allow negating utilities using min/max/clamp (#​9237)
  • Implement fallback plugins when there is ambiguity between plugins when using arbitrary values (#​9376)
  • Support sort function in matchVariant (#​9423)
  • Upgrade to postcss-nested v6.0 (#​9546)
Fixed
  • Use absolute paths when resolving changed files for resilience against working directory changes (#​9032)
  • Fix ring color utility generation when using respectDefaultRingColorOpacity (#​9070)
  • Sort tags before classes when @apply-ing a selector with joined classes (#​9107)
  • Remove invalid outline-hidden utility (#​9147)
  • Honor the hidden attribute on elements in preflight (#​9174)
  • Don't stop watching atomically renamed files (#​9173, #​9215)
  • Fix duplicate utilities issue causing memory leaks (#​9208)
  • Fix fontFamily config TypeScript types (#​9214)
  • Handle variants on complex selector utilities (#​9262)
  • Fix shared config mutation issue (#​9294)
  • Fix ordering of parallel variants (#​9282)
  • Handle variants in utility selectors using :where() and :has() (#​9309)
  • Improve data type analysis for arbitrary values (#​9320)
  • Don't emit generated utilities with invalid uses of theme functions (#​9319)
  • Revert change that only listened for stdin close on TTYs (#​9331)
  • Ignore unset values (like null or undefined) when resolving the classList for intellisense (#​9385)
  • Improve type checking for formal syntax (#​9349, #​9448)
  • Fix incorrect required content key in custom plugin configs (#​9502, #​9545)
  • Fix content path detection on Windows (#​9569)
  • Ensure --content is used in the CLI when passed (#​9587)

v3.1.8

Compare Source

Fixed
  • Don’t prefix classes within reused arbitrary variants (#​8992)
  • Fix usage of alpha values inside single-named colors that are functions (#​9008)
  • Fix @apply of user utilities when negative and non-negative versions both exist (#​9027)

v3.1.7

Compare Source

Fixed
  • Don't rewrite source maps for @layer rules (#​8971)
Added
  • Added types for resolveConfig (#​8924)

v3.1.6

Compare Source

Fixed
  • Fix usage on Node 12.x (b4e637e)
  • Handle theme keys with slashes when using theme() in CSS (#​8831)

v3.1.5

Compare Source

Added
  • Support configuring a default font-weight for each font size utility (#​8763)
  • Add support for alpha values in safe list (#​8774)
Fixed
  • Improve types to support fallback values in the CSS-in-JS syntax used in plugin APIs (#​8762)
  • Support including tailwindcss and autoprefixer in postcss.config.js in standalone CLI (#​8769)
  • Fix using special-characters as prefixes (#​8772)
  • Don’t prefix classes used within arbitrary variants (#​8773)
  • Add more explicit types for the default theme (#​8780)

v3.1.4

Compare Source

Fixed
  • Provide default to <alpha-value> when using theme() (#​8652)
  • Detect arbitrary variants with quotes (#​8687)
  • Don’t add spaces around raw / that are preceded by numbers (#​8688)

v3.1.3

Compare Source

Fixed
  • Fix extraction of multi-word utilities with arbitrary values and quotes (#​8604)
  • Fix casing of import of corePluginList type definition (#​8587)
  • Ignore PostCSS nodes returned by addVariant (#​8608)
  • Fix missing spaces around arithmetic operators (#​8615)
  • Detect alpha value in CSS theme() function when using quotes (#​8625)
  • Fix "Maximum call stack size exceeded" bug (#​8636)
  • Allow functions returning parallel variants to mutate the container (#​8622)
  • Remove text opacity CSS variables from ::marker (#​8622)

v3.1.2

Compare Source

Fixed
  • Ensure \ is a valid arbitrary variant token (#​8576)
  • Enable postcss-import in the CLI by default in watch mode (#​8574, #​8580)

v3.1.1

Compare Source

Fixed
  • Fix candidate extractor regression (#​8558)
  • Split ::backdrop into separate defaults group (#​8567)
  • Fix postcss plugin type (#​8564)
  • Fix class detection in markdown code fences and slim templates (#​8569)

v3.1.0

Compare Source

We just released Tailwind CSS v3.1 — the first new feature release since v3.0 came out last year!

Read the announcement post for all the details, and watch the YouTube video for a tour of some of the highlights.


Added
  • Support PostCSS Document nodes (#​7291)
  • Add text-start and text-end utilities (#​6656)
  • Support customizing class name when using darkMode: 'class' (#​5800)
  • Add --poll option to the CLI (#​7725)
  • Add new border-spacing utilities (#​7102)
  • Add enabled variant (#​7905)
  • Add TypeScript types for the tailwind.config.js file (#​7891)
  • Add backdrop variant (#​7924, #​8526)
  • Add grid-flow-dense utility (#​8193)
  • Add mix-blend-plus-lighter utility (#​8288)
  • Add arbitrary variants (#​8299)
  • Add experimental matchVariant API (#​8310, 34fd0fb8)
  • Add prefers-contrast media query variants (#​8410)
  • Add opacity support when referencing colors with theme function (#​8416)
  • Add postcss-import support to the CLI (#​8437)
  • Add optional variant (#​8486)
  • Add <alpha-value> placeholder support for custom colors (#​8501)
Fixed
  • Types: allow for arbitrary theme values (for 3rd party plugins) (#​7926)
  • Don’t split vars with numbers in them inside arbitrary values (#​8091)
  • Require matching prefix when detecting negatives (#​8121)
  • Handle duplicate At Rules without children (#​8122)
  • Allow arbitrary values with commas in @apply (#​8125)
  • Fix intellisense for plugins with multiple @apply rules (#​8213)
  • Improve type detection for arbitrary color values (#​8201)
  • Support PostCSS config options in config file in CLI (#​8226)
  • Remove default [hidden] style in preflight (#​8248)
  • Only check selectors containing base apply candidates for circular dependencies (#​8222)
  • Rewrite default class extractor (#​8204)
  • Move important selector to the front when @apply-ing selector-modifying variants in custom utilities (#​8313)
  • Error when registering an invalid custom variant (#​8345)
  • Create tailwind.config.cjs file in ESM package when running init (#​8363)
  • Fix matchVariants that use at-rules and placeholders (#​8392)
  • Improve types of the tailwindcss/plugin (#​8400)
  • Allow returning parallel variants from addVariant or matchVariant callback functions (#​8455)
  • Try using local postcss installation first in the CLI (#​8270)
  • Allow default ring color to be a function (#​7587)
  • Don't inherit to value from parent gradients (#​8489)
  • Remove process dependency from log functions (#​8530)
  • Ensure we can use @import 'tailwindcss/...' without node_modules (#​8537)
Changed
  • Only apply hover styles when supported (future) (#​8394)
  • Respect default ring color opacity (future) (#​8448, 3f4005e)
microsoft/TypeScript (typescript)

v5.6.3: TypeScript 5.6.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.6.2: TypeScript 5.6

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.5.4: TypeScript 5.5.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.5.3: TypeScript 5.5.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.5.2: TypeScript 5.5

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.4.5: TypeScript 5.4.5

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.4.4: TypeScript 5.4.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.4.3: TypeScript 5.4.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.4.2: TypeScript 5.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.3.3: TypeScript 5.3.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.3.2: TypeScript 5.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.2.2: TypeScript 5.2

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.1.6: TypeScript 5.1.6

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on npm

v5.1.5: TypeScript 5.1.5

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.1.3: TypeScript 5.1.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.0.4: TypeScript 5.0.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.0.3: TypeScript 5.0.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v5.0.2: TypeScript 5.0

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.9.5: TypeScript 4.9.5

Compare Source

For release notes, check out the release announcement.

Downloads are available on:

Changes:

v4.9.4: TypeScript 4.9.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

Changes:

This list of changes was auto generated.

v4.9.3: TypeScript 4.9

Compare Source

For release notes, check out the release announcement.

Downloads are available on:

Changes:

See More

This list of changes was auto generated.

v4.8.4: TypeScript 4.8.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.8.3: TypeScript 4.8.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.8.2: TypeScript 4.8

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.7.4: TypeScript 4.7.4

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.7.3: TypeScript 4.7.3

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.7.2: TypeScript 4.7.2

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.6.4: TypeScript 4.6.4

Compare Source

This release includes a bug fix for text formatting on certain ranges, which was impacting Visual Studio users.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.6.3: TypeScript 4.6.3

Compare Source

This release includes fixes for

For the complete list of fixed issues, check out the

Downloads are available on:

v4.6.2: TypeScript 4.6.2

Compare Source

For release notes, check out the release announcement.

For the complete list of fixed issues, check out the

Downloads are available on:

v4.5.5: TypeScript 4.5.5

Compare Source

This patch release includes a number of fixes to language service crashes and assertion violations, along with improvements to JSX attribute snippets.

For the complete list of fixed issues, check out the

Downloads are available on:


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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 Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | major | [`17.0.4` -> `22.9.1`](https://renovatebot.com/diffs/npm/@types%2fnode/17.0.4/22.9.1) | | [postcss](https://postcss.org/) ([source](https://github.com/postcss/postcss)) | devDependencies | patch | [`8.4.12` -> `8.4.49`](https://renovatebot.com/diffs/npm/postcss/8.4.12/8.4.49) | | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | devDependencies | major | [`^2.6.2` -> `^3.0.0`](https://renovatebot.com/diffs/npm/prettier/2.6.2/3.3.3) | | [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | devDependencies | minor | [`^0.1.1` -> `^0.6.0`](https://renovatebot.com/diffs/npm/prettier-plugin-tailwindcss/0.1.13/0.6.9) | | [sass](https://github.com/sass/dart-sass) | devDependencies | minor | [`1.50.1` -> `1.81.0`](https://renovatebot.com/diffs/npm/sass/1.50.1/1.81.0) | | [tailwindcss](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss)) | devDependencies | minor | [`3.0.24` -> `3.4.15`](https://renovatebot.com/diffs/npm/tailwindcss/3.0.24/3.4.15) | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/microsoft/TypeScript)) | devDependencies | major | [`4.5.4` -> `5.6.3`](https://renovatebot.com/diffs/npm/typescript/4.5.4/5.6.3) | --- ### Release Notes <details> <summary>postcss/postcss (postcss)</summary> ### [`v8.4.49`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8449) [Compare Source](https://github.com/postcss/postcss/compare/8.4.48...8.4.49) - Fixed custom syntax without `source.offset` (by [@&#8203;romainmenke](https://github.com/romainmenke)). ### [`v8.4.48`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8448) [Compare Source](https://github.com/postcss/postcss/compare/8.4.47...8.4.48) - Fixed position calculation in error/warnings methods (by [@&#8203;romainmenke](https://github.com/romainmenke)). ### [`v8.4.47`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8447) [Compare Source](https://github.com/postcss/postcss/compare/8.4.46...8.4.47) - Removed debug code. ### [`v8.4.46`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8446) [Compare Source](https://github.com/postcss/postcss/compare/8.4.45...8.4.46) - Fixed `Cannot read properties of undefined (reading 'before')`. ### [`v8.4.45`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8445) [Compare Source](https://github.com/postcss/postcss/compare/8.4.44...8.4.45) - Removed unnecessary fix which could lead to infinite loop. ### [`v8.4.44`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8444) [Compare Source](https://github.com/postcss/postcss/compare/8.4.43...8.4.44) - Another way to fix `markClean is not a function` error. ### [`v8.4.43`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8443) [Compare Source](https://github.com/postcss/postcss/compare/8.4.42...8.4.43) - Fixed `markClean is not a function` error. ### [`v8.4.42`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8442) [Compare Source](https://github.com/postcss/postcss/compare/8.4.41...8.4.42) - Fixed CSS syntax error on long minified files (by [@&#8203;varpstar](https://github.com/varpstar)). ### [`v8.4.41`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8441) [Compare Source](https://github.com/postcss/postcss/compare/8.4.40...8.4.41) - Fixed types (by [@&#8203;nex3](https://github.com/nex3) and [@&#8203;querkmachine](https://github.com/querkmachine)). - Cleaned up RegExps (by [@&#8203;bluwy](https://github.com/bluwy)). ### [`v8.4.40`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8440) [Compare Source](https://github.com/postcss/postcss/compare/8.4.39...8.4.40) - Moved to getter/setter in nodes types to help Sass team (by [@&#8203;nex3](https://github.com/nex3)). ### [`v8.4.39`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8439) [Compare Source](https://github.com/postcss/postcss/compare/8.4.38...8.4.39) - Fixed `CssSyntaxError` types (by [@&#8203;romainmenke](https://github.com/romainmenke)). ### [`v8.4.38`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8438) [Compare Source](https://github.com/postcss/postcss/compare/8.4.37...8.4.38) - Fixed `endIndex: 0` in errors and warnings (by [@&#8203;romainmenke](https://github.com/romainmenke)). ### [`v8.4.37`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8437) [Compare Source](https://github.com/postcss/postcss/compare/8.4.36...8.4.37) - Fixed `original.column are not numbers` error in another case. ### [`v8.4.36`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8436) [Compare Source](https://github.com/postcss/postcss/compare/8.4.35...8.4.36) - Fixed `original.column are not numbers` error on broken previous source map. ### [`v8.4.35`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8435) [Compare Source](https://github.com/postcss/postcss/compare/8.4.34...8.4.35) - Avoid `!` in `node.parent.nodes` type. - Allow to pass `undefined` to node adding method to simplify types. ### [`v8.4.34`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8434) [Compare Source](https://github.com/postcss/postcss/compare/8.4.33...8.4.34) - Fixed `AtRule#nodes` type (by Tim Weißenfels). - Cleaned up code (by Dmitry Kirillov). ### [`v8.4.33`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8433) [Compare Source](https://github.com/postcss/postcss/compare/8.4.32...8.4.33) - Fixed `NoWorkResult` behavior difference with normal mode (by Romain Menke). - Fixed `NoWorkResult` usage conditions (by [@&#8203;ahmdammarr](https://github.com/ahmdammarr)). ### [`v8.4.32`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8432) [Compare Source](https://github.com/postcss/postcss/compare/8.4.31...8.4.32) - Fixed `postcss().process()` types (by Andrew Ferreira). ### [`v8.4.31`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8431) [Compare Source](https://github.com/postcss/postcss/compare/8.4.30...8.4.31) - Fixed `\r` parsing to fix CVE-2023-44270. ### [`v8.4.30`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8430) [Compare Source](https://github.com/postcss/postcss/compare/8.4.29...8.4.30) - Improved source map performance (by Romain Menke). ### [`v8.4.29`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8429) [Compare Source](https://github.com/postcss/postcss/compare/8.4.28...8.4.29) - Fixed `Node#source.offset` (by Ido Rosenthal). - Fixed docs (by Christian Oliff). ### [`v8.4.28`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8428) [Compare Source](https://github.com/postcss/postcss/compare/8.4.27...8.4.28) - Fixed `Root.source.end` for better source map (by Romain Menke). - Fixed `Result.root` types when `process()` has no parser. ### [`v8.4.27`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8427) [Compare Source](https://github.com/postcss/postcss/compare/8.4.26...8.4.27) - Fixed `Container` clone methods types. ### [`v8.4.26`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8426) [Compare Source](https://github.com/postcss/postcss/compare/8.4.25...8.4.26) - Fixed clone methods types. ### [`v8.4.25`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8425) [Compare Source](https://github.com/postcss/postcss/compare/8.4.24...8.4.25) - Improve stringify performance (by Romain Menke). - Fixed docs (by [@&#8203;vikaskaliramna07](https://github.com/vikaskaliramna07)). ### [`v8.4.24`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8424) [Compare Source](https://github.com/postcss/postcss/compare/8.4.23...8.4.24) - Fixed `Plugin` types. ### [`v8.4.23`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8423) [Compare Source](https://github.com/postcss/postcss/compare/8.4.22...8.4.23) - Fixed warnings in TypeDoc. ### [`v8.4.22`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8422) [Compare Source](https://github.com/postcss/postcss/compare/8.4.21...8.4.22) - Fixed TypeScript support with `node16` (by Remco Haszing). ### [`v8.4.21`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8421) [Compare Source](https://github.com/postcss/postcss/compare/8.4.20...8.4.21) - Fixed `Input#error` types (by Aleks Hudochenkov). ### [`v8.4.20`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8420) [Compare Source](https://github.com/postcss/postcss/compare/8.4.19...8.4.20) - Fixed source map generation for childless at-rules like `@layer`. ### [`v8.4.19`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8419) [Compare Source](https://github.com/postcss/postcss/compare/8.4.18...8.4.19) - Fixed whitespace preserving after AST transformations (by Romain Menke). ### [`v8.4.18`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8418) [Compare Source](https://github.com/postcss/postcss/compare/8.4.17...8.4.18) - Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas). ### [`v8.4.17`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8417) [Compare Source](https://github.com/postcss/postcss/compare/8.4.16...8.4.17) - Fixed `Node.before()` unexpected behavior (by Romain Menke). - Added TOC to docs (by Mikhail Dedov). ### [`v8.4.16`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8416) [Compare Source](https://github.com/postcss/postcss/compare/8.4.15...8.4.16) - Fixed `Root` AST migration. ### [`v8.4.15`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8415) [Compare Source](https://github.com/postcss/postcss/compare/8.4.14...8.4.15) - Fixed AST normalization after using custom parser with old PostCSS AST. ### [`v8.4.14`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8414) [Compare Source](https://github.com/postcss/postcss/compare/8.4.13...8.4.14) - Print “old plugin API” warning only if plugin was used (by [@&#8203;zardoy](https://github.com/zardoy)). ### [`v8.4.13`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8413) [Compare Source](https://github.com/postcss/postcss/compare/8.4.12...8.4.13) - Fixed `append()` error after using `.parent` (by Jordan Pittman). </details> <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.3.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333) [Compare Source](https://github.com/prettier/prettier/compare/3.3.2...3.3.3) [diff](https://github.com/prettier/prettier/compare/3.3.2...3.3.3) ##### Add parentheses for nullish coalescing in ternary ([#&#8203;16391](https://github.com/prettier/prettier/pull/16391) by [@&#8203;cdignam-segment](https://github.com/cdignam-segment)) This change adds clarity to operator precedence. <!-- prettier-ignore --> ```js // 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); ``` ##### Add parentheses for decorator expressions ([#&#8203;16458](https://github.com/prettier/prettier/pull/16458) by [@&#8203;y-schneider](https://github.com/y-schneider)) Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5. <!-- prettier-ignore --> ```ts // Input @&#8203;(foo`tagged template`) class X {} // Prettier 3.3.2 @&#8203;foo`tagged template` class X {} // Prettier 3.3.3 @&#8203;(foo`tagged template`) class X {} ``` ##### Support `@let` declaration syntax ([#&#8203;16474](https://github.com/prettier/prettier/pull/16474) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) 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: <!-- prettier-ignore --> ```html @&#8203;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 @&#8203;let in Angular](https://blog.angular.dev/introducing-let-in-angular-686f9f383f0f). We also appreciate the Angular Team for kindly answering our questions to implement this feature. ### [`v3.3.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#332) [Compare Source](https://github.com/prettier/prettier/compare/3.3.1...3.3.2) [diff](https://github.com/prettier/prettier/compare/3.3.1...3.3.2) ##### Fix handlebars path expressions starts with `@` ([#&#8203;16358](https://github.com/prettier/prettier/pull/16358) by [@&#8203;Princeyadav05](https://github.com/Princeyadav05)) <!-- prettier-ignore --> ```hbs {{! Input }} <div>{{@&#8203;x.y.z}}</div> {{! Prettier 3.3.1 }} <div>{{@&#8203;x}}</div> {{! Prettier 3.3.2 }} <div>{{@&#8203;x.y.z}}</div> ``` ### [`v3.3.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#331) [Compare Source](https://github.com/prettier/prettier/compare/3.3.0...3.3.1) [diff](https://github.com/prettier/prettier/compare/3.3.0...3.3.1) ##### Preserve empty lines in front matter ([#&#8203;16347](https://github.com/prettier/prettier/pull/16347) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```markdown <!-- Input --> --- foo: - bar1 - bar2 - bar3 --- Markdown <!-- Prettier 3.3.0 --> --- foo: - bar1 - bar2 - bar3 --- Markdown <!-- Prettier 3.3.1 --> --- foo: - bar1 - bar2 - bar3 --- Markdown ``` ##### Preserve explicit language in front matter ([#&#8203;16348](https://github.com/prettier/prettier/pull/16348) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```markdown <!-- Input --> ---yaml title: Hello slug: home --- <!-- Prettier 3.3.0 --> --- title: Hello slug: home --- <!-- Prettier 3.3.1 --> ---yaml title: Hello slug: home --- ``` ##### Avoid line breaks in import attributes ([#&#8203;16349](https://github.com/prettier/prettier/pull/16349) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // 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`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#330) [Compare Source](https://github.com/prettier/prettier/compare/3.2.5...3.3.0) [diff](https://github.com/prettier/prettier/compare/3.2.5...3.3.0) 🔗 [Release Notes](https://prettier.io/blog/2024/06/01/3.3.0.html) ### [`v3.2.5`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#325) [Compare Source](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) [diff](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) ##### Support Angular inline styles as single template literal ([#&#8203;15968](https://github.com/prettier/prettier/pull/15968) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) [Angular v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) supports single string inline styles. <!-- prettier-ignore --> ```ts // Input @&#8203;Component({ template: `<div>...</div>`, styles: `h1 { color: blue; }`, }) export class AppComponent {} // Prettier 3.2.4 @&#8203;Component({ template: `<div>...</div>`, styles: `h1 { color: blue; }`, }) export class AppComponent {} // Prettier 3.2.5 @&#8203;Component({ template: `<div>...</div>`, styles: ` h1 { color: blue; } `, }) export class AppComponent {} ``` ##### Unexpected embedded formatting for Angular template ([#&#8203;15969](https://github.com/prettier/prettier/pull/15969) by [@&#8203;JounQin](https://github.com/JounQin)) Computed template should not be considered as Angular component template <!-- prettier-ignore --> ```ts // Input const template = "foobar"; @&#8203;Component({ [template]: `<h1>{{ hello }}</h1>`, }) export class AppComponent {} // Prettier 3.2.4 const template = "foobar"; @&#8203;Component({ [template]: `<h1>{{ hello }}</h1>`, }) export class AppComponent {} // Prettier 3.2.5 const template = "foobar"; @&#8203;Component({ [template]: `<h1>{{ hello }}</h1>`, }) export class AppComponent {} ``` ##### Use `"json"` parser for `tsconfig.json` by default ([#&#8203;16012](https://github.com/prettier/prettier/pull/16012) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) In [v3.2.0](https://prettier.io/blog/2024/01/12/3.2.0#new-jsonc-parser-added-15831httpsgithubcomprettierprettierpull15831-by-fiskerhttpsgithubcomfisker), 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`](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 `.prettierrc` file ```json { "overrides": [ { "files": ["tsconfig.json", "jsconfig.json"], "options": { "parser": "jsonc" } } ] } ``` <!-- prettier-ignore --> ``` ``` ### [`v3.2.4`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#Prettier-324) [Compare Source](https://github.com/prettier/prettier/compare/3.2.3...3.2.4) prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "jsonc" } ### [`v3.2.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#323) [Compare Source](https://github.com/prettier/prettier/compare/3.2.2...3.2.3) [diff](https://github.com/prettier/prettier/compare/3.2.2...3.2.3) ##### Throw errors for invalid code ([#&#8203;15881](https://github.com/prettier/prettier/pull/15881) by [@&#8203;fisker](https://github.com/fisker), [@&#8203;Josh-Cena](https://github.com/Josh-Cena), [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```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++; | ^ ``` <!-- prettier-ignore --> ```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 ([#&#8203;15927](https://github.com/prettier/prettier/pull/15927) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```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://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#322) [Compare Source](https://github.com/prettier/prettier/compare/3.2.1...3.2.2) [diff](https://github.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 ([#&#8203;15896](https://github.com/prettier/prettier/pull/15896) by [@&#8203;eelco](https://github.com/eelco)) For example this code would crash before: <!-- prettier-ignore --> ```jsx <style {...spread}>{`.{}`}</style> ``` ##### Fix formatting error on optional call expression and member chain ([#&#8203;15920](https://github.com/prettier/prettier/pull/15920) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```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://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#321) [Compare Source](https://github.com/prettier/prettier/compare/3.2.0...3.2.1) [diff](https://github.com/prettier/prettier/compare/3.2.0...3.2.1) ##### Fix formatting error on member chain ([#&#8203;15915](https://github.com/prettier/prettier/pull/15915) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```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://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#320) [Compare Source](https://github.com/prettier/prettier/compare/3.1.1...3.2.0) [diff](https://github.com/prettier/prettier/compare/3.1.1...3.2.0) 🔗 [Release Notes](https://prettier.io/blog/2024/01/12/3.2.0.html) ### [`v3.1.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#311) [Compare Source](https://github.com/prettier/prettier/compare/3.1.0...3.1.1) [diff](https://github.com/prettier/prettier/compare/3.1.0...3.1.1) ##### Fix config file search ([#&#8203;15363](https://github.com/prettier/prettier/pull/15363) by [@&#8203;fisker](https://github.com/fisker)) Previously, we start search for config files from the filePath as a directory, if it happened to be a directory and contains config file, it will be used by mistake. ```text ├─ .prettierrc └─ test.js (A directory) └─ .prettierrc ``` ```js // Prettier 3.1.0 await prettier.resolveConfigFile(new URL("./test.js", import.meta.url)); // <CWD>/test.js/.prettierrc // Prettier 3.1.1 await prettier.resolveConfigFile(new URL("./test.js", import.meta.url)); // <CWD>/.prettierrc ``` ##### Skip explicitly passed symbolic links with `--no-error-on-unmatched-pattern` ([#&#8203;15533](https://github.com/prettier/prettier/pull/15533) by [@&#8203;sanmai-NL](https://github.com/sanmai-NL)) Since Prettier v3, we stopped following symbolic links, however in some use cases, the symbolic link patterns can't be filtered out, and there is no way to prevent Prettier from throwing errors. In Prettier 3.1.1, you can use `--no-error-on-unmatched-pattern` to simply skip symbolic links. ##### Consistently use tabs in ternaries when `useTabs` is `true` ([#&#8203;15662](https://github.com/prettier/prettier/pull/15662) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```jsx // Input aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; // Prettier 3.1.0 aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; // Prettier 3.1.1 aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; ``` ##### Improve config file search ([#&#8203;15663](https://github.com/prettier/prettier/pull/15663) by [@&#8203;fisker](https://github.com/fisker)) The Prettier config file search performance has been improved by more effective cache strategy. ##### Fix unstable and ugly formatting for comments in destructuring patterns ([#&#8203;15708](https://github.com/prettier/prettier/pull/15708) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```tsx // Input const { foo, // bar // baz }: Foo = expr; // Prettier 3.1.0 const { foo1, } // bar // baz : Foo = expr; // Prettier 3.1.0 second output const { foo1, // bar } // baz : Foo = expr; // Prettier 3.1.1 const { foo1, // bar // baz }: Foo = expr; ``` ##### Support "Import Attributes" ([#&#8203;15718](https://github.com/prettier/prettier/pull/15718) by [@&#8203;fisker](https://github.com/fisker)) [TypeScript 5.3](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/#import-attributes) supports the latest updates to the [import attributes](https://github.com/tc39/proposal-import-attributes) proposal. ```tsx import something from "./something.json" with { type: "json" }; ``` ##### Fix false claim in docs that cursorOffset is incompatible with rangeStart/rangeEnd ([#&#8203;15750](https://github.com/prettier/prettier/pull/15750) by [@&#8203;ExplodingCabbage](https://github.com/ExplodingCabbage)) The cursorOffset option has in fact been compatible with rangeStart/rangeEnd for over 5 years, thanks to work by [@&#8203;ds300](https://github.com/ds300). However, Prettier's documentation (including the CLI `--help` text) continued to claim otherwise, falsely. The documentation is now fixed. ##### Keep curly braces and `from` keyword in empty `import` statements ([#&#8203;15756](https://github.com/prettier/prettier/pull/15756) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js // Input import { } from 'foo'; import { /* comment */ } from 'bar'; // Prettier 3.1.0 import {} from "foo"; import /* comment */ "bar"; // Prettier 3.1.1 import {} from "foo"; import {} from /* comment */ "bar"; ``` ##### Keep empty import attributes and assertions ([#&#8203;15757](https://github.com/prettier/prettier/pull/15757) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js // Input import foo from "foo" with {}; import bar from "bar" assert {}; // Prettier 3.1.0 import foo from "foo"; import bar from "bar"; // Prettier 3.1.1 import foo from "foo" with {}; import bar from "bar" assert {}; ``` ### [`v3.1.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#310) [Compare Source](https://github.com/prettier/prettier/compare/3.0.3...3.1.0) [diff](https://github.com/prettier/prettier/compare/3.0.3...3.1.0) 🔗 [Release Notes](https://prettier.io/blog/2023/11/13/3.1.0.html) ### [`v3.0.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#303) [Compare Source](https://github.com/prettier/prettier/compare/3.0.2...3.0.3) [diff](https://github.com/prettier/prettier/compare/3.0.2...3.0.3) ##### Add `preferUnplugged: true` to `package.json` ([#&#8203;15169](https://github.com/prettier/prettier/pull/15169) by [@&#8203;fisker](https://github.com/fisker) and [@&#8203;so1ve](https://github.com/so1ve)) Prettier v3 uses dynamic imports, user [will need to unplug Prettier](https://github.com/yarnpkg/berry/pull/5411#issuecomment-1523502224) when Yarn's PnP mode is enabled, add [`preferUnplugged: true`](https://yarnpkg.com/configuration/manifest#preferUnplugged) to `package.json`, so Yarn will install Prettier as unplug by default. ##### Support shared config that forbids `require()` ([#&#8203;15233](https://github.com/prettier/prettier/pull/15233) by [@&#8203;fisker](https://github.com/fisker)) If an external shared config package is used, and the package `exports` don't have `require` or `default` export. In Prettier 3.0.2 Prettier fails when attempt to `require()` the package, and throws an error. ```text Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json ``` ##### Allow argument of `require()` to break ([#&#8203;15256](https://github.com/prettier/prettier/pull/15256) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input const plugin = require( global.STANDALONE ? path.join(__dirname, "../standalone.js") : path.join(__dirname, "..") ); // Prettier 3.0.2 const plugin = require(global.STANDALONE ? path.join(__dirname, "../standalone.js") : path.join(__dirname, "..")); // Prettier 3.0.3 const plugin = require( global.STANDALONE ? path.join(__dirname, "../standalone.js") : path.join(__dirname, "..") ); ``` ##### Do not print trailing commas in arrow function type parameter lists in `ts` code blocks ([#&#8203;15286](https://github.com/prettier/prettier/pull/15286) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ````md <!-- Input --> ```ts const foo = <T>() => {} ``` <!-- Prettier 3.0.2 --> ```ts const foo = <T,>() => {} ``` <!-- Prettier 3.0.3 --> ```ts const foo = <T>() => {} ``` ```` ##### Support TypeScript 5.2 `using` / `await using` declaration ([#&#8203;15321](https://github.com/prettier/prettier/pull/15321) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) Support for the upcoming Explicit Resource Management feature in ECMAScript. [`using` / `await using` declaration](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management) <!-- prettier-ignore --> ```tsx { using foo = new Foo(); await using bar = new Bar(); } ``` ### [`v3.0.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#302) [Compare Source](https://github.com/prettier/prettier/compare/3.0.1...3.0.2) [diff](https://github.com/prettier/prettier/compare/3.0.1...3.0.2) ##### Break after `=` of assignment if RHS is poorly breakable AwaitExpression or YieldExpression ([#&#8203;15204](https://github.com/prettier/prettier/pull/15204) by [@&#8203;seiyab](https://github.com/seiyab)) <!-- prettier-ignore --> ```js // Input const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData); // Prettier 3.0.1 const { section, rubric, authors, tags } = await utils.upsertCommonData( mainData, ); // Prettier 3.0.2 const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData); ``` ##### Do not add trailing comma for grouped scss comments ([#&#8203;15217](https://github.com/prettier/prettier/pull/15217) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```scss /* Input */ $foo: ( 'property': (), // comment 1 // comment 2 ) /* Prettier 3.0.1 */ $foo: ( "property": (), // comment 1 // comment 2, ); /* Prettier 3.0.2 */ $foo: ( "property": (), // comment 1 // comment 2 ); ``` ##### Print `declare` and `export` keywords for nested namespace ([#&#8203;15249](https://github.com/prettier/prettier/pull/15249) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```tsx // Input declare namespace abc1.def {} export namespace abc2.def {} // Prettier 3.0.1 namespace abc1.def {} namespace abc2.def {} // Prettier 3.0.2 declare namespace abc1.def {} export namespace abc2.def {} ``` ### [`v3.0.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#301) [Compare Source](https://github.com/prettier/prettier/compare/3.0.0...3.0.1) [diff](https://github.com/prettier/prettier/compare/3.0.0...3.0.1) ##### Fix cursor positioning for a special case ([#&#8203;14812](https://github.com/prettier/prettier/pull/14812) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js // <|> is the cursor position /* Input */ // All messages are represented in JSON. // So, the prettier.py controls a subprocess which spawns "node {this_file}". import {<|> } from "fs" /* Prettier 3.0.0 */ // All messages are represented in JSON. // So, the prettier.py <|>controls a subprocess which spawns "node {this_file}". import {} from "fs" /* Prettier 3.0.1 */ // All messages are represented in JSON. // So, the prettier.py controls a subprocess which spawns "node {this_file}". import {<|>} from "fs" ``` ##### Fix plugins/estree.d.ts to make it a module ([#&#8203;15018](https://github.com/prettier/prettier/pull/15018) by [@&#8203;kingyue737](https://github.com/kingyue737)) Add `export {}` in `plugins/estree.d.ts` to fix the "File is not a module" error ##### Add parenthesis around leading multiline comment in return statement ([#&#8203;15037](https://github.com/prettier/prettier/pull/15037) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```jsx // Input function fn() { return ( /** * @&#8203;type {...} */ expression ) } // Prettier 3.0.0 function fn() { return /** * @&#8203;type {...} */ expression; } // Prettier 3.0.1 function fn() { return ( /** * @&#8203;type {...} */ expression ); } ``` ##### Add support for Vue "Generic Components" ([#&#8203;15066](https://github.com/prettier/prettier/pull/15066) by [@&#8203;auvred](https://github.com/auvred)) https://blog.vuejs.org/posts/vue-3-3#generic-components <!-- prettier-ignore --> ```vue <!-- Input --> <script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"></script> <!-- Prettier 3.0.0 --> <script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean" ></script> <!-- Prettier 3.0.1 --> <script setup lang="ts" generic=" T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean " ></script> ``` ##### Fix comments print in `IfStatement` ([#&#8203;15076](https://github.com/prettier/prettier/pull/15076) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js function a(b) { if (b) return 1; // comment else return 2; } /* Prettier 3.0.0 */ Error: Comment "comment" was not printed. Please report this error! /* Prettier 3.0.1 */ function a(b) { if (b) return 1; // comment else return 2; } ``` ##### Add missing type definition for `printer.preprocess` ([#&#8203;15123](https://github.com/prettier/prettier/pull/15123) by [@&#8203;so1ve](https://github.com/so1ve)) ```diff export interface Printer<T = any> { // ... + preprocess?: + | ((ast: T, options: ParserOptions<T>) => T | Promise<T>) + | undefined; } ``` ##### Add missing `getVisitorKeys` method type definition for `Printer` ([#&#8203;15125](https://github.com/prettier/prettier/pull/15125) by [@&#8203;auvred](https://github.com/auvred)) ```tsx const printer: Printer = { print: () => [], getVisitorKeys(node, nonTraversableKeys) { return ["body"]; }, }; ``` ##### Add typing to support `readonly` array properties of AST Node ([#&#8203;15127](https://github.com/prettier/prettier/pull/15127) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```tsx // Input interface TestNode { readonlyArray: readonly string[]; } declare const path: AstPath<TestNode>; path.map(() => "", "readonlyArray"); // Prettier 3.0.0 interface TestNode { readonlyArray: readonly string[]; } declare const path: AstPath<TestNode>; path.map(() => "", "readonlyArray"); // ^ Argument of type '"readonlyArray"' is not assignable to parameter of type '"regularArray"'. ts(2345) // Prettier 3.0.1 interface TestNode { readonlyArray: readonly string[]; } declare const path: AstPath<TestNode>; path.map(() => "", "readonlyArray"); ``` ##### Add space before unary minus followed by a function call ([#&#8203;15129](https://github.com/prettier/prettier/pull/15129) by [@&#8203;pamelalozano](https://github.com/pamelalozano)) <!-- prettier-ignore --> ```less // Input div { margin: - func(); } // Prettier 3.0.0 div { margin: -func(); } // Prettier 3.0.1 div { margin: - func(); } ``` ### [`v3.0.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#300) [Compare Source](https://github.com/prettier/prettier/compare/2.8.8...3.0.0) [diff](https://github.com/prettier/prettier/compare/3.0.0-alpha.6...3.0.0) 🔗 [Release Notes](https://prettier.io/blog/2023/07/05/3.0.0.html) ### [`v2.8.8`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#288) [Compare Source](https://github.com/prettier/prettier/compare/2.8.7...2.8.8) This version is a republished version of v2.8.7. A bad version was accidentally published and [it can't be unpublished](https://github.com/npm/cli/issues/1686), apologies for the churn. ### [`v2.8.7`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#287) [Compare Source](https://github.com/prettier/prettier/compare/2.8.6...2.8.7) [diff](https://github.com/prettier/prettier/compare/2.8.6...2.8.7) ##### Allow multiple decorators on same getter/setter ([#&#8203;14584](https://github.com/prettier/prettier/pull/14584) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```ts // Input class A { @&#8203;decorator() get foo () {} @&#8203;decorator() set foo (value) {} } // Prettier 2.8.6 SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3) 3 | get foo () {} 4 | > 5 | @&#8203;decorator() | ^^^^^^^^^^^^ 6 | set foo (value) {} 7 | } // Prettier 2.8.7 class A { @&#8203;decorator() get foo() {} @&#8203;decorator() set foo(value) {} } ``` ### [`v2.8.6`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#286) [Compare Source](https://github.com/prettier/prettier/compare/2.8.5...2.8.6) [diff](https://github.com/prettier/prettier/compare/2.8.5...2.8.6) ##### Allow decorators on private members and class expressions ([#&#8203;14548](https://github.com/prettier/prettier/pull/14548) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```ts // Input class A { @&#8203;decorator() #privateMethod () {} } // Prettier 2.8.5 SyntaxError: Decorators are not valid here. (2:3) 1 | class A { > 2 | @&#8203;decorator() | ^^^^^^^^^^^^ 3 | #privateMethod () {} 4 | } // Prettier 2.8.6 class A { @&#8203;decorator() #privateMethod() {} } ``` ### [`v2.8.5`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#285) [Compare Source](https://github.com/prettier/prettier/compare/2.8.4...2.8.5) [diff](https://github.com/prettier/prettier/compare/2.8.4...2.8.5) ##### Support TypeScript 5.0 ([#&#8203;14391](https://github.com/prettier/prettier/pull/14391) by [@&#8203;fisker](https://github.com/fisker), [#&#8203;13819](https://github.com/prettier/prettier/pull/13819) by [@&#8203;fisker](https://github.com/fisker), [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) TypeScript 5.0 introduces two new syntactic features: - `const` modifiers for type parameters - `export type *` declarations ##### Add missing parentheses for decorator ([#&#8203;14393](https://github.com/prettier/prettier/pull/14393) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input class Person { @&#8203;(myDecoratorArray[0]) greet() {} } // Prettier 2.8.4 class Person { @&#8203;myDecoratorArray[0] greet() {} } // Prettier 2.8.5 class Person { @&#8203;(myDecoratorArray[0]) greet() {} } ``` ##### Add parentheses for `TypeofTypeAnnotation` to improve readability ([#&#8203;14458](https://github.com/prettier/prettier/pull/14458) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type A = (typeof node.children)[]; // Prettier 2.8.4 type A = typeof node.children[]; // Prettier 2.8.5 type A = (typeof node.children)[]; ``` ##### Support `max_line_length=off` when parsing `.editorconfig` ([#&#8203;14516](https://github.com/prettier/prettier/pull/14516) by [@&#8203;josephfrazier](https://github.com/josephfrazier)) If an .editorconfig file is in your project and it sets `max_line_length=off` for the file you're formatting, it will be interpreted as a `printWidth` of `Infinity` rather than being ignored (which previously resulted in the default `printWidth` of 80 being applied, if not overridden by Prettier-specific configuration). <!-- prettier-ignore --> ```html <!-- Input --> <div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/> <!-- Prettier 2.8.4 --> <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />; <!-- Prettier 2.8.5 --> <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />; ``` ### [`v2.8.4`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#284) [Compare Source](https://github.com/prettier/prettier/compare/2.8.3...2.8.4) [diff](https://github.com/prettier/prettier/compare/2.8.3...2.8.4) ##### Fix leading comments in mapped types with `readonly` ([#&#8203;13427](https://github.com/prettier/prettier/pull/13427) by [@&#8203;thorn0](https://github.com/thorn0), [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```tsx // Input type Type = { // comment readonly [key in Foo]; }; // Prettier 2.8.3 type Type = { readonly // comment [key in Foo]; }; // Prettier 2.8.4 type Type = { // comment readonly [key in Foo]; }; ``` ##### Group params in opening block statements ([#&#8203;14067](https://github.com/prettier/prettier/pull/14067) by [@&#8203;jamescdavis](https://github.com/jamescdavis)) This is a follow-up to [#&#8203;13930](https://github.com/prettier/prettier/issues/13930) to establish wrapping consistency between opening block statements and else blocks by grouping params in opening blocks. This causes params to break to a new line together and not be split across lines unless the length of params exceeds the print width. This also updates the else block wrapping to behave exactly the same as opening blocks. <!-- prettier-ignore --> ```hbs {{! Input }} {{#block param param param param param param param param param param as |blockParam|}} Hello {{else block param param param param param param param param param param as |blockParam|}} There {{/block}} {{! Prettier 2.8.3 }} {{#block param param param param param param param param param param as |blockParam| }} Hello {{else block param param param param param param param param param param}} There {{/block}} {{! Prettier 2.8.4 }} {{#block param param param param param param param param param param as |blockParam| }} Hello {{else block param param param param param param param param param param as |blockParam| }} There {{/block}} ``` ##### Ignore files in `.sl/` ([#&#8203;14206](https://github.com/prettier/prettier/pull/14206) by [@&#8203;bolinfest](https://github.com/bolinfest)) In [Sapling SCM](https://sapling-scm.com/), `.sl/` is the folder where it stores its state, analogous to `.git/` in Git. It should be ignored in Prettier like the other SCM folders. ##### Recognize `@satisfies` in Closure-style type casts ([#&#8203;14262](https://github.com/prettier/prettier/pull/14262) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337}); const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337}); // Prettier 2.8.3 const a = /** @&#8203;satisfies {Record<string, string>} */ { hello: 1337 }; const b = /** @&#8203;type {Record<string, string>} */ ({ hello: 1337 }); // Prettier 2.8.4 const a = /** @&#8203;satisfies {Record<string, string>} */ ({hello: 1337}); const b = /** @&#8203;type {Record<string, string>} */ ({hello: 1337}); ``` ##### Fix parens in inferred function return types with `extends` ([#&#8203;14279](https://github.com/prettier/prettier/pull/14279) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```ts // Input type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never; // Prettier 2.8.3 (First format) type Foo<T> = T extends (a) => a is infer R extends string ? R : never; // Prettier 2.8.3 (Second format) SyntaxError: '?' expected. // Prettier 2.8.4 type Foo<T> = T extends ((a) => a is infer R extends string) ? R : never; ``` ### [`v2.8.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#283) [Compare Source](https://github.com/prettier/prettier/compare/2.8.2...2.8.3) [diff](https://github.com/prettier/prettier/compare/2.8.2...2.8.3) ##### Allow self-closing tags on custom elements ([#&#8203;14170](https://github.com/prettier/prettier/pull/14170) by [@&#8203;fisker](https://github.com/fisker)) See [Angular v15.1.0 release note](https://github.com/angular/angular/releases/tag/15.1.0) for details. <!-- prettier-ignore --> ```html // Input <app-test/> // Prettier 2.8.2 SyntaxError: Only void and foreign elements can be self closed "app-test" (1:1) > 1 | <app-test/> | ^^^^^^^^^ 2 | // Prettier 2.8.3 <app-test /> ``` ### [`v2.8.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#282) [Compare Source](https://github.com/prettier/prettier/compare/2.8.1...2.8.2) [diff](https://github.com/prettier/prettier/compare/2.8.1...2.8.2) ##### Don't lowercase link references ([#&#8203;13155](https://github.com/prettier/prettier/pull/13155) by [@&#8203;DerekNonGeneric](https://github.com/DerekNonGeneric) & [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```markdown <!-- Input --> We now don't strictly follow the release notes format suggested by [Keep a Changelog]. [Keep a Changelog]: https://example.com/ <!-- Prettier 2.8.1 --> We now don't strictly follow the release notes format suggested by [Keep a Changelog]. [keep a changelog]: https://example.com/ <!-- ^^^^^^^^^^^^^^^^^^ lowercased --> <!-- Prettier 2.8.2 --> <Same as input> ``` ##### Preserve self-closing tags ([#&#8203;13691](https://github.com/prettier/prettier/pull/13691) by [@&#8203;dcyriller](https://github.com/dcyriller)) <!-- prettier-ignore --> ```hbs {{! Input }} <div /> <div></div> <custom-component /> <custom-component></custom-component> <i /> <i></i> <Component /> <Component></Component> {{! Prettier 2.8.1 }} <div></div> <div></div> <custom-component></custom-component> <custom-component></custom-component> <i></i> <i></i> <Component /> <Component /> {{! Prettier 2.8.2 }} <div /> <div></div> <custom-component /> <custom-component></custom-component> <i /> <i></i> <Component /> <Component /> ``` ##### Allow custom "else if"-like blocks with block params ([#&#8203;13930](https://github.com/prettier/prettier/pull/13930) by [@&#8203;jamescdavis](https://github.com/jamescdavis)) [#&#8203;13507](https://github.com/prettier/prettier/issues/13507) added support for custom block keywords used with `else`, but failed to allow block params. This updates printer-glimmer to allow block params with custom "else if"-like blocks. <!-- prettier-ignore --> ```hbs {{! Input }} {{#when isAtWork as |work|}} Ship that {{work}}! {{else when isReading as |book|}} You can finish {{book}} eventually... {{else}} Go to bed! {{/when}} {{! Prettier 2.8.1 }} {{#when isAtWork as |work|}} Ship that {{work}}! {{else when isReading}} You can finish {{book}} eventually... {{else}} Go to bed! {{/when}} {{! Prettier 2.8.2 }} {{#when isAtWork as |work|}} Ship that {{work}}! {{else when isReading as |book|}} You can finish {{book}} eventually... {{else}} Go to bed! {{/when}} ``` ##### Preserve empty lines between nested SCSS maps ([#&#8203;13931](https://github.com/prettier/prettier/pull/13931) by [@&#8203;jneander](https://github.com/jneander)) <!-- prettier-ignore --> ```scss /* Input */ $map: ( 'one': ( 'key': 'value', ), 'two': ( 'key': 'value', ), ) /* Prettier 2.8.1 */ $map: ( 'one': ( 'key': 'value', ), 'two': ( 'key': 'value', ), ) /* Prettier 2.8.2 */ $map: ( 'one': ( 'key': 'value', ), 'two': ( 'key': 'value', ), ) ``` ##### Fix missing parentheses when an expression statement starts with `let[` ([#&#8203;14000](https://github.com/prettier/prettier/pull/14000), [#&#8203;14044](https://github.com/prettier/prettier/pull/14044) by [@&#8203;fisker](https://github.com/fisker), [@&#8203;thorn0](https://github.com/thorn0)) <!-- prettier-ignore --> ```jsx // Input (let[0] = 2); // Prettier 2.8.1 let[0] = 2; // Prettier 2.8.1 (second format) SyntaxError: Unexpected token (1:5) > 1 | let[0] = 2; | ^ 2 | // Prettier 2.8.2 (let)[0] = 2; ``` ##### Fix semicolon duplicated at the end of LESS file ([#&#8203;14007](https://github.com/prettier/prettier/pull/14007) by [@&#8203;mvorisek](https://github.com/mvorisek)) <!-- prettier-ignore --> ```less // Input @&#8203;variable: { field: something; }; // Prettier 2.8.1 @&#8203;variable: { field: something; }; ; // Prettier 2.8.2 @&#8203;variable: { field: something; }; ``` ##### Fix no space after unary minus when followed by opening parenthesis in LESS ([#&#8203;14008](https://github.com/prettier/prettier/pull/14008) by [@&#8203;mvorisek](https://github.com/mvorisek)) <!-- prettier-ignore --> ```less // Input .unary_minus_single { margin: -(@&#8203;a); } .unary_minus_multi { margin: 0 -(@&#8203;a); } .binary_minus { margin: 0 - (@&#8203;a); } // Prettier 2.8.1 .unary_minus_single { margin: - (@&#8203;a); } .unary_minus_multi { margin: 0 - (@&#8203;a); } .binary_minus { margin: 0 - (@&#8203;a); } // Prettier 2.8.2 .unary_minus_single { margin: -(@&#8203;a); } .unary_minus_multi { margin: 0 -(@&#8203;a); } .binary_minus { margin: 0 - (@&#8203;a); } ``` ##### Do not change case of property name if inside a variable declaration in LESS ([#&#8203;14034](https://github.com/prettier/prettier/pull/14034) by [@&#8203;mvorisek](https://github.com/mvorisek)) <!-- prettier-ignore --> ```less // Input @&#8203;var: { preserveCase: 0; }; // Prettier 2.8.1 @&#8203;var: { preservecase: 0; }; // Prettier 2.8.2 @&#8203;var: { preserveCase: 0; }; ``` ##### Fix formatting for auto-accessors with comments ([#&#8203;14038](https://github.com/prettier/prettier/pull/14038) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input class A { @&#8203;dec() // comment accessor b; } // Prettier 2.8.1 class A { @&#8203;dec() accessor // comment b; } // Prettier 2.8.1 (second format) class A { @&#8203;dec() accessor; // comment b; } // Prettier 2.8.2 class A { @&#8203;dec() // comment accessor b; } ``` ##### Add parentheses for TSTypeQuery to improve readability ([#&#8203;14042](https://github.com/prettier/prettier/pull/14042) by [@&#8203;onishi-kohei](https://github.com/onishi-kohei)) <!-- prettier-ignore --> ```tsx // Input a as (typeof node.children)[number] a as (typeof node.children)[] a as ((typeof node.children)[number])[] // Prettier 2.8.1 a as typeof node.children[number]; a as typeof node.children[]; a as typeof node.children[number][]; // Prettier 2.8.2 a as (typeof node.children)[number]; a as (typeof node.children)[]; a as (typeof node.children)[number][]; ``` ##### Fix displacing of comments in default switch case ([#&#8203;14047](https://github.com/prettier/prettier/pull/14047) by [@&#8203;thorn0](https://github.com/thorn0)) It was a regression in Prettier 2.6.0. <!-- prettier-ignore --> ```jsx // Input switch (state) { default: result = state; // no change break; } // Prettier 2.8.1 switch (state) { default: // no change result = state; break; } // Prettier 2.8.2 switch (state) { default: result = state; // no change break; } ``` ##### Support type annotations on auto accessors via `babel-ts` ([#&#8203;14049](https://github.com/prettier/prettier/pull/14049) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) [The bug that `@babel/parser` cannot parse auto accessors with type annotations](https://github.com/babel/babel/issues/15205) has been fixed. So we now support it via `babel-ts` parser. <!-- prettier-ignore --> ```tsx class Foo { accessor prop: number; } ``` ##### Fix formatting of empty type parameters ([#&#8203;14073](https://github.com/prettier/prettier/pull/14073) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input const foo: bar</* comment */> = () => baz; // Prettier 2.8.1 Error: Comment "comment" was not printed. Please report this error! // Prettier 2.8.2 const foo: bar</* comment */> = () => baz; ``` ##### Add parentheses to head of `ExpressionStatement` instead of the whole statement ([#&#8203;14077](https://github.com/prettier/prettier/pull/14077) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input ({}).toString.call(foo) === "[object Array]" ? foo.forEach(iterateArray) : iterateObject(foo); // Prettier 2.8.1 ({}.toString.call(foo) === "[object Array]" ? foo.forEach(iterateArray) : iterateObject(foo)); // Prettier 2.8.2 ({}).toString.call(foo.forEach) === "[object Array]" ? foo.forEach(iterateArray) : iterateObject(foo); ``` ##### Fix comments after directive ([#&#8203;14081](https://github.com/prettier/prettier/pull/14081) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input "use strict" /* comment */; // Prettier 2.8.1 (with other js parsers except `babel`) Error: Comment "comment" was not printed. Please report this error! // Prettier 2.8.2 <Same as input> ``` ##### Fix formatting for comments inside JSX attribute ([#&#8203;14082](https://github.com/prettier/prettier/pull/14082) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input function MyFunctionComponent() { <button label=/*old*/"new">button</button> } // Prettier 2.8.1 Error: Comment "old" was not printed. Please report this error! // Prettier 2.8.2 function MyFunctionComponent() { <button label=/*old*/ "new">button</button>; } ``` ##### Quote numeric keys for json-stringify parser ([#&#8203;14083](https://github.com/prettier/prettier/pull/14083) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input {0: 'value'} // Prettier 2.8.1 { 0: "value" } // Prettier 2.8.2 { "0": "value" } ``` ##### Fix removing commas from function arguments in maps ([#&#8203;14089](https://github.com/prettier/prettier/pull/14089) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```scss /* Input */ $foo: map-fn( ( "#{prop}": inner-fn($first, $second), ) ); /* Prettier 2.8.1 */ $foo: map-fn(("#{prop}": inner-fn($first $second))); /* Prettier 2.8.2 */ $foo: map-fn( ( "#{prop}": inner-fn($first, $second), ) ); ``` ##### Do not insert space in LESS property access ([#&#8203;14103](https://github.com/prettier/prettier/pull/14103) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```less // Input a { color: @&#8203;colors[@&#8203;white]; } // Prettier 2.8.1 a { color: @&#8203;colors[ @&#8203;white]; } // Prettier 2.8.2 <Same as input> ``` ### [`v2.8.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#281) [Compare Source](https://github.com/prettier/prettier/compare/2.8.0...2.8.1) [diff](https://github.com/prettier/prettier/compare/2.8.0...2.8.1) ##### Fix SCSS map in arguments ([#&#8203;9184](https://github.com/prettier/prettier/pull/9184) by [@&#8203;agamkrbit](https://github.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 ([#&#8203;13919](https://github.com/prettier/prettier/pull/13919) by [@&#8203;sosukesuzuki](https://github.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; } ``` ### [`v2.8.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#280) [Compare Source](https://github.com/prettier/prettier/compare/2.7.1...2.8.0) [diff](https://github.com/prettier/prettier/compare/2.7.1...2.8.0) 🔗 [Release Notes](https://prettier.io/blog/2022/11/23/2.8.0.html) ### [`v2.7.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#271) [Compare Source](https://github.com/prettier/prettier/compare/2.7.0...2.7.1) [diff](https://github.com/prettier/prettier/compare/2.7.0...2.7.1) ##### Keep useful empty lines in description ([#&#8203;13013](https://github.com/prettier/prettier/pull/13013) by [@&#8203;chimurai](https://github.com/chimurai)) <!-- prettier-ignore --> ```graphql ``` ### [`v2.7.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#Prettier-270) [Compare Source](https://github.com/prettier/prettier/compare/2.6.2...2.7.0) """ First line Second Line """ type Person { name: String } </details> <details> <summary>tailwindlabs/prettier-plugin-tailwindcss (prettier-plugin-tailwindcss)</summary> ### [`v0.6.9`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#069---2024-11-19) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.8...v0.6.9) - Introduce `tailwindStylesheet` option to replace `tailwindEntryPoint` ([#&#8203;330](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/330)) ### [`v0.6.8`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#068---2024-09-24) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.7...v0.6.8) - Fix crash ([#&#8203;320](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/320)) ### [`v0.6.7`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#067---2024-09-24) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.6...v0.6.7) - Improved performance with large Svelte, Liquid, and Angular files ([#&#8203;312](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/312)) - Add support for `@plugin` and `@config` in v4 ([#&#8203;316](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/316)) - Add support for Tailwind CSS v4.0.0-alpha.25 ([#&#8203;317](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/317)) ### [`v0.6.6`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#066---2024-08-09) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.5...v0.6.6) - Add support for `prettier-plugin-multiline-arrays` ([#&#8203;299](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/299)) - Add resolution cache for known plugins ([#&#8203;301](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/301)) - Support Tailwind CSS `v4.0.0-alpha.19` ([#&#8203;310](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/310)) ### [`v0.6.5`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#065---2024-06-17) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.4...v0.6.5) - Only re-apply string escaping when necessary ([#&#8203;295](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/295)) ### [`v0.6.4`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#064---2024-06-12) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.3...v0.6.4) - Export `PluginOptions` type ([#&#8203;292](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/292)) ### [`v0.6.3`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#063---2024-06-11) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.2...v0.6.3) - Improve detection of string concatenation ([#&#8203;288](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/288)) ### [`v0.6.2`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#062---2024-06-07) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.1...v0.6.2) ##### Changed - Only remove duplicate Tailwind classes ([#&#8203;277](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/277)) - Make sure escapes in classes are preserved in string literals ([#&#8203;286](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/286)) ### [`v0.6.1`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#061---2024-05-31) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.0...v0.6.1) ##### Added - Add new `tailwindPreserveDuplicates` option to disable removal of duplicate classes ([#&#8203;276](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/276)) ##### Fixed - Improve handling of whitespace removal when concatenating strings ([#&#8203;276](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/276)) - Fix a bug where Angular expressions may produce invalid code after sorting ([#&#8203;276](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/276)) - Disabled whitespace and duplicate class removal for Liquid and Svelte ([#&#8203;276](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/276)) ### [`v0.6.0`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#060---2024-05-30) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.14...v0.6.0) ##### Changed - Remove duplicate classes ([#&#8203;272](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/272)) - Remove extra whitespace around classes ([#&#8203;272](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/272)) ### [`v0.5.14`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0514---2024-04-15) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.13...v0.5.14) ##### Fixed - Fix detection of v4 projects on Windows ([#&#8203;265](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/265)) ### [`v0.5.13`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0513---2024-03-27) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.12...v0.5.13) ##### Added - Add support for `@zackad/prettier-plugin-twig-melody` ([#&#8203;255](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/255)) ### [`v0.5.12`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0512---2024-03-06) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.11...v0.5.12) ##### Added - Add support for `prettier-plugin-sort-imports` ([#&#8203;241](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/241)) - Add support for Tailwind CSS v4.0 ([#&#8203;249](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/249)) ### [`v0.5.11`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0511---2024-01-05) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.10...v0.5.11) ##### Changed - Bumped bundled version of Tailwind CSS to v3.4.1 ([#&#8203;240](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/240)) ### [`v0.5.10`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0510---2023-12-28) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.9...v0.5.10) ##### Changed - Bumped bundled version of Tailwind CSS to v3.4 ([#&#8203;235](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/235)) ### [`v0.5.9`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#059---2023-12-05) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.8...v0.5.9) ##### Fixed - Fixed location of embedded preflight CSS file ([#&#8203;231](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/231)) ### [`v0.5.8`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#058---2023-12-05) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.7...v0.5.8) ##### Added - Re-enable support for `prettier-plugin-marko` ([#&#8203;229](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/229)) ### [`v0.5.7`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#057---2023-11-08) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.6...v0.5.7) ##### Fixed - Fix sorting inside dynamic custom attributes ([#&#8203;225](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/225)) ### [`v0.5.6`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#056---2023-10-12) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.5...v0.5.6) ##### Fixed - Fix sorting inside `{{ … }}` expressions when using `@shopify/prettier-plugin-liquid` v1.3+ ([#&#8203;222](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/222)) ### [`v0.5.5`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#055---2023-10-03) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.4...v0.5.5) ##### Fixed - Sort classes inside `className` in Astro ([#&#8203;215](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/215)) - Support member access on function calls ([#&#8203;218](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/218)) ### [`v0.5.4`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#054---2023-08-31) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.3...v0.5.4) ##### Fixed - Type `tailwindFunctions` and `tailwindAttributes` as optional ([#&#8203;206](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/206)) - Don’t break `@apply … #{'!important'}` sorting in SCSS ([#&#8203;212](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/212)) ### [`v0.5.3`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#053---2023-08-15) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.2...v0.5.3) ##### Fixed - Fix CJS `__dirname` interop on Windows ([#&#8203;204](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/204)) ### [`v0.5.2`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#052---2023-08-11) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.1...v0.5.2) ##### Fixed - Fix intertop with bundled CJS dependencies ([#&#8203;199](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/199)) ### [`v0.5.1`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#0514---2024-04-15) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.0...v0.5.1) ##### Fixed - Fix detection of v4 projects on Windows ([#&#8203;265](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/265)) ### [`v0.5.0`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#050---2023-08-10) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.4.1...v0.5.0) ##### Added - Sort expressions in Astro's `class:list` attribute ([#&#8203;192](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/192)) - Re-enabled support for plugins when using Prettier v3+ ([#&#8203;195](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/195)) ### [`v0.4.1`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#041---2023-07-14) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.4.0...v0.4.1) ##### Fixed - Don't move partial classes inside Twig attributes ([#&#8203;184](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/184)) ### [`v0.4.0`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#040---2023-07-11) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.3.0...v0.4.0) ##### Added - Export types for Prettier config ([#&#8203;162](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/162)) - Add Prettier v3 support ([#&#8203;179](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/179)) ##### Fixed - Don't move partial classes inside Liquid script attributes ([#&#8203;164](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/164)) - Do not split classes by non-ASCII whitespace ([#&#8203;166](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/166)) - Match tagged template literals with tag expressions ([#&#8203;169](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/169)) ### [`v0.3.0`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#030---2023-05-15) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.8...v0.3.0) ##### Added - Added support for `prettier-plugin-marko` ([#&#8203;151](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/151)) - Allow sorting of custom attributes, functions, and tagged template literals ([#&#8203;155](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/155)) ##### Fixed - Speed up formatting ([#&#8203;153](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/153)) - Fix plugin compatibility when loaded with require ([#&#8203;159](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/159)) ### [`v0.2.8`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#028---2023-04-28) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.7...v0.2.8) ##### Changed - Remove support for `@prettier/plugin-php` ([#&#8203;152](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/152)) ### [`v0.2.7`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#027---2023-04-05) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.6...v0.2.7) ##### Fixed - Don't break liquid tags inside attributes when sorting classes ([#&#8203;143](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/143)) ### [`v0.2.6`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#026---2023-03-29) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.5...v0.2.6) ##### Added - Support ESM and TS config files ([#&#8203;137](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/137)) ##### Fixed - Load `tailwindcss` modules from nearest instance only ([#&#8203;139](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/139)) ### [`v0.2.5`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#025---2023-03-17) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.4...v0.2.5) ##### Fixed - Fix class sorting in `capture` liquid tag ([#&#8203;131](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/131)) ### [`v0.2.4`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#024---2023-03-02) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.3...v0.2.4) ##### Fixed - Sort `class` attribute on components and custom elements in Astro ([#&#8203;129](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/129)) ### [`v0.2.3`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#023---2023-02-15) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.2...v0.2.3) ##### Fixed - Don't sort classes in Glimmer `concat` helper ([#&#8203;119](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/119)) - Add support for `@ianvs/prettier-plugin-sort-imports` ([#&#8203;122](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/122)) ### [`v0.2.2`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#022---2023-01-24) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.1...v0.2.2) ##### Fixed - Add prettier plugins to peer dependencies ([#&#8203;114](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/114)) - Traverse await expression blocks in Svelte ([#&#8203;118](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/118)) ### [`v0.2.1`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#021---2022-12-08) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.2.0...v0.2.1) ##### Fixed - Fix support for latest Shopify Liquid plugin ([#&#8203;109](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/109)) ### [`v0.2.0`](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/HEAD/CHANGELOG.md#020---2022-11-25) [Compare Source](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.1.13...v0.2.0) ##### Changed - Don't bundle `prettier-plugin-svelte` ([#&#8203;101](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/101)) ##### Added - Improve compatibility with other Prettier plugins ([#&#8203;101](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/101), [#&#8203;102](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/pull/102)) </details> <details> <summary>sass/dart-sass (sass)</summary> ### [`v1.81.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1810) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.7...1.81.0) - Fix a few cases where deprecation warnings weren't being emitted for global built-in functions whose names overlap with CSS calculations. - Add support for the CSS `round()` calculation with a single argument, as long as that argument might be a unitless number. ### [`v1.80.7`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1807) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.6...1.80.7) ##### Embedded Host - Don't treat `0` as `undefined` for the `green` and `blue` channels in the `LegacyColor` constructor. ### [`v1.80.6`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1806) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.5...1.80.6) ##### Command-Line Interface - Make `@parcel/watcher` an optional dependency so this can still be installed on operating systems where it's unavailable. ### [`v1.80.5`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1805) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.4...1.80.5) ##### Embedded Host - Don't produce phantom `@import` deprecations when using an importer with the legacy API. ### [`v1.80.4`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1804) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.3...1.80.4) - No user-visible changes. ### [`v1.80.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1803) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.2...1.80.3) - Fix a bug where `@import url("...")` would crash in plain CSS files. - Improve consistency of how warnings are emitted by different parts of the compiler. This should result in minimal user-visible changes, but different types of warnings should now respond more reliably to flags like `--quiet`, `--verbose`, and `--silence-deprecation`. ### [`v1.80.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1802) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.1...1.80.2) - Fix a bug where deprecation warnings were incorrectly emitted for the plain-CSS `invert()` function. ### [`v1.80.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1801) [Compare Source](https://github.com/sass/dart-sass/compare/1.80.0...1.80.1) - Fix a bug where repeated deprecation warnings were not automatically limited. ### [`v1.80.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1800) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.6...1.80.0) - `@import` is now officially deprecated, as are global built-in functions that are available within built-in modules. See [the Sass blog post] for more details on the deprecation process. [the Sass blog post]: https://sass-lang.com/blog/import-is-deprecated/ ##### Embedded Host - Fix an error that would sometimes occur when deprecation warnings were emitted when using a custom importer with the legacy API. ### [`v1.79.6`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1796) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.5...1.79.6) - Fix a bug where Sass would add an extra `*/` after loud comments with whitespace after an explicit `*/` in the indented syntax. - **Potentially breaking bug fix:** Adding text after an explicit `*/` in the indented syntax is now an error, rather than silently generating invalid CSS. ##### Embedded Host - Properly export the `SassBoolean` type. ### [`v1.79.5`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1795) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.4...1.79.5) - Changes to how `selector.unify()` and `@extend` combine selectors: - The relative order of pseudo-classes (like `:hover`) and pseudo-elements (like `::before`) within each original selector is now preserved when they're combined. - Pseudo selectors are now consistently placed at the end of the combined selector, regardless of which selector they came from. Previously, this reordering only applied to pseudo-selectors in the second selector. - Tweak the color transformation matrices for OKLab and OKLCH to match the newer, more accurate values in the CSS spec. - Fix a slight inaccuracy case when converting to `srgb-linear` and `display-p3`. - **Potentially breaking bug fix:** `math.unit()` now wraps multiple denominator units in parentheses. For example, `px/(em*em)` instead of `px/em*em`. ##### Command-Line Interface - Use `@parcel/watcher` to watch the filesystem when running from JavaScript and not using `--poll`. This should mitigate more frequent failures users have been seeing since version 4.0.0 of Chokidar, our previous watching tool, was released. ##### JS API - Fix `SassColor.interpolate()` to allow an undefined `options` parameter, as the types indicate. ##### Embedded Sass - Properly pass missing color channel values to and from custom functions. ### [`v1.79.4`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1794) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.3...1.79.4) ##### JS API - Fix a bug where passing `green` or `blue` to `color.change()` for legacy colors would fail. ### [`v1.79.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1793) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.2...1.79.3) - Update the `$channel` parameter in the suggested replacement for `color.red()`, `color.green()`, `color.blue()`, `color.hue()`, `color.saturation()`, `color.lightness()`, `color.whiteness()`, and `color.blackness()` to use a quoted string. ### [`v1.79.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1792) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.1...1.79.2) - Add a `$space` parameter to the suggested replacement for `color.red()`, `color.green()`, `color.blue()`, `color.hue()`, `color.saturation()`, `color.lightness()`, `color.whiteness()`, and `color.blackness()`. - Update deprecation warnings for the legacy JS API to include a link to [relevant documentation]. [relevant documentation]: https://sass-lang.com/d/legacy-js-api ### [`v1.79.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1791) [Compare Source](https://github.com/sass/dart-sass/compare/1.79.0...1.79.1) - No user-visible changes. ### [`v1.79.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1790) [Compare Source](https://github.com/sass/dart-sass/compare/1.78.0...1.79.0) - **Breaking change**: Passing a number with unit `%` to the `$alpha` parameter of `color.change()`, `color.adjust()`, `change-color()`, and `adjust-color()` is now interpreted as a percentage, instead of ignoring the unit. For example, `color.change(red, $alpha: 50%)` now returns `rgb(255 0 0 / 0.5)`. - **Potentially breaking compatibility fix**: Sass no longer rounds RGB channels to the nearest integer. This means that, for example, `rgb(0 0 1) != rgb(0 0 0.6)`. This matches the latest version of the CSS spec and browser behavior. - **Potentially breaking compatibility fix**: Passing large positive or negative values to `color.adjust()` can now cause a color's channels to go outside that color's gamut. In most cases this will currently be clipped by the browser and end up showing the same color as before, but once browsers implement gamut mapping it may produce a different result. - Add support for CSS Color Level 4 [color spaces]. Each color value now tracks its color space along with the values of each channel in that color space. There are two general principles to keep in mind when dealing with new color spaces: 1. With the exception of legacy color spaces (`rgb`, `hsl`, and `hwb`), colors will always be emitted in the color space they were defined in unless they're explicitly converted. 2. The `color.to-space()` function is the only way to convert a color to another color space. Some built-in functions may do operations in a different color space, but they'll always convert back to the original space afterwards. - `rgb` colors can now have non-integer channels and channels outside the normal gamut of 0-255. These colors are always emitted using the `rgb()` syntax so that modern browsers that are being displayed on wide-gamut devices can display the most accurate color possible. - Add support for all the new color syntax defined in Color Level 4, including: - `oklab()`, `oklch()`, `lab()`, and `lch()` functions; - a top-level `hwb()` function that matches the space-separated CSS syntax; - and a `color()` function that supports the `srgb`, `srgb-linear`, `display-p3`, `a98-rgb`, `prophoto-rgb`, `rec2020`, `xyz`, `xyz-d50`, and `xyz-d65` color spaces. - Add new functions for working with color spaces: - `color.to-space($color, $space)` converts `$color` to the given `$space`. In most cases this conversion is lossless—the color may end up out-of-gamut for the destination color space, but browsers will generally display it as best they can regardless. However, the `hsl` and `hwb` spaces can't represent out-of-gamut colors and so will be clamped. - `color.channel($color, $channel, $space: null)` returns the value of the given `$channel` in `$color`, after converting it to `$space` if necessary. It should be used instead of the old channel-specific functions such as `color.red()` and `color.hue()`. - `color.same($color1, $color2)` returns whether two colors represent the same color even across color spaces. It differs from `$color1 == $color2` because `==` never consider colors in different (non-legacy) spaces as equal. - `color.is-in-gamut($color, $space: null)` returns whether `$color` is in-gamut for its color space (or `$space` if it's passed). - `color.to-gamut($color, $space: null)` returns `$color` constrained to its space's gamut (or to `$space`'s gamut, if passed). This is generally not recommended since even older browsers will display out-of-gamut colors as best they can, but it may be necessary in some cases. - `color.space($color)`: Returns the name of `$color`'s color space. - `color.is-legacy($color)`: Returns whether `$color` is in a legacy color space (`rgb`, `hsl`, or `hwb`). - `color.is-powerless($color, $channel, $space: null)`: Returns whether the given `$channel` of `$color` is powerless in `$space` (or its own color space). A channel is "powerless" if its value doesn't affect the way the color is displayed, such as hue for a color with 0 chroma. - `color.is-missing($color, $channel)`: Returns whether `$channel`'s value is missing in `$color`. Missing channels can be explicitly specified using the special value `none` and can appear automatically when `color.to-space()` returns a color with a powerless channel. Missing channels are usually treated as 0, except when interpolating between two colors and in `color.mix()` where they're treated as the same value as the other color. - Update existing functions to support color spaces: - `hsl()` and `color.hwb()` no longer forbid out-of-bounds values. Instead, they follow the CSS spec by clamping them to within the allowed range. - `color.change()`, `color.adjust()`, and `color.scale()` now support all channels of all color spaces. However, if you want to modify a channel that's not in `$color`'s own color space, you have to explicitly specify the space with the `$space` parameter. (For backwards-compatibility, this doesn't apply to legacy channels of legacy colors—for example, you can still adjust an `rgb` color's saturation without passing `$space: hsl`). - `color.mix()` and `color.invert()` now support the standard CSS algorithm for interpolating between two colors (the same one that's used for gradients and animations). To use this, pass the color space to use for interpolation to the `$method` parameter. For polar color spaces like `hsl` and `oklch`, this parameter also allows you to specify how hue interpolation is handled. - `color.complement()` now supports a `$space` parameter that indicates which color space should be used to take the complement. - `color.grayscale()` now operates in the `oklch` space for non-legacy colors. - `color.ie-hex-str()` now automatically converts its color to the `rgb` space and gamut-maps it so that it can continue to take colors from any color space. [color spaces]: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value - The following functions are now deprecated, and uses should be replaced with the new color-space-aware functions defined above: - The `color.red()`, `color.green()`, `color.blue()`, `color.hue()`, `color.saturation()`, `color.lightness()`, `color.whiteness()`, and `color.blackness()` functions, as well as their global counterparts, should be replaced with calls to `color.channel()`. - The global `adjust-hue()`, `saturate()`, `desaturate()`, `lighten()`, `darken()`, `transaprentize()`, `fade-out()`, `opacify()`, and `fade-in()` functions should be replaced by `color.adjust()` or `color.scale()`. - Add a `global-builtin` future deprecation, which can be opted-into with the `--future-deprecation` flag or the `futureDeprecations` option in the JS or Dart API. This emits warnings when any global built-in functions that are now available in `sass:` modules are called. It will become active by default in an upcoming release alongside the `@import` deprecation. ##### Dart API - Added a `ColorSpace` class which represents the various color spaces defined in the CSS spec. - Added `SassColor.space` which returns a color's color space. - Added `SassColor.channels` and `.channelsOrNull` which returns a list of channel values, with missing channels converted to 0 or exposed as null, respectively. - Added `SassColor.isLegacy`, `.isInGamut`, `.channel()`, `.isChannelMissing()`, `.isChannelPowerless()`, `.toSpace()`, `.toGamut()`, `.changeChannels()`, and `.interpolate()` which do the same thing as the Sass functions of the corresponding names. - `SassColor.rgb()` now allows out-of-bounds and non-integer arguments. - `SassColor.hsl()` and `.hwb()` now allow out-of-bounds arguments. - Added `SassColor.hwb()`, `.srgb()`, `.srgbLinear()`, `.displayP3()`, `.a98Rgb()`, `.prophotoRgb()`, `.rec2020()`, `.xyzD50()`, `.xyzD65()`, `.lab()`, `.lch()`, `.oklab()`, `.oklch()`, and `.forSpace()` constructors. - Deprecated `SassColor.red`, `.green`, `.blue`, `.hue`, `.saturation`, `.lightness`, `.whiteness`, and `.blackness` in favor of `SassColor.channel()`. - Deprecated `SassColor.changeRgb()`, `.changeHsl()`, and `.changeHwb()` in favor of `SassColor.changeChannels()`. - Added `SassNumber.convertValueToUnit()` as a shorthand for `SassNumber.convertValue()` with a single numerator. - Added `InterpolationMethod` and `HueInterpolationMethod` which collectively represent the method to use to interpolate two colors. ##### JS API - While the legacy API has been deprecated since we released the modern API, we now emit warnings when the legacy API is used to make sure users are aware that it will be removed in Dart Sass 2.0.0. In the meantime, you can silence these warnings by passing `legacy-js-api` in `silenceDeprecations` when using the legacy API. - Modify `SassColor` to accept a new `space` option, with support for all the new color spaces defined in Color Level 4. - Add `SassColor.space` which returns a color's color space. - Add `SassColor.channels` and `.channelsOrNull` which returns a list of channel values, with missing channels converted to 0 or exposed as null, respectively. - Add `SassColor.isLegacy`, `.isInGamut()`, `.channel()`, `.isChannelMissing()`, `.isChannelPowerless()`, `.toSpace()`, `.toGamut()`, `.change()`, and `.interpolate()` which do the same thing as the Sass functions of the corresponding names. - Deprecate `SassColor.red`, `.green`, `.blue`, `.hue`, `.saturation`, `.lightness`, `.whiteness`, and `.blackness` in favor of `SassColor.channel()`. ##### Embedded Sass - Add `Color` SassScript value, with support for all the new color spaces defined in Color Level 4. - Remove `RgbColor`, `HslColor` and `HwbColor` SassScript values. ### [`v1.78.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1780) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.8...1.78.0) - The `meta.feature-exists` function is now deprecated. This deprecation is named `feature-exists`. - Fix a crash when using `@at-root` without any queries or children in the indented syntax. ##### JS API - Backport the deprecation options (`fatalDeprecations`, `futureDeprecations`, and `silenceDeprecations`) to the legacy JS API. The legacy JS API is itself deprecated, and you should move off of it if possible, but this will allow users of bundlers and other tools that are still using the legacy API to still control deprecation warnings. - Fix a bug where accessing `SourceSpan.url` would crash when a relative URL was passed to the Sass API. ##### Embedded Sass - Explicitly expose a `sass` executable from the `sass-embedded` npm package. This was intended to be included in 1.63.0, but due to the way platform-specific dependency executables are installed it did not work as intended. Now users can run `npx sass` for local installs or just `sass` when `sass-embedded` is installed globally. - Add linux-riscv64, linux-musl-riscv64, and android-riscv64 support for the `sass-embedded` npm package. - Fix an edge case where the Dart VM could hang when shutting down when requests were in flight. - Fix a race condition where the embedded host could fail to shut down if it was closed around the same time a new compilation was started. - Fix a bug where parse-time deprecation warnings could not be controlled by the deprecation options in some circumstances. ### [`v1.77.8`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1778) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.7...1.77.8) - No user-visible changes. ### [`v1.77.7`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1777) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.6...1.77.7) - Declarations that appear after nested rules are deprecated, because the semantics Sass has historically used are different from the semantics specified by CSS. In the future, Sass will adopt the standard CSS semantics. See [the Sass website](https://sass-lang.com/d/mixed-decls) for details. - **Potentially breaking bug fix:** `//` in certain places such as unknown at-rule values was being preserved in the CSS output, leading to potentially invalid CSS. It's now properly parsed as a silent comment and omitted from the CSS output. ### [`v1.77.6`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1776) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.5...1.77.6) - Fix a few cases where comments and occasionally even whitespace wasn't allowed between the end of Sass statements and the following semicolon. ### [`v1.77.5`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1775) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.4...1.77.5) - Fully trim redundant selectors generated by `@extend`. ### [`v1.77.4`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1774) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.3...1.77.4) ##### Embedded Sass - Support passing `Version` input for `fatalDeprecations` as string over embedded protocol. - Fix a bug in the JS Embedded Host where `Version` could be incorrectly accepted as input for `silenceDeprecations` and `futureDeprecations` in pure JS. ### [`v1.77.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1773) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.2...1.77.3) ##### Dart API - `Deprecation.duplicateVariableFlags` has been deprecated and replaced with `Deprecation.duplicateVarFlags` to make it consistent with the `duplicate-var-flags` name used on the command line and in the JS API. ### [`v1.77.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1772) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.1...1.77.2) - Don't emit deprecation warnings for functions and mixins beginning with `__`. - Allow user-defined functions whose names begin with `_` and otherwise look like vendor-prefixed functions with special CSS syntax. ##### Command-Line Interface - Properly handle the `--silence-deprecation` flag. - Handle the `--fatal-deprecation` and `--future-deprecation` flags for `--interactive` mode. ### [`v1.77.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1771) [Compare Source](https://github.com/sass/dart-sass/compare/1.77.0...1.77.1) - Fix a crash that could come up with importers in certain contexts. ### [`v1.77.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1770) [Compare Source](https://github.com/sass/dart-sass/compare/1.76.0...1.77.0) - *Don't* throw errors for at-rules in keyframe blocks. ### [`v1.76.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1760) [Compare Source](https://github.com/sass/dart-sass/compare/1.75.0...1.76.0) - Throw errors for misplaced statements in keyframe blocks. - Mixins and functions whose names begin with `--` are now deprecated for forwards-compatibility with the in-progress CSS functions and mixins spec. This deprecation is named `css-function-mixin`. ### [`v1.75.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1750) [Compare Source](https://github.com/sass/dart-sass/compare/1.74.1...1.75.0) - Fix a bug in which stylesheet canonicalization could be cached incorrectly when custom importers or the Node.js package importer made decisions based on the URL of the containing stylesheet. ##### JS API - Allow `importer` to be passed without `url` in `StringOptionsWithImporter`. ### [`v1.74.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1741) [Compare Source](https://github.com/sass/dart-sass/compare/1.72.0...1.74.1) - No user-visible changes. ### [`v1.72.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1720) [Compare Source](https://github.com/sass/dart-sass/compare/1.71.1...1.72.0) - Support adjacent `/`s without whitespace in between when parsing plain CSS expressions. - Allow the Node.js `pkg:` importer to load Sass stylesheets for `package.json` `exports` field entries without extensions. - When printing suggestions for variables, use underscores in variable names when the original usage used underscores. ##### JavaScript API - Properly resolve `pkg:` imports with the Node.js package importer when arguments are passed to the JavaScript process. ### [`v1.71.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1711) [Compare Source](https://github.com/sass/dart-sass/compare/1.71.0...1.71.1) ##### Command-Line Interface - Ship the musl Linux release with the proper Dart executable. ##### JavaScript API - Export the `NodePackageImporter` class in ESM mode. - Allow `NodePackageImporter` to locate a default directory even when the entrypoint is an ESM module. ##### Dart API - Make passing a null argument to `NodePackageImporter()` a static error rather than just a runtime error. ##### Embedded Sass - In the JS Embedded Host, properly install the musl Linux embedded compiler when running on musl Linux. ### [`v1.71.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1710) [Compare Source](https://github.com/sass/dart-sass/compare/1.70.0...1.71.0) For more information about `pkg:` importers, see [the announcement][pkg-importers] on the Sass blog. [pkg-importers]: https://sass-lang.com/blog/announcing-pkg-importers ##### Command-Line Interface - Add a `--pkg-importer` flag to enable built-in `pkg:` importers. Currently this only supports the Node.js package resolution algorithm, via `--pkg-importer=node`. For example, `@use "pkg:bootstrap"` will load `node_modules/bootstrap/scss/bootstrap.scss`. ##### JavaScript API - Add a `NodePackageImporter` importer that can be passed to the `importers` option. This loads files using the `pkg:` URL scheme according to the Node.js package resolution algorithm. For example, `@use "pkg:bootstrap"` will load `node_modules/bootstrap/scss/bootstrap.scss`. The constructor takes a single optional argument, which indicates the base directory to use when locating `node_modules` directories. It defaults to `path.dirname(require.main.filename)`. ##### Dart API - Add a `NodePackageImporter` importer that can be passed to the `importers` option. This loads files using the `pkg:` URL scheme according to the Node.js package resolution algorithm. For example, `@use "pkg:bootstrap"` will load `node_modules/bootstrap/scss/bootstrap.scss`. The constructor takes a single argument, which indicates the base directory to use when locating `node_modules` directories. ### [`v1.70.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1700) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.7...1.70.0) ##### JavaScript API - Add a `sass.initCompiler()` function that returns a `sass.Compiler` object which supports `compile()` and `compileString()` methods with the same API as the global Sass object. On the Node.js embedded host, each `sass.Compiler` object uses a single long-lived subprocess, making compiling multiple stylesheets much more efficient. - Add a `sass.initAsyncCompiler()` function that returns a `sass.AsyncCompiler` object which supports `compileAsync()` and `compileStringAsync()` methods with the same API as the global Sass object. On the Node.js embedded host, each `sass.AsynCompiler` object uses a single long-lived subprocess, making compiling multiple stylesheets much more efficient. ##### Embedded Sass - Support the `CompileRequest.silent` field. This allows compilations with no logging to avoid unnecessary request/response cycles. - The Dart Sass embedded compiler now reports its name as "dart-sass" rather than "Dart Sass", to match the JS API's `info` field. ### [`v1.69.7`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1697) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.6...1.69.7) ##### Embedded Sass - In the JS Embedded Host, properly install the x64 Dart Sass executable on ARM64 Windows. ### [`v1.69.6`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1696) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.5...1.69.6) - Produce better output for numbers with complex units in `meta.inspect()` and debugging messages. - Escape U+007F DELETE when serializing strings. - When generating CSS error messages to display in-browser, escape all code points that aren't in the US-ASCII region. Previously only code points U+0100 LATIN CAPITAL LETTER A WITH MACRON were escaped. - Provide official releases for musl LibC and for Android. - Don't crash when running `meta.apply()` in asynchronous mode. ##### JS API - Fix a bug where certain exceptions could produce `SourceSpan`s that didn't follow the documented `SourceSpan` API. ### [`v1.69.5`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1695) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.4...1.69.5) ##### JS API - Compatibility with Node.js 21.0.0. ### [`v1.69.4`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1694) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.3...1.69.4) - No user-visible changes. ### [`v1.69.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1693) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.2...1.69.3) ##### Embedded Sass - Fix TypeScript type locations in `package.json`. ### [`v1.69.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1692) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.1...1.69.2) ##### JS API - Fix a bug where Sass crashed when running in the browser if there was a global variable named `process`. ### [`v1.69.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1691) [Compare Source](https://github.com/sass/dart-sass/compare/1.69.0...1.69.1) - No user-visible changes. ### [`v1.69.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1690) [Compare Source](https://github.com/sass/dart-sass/compare/1.68.0...1.69.0) - Add a `meta.get-mixin()` function that returns a mixin as a first-class Sass value. - Add a `meta.apply()` mixin that includes a mixin value. - Add a `meta.module-mixins()` function which returns a map from mixin names in a module to the first-class mixins that belong to those names. - Add a `meta.accepts-content()` function which returns whether or not a mixin value can take a content block. - Add support for the relative color syntax from CSS Color 5. This syntax cannot be used to create Sass color values. It is always emitted as-is in the CSS output. ##### Dart API - Deprecate `Deprecation.calcInterp` since it was never actually emitted as a deprecation. ##### Embedded Sass - Fix a rare race condition where the embedded compiler could freeze when a protocol error was immediately followed by another request. ### [`v1.68.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1680) [Compare Source](https://github.com/sass/dart-sass/compare/1.67.0...1.68.0) - Fix the source spans associated with the `abs-percent` deprecation. ##### JS API - Non-filesystem importers can now set the `nonCanonicalScheme` field, which declares that one or more URL schemes (without `:`) will never be used for URLs returned by the `canonicalize()` method. - Add a `containingUrl` field to the `canonicalize()` and `findFileUrl()` methods of importers, which is set to the canonical URL of the stylesheet that contains the current load. For filesystem importers, this is always set; for other importers, it's set only if the current load has no URL scheme, or if its URL scheme is declared as non-canonical by the importer. ##### Dart API - Add `AsyncImporter.isNonCanonicalScheme`, which importers (async or sync) can use to indicate that a certain URL scheme will never be used for URLs returned by the `canonicalize()` method. - Add `AsyncImporter.containingUrl`, which is set during calls to the `canonicalize()` method to the canonical URL of the stylesheet that contains the current load. This is set only if the current load has no URL scheme, or if its URL scheme is declared as non-canonical by the importer. ##### Embedded Sass - The `CalculationValue.interpolation` field is deprecated and will be removed in a future version. It will no longer be set by the compiler, and if the host sets it it will be treated as equivalent to `CalculationValue.string` except that `"("` and `")"` will be added to the beginning and end of the string values. - Properly include TypeScript types in the `sass-embedded` package. ### [`v1.67.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1670) [Compare Source](https://github.com/sass/dart-sass/compare/1.66.1...1.67.0) - All functions defined in CSS Values and Units 4 are now once again parsed as calculation objects: `round()`, `mod()`, `rem()`, `sin()`, `cos()`, `tan()`, `asin()`, `acos()`, `atan()`, `atan2()`, `pow()`, `sqrt()`, `hypot()`, `log()`, `exp()`, `abs()`, and `sign()`. Unlike in 1.65.0, function calls are *not* locked into being parsed as calculations or plain Sass functions at parse-time. This means that user-defined functions will take precedence over CSS calculations of the same name. Although the function names `calc()` and `clamp()` are still forbidden, users may continue to freely define functions whose names overlap with other CSS calculations (including `abs()`, `min()`, `max()`, and `round()` whose names overlap with global Sass functions). - **Breaking change**: As a consequence of the change in calculation parsing described above, calculation functions containing interpolation are now parsed more strictly than before. However, *almost* all interpolations that would have produced valid CSS will continue to work. The only exception is `#{$variable}%` which is not valid in Sass and is no longer valid in calculations. Instead of this, either use `$variable` directly and ensure it already has the `%` unit, or write `($variable * 1%)`. - **Potentially breaking bug fix**: The importer used to load a given file is no longer used to load absolute URLs that appear in that file. This was unintented behavior that contradicted the Sass specification. Absolute URLs will now correctly be loaded only from the global importer list. This applies to the modern JS API, the Dart API, and the embedded protocol. ##### Embedded Sass - Substantially improve the embedded compiler's performance when compiling many files or files that require many importer or function call round-trips with the embedded host. ### [`v1.66.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1661) [Compare Source](https://github.com/sass/dart-sass/compare/1.66.0...1.66.1) ##### JS API - Fix a bug where Sass compilation could crash in strict mode if passed a callback that threw a string, boolean, number, symbol, or bignum. ### [`v1.66.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1660) [Compare Source](https://github.com/sass/dart-sass/compare/1.65.1...1.66.0) - **Breaking change:** Drop support for the additional CSS calculations defined in CSS Values and Units 4. Custom Sass functions whose names overlapped with these new CSS functions were being parsed as CSS calculations instead, causing an unintentional breaking change outside our normal \[compatibility policy] for CSS compatibility changes. Support will be added again in a future version, but only after Sass has emitted a deprecation warning for all functions that will break for at least three months prior to the breakage. ### [`v1.65.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1651) [Compare Source](https://github.com/sass/dart-sass/compare/1.65.0...1.65.1) - Update abs-percent deprecatedIn version to `1.65.0`. ### [`v1.65.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1650) [Compare Source](https://github.com/sass/dart-sass/compare/1.64.2...1.65.0) - All functions defined in CSS Values and Units 4 are now parsed as calculation objects: `round()`, `mod()`, `rem()`, `sin()`, `cos()`, `tan()`, `asin()`, `acos()`, `atan()`, `atan2()`, `pow()`, `sqrt()`, `hypot()`, `log()`, `exp()`, `abs()`, and `sign()`. - Deprecate explicitly passing the `%` unit to the global `abs()` function. In future releases, this will emit a CSS abs() function to be resolved by the browser. This deprecation is named `abs-percent`. ### [`v1.64.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1642) [Compare Source](https://github.com/sass/dart-sass/compare/1.64.1...1.64.2) - No user-visible changes. ### [`v1.64.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1641) [Compare Source](https://github.com/sass/dart-sass/compare/1.64.0...1.64.1) ##### Embedded Sass - Fix a bug where a valid `SassCalculation.clamp()` with less than 3 arguments would throw an error. ### [`v1.64.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1640) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.6...1.64.0) - Comments that appear before or between `@use` and `@forward` rules are now emitted in source order as much as possible, instead of always being emitted after the CSS of all module dependencies. - Fix a bug where an interpolation in a custom property name crashed if the file was loaded by a `@use` nested in an `@import`. ##### JavaScript API - Add a new `SassCalculation` type that represents the calculation objects added in Dart Sass 1.40.0. - Add `Value.assertCalculation()`, which returns the value if it's a `SassCalculation` and throws an error otherwise. - Produce a better error message when an environment that supports some Node.js APIs loads the browser entrypoint but attempts to access the filesystem. ##### Embedded Sass - Fix a bug where nested relative `@imports` failed to load when using the deprecated functions `render` or `renderSync` and those relative imports were loaded multiple times across different files. ### [`v1.63.6`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1636) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.5...1.63.6) ##### JavaScript API - Fix `import sass from 'sass'` again after it was broken in the last release. ##### Embedded Sass - Fix the `exports` declaration in `package.json`. ### [`v1.63.5`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1635) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.4...1.63.5) ##### JavaScript API - Fix a bug where loading the package through both CJS `require()` and ESM `import` could crash on Node.js. ##### Embedded Sass - Fix a deadlock when running at high concurrency on 32-bit systems. - Fix a race condition where the embedded compiler could deadlock or crash if a compilation ID was reused immediately after the compilation completed. ### [`v1.63.4`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1634) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.3...1.63.4) ##### JavaScript API - Re-enable support for `import sass from 'sass'` when loading the package from an ESM module in Node.js. However, this syntax is now deprecated; ESM users should use `import * as sass from 'sass'` instead. On the browser and other ESM-only platforms, only `import * as sass from 'sass'` is supported. - Properly export the legacy API values `TRUE`, `FALSE`, `NULL`, and `types` from the ECMAScript module API. ##### Embedded Sass - Fix a race condition where closing standard input while requests are in-flight could sometimes cause the process to hang rather than shutting down gracefully. - Properly include the root stylesheet's URL in the set of loaded URLs when it fails to parse. ### [`v1.63.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1633) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.2...1.63.3) ##### JavaScript API - Fix loading Sass as an ECMAScript module on Node.js. ### [`v1.63.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1632) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.1...1.63.2) - No user-visible changes. ### [`v1.63.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1631) [Compare Source](https://github.com/sass/dart-sass/compare/1.63.0...1.63.1) - No user-visible changes. ### [`v1.63.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1630) [Compare Source](https://github.com/sass/dart-sass/compare/1.62.1...1.63.0) ##### JavaScript API - Dart Sass's JS API now supports running in the browser. Further details and instructions for use are in [the README](README.md#dart-sass-in-the-browser). ##### Embedded Sass - The Dart Sass embedded compiler is now included as part of the primary Dart Sass distribution, rather than a separate executable. To use the embedded compiler, just run `sass --embedded` from any Sass executable (other than the pure JS executable). The Node.js embedded host will still be distributed as the `sass-embedded` package on npm. The only change is that it will now provide direct access to a `sass` executable with the same CLI as the `sass` package. - The Dart Sass embedded compiler now uses version 2.0.0 of the Sass embedded protocol. See [the spec][embedded-protocol-spec] for a full description of the protocol, and [the changelog][embedded-protocol-changelog] for a summary of changes since version 1.2.0. [embedded-protocol-spec]: https://github.com/sass/sass/blob/main/spec/embedded-protocol.md [embedded-protocol-changelog]: https://github.com/sass/sass/blob/main/EMBEDDED_PROTOCOL_CHANGELOG.md - The Dart Sass embedded compiler now runs multiple simultaneous compilations in parallel, rather than serially. ### [`v1.62.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1621) [Compare Source](https://github.com/sass/dart-sass/compare/1.62.0...1.62.1) - Fix a bug where `:has(+ &)` and related constructs would drop the leading combinator. ### [`v1.62.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1620) [Compare Source](https://github.com/sass/dart-sass/compare/1.61.0...1.62.0) - Deprecate the use of multiple `!global` or `!default` flags on the same variable. This deprecation is named `duplicate-var-flags`. - Allow special numbers like `var()` or `calc()` in the global functions: `grayscale()`, `invert()`, `saturate()`, and `opacity()`. These are also native CSS `filter` functions. This is in addition to number values which were already allowed. - Fix a cosmetic bug where an outer rule could be duplicated after nesting was resolved, instead of re-using a shared rule. ### [`v1.61.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1610) [Compare Source](https://github.com/sass/dart-sass/compare/1.60.0...1.61.0) - **Potentially breaking change:** Drop support for End-of-Life Node.js 12. - Fix remaining cases for the performance regression introduced in 1.59.0. ##### Embedded Sass - The JS embedded host now loads files from the working directory when using the legacy API. ### [`v1.60.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1600) [Compare Source](https://github.com/sass/dart-sass/compare/1.59.3...1.60.0) - Add support for the `pi`, `e`, `infinity`, `-infinity`, and `NaN` constants in calculations. These will be interpreted as the corresponding numbers. - Add support for unknown constants in calculations. These will be interpreted as unquoted strings. - Serialize numbers with value `infinity`, `-infinity`, and `NaN` to `calc()` expressions rather than CSS-invalid identifiers. Numbers with complex units still can't be serialized. ### [`v1.59.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1593) [Compare Source](https://github.com/sass/dart-sass/compare/1.59.2...1.59.3) - Fix a performance regression introduced in 1.59.0. - The NPM release of 1.59.0 dropped support for Node 12 without actually indicating so in its pubspec. This release temporarily adds back support so that the latest Sass version that declares it supports Node 12 actually does so. However, Node 12 is now end-of-life, so we will drop support for it properly in an upcoming release. ### [`v1.59.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1592) [Compare Source](https://github.com/sass/dart-sass/compare/1.59.1...1.59.2) - No user-visible changes. ### [`v1.59.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1591) [Compare Source](https://github.com/sass/dart-sass/compare/1.59.0...1.59.1) - No user-visible changes. ### [`v1.59.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1590) [Compare Source](https://github.com/sass/dart-sass/compare/1.58.3...1.59.0) ##### Command Line Interface - Added a new `--fatal-deprecation` flag that lets you treat a deprecation warning as an error. You can pass an individual deprecation ID (e.g. `slash-div`) or you can pass a Dart Sass version to treat all deprecations initially emitted in that version or earlier as errors. - New `--future-deprecation` flag that lets you opt into warning for use of certain features that will be deprecated in the future. At the moment, the only option is `--future-deprecation=import`, which will emit warnings for Sass `@import` rules, which are not yet deprecated, but will be in the future. ##### Dart API - New `Deprecation` enum, which contains the different current and future deprecations used by the new CLI flags. - The `compile` methods now take in `fatalDeprecations` and `futureDeprecations` parameters, which work similarly to the CLI flags. ### [`v1.58.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1583) [Compare Source](https://github.com/sass/dart-sass/compare/1.58.2...1.58.3) - No user-visible changes. ### [`v1.58.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1582) [Compare Source](https://github.com/sass/dart-sass/compare/1.58.1...1.58.2) ##### Command Line Interface - Add a timestamp to messages printed in `--watch` mode. - Print better `calc()`-based suggestions for `/`-as-division expression that contain calculation-incompatible constructs like unary minus. ### [`v1.58.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1581) [Compare Source](https://github.com/sass/dart-sass/compare/1.58.0...1.58.1) - Emit a unitless hue when serializing `hsl()` colors. The `deg` unit is incompatible with IE, and while that officially falls outside our compatibility policy, it's better to lean towards greater compatibility. ### [`v1.58.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1580) [Compare Source](https://github.com/sass/dart-sass/compare/1.57.1...1.58.0) - Remove sourcemap comments from Sass sources. The generated sourcemap comment for the compiled CSS output remains unaffected. - Fix a bug in `@extend` logic where certain selectors with three or more combinators were incorrectly considered superselectors of similar selectors with fewer combinators, causing them to be incorrectly trimmed from the output. - Produce a better error message for a number with a leading `+` or `-`, a decimal point, but no digits. - Produce a better error message for a nested property whose name starts with `--`. - Fix a crash when a selector ends in an escaped backslash. - Add the relative length units from CSS Values 4 and CSS Contain 3 as known units to validate bad computation in `calc`. ##### Command Line Interface - The `--watch` flag will now track loads through calls to `meta.load-css()` as long as their URLs are literal strings without any interpolation. ### [`v1.57.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1571) [Compare Source](https://github.com/sass/dart-sass/compare/1.57.0...1.57.1) - No user-visible changes. ### [`v1.57.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1570) [Compare Source](https://github.com/sass/dart-sass/compare/1.56.2...1.57.0) - Add a `split($string, $separator, $limit: null)` function to `sass:string` that splits a string into separate substrings based on a separator string. ##### JavaScript API - **Potentially breaking bug fix**: Custom functions in both the modern and legacy API now properly reject signatures with whitespace between the function name and parentheses. - Custom functions in the legacy API now allow signatures with whitespace before the function name, to match a bug in Node Sass. ##### Dart API - **Potentially breaking bug fix**: `Callable.fromSignature()` and `AsyncCallable.fromSignature()` now reject signatures with whitespace between the function name and parentheses. ### [`v1.56.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1562) [Compare Source](https://github.com/sass/dart-sass/compare/1.56.1...1.56.2) ##### Embedded Sass - The embedded compiler now supports version 1.2.0 of [the embedded protocol](https://github.com/sass/embedded-protocol). ### [`v1.56.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1561) [Compare Source](https://github.com/sass/dart-sass/compare/1.56.0...1.56.1) ##### Embedded Sass - Importer results now validate that `contents` is actually a string and whether `sourceMapUrl` is an absolute URL. ### [`v1.56.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1560) [Compare Source](https://github.com/sass/dart-sass/compare/1.55.0...1.56.0) - **Potentially breaking change:** To match the CSS spec, SassScript expressions beginning with `not` or `(` are no longer supported at the beginning of parenthesized sections of media queries. For example, ```scss @&#8203;media (width >= 500px) and (not (grid)) ``` will now be emitted unchanged, instead of producing ```scss @&#8203;media (width >= 500px) and (false) ``` See [the Sass website](https://sass-lang.com/d/media-logic) for details. - **Potentially breaking bug fix:** Angle units like `rad` or `turn` are now properly converted to equivalent `deg` values for `hsl()`, `hsla()`, `adjust-hue()`, `color.adjust()`, and `color.change()`. See [the Sass website](https://sass-lang.com/d/function-units#hue) for details. - Fix indentation for selectors that span multiple lines in a `@media` query. - Emit a deprecation warning when passing `$alpha` values with units to `color.adjust()` or `color.change()`. This will be an error in Dart Sass 2.0.0. See [the Sass website](https://sass-lang.com/d/function-units#alpha) for details. - Emit a deprecation warning when passing a `$weight` value with no units or with units other than `%` to `color.mix()`. This will be an error in Dart Sass 2.0.0. See [the Sass website](https://sass-lang.com/d/function-units#weight) for details. - Emit a deprecation warning when passing `$n` values with units to `list.nth()` or `list.set-nth()`. This will be an error in Dart Sass 2.0.0. See [the Sass website](https://sass-lang.com/d/function-units#index) for details. - Improve existing deprecation warnings to wrap `/`-as-division suggestions in `calc()` expressions. - Properly mark the warning for passing numbers with units to `random()` as a deprecation warning. - Fix a bug where `@extend` could behave unpredicatably when used along with `meta.load-css()` and shared modules that contained no CSS themselves but loaded CSS from other modules. ##### Dart API - Emit a deprecation warning when passing a `sassIndex` with units to `Value.sassIndexToListIndex()`. This will be an error in Dart Sass 2.0.0. ##### JS API - Importer results now validate whether `contents` is actually a string type. - Importer result argument errors are now rendered correctly. ### [`v1.55.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1550) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.9...1.55.0) - **Potentially breaking bug fix:** Sass numbers are now universally stored as 64-bit floating-point numbers, rather than sometimes being stored as integers. This will generally make arithmetic with very large numbers more reliable and more consistent across platforms, but it does mean that numbers between nine quadrillion and nine quintillion will no longer be represented with full accuracy when compiling Sass on the Dart VM. - **Potentially breaking bug fix:** Sass equality is now properly [transitive]. Two numbers are now considered equal (after doing unit conversions) if they round to the same `1e-11`th. Previously, numbers were considered equal if they were within `1e-11` of one another, which led to some circumstances where `$a == $b` and `$b == $c` but `$a != $b`. [transitive]: https://en.wikipedia.org/wiki/Transitive_property - **Potentially breaking bug fix:** Various functions in `sass:math` no longer treat floating-point numbers that are very close (but not identical) to integers as integers. Instead, these functions now follow the floating-point specification exactly. For example, `math.pow(0.000000000001, -1)` now returns `1000000000000` instead of `Infinity`. - Emit a deprecation warning for `$a -$b` and `$a +$b`, since these look like they could be unary operations but they're actually parsed as binary operations. Either explicitly write `$a - $b` or `$a (-$b)`. See https://sass-lang.com/d/strict-unary for more details. ##### Dart API - Add an optional `argumentName` parameter to `SassScriptException()` to make it easier to throw exceptions associated with particular argument names. - Most APIs that previously returned `num` now return `double`. All APIs continue to *accept* `num`, although in Dart 2.0.0 these APIs will be changed to accept only `double`. ##### JS API - Fix a bug in which certain warning spans would not have their properties accessible by the JS API. ### [`v1.54.9`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1549) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.8...1.54.9) - Fix an incorrect span in certain `@media` query deprecation warnings. ### [`v1.54.8`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1548) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.7...1.54.8) - No user-visible changes. ### [`v1.54.7`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1547) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.6...1.54.7) - Add support for 32-bit ARM releases on Linux. ### [`v1.54.6`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1546) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.5...1.54.6) - Fix a bug where a `@media` query could be incorrectly omitted from a stylesheet if it had multiple levels of nested `@media` queries within it *and* the inner queries were mergeable but the outer query was not. ### [`v1.54.5`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1545) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.4...1.54.5) - Properly consider `a ~ c` to be a superselector of `a ~ b ~ c` and `a + b + c`. - Properly consider `b > c` to be a superselector of `a > b > c`, and similarly for other combinators. - Properly calculate specificity for selector pseudoclasses. - Deprecate use of `random()` when `$limit` has units to make it explicit that `random()` currently ignores units. A future version will no longer ignore units. - Don't throw an error when the same module is `@forward`ed multiple times through a configured module. ##### Embedded Sass - Rather than downloading the embedded compiler for the local platform on install, the `sass-embedded` npm package now declares optional dependencies on platform-specific embedded compiler packages. ### [`v1.54.4`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1544) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.3...1.54.4) - Improve error messages when passing incorrect units that are also out-of-bounds to various color functions. ### [`v1.54.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1543) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.2...1.54.3) - Release a native ARM64 executable for Mac OS. ### [`v1.54.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1542) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.1...1.54.2) - No user-visible changes. ### [`v1.54.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1541) [Compare Source](https://github.com/sass/dart-sass/compare/1.54.0...1.54.1) - When unifying selectors for `@extend` and `selector.unify()`, ensure that `:root`, `:scope`, `:host`, and `:host-context` only appear at the beginning of complex selectors. ### [`v1.54.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1540) [Compare Source](https://github.com/sass/dart-sass/compare/1.53.0...1.54.0) - Deprecate selectors with leading or trailing combinators, or with multiple combinators in a row. If they're included in style rules after nesting is resolved, Sass will now produce a deprecation warning and, in most cases, omit the selector. Leading and trailing combinators can still be freely used for nesting purposes. See https://sass-lang.com/d/bogus-combinators for more details. - Add partial support for new media query syntax from Media Queries Level 4. The only exception are logical operations nested within parentheses, as these were previously interpreted differently as SassScript expressions. A parenthesized media condition that begins with `not` or an opening parenthesis now produces a deprecation warning. In a future release, these will be interpreted as plain CSS instead. - Deprecate passing non-`deg` units to `color.hwb()`'s `$hue` argument. - Fix a number of bugs when determining whether selectors with pseudo-elements are superselectors. - Treat `*` as a superselector of all selectors. ##### Dart API - Add a top-level `fakeFromImport()` function for testing custom importers that use `AsyncImporter.fromImport`. ##### JS API - Add a `charset` option that controls whether or not Sass emits a `@charset`/BOM for non-ASCII stylesheets. - Fix Sass npm package types for TS 4.7+ Node16 and NodeNext module resolution. ### [`v1.53.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1530) [Compare Source](https://github.com/sass/dart-sass/compare/1.52.3...1.53.0) - Add support for calling `var()` with an empty second argument, such as `var(--side, )`. ##### JS API - Fix a bug where `meta.load-css()` would sometimes resolve relative URLs incorrectly when called from a mixin using the legacy JS API. ##### Embedded Sass - Respect npm's proxy settings when downloading the embedded Sass compiler. ### [`v1.52.3`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1523) [Compare Source](https://github.com/sass/dart-sass/compare/1.52.2...1.52.3) - Fix crash when trailing loud comments (`/* ... */`) appear twice in a row across two different imports which themselves imported the same file each. ### [`v1.52.2`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1522) [Compare Source](https://github.com/sass/dart-sass/compare/1.52.1...1.52.2) - Preserve location of trailing loud comments (`/* ... */`) instead of pushing the comment to the next line. ### [`v1.52.1`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1521) [Compare Source](https://github.com/sass/dart-sass/compare/1.52.0...1.52.1) ##### Command Line Interface - Fix a bug where `--watch` mode would close immediately in TTY mode. This was caused by our change to close `--watch` when stdin was closed *outside of* TTY mode, which has been reverted for now while we work on a fix. ### [`v1.52.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1520) [Compare Source](https://github.com/sass/dart-sass/compare/1.51.0...1.52.0) - Add support for arbitrary modifiers at the end of plain CSS imports, in addition to the existing `supports()` and media queries. Sass now allows any sequence of identifiers of functions after the URL of an import for forwards compatibility with future additions to the CSS spec. - Fix an issue where source locations tracked through variable references could potentially become incorrect. - Fix a bug where a loud comment in the source can break the source map when embedding the sources, when using the command-line interface or the legacy JS API. ##### JS API - `SassNumber.assertUnit()` and `SassNumber.assertNoUnits()` now correctly return the number called on when it passes the assertion. ### [`v1.51.0`](https://github.com/sass/dart-sass/blob/HEAD/CHANGELOG.md#1510) [Compare Source](https://github.com/sass/dart-sass/compare/1.50.1...1.51.0) - **Potentially breaking change**: Change the order of maps returned by `map.deep-merge()` to match those returned by `map.merge()`. All keys that appeared in the first map will now be listed first in the same order they appeared in that map, followed by any new keys added from the second map. - Improve the string output of some AST nodes in error messages. </details> <details> <summary>tailwindlabs/tailwindcss (tailwindcss)</summary> ### [`v3.4.15`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.15) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.14...v3.4.15) - Bump versions for security vulnerabilities ([#&#8203;14697](https://github.com/tailwindlabs/tailwindcss/pull/14697)) - Ensure the TypeScript types for the `boxShadow` theme configuration allows arrays ([#&#8203;14856](https://github.com/tailwindlabs/tailwindcss/pull/14856)) - Set fallback for opacity variables to ensure setting colors with the `selection:*` variant works in Chrome 131 ([#&#8203;15003](https://github.com/tailwindlabs/tailwindcss/pull/15003)) ### [`v3.4.14`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.14) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14) ##### Fixed - Don't set `display: none` on elements that use `hidden="until-found"` ([#&#8203;14625](https://github.com/tailwindlabs/tailwindcss/pull/14625)) ### [`v3.4.13`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.13) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.12...v3.4.13) ##### Fixed - Improve source glob verification performance ([#&#8203;14481](https://github.com/tailwindlabs/tailwindcss/pull/14481)) ### [`v3.4.12`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.12) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.11...v3.4.12) ##### Fixed - Ensure using `@apply` with utilities that use `@defaults` works with rules defined in the base layer when using `optimizeUniversalDefaults` ([#&#8203;14427](https://github.com/tailwindlabs/tailwindcss/pull/14427)) ### [`v3.4.11`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.11) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.10...v3.4.11) ##### Fixed - Allow `anchor-size(…)` in arbitrary values ([#&#8203;14393](https://github.com/tailwindlabs/tailwindcss/pull/14393)) ### [`v3.4.10`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.10) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.9...v3.4.10) ##### Fixed - Bump versions of plugins in the Standalone CLI ([#&#8203;14185](https://github.com/tailwindlabs/tailwindcss/pull/14185)) ### [`v3.4.9`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.9) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.8...v3.4.9) ##### Fixed - No longer warns when broad glob patterns are detecting `vendor` folders ### [`v3.4.8`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.8) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.7...v3.4.8) ##### Fixed - Fix minification when using nested CSS ([#&#8203;14105](https://github.com/tailwindlabs/tailwindcss/pull/14105)) - Warn when broad glob patterns are used in the content configuration ([#&#8203;14140](https://github.com/tailwindlabs/tailwindcss/pull/14140)) ### [`v3.4.7`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.7) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.6...v3.4.7) ##### Fixed - Fix class detection in Slim templates with attached attributes and ID ([#&#8203;14019](https://github.com/tailwindlabs/tailwindcss/pull/14019)) - Ensure attribute values in `data-*` and `aria-*` modifiers are always quoted in the generated CSS ([#&#8203;14037](https://github.com/tailwindlabs/tailwindcss/pull/14037)) ### [`v3.4.6`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.6) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.5...v3.4.6) ##### Fixed - Fix detection of some utilities in Slim/Pug templates ([#&#8203;14006](https://github.com/tailwindlabs/tailwindcss/pull/14006)) ##### Changed - Loosen `:is()` wrapping rules when using an important selector ([#&#8203;13900](https://github.com/tailwindlabs/tailwindcss/pull/13900)) ### [`v3.4.5`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.5) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.4...v3.4.5) ##### Fixed - Disable automatic `var()` injection for anchor properties ([#&#8203;13826](https://github.com/tailwindlabs/tailwindcss/pull/13826)) - Use no value instead of `blur(0px)` for `backdrop-blur-none` and `blur-none` utilities ([#&#8203;13830](https://github.com/tailwindlabs/tailwindcss/pull/13830)) - Add `.mts` and `.cts` config file detection ([#&#8203;13940](https://github.com/tailwindlabs/tailwindcss/pull/13940)) - Don't generate utilities like `px-1` unnecessarily when using utilities like `px-1.5` ([#&#8203;13959](https://github.com/tailwindlabs/tailwindcss/pull/13959)) - Always generate `-webkit-backdrop-filter` for `backdrop-*` utilities ([#&#8203;13997](https://github.com/tailwindlabs/tailwindcss/pull/13997)) ### [`v3.4.4`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.4) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.3...v3.4.4) ##### Fixed - Make it possible to use multiple `<alpha-value>` placeholders in a single color definition ([#&#8203;13740](https://github.com/tailwindlabs/tailwindcss/pull/13740)) - Don't prefix classes in arbitrary values of `has-*`, `group-has-*`, and `peer-has-*` variants ([#&#8203;13770](https://github.com/tailwindlabs/tailwindcss/pull/13770)) - Support negative values for `{col,row}-{start,end}` utilities ([#&#8203;13781](https://github.com/tailwindlabs/tailwindcss/pull/13781)) - Update embedded browserslist database ([#&#8203;13792](https://github.com/tailwindlabs/tailwindcss/pull/13792)) ### [`v3.4.3`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.3) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.2...v3.4.3) ##### Fixed - Revert changes to glob handling ([#&#8203;13384](https://github.com/tailwindlabs/tailwindcss/pull/13384)) ### [`v3.4.2`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.2) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.1...v3.4.2) ##### Fixed - Ensure max specificity of `0,0,1` for button and input Preflight rules ([#&#8203;12735](https://github.com/tailwindlabs/tailwindcss/pull/12735)) - Improve glob handling for folders with `(`, `)`, `[` or `]` in the file path ([#&#8203;12715](https://github.com/tailwindlabs/tailwindcss/pull/12715)) - Split `:has` rules when using `experimental.optimizeUniversalDefaults` ([#&#8203;12736](https://github.com/tailwindlabs/tailwindcss/pull/12736)) - Sort arbitrary properties alphabetically across multiple class lists ([#&#8203;12911](https://github.com/tailwindlabs/tailwindcss/pull/12911)) - Add `mix-blend-plus-darker` utility ([#&#8203;12923](https://github.com/tailwindlabs/tailwindcss/pull/12923)) - Ensure dashes are allowed in variant modifiers ([#&#8203;13303](https://github.com/tailwindlabs/tailwindcss/pull/13303)) - Fix crash showing completions in Intellisense when using a custom separator ([#&#8203;13306](https://github.com/tailwindlabs/tailwindcss/pull/13306)) - Transpile `import.meta.url` in config files ([#&#8203;13322](https://github.com/tailwindlabs/tailwindcss/pull/13322)) - Reset letter spacing for form elements ([#&#8203;13150](https://github.com/tailwindlabs/tailwindcss/pull/13150)) - Fix missing `xx-large` and remove double `x-large` absolute size ([#&#8203;13324](https://github.com/tailwindlabs/tailwindcss/pull/13324)) - Don't error when encountering nested CSS unless trying to `@apply` a class that uses nesting ([#&#8203;13325](https://github.com/tailwindlabs/tailwindcss/pull/13325)) - Ensure that arbitrary properties respect `important` configuration ([#&#8203;13353](https://github.com/tailwindlabs/tailwindcss/pull/13353)) - Change dark mode selector so `@apply` works correctly with pseudo elements ([#&#8203;13379](https://github.com/tailwindlabs/tailwindcss/pull/13379)) ### [`v3.4.1`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.1) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.0...v3.4.1) ##### Fixed - Don't remove keyframe stops when using important utilities ([#&#8203;12639](https://github.com/tailwindlabs/tailwindcss/pull/12639)) - Don't add spaces to gradients and grid track names when followed by `calc()` ([#&#8203;12704](https://github.com/tailwindlabs/tailwindcss/pull/12704)) - Restore old behavior for `class` dark mode strategy ([#&#8203;12717](https://github.com/tailwindlabs/tailwindcss/pull/12717)) ##### Added - Add new `selector` and `variant` strategies for dark mode ([#&#8203;12717](https://github.com/tailwindlabs/tailwindcss/pull/12717)) ##### Changed - Support `rtl` and `ltr` variants on same element as `dir` attribute ([#&#8203;12717](https://github.com/tailwindlabs/tailwindcss/pull/12717)) ### [`v3.4.0`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.4.0) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.7...v3.4.0) <a href="https://tailwindcss.com/blog/tailwindcss-v3-4"><img alt="Tailwind CSS" src="https://github.com/tailwindlabs/tailwindcss/assets/882133/cf6ee749-cce4-45e9-b15f-e081a6353833" width="768"></a> Tailwind CSS v3.4 has arrived! Check out the [announcement post](https://tailwindcss.com/blog/tailwindcss-v3-4) for a guided tour through all of the highlights. ##### Added - Add `svh`, `lvh`, and `dvh` values to default `height`/`min-height`/`max-height` theme ([#&#8203;11317](https://github.com/tailwindlabs/tailwindcss/pull/11317)) - Add `has-*` variants for `:has(...)` pseudo-class ([#&#8203;11318](https://github.com/tailwindlabs/tailwindcss/pull/11318)) - Add `text-wrap` utilities including `text-balance` and `text-pretty` ([#&#8203;11320](https://github.com/tailwindlabs/tailwindcss/pull/11320), [#&#8203;12031](https://github.com/tailwindlabs/tailwindcss/pull/12031)) - Extend default `opacity` scale to include all steps of 5 ([#&#8203;11832](https://github.com/tailwindlabs/tailwindcss/pull/11832)) - Update Preflight `html` styles to include shadow DOM `:host` pseudo-class ([#&#8203;11200](https://github.com/tailwindlabs/tailwindcss/pull/11200)) - Increase default values for `grid-rows-*` utilities from 1–6 to 1–12 ([#&#8203;12180](https://github.com/tailwindlabs/tailwindcss/pull/12180)) - Add `size-*` utilities ([#&#8203;12287](https://github.com/tailwindlabs/tailwindcss/pull/12287)) - Add utilities for CSS subgrid ([#&#8203;12298](https://github.com/tailwindlabs/tailwindcss/pull/12298)) - Add spacing scale to `min-w-*`, `min-h-*`, and `max-w-*` utilities ([#&#8203;12300](https://github.com/tailwindlabs/tailwindcss/pull/12300)) - Add `forced-color-adjust` utilities ([#&#8203;11931](https://github.com/tailwindlabs/tailwindcss/pull/11931)) - Add `forced-colors` variant ([#&#8203;11694](https://github.com/tailwindlabs/tailwindcss/pull/11694), [#&#8203;12582](https://github.com/tailwindlabs/tailwindcss/pull/12582)) - Add `appearance-auto` utility ([#&#8203;12404](https://github.com/tailwindlabs/tailwindcss/pull/12404)) - Add logical property values for `float` and `clear` utilities ([#&#8203;12480](https://github.com/tailwindlabs/tailwindcss/pull/12480)) - Add `*` variant for targeting direct children ([#&#8203;12551](https://github.com/tailwindlabs/tailwindcss/pull/12551)) ##### Changed - Simplify the `sans` font-family stack ([#&#8203;11748](https://github.com/tailwindlabs/tailwindcss/pull/11748)) - Disable the tap highlight overlay on iOS ([#&#8203;12299](https://github.com/tailwindlabs/tailwindcss/pull/12299)) - Improve relative precedence of `rtl`, `ltr`, `forced-colors`, and `dark` variants ([#&#8203;12584](https://github.com/tailwindlabs/tailwindcss/pull/12584)) ### [`v3.3.7`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.7) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.6...v3.3.7) ##### Fixed - Fix support for container query utilities with arbitrary values ([#&#8203;12534](https://github.com/tailwindlabs/tailwindcss/pull/12534)) - Fix custom config loading in Standalone CLI ([#&#8203;12616](https://github.com/tailwindlabs/tailwindcss/pull/12616)) ### [`v3.3.6`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.6) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.5...v3.3.6) ##### Fixed - Don’t add spaces to negative numbers following a comma ([#&#8203;12324](https://github.com/tailwindlabs/tailwindcss/pull/12324)) - Don't emit `@config` in CSS when watching via the CLI ([#&#8203;12327](https://github.com/tailwindlabs/tailwindcss/pull/12327)) - Improve types for `resolveConfig` ([#&#8203;12272](https://github.com/tailwindlabs/tailwindcss/pull/12272)) - Ensure configured `font-feature-settings` for `mono` are included in Preflight ([#&#8203;12342](https://github.com/tailwindlabs/tailwindcss/pull/12342)) - Improve candidate detection in minified JS arrays (without spaces) ([#&#8203;12396](https://github.com/tailwindlabs/tailwindcss/pull/12396)) - Don't crash when given applying a variant to a negated version of a simple utility ([#&#8203;12514](https://github.com/tailwindlabs/tailwindcss/pull/12514)) - Fix support for slashes in arbitrary modifiers ([#&#8203;12515](https://github.com/tailwindlabs/tailwindcss/pull/12515)) - Fix source maps of variant utilities that come from an `@layer` rule ([#&#8203;12508](https://github.com/tailwindlabs/tailwindcss/pull/12508)) - Fix loading of built-in plugins when using an ESM or TypeScript config with the Standalone CLI ([#&#8203;12506](https://github.com/tailwindlabs/tailwindcss/pull/12506)) ### [`v3.3.5`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.5) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.4...v3.3.5) ##### Fixed - Fix incorrect spaces around `-` in `calc()` expression ([#&#8203;12283](https://github.com/tailwindlabs/tailwindcss/pull/12283)) ### [`v3.3.4`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.4) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.3...v3.3.4) ##### Fixed - Improve normalisation of `calc()`-like functions ([#&#8203;11686](https://github.com/tailwindlabs/tailwindcss/pull/11686)) - Skip `calc()` normalisation in nested `theme()` calls ([#&#8203;11705](https://github.com/tailwindlabs/tailwindcss/pull/11705)) - Fix incorrectly generated CSS when using square brackets inside arbitrary properties ([#&#8203;11709](https://github.com/tailwindlabs/tailwindcss/pull/11709)) - Make `content` optional for presets in TypeScript types ([#&#8203;11730](https://github.com/tailwindlabs/tailwindcss/pull/11730)) - Handle variable colors that have variable fallback values ([#&#8203;12049](https://github.com/tailwindlabs/tailwindcss/pull/12049)) - Batch reading content files to prevent `too many open files` error ([#&#8203;12079](https://github.com/tailwindlabs/tailwindcss/pull/12079)) - Skip over classes inside `:not(…)` when nested in an at-rule ([#&#8203;12105](https://github.com/tailwindlabs/tailwindcss/pull/12105)) - Update types to work with `Node16` module resolution ([#&#8203;12097](https://github.com/tailwindlabs/tailwindcss/pull/12097)) - Don’t crash when important and parent selectors are equal in `@apply` ([#&#8203;12112](https://github.com/tailwindlabs/tailwindcss/pull/12112)) - Eliminate irrelevant rules when applying variants ([#&#8203;12113](https://github.com/tailwindlabs/tailwindcss/pull/12113)) - Improve RegEx parser, reduce possibilities as the key for arbitrary properties ([#&#8203;12121](https://github.com/tailwindlabs/tailwindcss/pull/12121)) - Fix sorting of utilities that share multiple candidates ([#&#8203;12173](https://github.com/tailwindlabs/tailwindcss/pull/12173)) - Ensure variants with arbitrary values and a modifier are correctly matched in the RegEx based parser ([#&#8203;12179](https://github.com/tailwindlabs/tailwindcss/pull/12179)) - Fix crash when watching renamed files on FreeBSD ([#&#8203;12193](https://github.com/tailwindlabs/tailwindcss/pull/12193)) - Allow plugins from a parent document to be used in an iframe ([#&#8203;12208](https://github.com/tailwindlabs/tailwindcss/pull/12208)) - Add types for `tailwindcss/nesting` ([#&#8203;12269](https://github.com/tailwindlabs/tailwindcss/pull/12269)) - Bump `jiti`, `fast-glob`, and `browserlist` dependencies ([#&#8203;11550](https://github.com/tailwindlabs/tailwindcss/pull/11550)) - Improve automatic `var` injection for properties that accept a `<dashed-ident>` ([#&#8203;12236](https://github.com/tailwindlabs/tailwindcss/pull/12236)) ### [`v3.3.3`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.3) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.2...v3.3.3) ##### Fixed - Fix issue where some pseudo-element variants generated the wrong selector ([#&#8203;10943](https://github.com/tailwindlabs/tailwindcss/pull/10943), [#&#8203;10962](https://github.com/tailwindlabs/tailwindcss/pull/10962), [#&#8203;11111](https://github.com/tailwindlabs/tailwindcss/pull/11111)) - Make font settings propagate into buttons, inputs, etc. ([#&#8203;10940](https://github.com/tailwindlabs/tailwindcss/pull/10940)) - Fix parsing of `theme()` inside `calc()` when there are no spaces around operators ([#&#8203;11157](https://github.com/tailwindlabs/tailwindcss/pull/11157)) - Ensure `repeating-conic-gradient` is detected as an image ([#&#8203;11180](https://github.com/tailwindlabs/tailwindcss/pull/11180)) - Move unknown pseudo-elements outside of `:is` by default ([#&#8203;11345](https://github.com/tailwindlabs/tailwindcss/pull/11345)) - Escape animation names when prefixes contain special characters ([#&#8203;11470](https://github.com/tailwindlabs/tailwindcss/pull/11470)) - Don't prefix arbitrary classes in `group` and `peer` variants ([#&#8203;11454](https://github.com/tailwindlabs/tailwindcss/pull/11454)) - Sort classes using position of first matching rule ([#&#8203;11504](https://github.com/tailwindlabs/tailwindcss/pull/11504)) - Allow variant to be an at-rule without a prelude ([#&#8203;11589](https://github.com/tailwindlabs/tailwindcss/pull/11589)) - Make PostCSS plugin async to improve performance ([#&#8203;11548](https://github.com/tailwindlabs/tailwindcss/pull/11548)) - Don’t error when a config file is missing ([f97759f](https://github.com/tailwindlabs/tailwindcss/commit/f97759f808d15ace66647b1405744fcf95a392e5)) ##### Added - Add `aria-busy` utility ([#&#8203;10966](https://github.com/tailwindlabs/tailwindcss/pull/10966)) ##### Changed - Reset padding for `<dialog>` elements in preflight ([#&#8203;11069](https://github.com/tailwindlabs/tailwindcss/pull/11069)) ### [`v3.3.2`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.2) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.1...v3.3.2) ##### Fixed - Don’t move unknown pseudo-elements to the end of selectors ([#&#8203;10943](https://github.com/tailwindlabs/tailwindcss/pull/10943), [#&#8203;10962](https://github.com/tailwindlabs/tailwindcss/pull/10962)) - Inherit gradient stop positions when using variants ([#&#8203;11002](https://github.com/tailwindlabs/tailwindcss/pull/11002)) - Honor default `to` position of gradient when using implicit transparent colors ([#&#8203;11002](https://github.com/tailwindlabs/tailwindcss/pull/11002)) - Ensure `@tailwindcss/oxide` doesn't leak in the stable engine ([#&#8203;10988](https://github.com/tailwindlabs/tailwindcss/pull/10988)) - Ensure multiple `theme(spacing[5])` calls with bracket notation in arbitrary properties work ([#&#8203;11039](https://github.com/tailwindlabs/tailwindcss/pull/11039)) - Normalize arbitrary modifiers ([#&#8203;11057](https://github.com/tailwindlabs/tailwindcss/pull/11057)) ##### Changed - Drop support for Node.js v12 ([#&#8203;11089](https://github.com/tailwindlabs/tailwindcss/pull/11089)) ### [`v3.3.1`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.1) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.0...v3.3.1) ##### Fixed - Fix edge case bug when loading a TypeScript config file with webpack ([#&#8203;10898](https://github.com/tailwindlabs/tailwindcss/pull/10898)) - Fix variant, `@apply`, and `important` selectors when using `:is()` or `:has()` with pseudo-elements ([#&#8203;10903](https://github.com/tailwindlabs/tailwindcss/pull/10903)) - Fix `safelist` config types ([#&#8203;10901](https://github.com/tailwindlabs/tailwindcss/pull/10901)) - Fix build errors caused by `@tailwindcss/line-clamp` warning ([#&#8203;10915](https://github.com/tailwindlabs/tailwindcss/pull/10915), [#&#8203;10919](https://github.com/tailwindlabs/tailwindcss/pull/10919)) - Fix "process is not defined" error ([#&#8203;10919](https://github.com/tailwindlabs/tailwindcss/pull/10919)) ### [`v3.3.0`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.3.0) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.7...v3.3.0) <img alt="Tailwind CSS" src="https://user-images.githubusercontent.com/4323180/228304008-d10fbe12-08eb-4270-bda2-7e8c1254f44c.png" width="768"> Tailwind CSS v3.3 is here! Check out the [announcement post](https://tailwindcss.com/blog/tailwindcss-v3-3) for a deep dive into all of the cool new stuff. ##### Added - Support ESM and TypeScript config files ([#&#8203;10785](https://github.com/tailwindlabs/tailwindcss/pull/10785)) - Extend default color palette with new 950 shades ([#&#8203;10879](https://github.com/tailwindlabs/tailwindcss/pull/10879)) - Add `line-height` modifier support to `font-size` utilities ([#&#8203;9875](https://github.com/tailwindlabs/tailwindcss/pull/9875)) - Add support for using variables as arbitrary values without `var(...)` ([#&#8203;9880](https://github.com/tailwindlabs/tailwindcss/pull/9880), [#&#8203;9962](https://github.com/tailwindlabs/tailwindcss/pull/9962)) - Add logical properties support for inline direction ([#&#8203;10166](https://github.com/tailwindlabs/tailwindcss/pull/10166)) - Add `hyphens` utilities ([#&#8203;10071](https://github.com/tailwindlabs/tailwindcss/pull/10071)) - Add `from-{position}`, `via-{position}` and `to-{position}` utilities ([#&#8203;10886](https://github.com/tailwindlabs/tailwindcss/pull/10886)) - Add `list-style-image` utilities ([#&#8203;10817](https://github.com/tailwindlabs/tailwindcss/pull/10817)) - Add `caption-side` utilities ([#&#8203;10470](https://github.com/tailwindlabs/tailwindcss/pull/10470)) - Add `line-clamp` utilities from `@tailwindcss/line-clamp` to core ([#&#8203;10768](https://github.com/tailwindlabs/tailwindcss/pull/10768), [#&#8203;10876](https://github.com/tailwindlabs/tailwindcss/pull/10876), [#&#8203;10862](https://github.com/tailwindlabs/tailwindcss/pull/10862)) - Add `delay-0` and `duration-0` utilities ([#&#8203;10294](https://github.com/tailwindlabs/tailwindcss/pull/10294)) - Add `justify-normal` and `justify-stretch` utilities ([#&#8203;10560](https://github.com/tailwindlabs/tailwindcss/pull/10560)) - Add `content-normal` and `content-stretch` utilities ([#&#8203;10645](https://github.com/tailwindlabs/tailwindcss/pull/10645)) - Add `whitespace-break-spaces` utility ([#&#8203;10729](https://github.com/tailwindlabs/tailwindcss/pull/10729)) - Add support for configuring default `font-variation-settings` for a `font-family` ([#&#8203;10034](https://github.com/tailwindlabs/tailwindcss/pull/10034), [#&#8203;10515](https://github.com/tailwindlabs/tailwindcss/pull/10515)) ##### Fixed - Disallow using multiple selectors in arbitrary variants ([#&#8203;10655](https://github.com/tailwindlabs/tailwindcss/pull/10655)) - Sort class lists deterministically for Prettier plugin ([#&#8203;10672](https://github.com/tailwindlabs/tailwindcss/pull/10672)) - Ensure CLI builds have a non-zero exit code on failure ([#&#8203;10703](https://github.com/tailwindlabs/tailwindcss/pull/10703)) - Ensure module dependencies for value `null`, is an empty `Set` ([#&#8203;10877](https://github.com/tailwindlabs/tailwindcss/pull/10877)) - Fix format assumption when resolving module dependencies ([#&#8203;10878](https://github.com/tailwindlabs/tailwindcss/pull/10878)) ##### Changed - Mark `rtl` and `ltr` variants as stable and remove warnings ([#&#8203;10764](https://github.com/tailwindlabs/tailwindcss/pull/10764)) - Use `inset` instead of `top`, `right`, `bottom`, and `left` properties ([#&#8203;10765](https://github.com/tailwindlabs/tailwindcss/pull/10765)) - Make `dark` and `rtl`/`ltr` variants insensitive to DOM order ([#&#8203;10766](https://github.com/tailwindlabs/tailwindcss/pull/10766)) - Use `:is` to make important selector option insensitive to DOM order ([#&#8203;10835](https://github.com/tailwindlabs/tailwindcss/pull/10835)) ### [`v3.2.7`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.7) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.6...v3.2.7) ##### Fixed - Fix use of `:where(.btn)` when matching `!btn` ([#&#8203;10601](https://github.com/tailwindlabs/tailwindcss/pull/10601)) - Revert including `outline-color` in `transition` and `transition-colors` by default ([#&#8203;10604](https://github.com/tailwindlabs/tailwindcss/pull/10604)) ### [`v3.2.6`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.6) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.5...v3.2.6) ##### Fixed - Fix installation failing with yarn and pnpm by dropping `oxide-api-shim` ([add1636](https://github.com/tailwindlabs/tailwindcss/commit/add16364b4b1100e1af23ad1ca6900a0b53cbba0)) ### [`v3.2.5`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.5) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.4...v3.2.5) ##### Added - Add standalone CLI build for 64-bit Windows on ARM (`node16-win-arm64`) ([#&#8203;10001](https://github.com/tailwindlabs/tailwindcss/pull/10001)) ##### Fixed - Cleanup unused `variantOrder` ([#&#8203;9829](https://github.com/tailwindlabs/tailwindcss/pull/9829)) - Fix `foo-[abc]/[def]` not being handled correctly ([#&#8203;9866](https://github.com/tailwindlabs/tailwindcss/pull/9866)) - Add container queries plugin to standalone CLI ([#&#8203;9865](https://github.com/tailwindlabs/tailwindcss/pull/9865)) - Support renaming of output files by PostCSS plugins in CLI ([#&#8203;9944](https://github.com/tailwindlabs/tailwindcss/pull/9944)) - Improve return value of `resolveConfig`, unwrap `ResolvableTo` ([#&#8203;9972](https://github.com/tailwindlabs/tailwindcss/pull/9972)) - Clip unbalanced brackets in arbitrary values ([#&#8203;9973](https://github.com/tailwindlabs/tailwindcss/pull/9973)) - Don’t reorder webkit scrollbar pseudo elements ([#&#8203;9991](https://github.com/tailwindlabs/tailwindcss/pull/9991)) - Deterministic sorting of arbitrary variants ([#&#8203;10016](https://github.com/tailwindlabs/tailwindcss/pull/10016)) - Add `data` key to theme types ([#&#8203;10023](https://github.com/tailwindlabs/tailwindcss/pull/10023)) - Prevent invalid arbitrary variant selectors from failing the build ([#&#8203;10059](https://github.com/tailwindlabs/tailwindcss/pull/10059)) - Properly handle subtraction followed by a variable ([#&#8203;10074](https://github.com/tailwindlabs/tailwindcss/pull/10074)) - Fix missing `string[]` in the `theme.dropShadow` types ([#&#8203;10072](https://github.com/tailwindlabs/tailwindcss/pull/10072)) - Update list of length units ([#&#8203;10100](https://github.com/tailwindlabs/tailwindcss/pull/10100)) - Fix not matching arbitrary properties when closely followed by square brackets ([#&#8203;10212](https://github.com/tailwindlabs/tailwindcss/pull/10212)) - Allow direct nesting in `root` or `@layer` nodes ([#&#8203;10229](https://github.com/tailwindlabs/tailwindcss/pull/10229)) - Don't prefix classes in arbitrary variants ([#&#8203;10214](https://github.com/tailwindlabs/tailwindcss/pull/10214)) - Fix perf regression when checking for changed content ([#&#8203;10234](https://github.com/tailwindlabs/tailwindcss/pull/10234)) - Fix missing `blocklist` member in the `Config` type ([#&#8203;10239](https://github.com/tailwindlabs/tailwindcss/pull/10239)) - Escape group names in selectors ([#&#8203;10276](https://github.com/tailwindlabs/tailwindcss/pull/10276)) - Consider earlier variants before sorting functions ([#&#8203;10288](https://github.com/tailwindlabs/tailwindcss/pull/10288)) - Allow variants with slashes ([#&#8203;10336](https://github.com/tailwindlabs/tailwindcss/pull/10336)) - Ensure generated CSS is always sorted in the same order for a given set of templates ([#&#8203;10382](https://github.com/tailwindlabs/tailwindcss/pull/10382)) - Handle variants when the same class appears multiple times in a selector ([#&#8203;10397](https://github.com/tailwindlabs/tailwindcss/pull/10397)) - Handle group/peer variants with quoted strings ([#&#8203;10400](https://github.com/tailwindlabs/tailwindcss/pull/10400)) - Parse alpha value from rgba/hsla colors when using variables ([#&#8203;10429](https://github.com/tailwindlabs/tailwindcss/pull/10429)) - Sort by `layer` inside `variants` layer ([#&#8203;10505](https://github.com/tailwindlabs/tailwindcss/pull/10505)) - Add `--watch=always` option to prevent exit when stdin closes ([#&#8203;9966](https://github.com/tailwindlabs/tailwindcss/pull/9966)) ##### Changed - Alphabetize `theme` keys in default config ([#&#8203;9953](https://github.com/tailwindlabs/tailwindcss/pull/9953)) - Update esbuild to v17 ([#&#8203;10368](https://github.com/tailwindlabs/tailwindcss/pull/10368)) - Include `outline-color` in `transition` and `transition-colors` utilities ([#&#8203;10385](https://github.com/tailwindlabs/tailwindcss/pull/10385)) ### [`v3.2.4`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.4) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.3...v3.2.4) ##### Added - Add `blocklist` option to prevent generating unwanted CSS ([#&#8203;9812](https://github.com/tailwindlabs/tailwindcss/pull/9812)) ##### Fixed - Fix watching of files on Linux when renames are involved ([#&#8203;9796](https://github.com/tailwindlabs/tailwindcss/pull/9796)) - Make sure errors are always displayed when watching for changes ([#&#8203;9810](https://github.com/tailwindlabs/tailwindcss/pull/9810)) ### [`v3.2.3`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.3) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.2...v3.2.3) ##### Fixed - Fixed use of `raw` content in the CLI ([#&#8203;9773](https://github.com/tailwindlabs/tailwindcss/pull/9773)) - Pick up changes from files that are both context and content deps ([#&#8203;9787](https://github.com/tailwindlabs/tailwindcss/pull/9787)) - Sort pseudo-elements ONLY after classes when using variants and `@apply` ([#&#8203;9765](https://github.com/tailwindlabs/tailwindcss/pull/9765)) - Support important utilities in the safelist (pattern must include a `!`) ([#&#8203;9791](https://github.com/tailwindlabs/tailwindcss/pull/9791)) ### [`v3.2.2`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.2) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.1...v3.2.2) ##### Fixed - Escape special characters in resolved content base paths ([#&#8203;9650](https://github.com/tailwindlabs/tailwindcss/pull/9650)) - Don't reuse container for array returning variant functions ([#&#8203;9644](https://github.com/tailwindlabs/tailwindcss/pull/9644)) - Exclude non-relevant selectors when generating rules with the important modifier ([#&#8203;9677](https://github.com/tailwindlabs/tailwindcss/issues/9677)) - Fix merging of arrays during config resolution ([#&#8203;9706](https://github.com/tailwindlabs/tailwindcss/issues/9706)) - Ensure configured `font-feature-settings` are included in Preflight ([#&#8203;9707](https://github.com/tailwindlabs/tailwindcss/pull/9707)) - Fix fractional values not being parsed properly inside arbitrary properties ([#&#8203;9705](https://github.com/tailwindlabs/tailwindcss/pull/9705)) - Fix incorrect selectors when using `@apply` in selectors with combinators and pseudos ([#&#8203;9722](https://github.com/tailwindlabs/tailwindcss/pull/9722)) - Fix cannot read properties of undefined (reading 'modifier') ([#&#8203;9656](https://github.com/tailwindlabs/tailwindcss/pull/9656), [aa979d6](https://github.com/tailwindlabs/tailwindcss/commit/aa979d645f8bf4108c5fc938d7c0ba085b654c31)) ### [`v3.2.1`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.1) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.2.0...v3.2.1) ##### Fixed - Fix missing `supports` in types ([#&#8203;9616](https://github.com/tailwindlabs/tailwindcss/pull/9616)) - Fix missing PostCSS dependencies in the CLI ([#&#8203;9617](https://github.com/tailwindlabs/tailwindcss/pull/9617)) - Ensure `micromatch` is a proper CLI dependency ([#&#8203;9620](https://github.com/tailwindlabs/tailwindcss/pull/9620)) - Ensure modifier values exist when using a `modifiers` object for `matchVariant` ([ba6551d](https://github.com/tailwindlabs/tailwindcss/commit/ba6551db0f2726461371b4f3c6cd4c7090888504)) ### [`v3.2.0`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.2.0) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.8...v3.2.0) We just released Tailwind CSS v3.2! Read the [announcement post](https://tailwindcss.com/blog/tailwindcss-v3-2) for more details about the most exciting new features. *** ##### Added - Add new `@config` directive ([#&#8203;9405](https://github.com/tailwindlabs/tailwindcss/pull/9405)) - Add new `relative: true` option to resolve content paths relative to the config file ([#&#8203;9396](https://github.com/tailwindlabs/tailwindcss/pull/9396)) - Add new `supports-*` variant ([#&#8203;9453](https://github.com/tailwindlabs/tailwindcss/pull/9453)) - Add new `min-*` and `max-*` variants ([#&#8203;9558](https://github.com/tailwindlabs/tailwindcss/pull/9558)) - Add new `aria-*` variants ([#&#8203;9557](https://github.com/tailwindlabs/tailwindcss/pull/9557), [#&#8203;9588](https://github.com/tailwindlabs/tailwindcss/pull/9588)) - Add new `data-*` variants ([#&#8203;9559](https://github.com/tailwindlabs/tailwindcss/pull/9559), [#&#8203;9588](https://github.com/tailwindlabs/tailwindcss/pull/9588)) - Add new `break-keep` utility for `word-break: keep-all` ([#&#8203;9393](https://github.com/tailwindlabs/tailwindcss/pull/9393)) - Add new `collapse` utility for `visibility: collapse` ([#&#8203;9181](https://github.com/tailwindlabs/tailwindcss/pull/9181)) - Add new `fill-none` utility for `fill: none` ([#&#8203;9403](https://github.com/tailwindlabs/tailwindcss/pull/9403)) - Add new `stroke-none` utility for `stroke: none` ([#&#8203;9403](https://github.com/tailwindlabs/tailwindcss/pull/9403)) - Add new `place-content-baseline` utility for `place-content: baseline` ([#&#8203;9498](https://github.com/tailwindlabs/tailwindcss/pull/9498)) - Add new `place-items-baseline` utility for `place-items: baseline` ([#&#8203;9507](https://github.com/tailwindlabs/tailwindcss/pull/9507)) - Add new `content-baseline` utility for `align-content: baseline` ([#&#8203;9507](https://github.com/tailwindlabs/tailwindcss/pull/9507)) - Add support for configuring default `font-feature-settings` for a font family ([#&#8203;9039](https://github.com/tailwindlabs/tailwindcss/pull/9039)) - Add standalone CLI build for 32-bit Linux on ARM (`node16-linux-armv7`) ([#&#8203;9084](https://github.com/tailwindlabs/tailwindcss/pull/9084)) - Add future flag to disable color opacity utility plugins ([#&#8203;9088](https://github.com/tailwindlabs/tailwindcss/pull/9088)) - Add negative value support for `outline-offset` ([#&#8203;9136](https://github.com/tailwindlabs/tailwindcss/pull/9136)) - Add support for modifiers to `matchUtilities` ([#&#8203;9541](https://github.com/tailwindlabs/tailwindcss/pull/9541)) - Allow negating utilities using `min`/`max`/`clamp` ([#&#8203;9237](https://github.com/tailwindlabs/tailwindcss/pull/9237)) - Implement fallback plugins when there is ambiguity between plugins when using arbitrary values ([#&#8203;9376](https://github.com/tailwindlabs/tailwindcss/pull/9376)) - Support `sort` function in `matchVariant` ([#&#8203;9423](https://github.com/tailwindlabs/tailwindcss/pull/9423)) - Upgrade to `postcss-nested` v6.0 ([#&#8203;9546](https://github.com/tailwindlabs/tailwindcss/pull/9546)) ##### Fixed - Use absolute paths when resolving changed files for resilience against working directory changes ([#&#8203;9032](https://github.com/tailwindlabs/tailwindcss/pull/9032)) - Fix ring color utility generation when using `respectDefaultRingColorOpacity` ([#&#8203;9070](https://github.com/tailwindlabs/tailwindcss/pull/9070)) - Sort tags before classes when `@apply`-ing a selector with joined classes ([#&#8203;9107](https://github.com/tailwindlabs/tailwindcss/pull/9107)) - Remove invalid `outline-hidden` utility ([#&#8203;9147](https://github.com/tailwindlabs/tailwindcss/pull/9147)) - Honor the `hidden` attribute on elements in preflight ([#&#8203;9174](https://github.com/tailwindlabs/tailwindcss/pull/9174)) - Don't stop watching atomically renamed files ([#&#8203;9173](https://github.com/tailwindlabs/tailwindcss/pull/9173), [#&#8203;9215](https://github.com/tailwindlabs/tailwindcss/pull/9215)) - Fix duplicate utilities issue causing memory leaks ([#&#8203;9208](https://github.com/tailwindlabs/tailwindcss/pull/9208)) - Fix `fontFamily` config TypeScript types ([#&#8203;9214](https://github.com/tailwindlabs/tailwindcss/pull/9214)) - Handle variants on complex selector utilities ([#&#8203;9262](https://github.com/tailwindlabs/tailwindcss/pull/9262)) - Fix shared config mutation issue ([#&#8203;9294](https://github.com/tailwindlabs/tailwindcss/pull/9294)) - Fix ordering of parallel variants ([#&#8203;9282](https://github.com/tailwindlabs/tailwindcss/pull/9282)) - Handle variants in utility selectors using `:where()` and `:has()` ([#&#8203;9309](https://github.com/tailwindlabs/tailwindcss/pull/9309)) - Improve data type analysis for arbitrary values ([#&#8203;9320](https://github.com/tailwindlabs/tailwindcss/pull/9320)) - Don't emit generated utilities with invalid uses of theme functions ([#&#8203;9319](https://github.com/tailwindlabs/tailwindcss/pull/9319)) - Revert change that only listened for stdin close on TTYs ([#&#8203;9331](https://github.com/tailwindlabs/tailwindcss/pull/9331)) - Ignore unset values (like `null` or `undefined`) when resolving the classList for intellisense ([#&#8203;9385](https://github.com/tailwindlabs/tailwindcss/pull/9385)) - Improve type checking for formal syntax ([#&#8203;9349](https://github.com/tailwindlabs/tailwindcss/pull/9349), [#&#8203;9448](https://github.com/tailwindlabs/tailwindcss/pull/9448)) - Fix incorrect required `content` key in custom plugin configs ([#&#8203;9502](https://github.com/tailwindlabs/tailwindcss/pull/9502), [#&#8203;9545](https://github.com/tailwindlabs/tailwindcss/pull/9545)) - Fix content path detection on Windows ([#&#8203;9569](https://github.com/tailwindlabs/tailwindcss/pull/9569)) - Ensure `--content` is used in the CLI when passed ([#&#8203;9587](https://github.com/tailwindlabs/tailwindcss/pull/9587)) ### [`v3.1.8`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.8) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.7...v3.1.8) ##### Fixed - Don’t prefix classes within reused arbitrary variants ([#&#8203;8992](https://github.com/tailwindlabs/tailwindcss/pull/8992)) - Fix usage of alpha values inside single-named colors that are functions ([#&#8203;9008](https://github.com/tailwindlabs/tailwindcss/pull/9008)) - Fix `@apply` of user utilities when negative and non-negative versions both exist ([#&#8203;9027](https://github.com/tailwindlabs/tailwindcss/pull/9027)) ### [`v3.1.7`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.7) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.6...v3.1.7) ##### Fixed - Don't rewrite source maps for `@layer` rules ([#&#8203;8971](https://github.com/tailwindlabs/tailwindcss/pull/8971)) ##### Added - Added types for `resolveConfig` ([#&#8203;8924](https://github.com/tailwindlabs/tailwindcss/pull/8924)) ### [`v3.1.6`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.6) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.5...v3.1.6) ##### Fixed - Fix usage on Node 12.x ([b4e637e](https://github.com/tailwindlabs/tailwindcss/commit/b4e637e2e096a9d6f2210efba9541f6fd4f28e56)) - Handle theme keys with slashes when using `theme()` in CSS ([#&#8203;8831](https://github.com/tailwindlabs/tailwindcss/pull/8831)) ### [`v3.1.5`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.5) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.4...v3.1.5) ##### Added - Support configuring a default `font-weight` for each font size utility ([#&#8203;8763](https://github.com/tailwindlabs/tailwindcss/pull/8763)) - Add support for alpha values in safe list ([#&#8203;8774](https://github.com/tailwindlabs/tailwindcss/pull/8774)) ##### Fixed - Improve types to support fallback values in the CSS-in-JS syntax used in plugin APIs ([#&#8203;8762](https://github.com/tailwindlabs/tailwindcss/pull/8762)) - Support including `tailwindcss` and `autoprefixer` in `postcss.config.js` in standalone CLI ([#&#8203;8769](https://github.com/tailwindlabs/tailwindcss/pull/8769)) - Fix using special-characters as prefixes ([#&#8203;8772](https://github.com/tailwindlabs/tailwindcss/pull/8772)) - Don’t prefix classes used within arbitrary variants ([#&#8203;8773](https://github.com/tailwindlabs/tailwindcss/pull/8773)) - Add more explicit types for the default theme ([#&#8203;8780](https://github.com/tailwindlabs/tailwindcss/pull/8780)) ### [`v3.1.4`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.4) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.3...v3.1.4) ##### Fixed - Provide default to `<alpha-value>` when using `theme()` ([#&#8203;8652](https://github.com/tailwindlabs/tailwindcss/pull/8652)) - Detect arbitrary variants with quotes ([#&#8203;8687](https://github.com/tailwindlabs/tailwindcss/pull/8687)) - Don’t add spaces around raw `/` that are preceded by numbers ([#&#8203;8688](https://github.com/tailwindlabs/tailwindcss/pull/8688)) ### [`v3.1.3`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.3) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.2...v3.1.3) ##### Fixed - Fix extraction of multi-word utilities with arbitrary values and quotes ([#&#8203;8604](https://github.com/tailwindlabs/tailwindcss/pull/8604)) - Fix casing of import of `corePluginList` type definition ([#&#8203;8587](https://github.com/tailwindlabs/tailwindcss/pull/8587)) - Ignore PostCSS nodes returned by `addVariant` ([#&#8203;8608](https://github.com/tailwindlabs/tailwindcss/pull/8608)) - Fix missing spaces around arithmetic operators ([#&#8203;8615](https://github.com/tailwindlabs/tailwindcss/pull/8615)) - Detect alpha value in CSS `theme()` function when using quotes ([#&#8203;8625](https://github.com/tailwindlabs/tailwindcss/pull/8625)) - Fix "Maximum call stack size exceeded" bug ([#&#8203;8636](https://github.com/tailwindlabs/tailwindcss/pull/8636)) - Allow functions returning parallel variants to mutate the container ([#&#8203;8622](https://github.com/tailwindlabs/tailwindcss/pull/8622)) - Remove text opacity CSS variables from `::marker` ([#&#8203;8622](https://github.com/tailwindlabs/tailwindcss/pull/8622)) ### [`v3.1.2`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.2) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.1...v3.1.2) ##### Fixed - Ensure `\` is a valid arbitrary variant token ([#&#8203;8576](https://github.com/tailwindlabs/tailwindcss/pull/8576)) - Enable `postcss-import` in the CLI by default in watch mode ([#&#8203;8574](https://github.com/tailwindlabs/tailwindcss/pull/8574), [#&#8203;8580](https://github.com/tailwindlabs/tailwindcss/pull/8580)) ### [`v3.1.1`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.1) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.1.0...v3.1.1) ##### Fixed - Fix candidate extractor regression ([#&#8203;8558](https://github.com/tailwindlabs/tailwindcss/pull/8558)) - Split `::backdrop` into separate defaults group ([#&#8203;8567](https://github.com/tailwindlabs/tailwindcss/pull/8567)) - Fix postcss plugin type ([#&#8203;8564](https://github.com/tailwindlabs/tailwindcss/pull/8564)) - Fix class detection in markdown code fences and slim templates ([#&#8203;8569](https://github.com/tailwindlabs/tailwindcss/pull/8569)) ### [`v3.1.0`](https://github.com/tailwindlabs/tailwindcss/releases/tag/v3.1.0) [Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.0.24...v3.1.0) We just released Tailwind CSS v3.1 — the first new feature release since v3.0 came out last year! [Read the announcement post](https://tailwindcss.com/blog/tailwindcss-v3-1) for all the details, and [watch the YouTube video](https://www.youtube.com/watch?v=nOQyWbPO2Ds) for a tour of some of the highlights. *** ##### Added - Support PostCSS `Document` nodes ([#&#8203;7291](https://github.com/tailwindlabs/tailwindcss/pull/7291)) - Add `text-start` and `text-end` utilities ([#&#8203;6656](https://github.com/tailwindlabs/tailwindcss/pull/6656)) - Support customizing class name when using `darkMode: 'class'` ([#&#8203;5800](https://github.com/tailwindlabs/tailwindcss/pull/5800)) - Add `--poll` option to the CLI ([#&#8203;7725](https://github.com/tailwindlabs/tailwindcss/pull/7725)) - Add new `border-spacing` utilities ([#&#8203;7102](https://github.com/tailwindlabs/tailwindcss/pull/7102)) - Add `enabled` variant ([#&#8203;7905](https://github.com/tailwindlabs/tailwindcss/pull/7905)) - Add TypeScript types for the `tailwind.config.js` file ([#&#8203;7891](https://github.com/tailwindlabs/tailwindcss/pull/7891)) - Add `backdrop` variant ([#&#8203;7924](https://github.com/tailwindlabs/tailwindcss/pull/7924), [#&#8203;8526](https://github.com/tailwindlabs/tailwindcss/pull/8526)) - Add `grid-flow-dense` utility ([#&#8203;8193](https://github.com/tailwindlabs/tailwindcss/pull/8193)) - Add `mix-blend-plus-lighter` utility ([#&#8203;8288](https://github.com/tailwindlabs/tailwindcss/pull/8288)) - Add arbitrary variants ([#&#8203;8299](https://github.com/tailwindlabs/tailwindcss/pull/8299)) - Add experimental `matchVariant` API ([#&#8203;8310](https://github.com/tailwindlabs/tailwindcss/pull/8310), [34fd0fb8](https://github.com/tailwindlabs/tailwindcss/commit/34fd0fb82aa574cddc5c7aa3ad7d1af5e3735e5d)) - Add `prefers-contrast` media query variants ([#&#8203;8410](https://github.com/tailwindlabs/tailwindcss/pull/8410)) - Add opacity support when referencing colors with `theme` function ([#&#8203;8416](https://github.com/tailwindlabs/tailwindcss/pull/8416)) - Add `postcss-import` support to the CLI ([#&#8203;8437](https://github.com/tailwindlabs/tailwindcss/pull/8437)) - Add `optional` variant ([#&#8203;8486](https://github.com/tailwindlabs/tailwindcss/pull/8486)) - Add `<alpha-value>` placeholder support for custom colors ([#&#8203;8501](https://github.com/tailwindlabs/tailwindcss/pull/8501)) ##### Fixed - Types: allow for arbitrary theme values (for 3rd party plugins) ([#&#8203;7926](https://github.com/tailwindlabs/tailwindcss/pull/7926)) - Don’t split vars with numbers in them inside arbitrary values ([#&#8203;8091](https://github.com/tailwindlabs/tailwindcss/pull/8091)) - Require matching prefix when detecting negatives ([#&#8203;8121](https://github.com/tailwindlabs/tailwindcss/pull/8121)) - Handle duplicate At Rules without children ([#&#8203;8122](https://github.com/tailwindlabs/tailwindcss/pull/8122)) - Allow arbitrary values with commas in `@apply` ([#&#8203;8125](https://github.com/tailwindlabs/tailwindcss/pull/8125)) - Fix intellisense for plugins with multiple `@apply` rules ([#&#8203;8213](https://github.com/tailwindlabs/tailwindcss/pull/8213)) - Improve type detection for arbitrary color values ([#&#8203;8201](https://github.com/tailwindlabs/tailwindcss/pull/8201)) - Support PostCSS config options in config file in CLI ([#&#8203;8226](https://github.com/tailwindlabs/tailwindcss/pull/8226)) - Remove default `[hidden]` style in preflight ([#&#8203;8248](https://github.com/tailwindlabs/tailwindcss/pull/8248)) - Only check selectors containing base apply candidates for circular dependencies ([#&#8203;8222](https://github.com/tailwindlabs/tailwindcss/pull/8222)) - Rewrite default class extractor ([#&#8203;8204](https://github.com/tailwindlabs/tailwindcss/pull/8204)) - Move `important` selector to the front when `@apply`-ing selector-modifying variants in custom utilities ([#&#8203;8313](https://github.com/tailwindlabs/tailwindcss/pull/8313)) - Error when registering an invalid custom variant ([#&#8203;8345](https://github.com/tailwindlabs/tailwindcss/pull/8345)) - Create tailwind.config.cjs file in ESM package when running init ([#&#8203;8363](https://github.com/tailwindlabs/tailwindcss/pull/8363)) - Fix `matchVariants` that use at-rules and placeholders ([#&#8203;8392](https://github.com/tailwindlabs/tailwindcss/pull/8392)) - Improve types of the `tailwindcss/plugin` ([#&#8203;8400](https://github.com/tailwindlabs/tailwindcss/pull/8400)) - Allow returning parallel variants from `addVariant` or `matchVariant` callback functions ([#&#8203;8455](https://github.com/tailwindlabs/tailwindcss/pull/8455)) - Try using local `postcss` installation first in the CLI ([#&#8203;8270](https://github.com/tailwindlabs/tailwindcss/pull/8270)) - Allow default ring color to be a function ([#&#8203;7587](https://github.com/tailwindlabs/tailwindcss/pull/7587)) - Don't inherit `to` value from parent gradients ([#&#8203;8489](https://github.com/tailwindlabs/tailwindcss/pull/8489)) - Remove process dependency from log functions ([#&#8203;8530](https://github.com/tailwindlabs/tailwindcss/pull/8530)) - Ensure we can use `@import 'tailwindcss/...'` without node_modules ([#&#8203;8537](https://github.com/tailwindlabs/tailwindcss/pull/8537)) ##### Changed - Only apply hover styles when supported (future) ([#&#8203;8394](https://github.com/tailwindlabs/tailwindcss/pull/8394)) - Respect default ring color opacity (future) ([#&#8203;8448](https://github.com/tailwindlabs/tailwindcss/pull/8448), [3f4005e](https://github.com/tailwindlabs/tailwindcss/commit/3f4005e833445f7549219eb5ae89728cbb3a2630)) </details> <details> <summary>microsoft/TypeScript (typescript)</summary> ### [`v5.6.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.6.3): TypeScript 5.6.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.6.2...v5.6.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.6.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.3%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.6.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.6.2): TypeScript 5.6 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.6.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.6.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.6.2%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.5.4`](https://github.com/microsoft/TypeScript/releases/tag/v5.5.4): TypeScript 5.5.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.3...v5.5.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/). For the complete list of fixed issues, check out the - [fixed issues query for TypeScript v5.5.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.4%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.3%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) (soon!) ### [`v5.5.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.5.3): TypeScript 5.5.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.5.2...v5.5.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/). For the complete list of fixed issues, check out the - [fixed issues query for TypeScript v5.5.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.3%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.5.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.5.2): TypeScript 5.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.4.5...v5.5.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/). For the complete list of fixed issues, check out the - [fixed issues query for TypeScript v5.5.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.2%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.1%22+is%3Aclosed+). - [fixed issues query for TypeScript v5.5.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.5.0%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) ### [`v5.4.5`](https://github.com/microsoft/TypeScript/releases/tag/v5.4.5): TypeScript 5.4.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.4.4...v5.4.5) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.4%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.5 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.5%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.4.4`](https://github.com/microsoft/TypeScript/releases/tag/v5.4.4): TypeScript 5.4.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.4.3...v5.4.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.4%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.4.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.4.3): TypeScript 5.4.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.4.2...v5.4.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.4.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.4.2): TypeScript 5.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.3.3...v5.4.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.4.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.4.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.3.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.3.3): TypeScript 5.3.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.3.2...v5.3.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.3.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.3.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.3.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.2%22+is%3Aclosed+). - [fixed issues query for Typescript 5.3.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.3%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.3.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.3.2): TypeScript 5.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.2.2...v5.3.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.3.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.3.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.3.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.3.2%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.2.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.2.2): TypeScript 5.2 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.1.6...v5.2.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.2.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.2.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.2.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.2.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.2.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.2.2%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.1.6`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.6): TypeScript 5.1.6 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.1.5...v5.1.6) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v5.1.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.2%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+). - (5.1.4 [intentionally skipped](https://github.com/microsoft/TypeScript/issues/53031#issuecomment-1610038922)) - [fixed issues query for Typescript v5.1.5 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.5%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.6 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.6%22+is%3Aclosed+). Downloads are available on [npm](https://www.npmjs.com/package/typescript) ### [`v5.1.5`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.5): TypeScript 5.1.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.1.3...v5.1.5) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v5.1.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.2%22+is%3Aclosed+). - [fixed issues query for Typescript v5.1.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+). - (5.1.4 [intentionally skipped](https://github.com/microsoft/TypeScript/issues/53031#issuecomment-1610038922)) - [fixed issues query for Typescript v5.1.5 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.5%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3): TypeScript 5.1.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.0.4...v5.1.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 5.1.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.0%22+is%3Aclosed+). - [fixed issues query for Typescript 5.1.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.1%22+is%3Aclosed+). - [fixed issues query for Typescript 5.1.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.1.3%22+is%3Aclosed+). Downloads are available on: - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.0.4`](https://github.com/microsoft/TypeScript/releases/tag/v5.0.4): TypeScript 5.0.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.0.3...v5.0.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v5.0.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.0%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.1%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.2%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.3%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.4 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.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) ### [`v5.0.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.0.3): TypeScript 5.0.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v5.0.2...v5.0.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v5.0.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.0%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.1%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.2%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.3 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.0.3%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v5.0.2`](https://github.com/microsoft/TypeScript/releases/tag/v5.0.2): TypeScript 5.0 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.9.5...v5.0.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v5.0.0 (Beta)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.0.0%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.1 (RC)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.0.1%22+is%3Aclosed+). - [fixed issues query for Typescript v5.0.2 (Stable)](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+5.0.2%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.9.5`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.5): TypeScript 4.9.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.9.4...v4.9.5) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) #### Changes: - [`69e88ef`](https://github.com/microsoft/TypeScript/commit/69e88ef5513a81acf69ec78f4af1f927da0d0584) Port ignore deprecations to 4.9 ([#&#8203;52419](https://github.com/microsoft/TypeScript/issues/52419)) - [`daf4e81`](https://github.com/microsoft/TypeScript/commit/daf4e817a18def96b70ac34703b158ff0e6d58df) Port timestamp fix to 4.9 ([#&#8203;52426](https://github.com/microsoft/TypeScript/issues/52426)) ### [`v4.9.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.4): TypeScript 4.9.4 [Compare Source](https://github.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://github.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://github.com/microsoft/TypeScript/commit/e2868216f637e875a74c675845625eb15dcfe9a2) Bump version to 4.9.4 and LKG. - [`eb5419f`](https://github.com/microsoft/TypeScript/commit/eb5419fc8d980859b98553586dfb5f40d811a745) Cherry-pick [#&#8203;51704](https://github.com/microsoft/TypeScript/issues/51704) to release 4.9 ([#&#8203;51712](https://github.com/microsoft/TypeScript/issues/51712)) - [`b4d382b`](https://github.com/microsoft/TypeScript/commit/b4d382b9b12460adf2da4cc0d1429cf19f8dc8be) Cherry-pick changes for narrowing to tagged literal types. - [`e7a02f4`](https://github.com/microsoft/TypeScript/commit/e7a02f43fce47e1a39259ada5460bcc33c8e98b5) Port of [#&#8203;51626](https://github.com/microsoft/TypeScript/issues/51626) and [#&#8203;51689](https://github.com/microsoft/TypeScript/issues/51689) to release-4.9 ([#&#8203;51627](https://github.com/microsoft/TypeScript/issues/51627)) - [`1727912`](https://github.com/microsoft/TypeScript/commit/1727912f0437a7f367d90040fc4b0b4f3efd017a) Cherry-pick fix around `visitEachChild` to release-4.9. ([#&#8203;51544](https://github.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). ### [`v4.9.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.3): TypeScript 4.9 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.8.4...v4.9.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) #### Changes: - [`93bd577`](https://github.com/microsoft/TypeScript/commit/93bd577458d55cd720b2677705feab5c91eb12ce) Bump version to 4.9.3 and LKG. - [`107f832`](https://github.com/microsoft/TypeScript/commit/107f832b80df2dc97748021cb00af2b6813db75b) Update LKG. - [`31bee56`](https://github.com/microsoft/TypeScript/commit/31bee5682df130a14ffdd5742f994dbe7313dd0e) Cherry-pick PR [#&#8203;50977](https://github.com/microsoft/TypeScript/issues/50977) into release-4.9 ([#&#8203;51363](https://github.com/microsoft/TypeScript/issues/51363)) \[ [#&#8203;50872](https://github.com/microsoft/TypeScript/issues/50872) ] - [`1e2fa7a`](https://github.com/microsoft/TypeScript/commit/1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45) Update version to 4.9.2-rc and LKG. - [`7ab89e5`](https://github.com/microsoft/TypeScript/commit/7ab89e5c6e401d161f31f28a6c555a3ba530910e) Merge remote-tracking branch 'origin/main' into release-4.9 - [`e5cd686`](https://github.com/microsoft/TypeScript/commit/e5cd686defb1a4cbdb36bd012357ba5bed28f371) Update package-lock.json - [`8d40dc1`](https://github.com/microsoft/TypeScript/commit/8d40dc15d1b9945837e7860320fdccfe27c40cad) Update package-lock.json - [`5cfb3a2`](https://github.com/microsoft/TypeScript/commit/5cfb3a2fe344a5350734305193e6cc99516285ca) Only call return() for an abrupt completion in user code ([#&#8203;51297](https://github.com/microsoft/TypeScript/issues/51297)) - [`a7a9d15`](https://github.com/microsoft/TypeScript/commit/a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9) Fix for broken baseline in yieldInForInInDownlevelGenerator ([#&#8203;51345](https://github.com/microsoft/TypeScript/issues/51345)) - [`7f8426f`](https://github.com/microsoft/TypeScript/commit/7f8426f4df0d0a7dd8b72079dafc3e60164a23b1) fix for-in enumeration containing yield in generator ([#&#8203;51295](https://github.com/microsoft/TypeScript/issues/51295)) <details><summary><b>See More</b></summary> - [`3d2b401`](https://github.com/microsoft/TypeScript/commit/3d2b4017eb6b9a2b94bc673291e56ae95e8beddd) Fix assertion functions accessed via wildcard imports ([#&#8203;51324](https://github.com/microsoft/TypeScript/issues/51324)) - [`64d0d5a`](https://github.com/microsoft/TypeScript/commit/64d0d5ae140b7b26a09e75114517b418d6bcaa9f) fix(51301): Fixing an unused import at the end of a line removes the newline ([#&#8203;51320](https://github.com/microsoft/TypeScript/issues/51320)) - [`754eeb2`](https://github.com/microsoft/TypeScript/commit/754eeb2986bde30d5926e0fa99c87dda9266d01b) Update CodeQL workflow and configuration, fix found bugs ([#&#8203;51263](https://github.com/microsoft/TypeScript/issues/51263)) - [`d8aad26`](https://github.com/microsoft/TypeScript/commit/d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b) Update package-lock.json - [`d4f26c8`](https://github.com/microsoft/TypeScript/commit/d4f26c840b1db76c0b25a405c8e73830a2b45cbc) fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure ([#&#8203;51256](https://github.com/microsoft/TypeScript/issues/51256)) - [`16faf45`](https://github.com/microsoft/TypeScript/commit/16faf45682173ea437a50330feb4785578923d7f) Update package-lock.json - [`8b1ecdb`](https://github.com/microsoft/TypeScript/commit/8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee) fix(50654): "Move to a new file" breaks the declaration of referenced variable ([#&#8203;50681](https://github.com/microsoft/TypeScript/issues/50681)) - [`170a17f`](https://github.com/microsoft/TypeScript/commit/170a17fad57eae619c5ef2b7bdb3ac00d6c32c47) Dom update 2022-10-25 ([#&#8203;51300](https://github.com/microsoft/TypeScript/issues/51300)) - [`9c4e14d`](https://github.com/microsoft/TypeScript/commit/9c4e14d75174432f6a4dc5967a09712a6784ab88) Remove "No type information for this code" from baseline ([#&#8203;51311](https://github.com/microsoft/TypeScript/issues/51311)) - [`88d25b4`](https://github.com/microsoft/TypeScript/commit/88d25b4f232929df59729156dfda6b65277affec) fix(50068): Refactors trigger debug failure when JSX text has a ' and a tag on the same line. ([#&#8203;51299](https://github.com/microsoft/TypeScript/issues/51299)) - [`8bee69a`](https://github.com/microsoft/TypeScript/commit/8bee69acf410d4986cb0cc102b949e2d133d5380) Update package-lock.json - [`702de1e`](https://github.com/microsoft/TypeScript/commit/702de1eeaaef88a189e4d06e5a2aae287853790a) Fix early call to return/throw on generator ([#&#8203;51294](https://github.com/microsoft/TypeScript/issues/51294)) - [`2c12b14`](https://github.com/microsoft/TypeScript/commit/2c12b1499908ad7718e65d20e264561207c22375) Add a GH Action to file a new issue if we go a week without seeing a typescript-error-deltas issue ([#&#8203;51271](https://github.com/microsoft/TypeScript/issues/51271)) - [`6af270d`](https://github.com/microsoft/TypeScript/commit/6af270dee09d62516f6dc02ec102a745ffebc037) Update package-lock.json - [`2cc4c16`](https://github.com/microsoft/TypeScript/commit/2cc4c16a26672a7ba6c97ba16309fcf334db7cae) Update package-lock.json - [`6093491`](https://github.com/microsoft/TypeScript/commit/60934915d9ccc4ca9c0fb2cd060d7ec81601942b) Fix apparent typo in getStringMappingType ([#&#8203;51248](https://github.com/microsoft/TypeScript/issues/51248)) - [`61c2609`](https://github.com/microsoft/TypeScript/commit/61c26096e3373719ece686b84c698423890e9a5f) Update package-lock.json - [`ef69116`](https://github.com/microsoft/TypeScript/commit/ef69116c41cb6805f89e6592eacb0ccb7f02207d) Generate shortest `rootDirs` module specifier instead of first possible ([#&#8203;51244](https://github.com/microsoft/TypeScript/issues/51244)) - [`bbb42f4`](https://github.com/microsoft/TypeScript/commit/bbb42f453dc684e03d977c5b70391124d57543a9) Fix typo in canWatchDirectoryOrFile found by CodeQL ([#&#8203;51262](https://github.com/microsoft/TypeScript/issues/51262)) - [`a56b254`](https://github.com/microsoft/TypeScript/commit/a56b254ad3c52b598bc5d44f83f3d0a1cf806068) Include 'this' type parameter in isRelatedTo fast path ([#&#8203;51230](https://github.com/microsoft/TypeScript/issues/51230)) - [`3abd351`](https://github.com/microsoft/TypeScript/commit/3abd351c0eea55758f27ee5558a4a1525b77f45b) Fix super property transform in async arrow in method ([#&#8203;51240](https://github.com/microsoft/TypeScript/issues/51240)) - [`eed0511`](https://github.com/microsoft/TypeScript/commit/eed05112180e0d94f78aa02d676d49468f15dc31) Update package-lock.json - [`2625c1f`](https://github.com/microsoft/TypeScript/commit/2625c1feae25aede35465ca835440fc57bf13d52) Make the init config category order predictable ([#&#8203;51247](https://github.com/microsoft/TypeScript/issues/51247)) - [`1ca99b3`](https://github.com/microsoft/TypeScript/commit/1ca99b34029dafad2c18af7bdc0711f4abf7e522) fix(50551): Destructuring assignment with var bypasses "variable is used before being assigned" check (2454) ([#&#8203;50560](https://github.com/microsoft/TypeScript/issues/50560)) - [`3f28fa1`](https://github.com/microsoft/TypeScript/commit/3f28fa12dfecb8dfd66ce4684bf26f64e1f092f1) Update package-lock.json - [`906ebe4`](https://github.com/microsoft/TypeScript/commit/906ebe49334a3a9c2dbd73cd3c902898bc712b66) Revert structuredTypeRelatedTo change and fix isUnitLikeType ([#&#8203;51076](https://github.com/microsoft/TypeScript/issues/51076)) - [`8ac4652`](https://github.com/microsoft/TypeScript/commit/8ac465239f52de1da3ada8cdc4c3f107f4d62e45) change type ([#&#8203;51231](https://github.com/microsoft/TypeScript/issues/51231)) - [`245a02c`](https://github.com/microsoft/TypeScript/commit/245a02cbed7ad50a21289730159abc8d19a66f40) fix(51222): Go-to-definition on return statements should jump to the containing function declaration ([#&#8203;51227](https://github.com/microsoft/TypeScript/issues/51227)) - [`2dff34e`](https://github.com/microsoft/TypeScript/commit/2dff34e8c4a91c0005ca9ccfb7e045e225b6f2e4) markAliasReferenced should include ExportValue as well ([#&#8203;51219](https://github.com/microsoft/TypeScript/issues/51219)) - [`5ef2634`](https://github.com/microsoft/TypeScript/commit/5ef2634f3df138323383c7f2e5a05163a924ee86) Update package-lock.json - [`d0f0e35`](https://github.com/microsoft/TypeScript/commit/d0f0e35c88ae017fc4c1213eb2f83303ee22ebde) Remove old tslint comments ([#&#8203;51220](https://github.com/microsoft/TypeScript/issues/51220)) - [`85d405a`](https://github.com/microsoft/TypeScript/commit/85d405a1d74c0730a9d8d6307b26e8d6f3f75421) Fixed a false positive "await has no effect on the type" diagnostic with mixed generic union ([#&#8203;50833](https://github.com/microsoft/TypeScript/issues/50833)) - [`1f8959f`](https://github.com/microsoft/TypeScript/commit/1f8959f5dc04b2b2c2fc8a7dc53b6ac761e1f754) fix: avoid downleveled dynamic import closing over specifier expression ([#&#8203;49663](https://github.com/microsoft/TypeScript/issues/49663)) - [`11066b2`](https://github.com/microsoft/TypeScript/commit/11066b264f5d30fb5ac1f6c2f3a155c0190e75d2) Rename internal functions to `narrowTypeBySwitchOnTypeOf` and `narrowTypeByInKeyword` ([#&#8203;51215](https://github.com/microsoft/TypeScript/issues/51215)) - [`4c9afe8`](https://github.com/microsoft/TypeScript/commit/4c9afe8812fcdb4658472ccbced4a5cd4bae70ea) Update package-lock.json - [`f25bcb7`](https://github.com/microsoft/TypeScript/commit/f25bcb7c27d78ce89e9c9356d27058cf86dbfb5c) fix(49196): add jsdoc snippet for interface member functions ([#&#8203;51135](https://github.com/microsoft/TypeScript/issues/51135)) - [`7406ee9`](https://github.com/microsoft/TypeScript/commit/7406ee9c145cd7d6117391818d5a1eca2d66ca8f) fix(51170): Completing an unimplemented property overwrites rest of line ([#&#8203;51175](https://github.com/microsoft/TypeScript/issues/51175)) - [`a1d82fc`](https://github.com/microsoft/TypeScript/commit/a1d82fc9dcced6ca6bde6e21c385d152d083679f) Remove some unnecessary code discovered by rollup ([#&#8203;51204](https://github.com/microsoft/TypeScript/issues/51204)) - [`0481773`](https://github.com/microsoft/TypeScript/commit/0481773a27fc6a0132c34502fd2a3b0c73cf63a3) LEGO: Merge pull request 51200 - [`98c19cb`](https://github.com/microsoft/TypeScript/commit/98c19cbbbe83c2ae3c89a4e08317a4b9ccbcb206) LEGO: Merge pull request 51190 - [`13c9b05`](https://github.com/microsoft/TypeScript/commit/13c9b05384544262363f3fd8b942b36aeb84fc61) Update package-lock.json - [`673475e`](https://github.com/microsoft/TypeScript/commit/673475e1c5e582f2fd0bf8d89e33c7708607c8d8) Update package-lock.json - [`f6cf510`](https://github.com/microsoft/TypeScript/commit/f6cf51053e024714dd6b8463fe6f8e7e33461e6b) Add more tracing to node16/nodenext resolution ([#&#8203;51168](https://github.com/microsoft/TypeScript/issues/51168)) - [`83c5581`](https://github.com/microsoft/TypeScript/commit/83c5581588f660247bd9648bafe67b49de060a55) Update package-lock.json - [`be5f0fe`](https://github.com/microsoft/TypeScript/commit/be5f0fe5acfed5146514ebe7c1b65529def8e490) Add an extra regression test for awaited unresolvable recursive union ([#&#8203;51167](https://github.com/microsoft/TypeScript/issues/51167)) - [`2cb7e77`](https://github.com/microsoft/TypeScript/commit/2cb7e779d70d57ef0d46dd3f768e646b8bbe783a) fix(50416): correctly names disabled export refactors ([#&#8203;50663](https://github.com/microsoft/TypeScript/issues/50663)) \[ [#&#8203;50416](https://github.com/microsoft/TypeScript/issues/50416) ] - [`2bcfed0`](https://github.com/microsoft/TypeScript/commit/2bcfed01f3458996e71ce37af43e3495cb7e4950) feat(37440): Provide a quick-fix for non-exported types ([#&#8203;51038](https://github.com/microsoft/TypeScript/issues/51038)) - [`a24201c`](https://github.com/microsoft/TypeScript/commit/a24201c8ef6f82b5729ab677b7a1a1d6d745fcb8) Remove VSDevMode.ps1 and createPlaygroundBuild ([#&#8203;51166](https://github.com/microsoft/TypeScript/issues/51166)) - [`2da62a7`](https://github.com/microsoft/TypeScript/commit/2da62a784bbba237b8239e84c8629cfafb0f595e) fix(51112): omit parameter names that precede the type ([#&#8203;51142](https://github.com/microsoft/TypeScript/issues/51142)) - [`cf1b6b7`](https://github.com/microsoft/TypeScript/commit/cf1b6b73330eab2dd484d71cbdb662a83b3c726f) feat(51163): show QF to fill in the missing properties for the mapped type. ([#&#8203;51165](https://github.com/microsoft/TypeScript/issues/51165)) - [`bdcc240`](https://github.com/microsoft/TypeScript/commit/bdcc240d68245e4be865b385bd6a8fd8fa546f56) Remove bug-causing carve-out in conditional type instantiation that hopefully is no longer required ([#&#8203;51151](https://github.com/microsoft/TypeScript/issues/51151)) - [`37317a2`](https://github.com/microsoft/TypeScript/commit/37317a208f34c141b64e26d0e92b3aed346e531f) Check nested weak types in intersections on target side of relation ([#&#8203;51140](https://github.com/microsoft/TypeScript/issues/51140)) - [`9f49f9c`](https://github.com/microsoft/TypeScript/commit/9f49f9ccb05a7bb56b8ca84b8036a3ad4e0e7c2b) Update package-lock.json - [`4f54e7e`](https://github.com/microsoft/TypeScript/commit/4f54e7e947298162d29f3104265e74dcfbc90d82) Fix isExhaustiveSwitchStatement to better handle circularities ([#&#8203;51095](https://github.com/microsoft/TypeScript/issues/51095)) - [`503604c`](https://github.com/microsoft/TypeScript/commit/503604c884bd0557c851b11b699ef98cdb65b93b) Overloads shouldn't gain [@&#8203;deprecated](https://github.com/deprecated) tags of other overloads in quick info ([#&#8203;50904](https://github.com/microsoft/TypeScript/issues/50904)) - [`e14a229`](https://github.com/microsoft/TypeScript/commit/e14a2298c5add93816c6f487bcfc5ac72e3a4c59) Update package-lock.json - [`67256e5`](https://github.com/microsoft/TypeScript/commit/67256e50c41aa9178a60c52de8416477f070b190) Remove unused declarations array in extractSymbol's TargetRange ([#&#8203;51091](https://github.com/microsoft/TypeScript/issues/51091)) - [`9c87ded`](https://github.com/microsoft/TypeScript/commit/9c87ded2b3fc4ba4a9a7656e9be39d5e404e6ab6) fix(51100): ensure tsserver shuts down when parent process is killed ([#&#8203;51107](https://github.com/microsoft/TypeScript/issues/51107)) - [`c01ae01`](https://github.com/microsoft/TypeScript/commit/c01ae01fac37268bac3362fb6e6d26db730f7ed5) Fix nightly publish oops in Gulpfile ([#&#8203;51131](https://github.com/microsoft/TypeScript/issues/51131)) - [`a7d10f1`](https://github.com/microsoft/TypeScript/commit/a7d10f15bbd28166b869ae00482214e360891613) Update package-lock.json - [`d0bfd8c`](https://github.com/microsoft/TypeScript/commit/d0bfd8caed521bfd24fc44960d9936a891744bb7) fix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings ([#&#8203;51082](https://github.com/microsoft/TypeScript/issues/51082)) - [`ad56b5c`](https://github.com/microsoft/TypeScript/commit/ad56b5ca56b763ab377e07121ecfebb457a2e810) Convert scripts/Gulpfile to checked mjs/cjs so they can run without compilation ([#&#8203;50988](https://github.com/microsoft/TypeScript/issues/50988)) - [`dbeae5d`](https://github.com/microsoft/TypeScript/commit/dbeae5d943c784661862c52b8e215a2907c31a33) fix(51017): Make lineText in the references response opt-out ([#&#8203;51081](https://github.com/microsoft/TypeScript/issues/51081)) - [`d06a592`](https://github.com/microsoft/TypeScript/commit/d06a592d02955822a7407b70969fb7a82bc17d59) Properly defer resolution of mapped types with generic `as` clauses ([#&#8203;51050](https://github.com/microsoft/TypeScript/issues/51050)) - [`42b1049`](https://github.com/microsoft/TypeScript/commit/42b1049aee8c655631cb4f0065de86ec1023d20a) Update package-lock.json - [`5f3e6cc`](https://github.com/microsoft/TypeScript/commit/5f3e6cc4980d26af5d8a8f463e59b2c3338165c6) Plugin probe location is higher priority than peer node_modules ([#&#8203;51079](https://github.com/microsoft/TypeScript/issues/51079)) \[ [#&#8203;34616](https://github.com/microsoft/TypeScript/issues/34616) ] - [`2648f6a`](https://github.com/microsoft/TypeScript/commit/2648f6ab09e3176c7da2c07c54066d3a3433a298) Plugins in project were adding up after every config file reload ([#&#8203;51087](https://github.com/microsoft/TypeScript/issues/51087)) - [`c18791c`](https://github.com/microsoft/TypeScript/commit/c18791ccf165672df3b55f5bdd4a8655f33be26c) Fix incorrect options type to WatchOptions ([#&#8203;51064](https://github.com/microsoft/TypeScript/issues/51064)) - [`b0795e9`](https://github.com/microsoft/TypeScript/commit/b0795e9c94757a8ee78077d160cde8819a9801ea) Update package-lock.json - [`43c6fd4`](https://github.com/microsoft/TypeScript/commit/43c6fd4c09464204bc6a6e1c6c1d32fa12270414) Covert some of the config testing to baselines for easy validation ([#&#8203;51063](https://github.com/microsoft/TypeScript/issues/51063)) - [`fc5e72b`](https://github.com/microsoft/TypeScript/commit/fc5e72b92cb8ea13c5e0f2cfc35d8b2cbfd1fe36) Remove unused defaultWatchFileKind method since useFsEvents is default for tsserver and tsc ([#&#8203;51044](https://github.com/microsoft/TypeScript/issues/51044)) - [`8af9a93`](https://github.com/microsoft/TypeScript/commit/8af9a936b5240398370887c22cacaff65fee707b) Use typescript.d.ts in APISample tests ([#&#8203;51061](https://github.com/microsoft/TypeScript/issues/51061)) - [`4953316`](https://github.com/microsoft/TypeScript/commit/49533168dbb4e19f243b9dbdfd6a3aac69f5b3dd) Remove configureLanguageServiceBuild, instrumenter ([#&#8203;51048](https://github.com/microsoft/TypeScript/issues/51048)) - [`9dfffd0`](https://github.com/microsoft/TypeScript/commit/9dfffd0fbb406d7f2e5e2ca85768624ca388a7bf) Update GitHub Actions ([#&#8203;51045](https://github.com/microsoft/TypeScript/issues/51045)) - [`4635a5c`](https://github.com/microsoft/TypeScript/commit/4635a5cef9aefa9aa847ef7ce2e6767ddf4f54c2) Update package-lock.json - [`33a34e5`](https://github.com/microsoft/TypeScript/commit/33a34e5b96bfe086266f4765ab9789a2a02507f9) Adding a JSDoc comment to the es5 type declarations to describe the functionality of Date.now() ([#&#8203;50630](https://github.com/microsoft/TypeScript/issues/50630)) - [`299745c`](https://github.com/microsoft/TypeScript/commit/299745cb217c2fc061f75b3735f8420d78b8360a) Fix crash in goto-def on `@override` ([#&#8203;51016](https://github.com/microsoft/TypeScript/issues/51016)) - [`7dcf11f`](https://github.com/microsoft/TypeScript/commit/7dcf11f13985be927886ebea353d282a9b3418e0) fix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references ([#&#8203;50757](https://github.com/microsoft/TypeScript/issues/50757)) - [`5cd49f6`](https://github.com/microsoft/TypeScript/commit/5cd49f6cbcd2effe9d425dee3a39cb49209bb656) Update package-lock.json - [`8a1b858`](https://github.com/microsoft/TypeScript/commit/8a1b85880f89c9cff606c5844e8883e5f483c7db) Update package-lock.json - [`96894db`](https://github.com/microsoft/TypeScript/commit/96894db6cb5b7af6857b4d0c7f70f7d8ac782d51) Include type parameter defaults in contextual typing ([#&#8203;50994](https://github.com/microsoft/TypeScript/issues/50994)) \[ [#&#8203;51002](https://github.com/microsoft/TypeScript/issues/51002) ] - [`0d0a793`](https://github.com/microsoft/TypeScript/commit/0d0a79371471d627ae298a145f8009b05cbccb72) Allow Unicode extended escapes in ES5 and earlier ([#&#8203;50918](https://github.com/microsoft/TypeScript/issues/50918)) - [`58bae8d`](https://github.com/microsoft/TypeScript/commit/58bae8db69b275a3efa57b14b486778c55185552) Update package-lock.json - [`0ce72ef`](https://github.com/microsoft/TypeScript/commit/0ce72ef6c8b39cd2d07e5b0eb3a0c144a7783ad2) Add option to OrganizeImports for removal only ([#&#8203;50931](https://github.com/microsoft/TypeScript/issues/50931)) - [`42f9143`](https://github.com/microsoft/TypeScript/commit/42f9143e114c5c07f40df83ed07ffeb3cbaf2101) feat: codefix for `for await of` ([#&#8203;50623](https://github.com/microsoft/TypeScript/issues/50623)) - [`ecf50e8`](https://github.com/microsoft/TypeScript/commit/ecf50e81a7a9cccd9bf5ea7598764082981faab0) Properly compute `SymbolFlags.Optional` for intersected properties ([#&#8203;50958](https://github.com/microsoft/TypeScript/issues/50958)) - [`d1586de`](https://github.com/microsoft/TypeScript/commit/d1586de0434567b998876929eb8229235b85b350) Fully resolve aliases when checking symbol flags ([#&#8203;50853](https://github.com/microsoft/TypeScript/issues/50853)) - [`45148dd`](https://github.com/microsoft/TypeScript/commit/45148dd715a7c3776840778b4df41e7e0bd0bf12) Update LKG to 4.8.4 ([#&#8203;50987](https://github.com/microsoft/TypeScript/issues/50987)) - [`9a83f25`](https://github.com/microsoft/TypeScript/commit/9a83f2551ded0d88a0ba0ec9af260f83eb3568cd) Update package-lock.json - [`865848f`](https://github.com/microsoft/TypeScript/commit/865848fcfb9e6ce7dd64be563fc09f83d4bc9df5) Fix `<=` and `>` comparisons when compared against prerelease versions ([#&#8203;50915](https://github.com/microsoft/TypeScript/issues/50915)) - [`fbfe934`](https://github.com/microsoft/TypeScript/commit/fbfe9340a90777dee03b30f736fab44056123be0) Fix comparability between type parameters related by a union constraint ([#&#8203;50978](https://github.com/microsoft/TypeScript/issues/50978)) - [`b09e93d`](https://github.com/microsoft/TypeScript/commit/b09e93d3f6d3e999df001b53984954974c25b81f) Merge pull request [#&#8203;50041](https://github.com/microsoft/TypeScript/issues/50041) from microsoft/fix/47969 - [`0ac12bb`](https://github.com/microsoft/TypeScript/commit/0ac12bbe7a410238ca992a42f41816a97f6906f4) Update package-lock.json - [`8192d55`](https://github.com/microsoft/TypeScript/commit/8192d550496d884263e292488e325ae96893dc78) Pick correct compilerOptions when checking if we can share emitSignatures ([#&#8203;50910](https://github.com/microsoft/TypeScript/issues/50910)) \[ [#&#8203;50902](https://github.com/microsoft/TypeScript/issues/50902) ] - [`16faef1`](https://github.com/microsoft/TypeScript/commit/16faef1d8d522b66b6c672bdd15b4026e2018a62) During uptodate ness check with buildInfo, check if there are errors explicitly with noEmit ([#&#8203;50974](https://github.com/microsoft/TypeScript/issues/50974)) \[ [#&#8203;50959](https://github.com/microsoft/TypeScript/issues/50959) ] - [`63791f5`](https://github.com/microsoft/TypeScript/commit/63791f52d4e7a3bf461b974e94abd8cbb6b546c5) Update package-lock.json - [`09368bc`](https://github.com/microsoft/TypeScript/commit/09368bcbaebd157d1e66859ab6f5b30c2fd6eaff) Handle if project for open file will get recollected because of pending cleanup from closed script info ([#&#8203;50908](https://github.com/microsoft/TypeScript/issues/50908)) \[ [#&#8203;50868](https://github.com/microsoft/TypeScript/issues/50868) ] - [`c81bf4d`](https://github.com/microsoft/TypeScript/commit/c81bf4d8b0c12410a082d6598fcc24cc721b6e9e) fix(49594): Typescript 4.7.3 bracketed class property compilation error strictPropertyInitialization:true ([#&#8203;49619](https://github.com/microsoft/TypeScript/issues/49619)) - [`bc9cbbe`](https://github.com/microsoft/TypeScript/commit/bc9cbbef421ae907f7dfd5a84ca69c4f68a8935b) Merge pull request [#&#8203;49912](https://github.com/microsoft/TypeScript/issues/49912) from microsoft/fix/47508 - [`5a10f46`](https://github.com/microsoft/TypeScript/commit/5a10f46c0028790120cb85c826efa4248707a964) Update package-lock.json - [`8e71f42`](https://github.com/microsoft/TypeScript/commit/8e71f429c811ac7811533d7b0e02c32bad5a1b47) Fixing pr comments - [`c100c64`](https://github.com/microsoft/TypeScript/commit/c100c6488db0482dcc1455290f456dece91cac0a) Update package-lock.json - [`2a91107`](https://github.com/microsoft/TypeScript/commit/2a91107f7548eeb5e32673e76277d27264ea88e2) Update package-lock.json - [`4ab9e76`](https://github.com/microsoft/TypeScript/commit/4ab9e76fb748b08712f9d0017dd8f0ba74d1859f) Use paths in package.json 'files' array that work with npm 6 and later. ([#&#8203;50930](https://github.com/microsoft/TypeScript/issues/50930)) - [`549b542`](https://github.com/microsoft/TypeScript/commit/549b5429d4837344e8c99657109bb6538fd2dbb5) Use paths in package.json 'files' array that work with npm 6 and later. - [`7f37d25`](https://github.com/microsoft/TypeScript/commit/7f37d251fc69da34659e4c60792177e1e9a8e7a6) Update version to 4.9.1-beta and LKG. - [`f16ca7d`](https://github.com/microsoft/TypeScript/commit/f16ca7dd364e57ee7ce337f987b20dbc1e34941f) Remove 'async' dependency, used only in errorCheck.ts, modernize file ([#&#8203;50667](https://github.com/microsoft/TypeScript/issues/50667)) - [`c6bef3f`](https://github.com/microsoft/TypeScript/commit/c6bef3f02874bddf6df120aa4f0d130c58478468) LEGO: Merge pull request 50921 - [`6753027`](https://github.com/microsoft/TypeScript/commit/675302730b8ca525d47c910bf2d3174bd3b66a1b) Update package-lock.json - [`9740bcc`](https://github.com/microsoft/TypeScript/commit/9740bcc53418e8792a4dbb978059ff5a02b55c91) Pluralized `hasInvalidatedResolution` -> `hasInvalidatedResolutions` ([#&#8203;50912](https://github.com/microsoft/TypeScript/issues/50912)) - [`84c29cd`](https://github.com/microsoft/TypeScript/commit/84c29cd576fd1facb9b3a353d5342df04acdb184) 🤖 Pick PR [#&#8203;50912](https://github.com/microsoft/TypeScript/issues/50912) (Pluralized \`hasInvalidatedResolutio...) into release-4.9 ([#&#8203;50913](https://github.com/microsoft/TypeScript/issues/50913)) - [`a26f634`](https://github.com/microsoft/TypeScript/commit/a26f63424de249bb106804dfc9a024bb525de93e) Merge remote-tracking branch 'origin/main' into release-4.9 - [`a455955`](https://github.com/microsoft/TypeScript/commit/a455955aac85ecc5b2182fe50b83670188955feb) Make hasInvalidatedResolution non internal for program and add it watchApi ([#&#8203;50776](https://github.com/microsoft/TypeScript/issues/50776)) \[ [#&#8203;48057](https://github.com/microsoft/TypeScript/issues/48057) ] - [`645d1cd`](https://github.com/microsoft/TypeScript/commit/645d1cd7c1ee1d65a87b2183b173611467256a09) Fix assert in addIndirectUser in FAR ([#&#8203;50905](https://github.com/microsoft/TypeScript/issues/50905)) - [`bbec17d`](https://github.com/microsoft/TypeScript/commit/bbec17d9003246fa00d6bf676bb4ce7c54ff2be4) LEGO: Merge pull request 50900 - [`a9ecc67`](https://github.com/microsoft/TypeScript/commit/a9ecc675d636c3bbca697bc4881b019e8645a7a6) Update package-lock.json - [`221cf55`](https://github.com/microsoft/TypeScript/commit/221cf55a21e448bd3fe2cf26a754c9c0dda3dca3) package.json `exports` should have priority over `typesVersions` ([#&#8203;50890](https://github.com/microsoft/TypeScript/issues/50890)) - [`acb8977`](https://github.com/microsoft/TypeScript/commit/acb89771901f8c81c6046fa7c16361a83388ddab) Remove .github/tsc.json ([#&#8203;50664](https://github.com/microsoft/TypeScript/issues/50664)) - [`7a3de81`](https://github.com/microsoft/TypeScript/commit/7a3de819bfb93fb27ef7ea8305d2df069866c380) fix(49993): skip the quick fix for an expression with an enum type ([#&#8203;50625](https://github.com/microsoft/TypeScript/issues/50625)) - [`2644f28`](https://github.com/microsoft/TypeScript/commit/2644f2867734d77a3a3939c55d5cc0a5004df0ed) fix(49200): skip duplicated method declarations ([#&#8203;50609](https://github.com/microsoft/TypeScript/issues/50609)) - [`98652a3`](https://github.com/microsoft/TypeScript/commit/98652a349a67be718e8e8b5fcf590972eb62a104) Bump version to 4.9.0-beta and LKG. - [`4d91204`](https://github.com/microsoft/TypeScript/commit/4d91204c9d9f27756785f62fade44d93824d47f4) fix(37030): Expand Selection in function and arrow function skips body block ([#&#8203;50711](https://github.com/microsoft/TypeScript/issues/50711)) - [`e2dd508`](https://github.com/microsoft/TypeScript/commit/e2dd5084f75ac37a78102d212b67d36595596137) DOM update 2022/09/21 ([#&#8203;50884](https://github.com/microsoft/TypeScript/issues/50884)) - [`1d9ab83`](https://github.com/microsoft/TypeScript/commit/1d9ab83914a551936ce5ef80340ee65cfd1422ba) fix(50866): emit modifiers from export declarations ([#&#8203;50874](https://github.com/microsoft/TypeScript/issues/50874)) - [`92a1b12`](https://github.com/microsoft/TypeScript/commit/92a1b124c178e1ff4871b29cb9abc00307e21742) LEGO: Merge pull request 50877 - [`e383db6`](https://github.com/microsoft/TypeScript/commit/e383db692eb44561333c1bbe353788b337aebc99) Fix debug.ts \__debugKind check ([#&#8203;50871](https://github.com/microsoft/TypeScript/issues/50871)) - [`01054e0`](https://github.com/microsoft/TypeScript/commit/01054e05ab7638e96515619c4ce62200fdf4e0fd) Consistently add undefined/missing to optional tuple element types ([#&#8203;50831](https://github.com/microsoft/TypeScript/issues/50831)) - [`d90795e`](https://github.com/microsoft/TypeScript/commit/d90795e799ca8e41aabd6d0852abb585138200ef) Improve escape sequence handling in private names ([#&#8203;50856](https://github.com/microsoft/TypeScript/issues/50856)) - [`938a69a`](https://github.com/microsoft/TypeScript/commit/938a69a526166ca4e7880fa140fba432936f0fe3) Fix import statement completions followed by interface declaration ([#&#8203;50350](https://github.com/microsoft/TypeScript/issues/50350)) - [`e002159`](https://github.com/microsoft/TypeScript/commit/e002159ad133a024bae48a2e190e54ad93f6b52d) feat(49962): Disallow comparison against NaN ([#&#8203;50626](https://github.com/microsoft/TypeScript/issues/50626)) - [`80ae43d`](https://github.com/microsoft/TypeScript/commit/80ae43d2399503a04651e3705823137d36148b00) Fixing spaces - [`abc58bd`](https://github.com/microsoft/TypeScript/commit/abc58bdabcf536bd5204fbc84fb7f45d75f1a9ad) Fixing baseline errors - [`305f4bd`](https://github.com/microsoft/TypeScript/commit/305f4bd420bf9edc0239fd3a740aa83fbdeb9ba2) Merge branch 'main' into fix/47969 - [`23746af`](https://github.com/microsoft/TypeScript/commit/23746af766b53fcc3afecfa16478809a5a36628a) fix(50591): RangeError: Maximum call stack size exceeded ([#&#8203;50594](https://github.com/microsoft/TypeScript/issues/50594)) - [`168186f`](https://github.com/microsoft/TypeScript/commit/168186f93d23ae59dbea3fea2adba453527343fd) Allow a union property of a private/protected member and an intersection property including that same member ([#&#8203;50328](https://github.com/microsoft/TypeScript/issues/50328)) - [`812ebcf`](https://github.com/microsoft/TypeScript/commit/812ebcf6e3aebfa72b976a6ae4d65929759a2867) Update package-lock.json - [`16156b1`](https://github.com/microsoft/TypeScript/commit/16156b1baf26a39ce428423f7106f3ef2b4e98bb) Add rules from eslint's recommended set that triggered good lints ([#&#8203;50422](https://github.com/microsoft/TypeScript/issues/50422)) - [`a11c416`](https://github.com/microsoft/TypeScript/commit/a11c41621bbbab100a391dd348651c6661549663) Improve checking of `in` operator ([#&#8203;50666](https://github.com/microsoft/TypeScript/issues/50666)) - [`67f2b62`](https://github.com/microsoft/TypeScript/commit/67f2b62ed2bd1de0299781ba659fa638346bcecf) Gabritto/jsemitfixsilly ([#&#8203;50849](https://github.com/microsoft/TypeScript/issues/50849)) - [`3014dec`](https://github.com/microsoft/TypeScript/commit/3014dec8878a9ff8d86186a6ac3fd9fad4f3b739) Don't elide imports when transforming JS files ([#&#8203;50404](https://github.com/microsoft/TypeScript/issues/50404)) - [`57c7aa7`](https://github.com/microsoft/TypeScript/commit/57c7aa755ca3028ff13eb6a37d91775a6fac71e3) LEGO: Merge pull request 50842 - [`48a8e89`](https://github.com/microsoft/TypeScript/commit/48a8e8953a1e609970dc85e08f99ac499bfe8356) Improve check of whether type query node possibly contains reference to type parameter ([#&#8203;50070](https://github.com/microsoft/TypeScript/issues/50070)) - [`af9ced1`](https://github.com/microsoft/TypeScript/commit/af9ced11f50c8ac15079d2f88f8961f1e5b62f7f) LEGO: Merge pull request 50825 - [`a8e13f7`](https://github.com/microsoft/TypeScript/commit/a8e13f7340c5229426072d443fa511bba82a0054) Fixed an issue with destructured bindings from a generic union constraint not being narrowed correctly ([#&#8203;50221](https://github.com/microsoft/TypeScript/issues/50221)) - [`08af0b6`](https://github.com/microsoft/TypeScript/commit/08af0b6bf0041fef52ca8c1b69d6d4a3db439196) Update package-lock.json - [`0df46e8`](https://github.com/microsoft/TypeScript/commit/0df46e873322b8eeb271a442eaf034d91ae68770) Fix test around RegExp match vs. exec results ([#&#8203;50813](https://github.com/microsoft/TypeScript/issues/50813)) - [`906510e`](https://github.com/microsoft/TypeScript/commit/906510e0f30590a4c8fdc892905ccb8dbe512e3d) Fixes for pr - [`2970c5d`](https://github.com/microsoft/TypeScript/commit/2970c5d1671b2376711cd55594c4597d6da7d8c3) make `RegExpExecArray` always include index 0 ([#&#8203;50713](https://github.com/microsoft/TypeScript/issues/50713)) - [`0507192`](https://github.com/microsoft/TypeScript/commit/05071920a03f8ea530fe01f79f2537c999ec8b02) Accepting baselines - [`29e50b3`](https://github.com/microsoft/TypeScript/commit/29e50b314900d22b08f6472918f59ae2b40aba08) Rewording documentation - [`01cae69`](https://github.com/microsoft/TypeScript/commit/01cae69e3403a831bc5c752b95c8b7547dd95821) fix(50796): omit questionToken in object literal method completions ([#&#8203;50802](https://github.com/microsoft/TypeScript/issues/50802)) - [`3b84f76`](https://github.com/microsoft/TypeScript/commit/3b84f76fb23bd39d14c7243e5cd495fd207916c0) Fix crash caused by incorrect bounds check (regression in 4.8) ([#&#8203;50797](https://github.com/microsoft/TypeScript/issues/50797)) - [`7e51306`](https://github.com/microsoft/TypeScript/commit/7e51306d30b72ce474054c3f3047f57d90dca41a) Update package-lock.json - [`8b35c13`](https://github.com/microsoft/TypeScript/commit/8b35c1300e14ebc026b4f1621db8f6f1bba30833) The error "Object is possibly null or undefined" is ambiguous. ([#&#8203;49797](https://github.com/microsoft/TypeScript/issues/49797)) - [`a3f51b3`](https://github.com/microsoft/TypeScript/commit/a3f51b3b8278b7dc5f59d83f35458338f57c81c7) Update user baselines +cc [@&#8203;sandersn](https://github.com/sandersn) ([#&#8203;43554](https://github.com/microsoft/TypeScript/issues/43554)) - [`ba10a0d`](https://github.com/microsoft/TypeScript/commit/ba10a0d7c06df259e620645a8d6fd9a5262d8b5d) Removing duplicated code - [`ec6ae1c`](https://github.com/microsoft/TypeScript/commit/ec6ae1c4d0f48f15cd01b1502d0b2e5ac387dcf5) Partially revert [#&#8203;41044](https://github.com/microsoft/TypeScript/issues/41044), restoring parameter destructurings in d.ts files ([#&#8203;50779](https://github.com/microsoft/TypeScript/issues/50779)) - [`28232ca`](https://github.com/microsoft/TypeScript/commit/28232ca4b8833957cdf8d592f085fb80d97ef604) LEGO: Merge pull request 50783 - [`49cfa1d`](https://github.com/microsoft/TypeScript/commit/49cfa1db17b593191601736a11cbf165d42510a0) Update package-lock.json - [`4110b80`](https://github.com/microsoft/TypeScript/commit/4110b80fbb24f2ac6dd284ef3511ca69ac6db517) Fix equality narrowing and comparable relation for intersections with {} ([#&#8203;50735](https://github.com/microsoft/TypeScript/issues/50735)) - [`b23f1d6`](https://github.com/microsoft/TypeScript/commit/b23f1d6b59beabde1072d14b7fb65781ce209c15) LEGO: Merge pull request 50771 - [`618fb2d`](https://github.com/microsoft/TypeScript/commit/618fb2d8b92357d564ddb8596296ecaba5468002) Update package-lock.json - [`08b91f6`](https://github.com/microsoft/TypeScript/commit/08b91f6b827e9ee98407c0eb969579ab77fa9f0c) fix(50717): tsc crashes when it sees a JSDoc tag inside an [@&#8203;override](https://github.com/override) annotation ([#&#8203;50724](https://github.com/microsoft/TypeScript/issues/50724)) - [`60963d7`](https://github.com/microsoft/TypeScript/commit/60963d7216266bca6ef3236f43913de703fe5c7a) Discriminant of type `never` should never be matched ([#&#8203;50755](https://github.com/microsoft/TypeScript/issues/50755)) - [`e37ea53`](https://github.com/microsoft/TypeScript/commit/e37ea53715a725dd13699dc1be5190c6ebd0d8f8) Update package-lock.json - [`a88c366`](https://github.com/microsoft/TypeScript/commit/a88c36655b575d3039f187e64016b971efc0f173) Fix test baselining for tsserver host timeouts ([#&#8203;50748](https://github.com/microsoft/TypeScript/issues/50748)) - [`6d38487`](https://github.com/microsoft/TypeScript/commit/6d384876e5adeffd6e04cf4e6dd7ea5fc0dd0584) Fix workflow typo ([#&#8203;50746](https://github.com/microsoft/TypeScript/issues/50746)) - [`6b890f9`](https://github.com/microsoft/TypeScript/commit/6b890f93c491d3496dfd7909592c1df8a771fcd0) Handle more places where package direcroy is converted to canonical file path ([#&#8203;50740](https://github.com/microsoft/TypeScript/issues/50740)) - [`f5f2923`](https://github.com/microsoft/TypeScript/commit/f5f2923c7d0f0963a78b9c5f233b635d4e78ae91) Revert removal of nonInferrableAnyType ([#&#8203;50691](https://github.com/microsoft/TypeScript/issues/50691)) - [`7120b52`](https://github.com/microsoft/TypeScript/commit/7120b520cfe7b92d2b4bbfd679f1f5bd0c559c2c) Update twoslash workflow ([#&#8203;50738](https://github.com/microsoft/TypeScript/issues/50738)) - [`68d526c`](https://github.com/microsoft/TypeScript/commit/68d526c200a0a5c51024586890b2473c9819c6ea) Don't run linter after tests runs ([#&#8203;50597](https://github.com/microsoft/TypeScript/issues/50597)) - [`8e5e2e0`](https://github.com/microsoft/TypeScript/commit/8e5e2e08ead119910d6eb177eab9beb84e3ab311) Fix backticks in our JSDoc comments ([#&#8203;50737](https://github.com/microsoft/TypeScript/issues/50737)) - [`a4cabe7`](https://github.com/microsoft/TypeScript/commit/a4cabe725b413f154f738b48c1fe2f053cff7d26) Support for auto-accessor fields from the Stage 3 Decorators proposal ([#&#8203;49705](https://github.com/microsoft/TypeScript/issues/49705)) - [`7737473`](https://github.com/microsoft/TypeScript/commit/77374732df82c9d5c1319677dc595868bbc648b5) Update package-lock.json - [`12ab0fe`](https://github.com/microsoft/TypeScript/commit/12ab0fea9f45c48ea644c8273bedde235c8bcc61) Update package-lock.json - [`eb40134`](https://github.com/microsoft/TypeScript/commit/eb40134373cc524bd15432e15490d4e369754c50) Don't leave space for property access on non-integer literals ([#&#8203;50703](https://github.com/microsoft/TypeScript/issues/50703)) - [`a70bb9d`](https://github.com/microsoft/TypeScript/commit/a70bb9d3ff102e044e83d2db43e585105e9a1761) Preserve special intersections in mapped types ([#&#8203;50704](https://github.com/microsoft/TypeScript/issues/50704)) - [`1a1c271`](https://github.com/microsoft/TypeScript/commit/1a1c27167536e005a4d241ef84c43c0c0ca0aaf9) Don't remove space before dot if in property access on numeric literal ([#&#8203;50695](https://github.com/microsoft/TypeScript/issues/50695)) - [`7c918fb`](https://github.com/microsoft/TypeScript/commit/7c918fb76682e79e8fd460cf1c2da9f2f22c91a3) Baseline host state when baselining tsserver tests ([#&#8203;50678](https://github.com/microsoft/TypeScript/issues/50678)) - [`2f1ba45`](https://github.com/microsoft/TypeScript/commit/2f1ba45cbaca5e95959f9fd43c42edd64bc5638c) Update LKG and devDep of typescript to v4.8.3 ([#&#8203;50689](https://github.com/microsoft/TypeScript/issues/50689)) - [`be4e9ba`](https://github.com/microsoft/TypeScript/commit/be4e9bac8ff66174d4e856dae06f69aa4ef7e479) Update package-lock.json - [`f46a680`](https://github.com/microsoft/TypeScript/commit/f46a680863d7ecf7b7aa46b5e056acfe702b78bb) Remove error message in node16 ([#&#8203;50673](https://github.com/microsoft/TypeScript/issues/50673)) - [`ab831d0`](https://github.com/microsoft/TypeScript/commit/ab831d018030304b886590fc4253f9dab593ddb0) Ignore `--help` and `-?` in `tsc init` generated `compilerOptions` ([#&#8203;50628](https://github.com/microsoft/TypeScript/issues/50628)) - [`bb6f36f`](https://github.com/microsoft/TypeScript/commit/bb6f36f7c80c290b98759823445dae73ebfd3eb2) Forward intersection state flag to conditional type target check ([#&#8203;50620](https://github.com/microsoft/TypeScript/issues/50620)) - [`b58721f`](https://github.com/microsoft/TypeScript/commit/b58721fe15a9d58aa9c2b53b6e6fdb7966f56d2c) Update package-lock.json - [`3c3820b`](https://github.com/microsoft/TypeScript/commit/3c3820b1a4033de90a6f9369b3e714ba58231e99) Simplify CI detection ([#&#8203;50661](https://github.com/microsoft/TypeScript/issues/50661)) - [`9ac1fce`](https://github.com/microsoft/TypeScript/commit/9ac1fce1175964f71117f6574d96eda127282bf4) Fix eslint not looking at certain scripts, fix lints ([#&#8203;50660](https://github.com/microsoft/TypeScript/issues/50660)) - [`fd05c0c`](https://github.com/microsoft/TypeScript/commit/fd05c0cc6da676c5b9183ad2a7ced7ce363b855a) Make useFsEvents as default strategy for the watching ([#&#8203;50366](https://github.com/microsoft/TypeScript/issues/50366)) - [`5c2f770`](https://github.com/microsoft/TypeScript/commit/5c2f770d9714276567e6ef9ec805368756539725) Remove unused cancellation from build ([#&#8203;50658](https://github.com/microsoft/TypeScript/issues/50658)) - [`66fbf05`](https://github.com/microsoft/TypeScript/commit/66fbf058ece7882f2a964aeeda81bc352e4a6329) Update package-lock.json - [`7910c50`](https://github.com/microsoft/TypeScript/commit/7910c509c4545517489d6264571bb6c05248fb4a) Update package-lock.json - [`fd3a84c`](https://github.com/microsoft/TypeScript/commit/fd3a84c3f0c80cb201c47399a055625f919a9b91) Report every instance of TS1208 ([#&#8203;50101](https://github.com/microsoft/TypeScript/issues/50101)) - [`62f980a`](https://github.com/microsoft/TypeScript/commit/62f980aff82ac8b5939bc9b65cf6e55d122b42d9) Check if its same buildinfo only for directly referenced projects and not recursively ([#&#8203;50617](https://github.com/microsoft/TypeScript/issues/50617)) \[ [#&#8203;50545](https://github.com/microsoft/TypeScript/issues/50545) ] - [`856c7c5`](https://github.com/microsoft/TypeScript/commit/856c7c5fdd25833dbb0e1e67071200cd706eae4f) Allow `{}` to narrow in same special cases as `unknown` ([#&#8203;50601](https://github.com/microsoft/TypeScript/issues/50601)) - [`854d448`](https://github.com/microsoft/TypeScript/commit/854d448e5ccf542a05d0b5dcb97e1b925905e258) `in` operator shouldn't narrow `{}` originating in `unknown` ([#&#8203;50610](https://github.com/microsoft/TypeScript/issues/50610)) - [`549e61d`](https://github.com/microsoft/TypeScript/commit/549e61d0af1ba885be29d69f341e7d3a00686071) Update package-lock.json - [`bcf9949`](https://github.com/microsoft/TypeScript/commit/bcf994996ea0ddd8ca7daadd6b5fbc712eb5ce6b) fix(50079): show deprecated on JSX attributes ([#&#8203;50084](https://github.com/microsoft/TypeScript/issues/50084)) - [`5df09a5`](https://github.com/microsoft/TypeScript/commit/5df09a514c99010d3126d8a9f11aa00ecbd0bd21) Use bidirectional comparability in narrowing ([#&#8203;50592](https://github.com/microsoft/TypeScript/issues/50592)) - [`891cdc5`](https://github.com/microsoft/TypeScript/commit/891cdc58aa4005d7197e76ec0a48afcbc3b44ac3) Remove unused baselines ([#&#8203;50593](https://github.com/microsoft/TypeScript/issues/50593)) - [`6db2c88`](https://github.com/microsoft/TypeScript/commit/6db2c882f389c95c526df0e890354205b5696a7d) {} & null and {} & undefined should always be never ([#&#8203;50553](https://github.com/microsoft/TypeScript/issues/50553)) - [`238c341`](https://github.com/microsoft/TypeScript/commit/238c341701439a95d5eb71a4cf421c0574d0ee47) Defer distributing index over generic object types ([#&#8203;50540](https://github.com/microsoft/TypeScript/issues/50540)) - [`2983092`](https://github.com/microsoft/TypeScript/commit/298309271bc526b9753c10c1c916bfe9d5c89a8b) Do not canonicalize the file names when getting absolute paths during nodenext resolution ([#&#8203;50557](https://github.com/microsoft/TypeScript/issues/50557)) \[ [#&#8203;50544](https://github.com/microsoft/TypeScript/issues/50544) ] - [`dcade77`](https://github.com/microsoft/TypeScript/commit/dcade7732c142abba88eecae78c115fa37b95e01) Update package-lock.json - [`a9797d2`](https://github.com/microsoft/TypeScript/commit/a9797d218d34fefc61b823d0e1dd24f6eb5363c8) fix(50340): typeof ... === "undefined" check on discriminated union of undefined and object type doesn't narrow correctly ([#&#8203;50344](https://github.com/microsoft/TypeScript/issues/50344)) - [`43f8ae6`](https://github.com/microsoft/TypeScript/commit/43f8ae6df4ffefb7e4795808b94bcfbf74628682) Only normalize intersections that include {} ([#&#8203;50535](https://github.com/microsoft/TypeScript/issues/50535)) - [`d293e72`](https://github.com/microsoft/TypeScript/commit/d293e723a20cdba258238397097e9a4e409bc41f) Rename API to importPlugin ([#&#8203;50554](https://github.com/microsoft/TypeScript/issues/50554)) - [`cd312d3`](https://github.com/microsoft/TypeScript/commit/cd312d3076c054cdf9ed6f33c2d3e3995bca92eb) Managing control flow - [`19defbf`](https://github.com/microsoft/TypeScript/commit/19defbfe576f3f2da32b5372274e4664b66ec00d) Update package-lock.json - [`f071d30`](https://github.com/microsoft/TypeScript/commit/f071d303c182c2a776da1471a3ec9ef05297a9d8) Move contributing related info out of README to CONTRIBUTING ([#&#8203;50543](https://github.com/microsoft/TypeScript/issues/50543)) - [`488d0ee`](https://github.com/microsoft/TypeScript/commit/488d0eebd0556fcc6e5f4cfc69c2ef7e5c2708ed) Retain name and propertyName in declaration emit copies of binding patterns if property name is a keyword ([#&#8203;50537](https://github.com/microsoft/TypeScript/issues/50537)) - [`8b482b5`](https://github.com/microsoft/TypeScript/commit/8b482b513d87c6fcda8ece18b99f8a01cff5c605) Update package-lock.json - [`c89f355`](https://github.com/microsoft/TypeScript/commit/c89f355a41b18c96eccb67dade04fce8c330068b) Remove redundant pretest script ([#&#8203;50518](https://github.com/microsoft/TypeScript/issues/50518)) - [`6d170b4`](https://github.com/microsoft/TypeScript/commit/6d170b490d5ff5f881f6cbf8cd749e0103ee5d1f) Handle intersections in isGenericTypeWithoutNullableConstraint ([#&#8203;50497](https://github.com/microsoft/TypeScript/issues/50497)) - [`ed6889c`](https://github.com/microsoft/TypeScript/commit/ed6889cd5b61b9fa5156018362d867def18e281d) LEGO: Merge pull request 50506 - [`29cbfe9`](https://github.com/microsoft/TypeScript/commit/29cbfe9a2504cfae30bae938bdb2be6081ccc5c8) LEGO: Merge pull request 50493 - [`6faa291`](https://github.com/microsoft/TypeScript/commit/6faa291b453987192d996517b4376b14980b25c4) LEGO: Merge pull request 50484 - [`71b2ba6`](https://github.com/microsoft/TypeScript/commit/71b2ba6111e934f2b4ee112bc4d8d2f47ced22f5) Reuse computed type of condition expressions ([#&#8203;49881](https://github.com/microsoft/TypeScript/issues/49881)) - [`8778c1d`](https://github.com/microsoft/TypeScript/commit/8778c1ded3a1955dce1063d72caf4523bec37c90) Update package-lock.json - [`4579245`](https://github.com/microsoft/TypeScript/commit/4579245f36d9c3deccb097da9d5545f9c5c1ab26) fix(50427): allow convert function expressions ([#&#8203;50430](https://github.com/microsoft/TypeScript/issues/50430)) - [`cbc0b17`](https://github.com/microsoft/TypeScript/commit/cbc0b17eac1fcb011a66f0544c813968cdf065c4) Push package-lock.json updates via typescript-bot token ([#&#8203;50476](https://github.com/microsoft/TypeScript/issues/50476)) - [`bb3a7ae`](https://github.com/microsoft/TypeScript/commit/bb3a7aec11a20afb30c5098a75e001d1a4eb08f9) fix(50415): Language server debug failure - Did not expect GetAccessor to have an Identifier in its trivia ([#&#8203;50470](https://github.com/microsoft/TypeScript/issues/50470)) - [`3557092`](https://github.com/microsoft/TypeScript/commit/3557092b1474bc3405a29da93bd15c108ab2f8b3) Rephrase error message to be 100% technically correct ([#&#8203;50471](https://github.com/microsoft/TypeScript/issues/50471)) - [`71d1911`](https://github.com/microsoft/TypeScript/commit/71d19115031ae1c48fa34a24636dfae5e87e1b08) add unknown to DateTimeFormatTypes ([#&#8203;50402](https://github.com/microsoft/TypeScript/issues/50402)) - [`8f89599`](https://github.com/microsoft/TypeScript/commit/8f895997d2cb79deb937d50fa1bed1c470528025) Don't include .gitattributes in package ([#&#8203;50475](https://github.com/microsoft/TypeScript/issues/50475)) - [`6e8337e`](https://github.com/microsoft/TypeScript/commit/6e8337ef70e4a36a4df76a3362a41cbcac0dcb84) Optimize substitution types ([#&#8203;50397](https://github.com/microsoft/TypeScript/issues/50397)) - [`226dd0b`](https://github.com/microsoft/TypeScript/commit/226dd0b7bf5cb5e5bb4dc34ab0e8e14f408f3e20) Fix typechecking related lints that changed post 4.8, update LKG to 4.8.2 ([#&#8203;50472](https://github.com/microsoft/TypeScript/issues/50472)) - [`164dddc`](https://github.com/microsoft/TypeScript/commit/164dddc48e1eaa83780b8e72bc7afeebe768437b) feat(7481): Operator to ensure an expression is contextually typed by, and satisfies, some type ([#&#8203;46827](https://github.com/microsoft/TypeScript/issues/46827)) - [`0715791`](https://github.com/microsoft/TypeScript/commit/07157914eb26a6e9abdcda7255c4094c9efff4cd) Update package-lock.json - [`e675ea8`](https://github.com/microsoft/TypeScript/commit/e675ea8dd83aaed018a67534323305c36d373b40) Remove AUTHORS.md, .mailmap, authors.ts script ([#&#8203;50410](https://github.com/microsoft/TypeScript/issues/50410)) - [`38076df`](https://github.com/microsoft/TypeScript/commit/38076df3465af555051db06006bbf30323af0e2d) Fix auto import crash due to difference in `paths` handling ([#&#8203;50419](https://github.com/microsoft/TypeScript/issues/50419)) - [`12eb519`](https://github.com/microsoft/TypeScript/commit/12eb519b3f81d0999bbc4ce9a845744f4dfc215e) fix(50435): Duplicate seeming Code Actions for convert const to let ([#&#8203;50442](https://github.com/microsoft/TypeScript/issues/50442)) - [`a08b045`](https://github.com/microsoft/TypeScript/commit/a08b045d2b22c87a6341a0c1d1318271d14acc86) Jsdoc property description ([#&#8203;50269](https://github.com/microsoft/TypeScript/issues/50269)) \[ [#&#8203;47933](https://github.com/microsoft/TypeScript/issues/47933) ] - [`5ba22e0`](https://github.com/microsoft/TypeScript/commit/5ba22e05a96538498a78ab206e1b9892f420e7a1) Remove top level loc folder ([#&#8203;50421](https://github.com/microsoft/TypeScript/issues/50421)) - [`c4eb37c`](https://github.com/microsoft/TypeScript/commit/c4eb37c8a0d5915d64e3992a91a34724aab19fe6) Update package-lock.json - [`8d7ad8c`](https://github.com/microsoft/TypeScript/commit/8d7ad8c3aee4130e2b8cc6438e03e12a39cd398a) fix(50375): Errors for missing enum-named properties should attempt to preserve names ([#&#8203;50382](https://github.com/microsoft/TypeScript/issues/50382)) - [`fb717df`](https://github.com/microsoft/TypeScript/commit/fb717df6bf85318c3d1e833a1dde6789d394cdb2) Discard union types before considering weak type checks on unit-like types ([#&#8203;50423](https://github.com/microsoft/TypeScript/issues/50423)) - [`b9a5bbc`](https://github.com/microsoft/TypeScript/commit/b9a5bbc9afe9fa231aba5162c258bf1e2fa1e82e) Syntax operations also need to ensure project is present for the open script infos since update could be pending to make sure open script info has project ([#&#8203;50418](https://github.com/microsoft/TypeScript/issues/50418)) \[ [#&#8203;50131](https://github.com/microsoft/TypeScript/issues/50131) ] - [`1d4fbbb`](https://github.com/microsoft/TypeScript/commit/1d4fbbb529d183b1e6988447e6744cfa7750b9f6) Update package-lock.json - [`44ce3cf`](https://github.com/microsoft/TypeScript/commit/44ce3cff70cb79d1a45b48def04413db5303a151) fix(50224): Intellisense for strings within a type's Union doesn't work properly for JSX ([#&#8203;50231](https://github.com/microsoft/TypeScript/issues/50231)) - [`6ee5db9`](https://github.com/microsoft/TypeScript/commit/6ee5db95c2ad4fee74ad02368afa1d2cc693407e) Use package.json files array instead of .npmignore ([#&#8203;50408](https://github.com/microsoft/TypeScript/issues/50408)) This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=116&\_a=release-summary).</details> ### [`v4.8.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.8.4): TypeScript 4.8.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.8.3...v4.8.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.8.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.0%22+). - [fixed issues query for Typescript 4.8.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.1%22+). - [fixed issues query for Typescript 4.8.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.2%22+). - [fixed issues query for Typescript 4.8.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.3%22+). - [fixed issues query for Typescript 4.8.4 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.4%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-484) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.8.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.8.3): TypeScript 4.8.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.8.2...v4.8.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.8.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.0%22+). - [fixed issues query for Typescript 4.8.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.1%22+). - [fixed issues query for Typescript 4.8.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.2%22+). - [fixed issues query for Typescript 4.8.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.3%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-483) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.8.2`](https://github.com/microsoft/TypeScript/releases/tag/v4.8.2): TypeScript 4.8 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.7.4...v4.8.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.8.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.0%22+). - [fixed issues query for Typescript 4.8.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.1%22+). - [fixed issues query for Typescript 4.8.1 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.8.2%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-48) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.7.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.7.4): TypeScript 4.7.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.7.3...v4.7.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.7.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.0%22+). - [fixed issues query for Typescript 4.7.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.1%22+). - [fixed issues query for Typescript 4.7.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.2%22+). - [fixed issues query for Typescript 4.7.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.3%22+). - [fixed issues query for Typescript 4.7.4 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.4%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-474) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.7.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.7.3): TypeScript 4.7.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.7.2...v4.7.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.7.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.0%22+). - [fixed issues query for Typescript 4.7.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.1%22+). - [fixed issues query for Typescript 4.7.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.2%22+). - [fixed issues query for Typescript 4.7.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.3%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-473) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.7.2`](https://github.com/microsoft/TypeScript/releases/tag/v4.7.2): TypeScript 4.7.2 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.6.4...v4.7.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.7.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.0%22+). - [fixed issues query for Typescript 4.7.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.1%22+). - [fixed issues query for Typescript 4.7.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.7.2%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-472) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.6.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.6.4): TypeScript 4.6.4 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.6.3...v4.6.4) This release includes [a bug fix for text formatting on certain ranges](Studiohttps://github.com/microsoft/TypeScript/pull/48463), which was impacting Visual Studio users. For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.6.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.0%22+). - [fixed issues query for Typescript 4.6.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.1%22+). - [fixed issues query for Typescript 4.6.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.2%22+). - [fixed issues query for Typescript 4.6.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.3%22+). - [fixed issues query for Typescript 4.6.4 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.4%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-464) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.6.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.6.3): TypeScript 4.6.3 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.6.2...v4.6.3) This release includes fixes for - [an incremental parsing bug caused by faulty error recovery logic](https://github.com/microsoft/TypeScript/issues/47895) - [improved results from the TypeScript API's `preProcessFile` function](https://github.com/microsoft/TypeScript/pull/47657) For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.6.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.0%22+). - [fixed issues query for Typescript 4.6.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.1%22+). - [fixed issues query for Typescript 4.6.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.2%22+). - [fixed issues query for Typescript 4.6.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.3%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) ### [`v4.6.2`](https://github.com/microsoft/TypeScript/releases/tag/v4.6.2): TypeScript 4.6.2 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.5.5...v4.6.2) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-6/). For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.6.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.0%22+). - [fixed issues query for Typescript 4.6.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.1%22+). - [fixed issues query for Typescript 4.6.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.6.2%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [Visual Studio 2022/2019](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.TypeScript-46) ([Select new version in project options](https://github.com/Microsoft/TypeScript/wiki/Updating-TypeScript-in-Visual-Studio-2017)) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) ### [`v4.5.5`](https://github.com/microsoft/TypeScript/releases/tag/v4.5.5): TypeScript 4.5.5 [Compare Source](https://github.com/microsoft/TypeScript/compare/v4.5.4...v4.5.5) This [patch release](https://github.com/microsoft/TypeScript/issues?q=is%3Aissue+milestone%3A%22TypeScript+4.5.5%22+is%3Aclosed) includes a number of fixes to language service crashes and assertion violations, along with improvements to JSX attribute snippets. For the complete list of fixed issues, check out the - [fixed issues query for Typescript 4.5.0 (Beta)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.5.0%22+). - [fixed issues query for Typescript 4.5.1 (RC)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.5.1%22+). - [fixed issues query for Typescript 4.5.2 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.5.2%22+). - [fixed issues query for Typescript 4.5.3 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.5.3%22+). - [fixed issues query for Typescript 4.5.4 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.5.4%22+). - [fixed issues query for Typescript 4.5.5 (Stable)](https://github.com/microsoft/TypeScript/issues?q=milestone%3A%22TypeScript+4.5.5%22+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) <!-- * [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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](https://github.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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4yNDEuMTEiLCJ1cGRhdGVkSW5WZXIiOiIzNy40MjQuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
kjuulh force-pushed renovate/all from 4aeb3e1254 to b5edadf8c1 2022-10-27 08:00:54 +02:00 Compare
kjuulh force-pushed renovate/all from b5edadf8c1 to 079e655c29 2022-10-27 13:52:04 +02:00 Compare
kjuulh force-pushed renovate/all from 079e655c29 to 1dfc1e82a3 2022-10-28 10:35:45 +02:00 Compare
kjuulh force-pushed renovate/all from 1dfc1e82a3 to aa569988ab 2022-10-31 19:00:30 +01:00 Compare
kjuulh force-pushed renovate/all from aa569988ab to 7559e78312 2022-11-01 19:27:46 +01:00 Compare
kjuulh force-pushed renovate/all from 7559e78312 to 1ae55235ec 2022-11-04 20:24:39 +01:00 Compare
kjuulh force-pushed renovate/all from 1ae55235ec to 2123cd7661 2022-11-04 22:05:01 +01:00 Compare
kjuulh force-pushed renovate/all from 2123cd7661 to 387b6886c7 2022-11-09 16:58:41 +01:00 Compare
kjuulh force-pushed renovate/all from 387b6886c7 to da410e9afa 2022-11-10 09:41:01 +01:00 Compare
kjuulh force-pushed renovate/all from da410e9afa to f59c995c03 2022-11-11 09:36:35 +01:00 Compare
kjuulh force-pushed renovate/all from f59c995c03 to 508fc0bbdc 2022-11-12 13:05:24 +01:00 Compare
kjuulh force-pushed renovate/all from 508fc0bbdc to d19098eacd 2022-11-15 20:10:40 +01:00 Compare
kjuulh force-pushed renovate/all from d19098eacd to 5a93659e9c 2022-11-26 13:40:31 +01:00 Compare
kjuulh force-pushed renovate/all from 5a93659e9c to 3684f22e29 2022-12-01 20:16:18 +01:00 Compare
kjuulh force-pushed renovate/all from 3684f22e29 to 0e2efeda26 2022-12-02 15:46:27 +01:00 Compare
kjuulh force-pushed renovate/all from 0e2efeda26 to 4b25b44677 2022-12-05 21:19:48 +01:00 Compare
kjuulh force-pushed renovate/all from 4b25b44677 to c9e1aa7534 2022-12-08 23:40:45 +01:00 Compare
kjuulh force-pushed renovate/all from c9e1aa7534 to 106a9eb69b 2022-12-10 20:27:04 +01:00 Compare
kjuulh force-pushed renovate/all from 106a9eb69b to 15675486d5 2022-12-13 15:46:43 +01:00 Compare
kjuulh force-pushed renovate/all from 15675486d5 to b8ad605919 2022-12-13 22:16:01 +01:00 Compare
kjuulh force-pushed renovate/all from b8ad605919 to 303141bf86 2022-12-18 12:05:31 +01:00 Compare
kjuulh force-pushed renovate/all from 303141bf86 to 2174de3a29 2022-12-26 18:48:17 +01:00 Compare
kjuulh force-pushed renovate/all from 2174de3a29 to 80e0f29115 2023-01-18 20:16:58 +01:00 Compare
kjuulh force-pushed renovate/all from 80e0f29115 to a1dd294762 2023-01-31 08:42:39 +01:00 Compare
kjuulh force-pushed renovate/all from a1dd294762 to d4d246585f 2023-02-05 00:08:21 +01:00 Compare
kjuulh force-pushed renovate/all from d4d246585f to ece8a75462 2023-02-05 12:10:40 +01:00 Compare
kjuulh force-pushed renovate/all from ece8a75462 to 40696ffe8e 2023-02-07 10:02:40 +01:00 Compare
kjuulh force-pushed renovate/all from 40696ffe8e to dbc9c3f204 2023-02-11 12:58:56 +01:00 Compare
kjuulh force-pushed renovate/all from dbc9c3f204 to 48abafa0f8 2023-02-17 21:54:43 +01:00 Compare
kjuulh force-pushed renovate/all from 48abafa0f8 to 650998adc4 2023-02-23 20:36:23 +01:00 Compare
kjuulh force-pushed renovate/all from 650998adc4 to 0537579f8c 2023-02-26 21:00:56 +01:00 Compare
kjuulh force-pushed renovate/all from 0537579f8c to 0313f9b55a 2023-03-02 08:07:45 +01:00 Compare
kjuulh force-pushed renovate/all from 0313f9b55a to e44325e818 2023-03-02 09:41:32 +01:00 Compare
kjuulh force-pushed renovate/all from e44325e818 to 4daae7e218 2023-03-03 14:14:07 +01:00 Compare
kjuulh force-pushed renovate/all from 4daae7e218 to 9ea03c71ea 2023-03-03 22:22:05 +01:00 Compare
kjuulh force-pushed renovate/all from 9ea03c71ea to 53776b6693 2023-03-09 21:14:36 +01:00 Compare
kjuulh force-pushed renovate/all from 53776b6693 to e7529d9a75 2023-03-13 18:06:21 +01:00 Compare
kjuulh force-pushed renovate/all from e7529d9a75 to 6e7e7aa7df 2023-03-13 19:17:58 +01:00 Compare
kjuulh force-pushed renovate/all from 6e7e7aa7df to 221be1e382 2023-03-14 18:15:35 +01:00 Compare
kjuulh force-pushed renovate/all from 221be1e382 to f7e8287088 2023-03-16 21:47:50 +01:00 Compare
kjuulh force-pushed renovate/all from f7e8287088 to 446a0c5372 2023-03-20 22:14:30 +01:00 Compare
kjuulh force-pushed renovate/all from 446a0c5372 to a739736bf1 2023-03-20 22:42:18 +01:00 Compare
kjuulh force-pushed renovate/all from a739736bf1 to 92a28c3b30 2023-03-23 22:42:41 +01:00 Compare
kjuulh force-pushed renovate/all from 92a28c3b30 to 012c0e0920 2023-03-24 23:05:52 +01:00 Compare
kjuulh force-pushed renovate/all from 012c0e0920 to a2d7e3cb78 2023-03-25 00:42:40 +01:00 Compare
kjuulh force-pushed renovate/all from a2d7e3cb78 to a7aacb1364 2023-03-25 11:21:39 +01:00 Compare
kjuulh force-pushed renovate/all from a7aacb1364 to 59e411ecf9 2023-03-25 23:56:02 +01:00 Compare
kjuulh force-pushed renovate/all from 59e411ecf9 to 497c6eaed5 2023-03-29 00:01:36 +02:00 Compare
kjuulh force-pushed renovate/all from 497c6eaed5 to 9b648134d7 2023-03-30 23:05:36 +02:00 Compare
kjuulh force-pushed renovate/all from 9b648134d7 to 67390aed48 2023-04-07 20:19:15 +02:00 Compare
kjuulh force-pushed renovate/all from 67390aed48 to 334d8f4845 2023-04-20 01:15:00 +02:00 Compare
kjuulh force-pushed renovate/all from 334d8f4845 to 58010ddb68 2023-04-20 23:25:21 +02:00 Compare
kjuulh force-pushed renovate/all from 58010ddb68 to dc0893629e 2023-04-21 07:48:51 +02:00 Compare
kjuulh force-pushed renovate/all from dc0893629e to b017ec636c 2023-04-23 11:23:11 +02:00 Compare
kjuulh force-pushed renovate/all from b017ec636c to 71385ff3a7 2023-04-26 21:52:22 +02:00 Compare
kjuulh force-pushed renovate/all from 71385ff3a7 to 638218c19a 2023-04-27 23:51:07 +02:00 Compare
kjuulh force-pushed renovate/all from 638218c19a to 83a60a5213 2023-04-29 12:14:22 +02:00 Compare
kjuulh force-pushed renovate/all from 83a60a5213 to e60009a3bf 2023-04-29 20:54:14 +02:00 Compare
kjuulh force-pushed renovate/all from e60009a3bf to 5306ca85b6 2023-05-05 09:58:05 +02:00 Compare
kjuulh force-pushed renovate/all from 5306ca85b6 to 0228772a4b 2023-05-05 23:59:58 +02:00 Compare
kjuulh force-pushed renovate/all from 0228772a4b to b815eafe3a 2023-05-08 22:56:29 +02:00 Compare
kjuulh force-pushed renovate/all from b815eafe3a to ae607af3d3 2023-05-08 23:43:32 +02:00 Compare
kjuulh force-pushed renovate/all from ae607af3d3 to 042790a70c 2023-05-10 12:11:26 +02:00 Compare
kjuulh force-pushed renovate/all from 042790a70c to dbeb9a8bf1 2023-05-11 22:42:40 +02:00 Compare
kjuulh force-pushed renovate/all from dbeb9a8bf1 to 8778e875d7 2023-05-13 16:36:19 +02:00 Compare
kjuulh force-pushed renovate/all from 8778e875d7 to a6b7357b58 2023-05-15 16:59:48 +02:00 Compare
kjuulh force-pushed renovate/all from a6b7357b58 to a5f92ebca9 2023-05-15 21:48:44 +02:00 Compare
kjuulh force-pushed renovate/all from a5f92ebca9 to 708c9da19e 2023-05-16 03:10:27 +02:00 Compare
kjuulh force-pushed renovate/all from 708c9da19e to 48ac922421 2023-05-16 21:21:36 +02:00 Compare
kjuulh force-pushed renovate/all from 48ac922421 to 0e5a1dd041 2023-05-16 22:06:47 +02:00 Compare
kjuulh force-pushed renovate/all from 0e5a1dd041 to d7b23514ed 2023-05-18 15:50:16 +02:00 Compare
kjuulh force-pushed renovate/all from d7b23514ed to 23abb17536 2023-05-21 23:28:24 +02:00 Compare
kjuulh force-pushed renovate/all from 23abb17536 to 9d40e5cc3e 2023-05-25 23:12:33 +02:00 Compare
kjuulh force-pushed renovate/all from 9d40e5cc3e to 255d28afc2 2023-05-26 22:57:29 +02:00 Compare
kjuulh force-pushed renovate/all from 255d28afc2 to 02c1d6ad50 2023-06-07 23:50:05 +02:00 Compare
kjuulh force-pushed renovate/all from 02c1d6ad50 to 3cb0c5805a 2023-06-10 04:28:45 +02:00 Compare
kjuulh force-pushed renovate/all from 3cb0c5805a to 5a9fcdf25e 2023-06-13 04:54:14 +02:00 Compare
kjuulh force-pushed renovate/all from 5a9fcdf25e to c4e81ec743 2023-06-18 23:06:18 +02:00 Compare
kjuulh force-pushed renovate/all from c4e81ec743 to 4d503526bc 2023-06-28 01:01:52 +02:00 Compare
kjuulh force-pushed renovate/all from 4d503526bc to 43989ee939 2023-06-29 01:43:10 +02:00 Compare
kjuulh force-pushed renovate/all from 43989ee939 to 4a2f49d98c 2023-07-01 01:25:33 +02:00 Compare
kjuulh force-pushed renovate/all from 4a2f49d98c to 583712288b 2023-07-23 12:40:00 +02:00 Compare
kjuulh force-pushed renovate/all from 583712288b to 3cad270bad 2023-07-25 21:21:50 +02:00 Compare
kjuulh force-pushed renovate/all from 3cad270bad to 1203f30e50 2023-08-04 02:50:50 +02:00 Compare
kjuulh force-pushed renovate/all from 1203f30e50 to fd304e984b 2023-08-05 12:49:06 +02:00 Compare
kjuulh force-pushed renovate/all from fd304e984b to c5f4b9fe02 2023-08-08 22:51:10 +02:00 Compare
kjuulh force-pushed renovate/all from c5f4b9fe02 to 61d4e0d857 2023-08-10 16:45:11 +02:00 Compare
kjuulh force-pushed renovate/all from 61d4e0d857 to e1d7bda924 2023-08-11 21:52:36 +02:00 Compare
kjuulh force-pushed renovate/all from e1d7bda924 to da64516d4a 2023-08-18 19:47:26 +02:00 Compare
kjuulh force-pushed renovate/all from da64516d4a to d0dc23b0e1 2023-08-22 11:19:16 +02:00 Compare
kjuulh force-pushed renovate/all from d0dc23b0e1 to 8bf02d10b0 2023-08-22 20:57:26 +02:00 Compare
kjuulh force-pushed renovate/all from 8bf02d10b0 to 5b362cdb0b 2023-08-23 23:32:24 +02:00 Compare
kjuulh force-pushed renovate/all from 5b362cdb0b to b1ba73a86b 2023-08-24 19:08:43 +02:00 Compare
kjuulh force-pushed renovate/all from b1ba73a86b to 5273117c4e 2023-08-24 23:55:38 +02:00 Compare
kjuulh force-pushed renovate/all from 5273117c4e to e5e9f3f37a 2023-08-25 00:25:55 +02:00 Compare
kjuulh force-pushed renovate/all from e5e9f3f37a to 9cae6da0c6 2023-08-28 02:49:38 +02:00 Compare
kjuulh force-pushed renovate/all from 9cae6da0c6 to d3fb1082d1 2023-09-01 22:50:49 +02:00 Compare
kjuulh force-pushed renovate/all from d3fb1082d1 to 9e7aeffe4b 2023-09-02 22:37:49 +02:00 Compare
kjuulh force-pushed renovate/all from 9e7aeffe4b to 7f9501db26 2023-09-08 23:54:41 +02:00 Compare
kjuulh force-pushed renovate/all from 7f9501db26 to 10043b79e2 2023-09-15 10:37:35 +02:00 Compare
kjuulh force-pushed renovate/all from 10043b79e2 to 82f06d8e22 2023-09-16 08:59:04 +02:00 Compare
kjuulh force-pushed renovate/all from 82f06d8e22 to 2229965274 2023-09-20 05:27:51 +02:00 Compare
kjuulh force-pushed renovate/all from 2229965274 to 1f802c81e0 2023-09-23 23:27:25 +02:00 Compare
kjuulh force-pushed renovate/all from 1f802c81e0 to 6cf0f351e5 2023-09-25 22:39:03 +02:00 Compare
kjuulh force-pushed renovate/all from 6cf0f351e5 to 10d27be79f 2023-09-29 17:55:54 +02:00 Compare
kjuulh force-pushed renovate/all from 10d27be79f to 452343cf9b 2023-10-02 22:39:44 +02:00 Compare
kjuulh force-pushed renovate/all from 452343cf9b to 97445bd944 2023-10-02 23:34:36 +02:00 Compare
kjuulh force-pushed renovate/all from 97445bd944 to 2bab372ed3 2023-10-07 01:34:46 +02:00 Compare
kjuulh force-pushed renovate/all from 2bab372ed3 to 818822ba60 2023-10-12 23:00:45 +02:00 Compare
kjuulh force-pushed renovate/all from 818822ba60 to f254c37541 2023-10-18 11:56:40 +02:00 Compare
kjuulh force-pushed renovate/all from f254c37541 to 3e14a9d0d8 2023-10-20 02:09:55 +02:00 Compare
kjuulh force-pushed renovate/all from 3e14a9d0d8 to 538692f7fd 2023-10-24 02:12:03 +02:00 Compare
Author
Owner

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
 WARN  The "store" setting has been renamed to "store-dir". Please use the new name.
 WARN  GET https://registry.npmjs.org/prettier error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
Progress: resolved 1, reused 0, downloaded 0, added 0
 WARN  GET https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
Progress: resolved 2, reused 0, downloaded 0, added 0
 WARN  GET https://registry.npmjs.org/prettier error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
undefined
 ERR_INVALID_THIS  Value of "this" must be of type URLSearchParams

### ⚠ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: pnpm-lock.yaml ```  WARN  The "store" setting has been renamed to "store-dir". Please use the new name.  WARN  GET https://registry.npmjs.org/prettier error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left. Progress: resolved 1, reused 0, downloaded 0, added 0  WARN  GET https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left. Progress: resolved 2, reused 0, downloaded 0, added 0  WARN  GET https://registry.npmjs.org/prettier error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left. undefined  ERR_INVALID_THIS  Value of "this" must be of type URLSearchParams ```
kjuulh force-pushed renovate/all from 538692f7fd to 4831a97c70 2023-10-24 03:51:39 +02:00 Compare
kjuulh force-pushed renovate/all from 4831a97c70 to a4ea3f39a1 2023-10-25 20:22:18 +02:00 Compare
kjuulh force-pushed renovate/all from a4ea3f39a1 to 14255c3786 2023-10-31 10:25:13 +01:00 Compare
kjuulh force-pushed renovate/all from 14255c3786 to 8ecd47d840 2023-11-07 21:38:03 +01:00 Compare
kjuulh force-pushed renovate/all from 8ecd47d840 to 53a205676d 2023-11-16 22:27:40 +01:00 Compare
kjuulh force-pushed renovate/all from 53a205676d to e442a4e447 2023-11-18 21:39:44 +01:00 Compare
kjuulh force-pushed renovate/all from e442a4e447 to 8be4c15e77 2023-11-20 19:13:19 +01:00 Compare
kjuulh force-pushed renovate/all from 8be4c15e77 to 6426c62f71 2023-11-21 02:51:44 +01:00 Compare
kjuulh force-pushed renovate/all from 6426c62f71 to 64abc4bf2d 2023-11-22 02:31:33 +01:00 Compare
kjuulh force-pushed renovate/all from 64abc4bf2d to 7bcd25639e 2023-11-23 23:17:15 +01:00 Compare
kjuulh force-pushed renovate/all from 7bcd25639e to 6496f95d0f 2023-11-24 10:32:28 +01:00 Compare
kjuulh force-pushed renovate/all from 6496f95d0f to 1153cc1ba6 2023-11-29 21:10:34 +01:00 Compare
kjuulh force-pushed renovate/all from 1153cc1ba6 to 15e5fbfc25 2023-12-01 21:45:03 +01:00 Compare
kjuulh force-pushed renovate/all from 15e5fbfc25 to b57d628727 2023-12-03 19:35:23 +01:00 Compare
kjuulh force-pushed renovate/all from b57d628727 to 92afc3ef29 2023-12-06 20:30:23 +01:00 Compare
kjuulh force-pushed renovate/all from 92afc3ef29 to 346a8aff66 2023-12-07 08:39:17 +01:00 Compare
kjuulh force-pushed renovate/all from 346a8aff66 to f4ed4c318a 2023-12-17 23:13:14 +01:00 Compare
kjuulh force-pushed renovate/all from f4ed4c318a to ff5d77c471 2023-12-30 01:38:55 +01:00 Compare
kjuulh force-pushed renovate/all from ff5d77c471 to 78cff24831 2024-01-07 16:53:35 +01:00 Compare
kjuulh force-pushed renovate/all from 78cff24831 to 3e8d5a12d5 2024-01-09 16:46:56 +01:00 Compare
kjuulh force-pushed renovate/all from 3e8d5a12d5 to b0be9e8e49 2024-01-11 06:57:20 +01:00 Compare
kjuulh force-pushed renovate/all from b0be9e8e49 to 926c73501d 2024-01-15 05:40:36 +01:00 Compare
kjuulh force-pushed renovate/all from 926c73501d to 300ddbef93 2024-01-15 13:04:49 +01:00 Compare
kjuulh force-pushed renovate/all from 300ddbef93 to 5c41b6f1fe 2024-01-15 23:01:29 +01:00 Compare
kjuulh force-pushed renovate/all from 5c41b6f1fe to 323876765f 2024-01-16 10:36:30 +01:00 Compare
kjuulh force-pushed renovate/all from 323876765f to b8339f5433 2024-01-17 07:58:43 +01:00 Compare
kjuulh force-pushed renovate/all from b8339f5433 to 23e95b8eaf 2024-01-24 07:27:54 +01:00 Compare
kjuulh force-pushed renovate/all from 23e95b8eaf to a688cb4274 2024-01-26 06:08:25 +01:00 Compare
kjuulh force-pushed renovate/all from a688cb4274 to a55c1093d5 2024-01-27 17:31:41 +01:00 Compare
kjuulh force-pushed renovate/all from a55c1093d5 to 2e9df4c208 2024-01-28 11:42:50 +01:00 Compare
kjuulh force-pushed renovate/all from 2e9df4c208 to 2f3c12fde0 2024-01-28 21:10:48 +01:00 Compare
kjuulh force-pushed renovate/all from 2f3c12fde0 to 7f6a3eee5e 2024-01-30 20:32:14 +01:00 Compare
kjuulh force-pushed renovate/all from 7f6a3eee5e to 24c2b9fca2 2024-01-30 23:31:27 +01:00 Compare
kjuulh force-pushed renovate/all from 24c2b9fca2 to 620f92dfda 2024-01-31 00:34:55 +01:00 Compare
kjuulh force-pushed renovate/all from 620f92dfda to b1c8dd488c 2024-01-31 20:42:36 +01:00 Compare
kjuulh force-pushed renovate/all from b1c8dd488c to f89d621de6 2024-02-01 10:42:02 +01:00 Compare
kjuulh force-pushed renovate/all from f89d621de6 to 9b850a2e83 2024-02-01 18:58:04 +01:00 Compare
kjuulh force-pushed renovate/all from 9b850a2e83 to c4b5cfc4af 2024-02-08 21:50:25 +01:00 Compare
kjuulh force-pushed renovate/all from c4b5cfc4af to 2edd62e395 2024-02-10 11:48:45 +01:00 Compare
kjuulh force-pushed renovate/all from 2edd62e395 to f98d2ab73f 2024-02-15 11:48:49 +01:00 Compare
kjuulh force-pushed renovate/all from f98d2ab73f to 5060d63660 2024-02-15 17:56:02 +01:00 Compare
kjuulh force-pushed renovate/all from 5060d63660 to faf13de85f 2024-02-16 18:58:48 +01:00 Compare
kjuulh force-pushed renovate/all from faf13de85f to 53086e9096 2024-02-22 19:48:28 +01:00 Compare
kjuulh force-pushed renovate/all from 53086e9096 to 7601ed8e1a 2024-02-27 23:39:24 +01:00 Compare
kjuulh force-pushed renovate/all from 7601ed8e1a to eb883265c2 2024-02-28 00:59:05 +01:00 Compare
kjuulh force-pushed renovate/all from eb883265c2 to 67d2125645 2024-02-28 18:52:27 +01:00 Compare
kjuulh force-pushed renovate/all from 67d2125645 to 12142867a7 2024-02-29 13:53:14 +01:00 Compare
kjuulh force-pushed renovate/all from 12142867a7 to b8f0e90524 2024-02-29 18:02:04 +01:00 Compare
kjuulh force-pushed renovate/all from b8f0e90524 to 6a83457ef0 2024-03-06 19:06:46 +01:00 Compare
kjuulh force-pushed renovate/all from 6a83457ef0 to 62432f68c2 2024-03-06 20:06:12 +01:00 Compare
kjuulh force-pushed renovate/all from 62432f68c2 to 9e4940a114 2024-03-11 23:23:56 +01:00 Compare
kjuulh force-pushed renovate/all from 9e4940a114 to 72438da32d 2024-03-13 14:58:31 +01:00 Compare
kjuulh force-pushed renovate/all from 72438da32d to b0144d2e21 2024-03-15 09:32:55 +01:00 Compare
kjuulh force-pushed renovate/all from b0144d2e21 to 3d8a9c6199 2024-03-15 12:47:36 +01:00 Compare
kjuulh force-pushed renovate/all from 3d8a9c6199 to 8634f98c49 2024-03-18 20:51:50 +01:00 Compare
kjuulh force-pushed renovate/all from 8634f98c49 to 45e6c20fba 2024-03-19 14:06:35 +01:00 Compare
kjuulh force-pushed renovate/all from 45e6c20fba to 41e3fad0dc 2024-03-20 21:13:28 +01:00 Compare
kjuulh force-pushed renovate/all from 41e3fad0dc to 46e823e350 2024-03-30 06:10:15 +01:00 Compare
kjuulh force-pushed renovate/all from 46e823e350 to a667e886fe 2024-03-30 06:58:59 +01:00 Compare
kjuulh force-pushed renovate/all from a667e886fe to c57afe4ee5 2024-04-02 22:56:55 +02:00 Compare
kjuulh force-pushed renovate/all from c57afe4ee5 to 246721a9d8 2024-04-04 00:26:42 +02:00 Compare
kjuulh force-pushed renovate/all from 246721a9d8 to 3a119779cf 2024-04-04 18:51:20 +02:00 Compare
kjuulh force-pushed renovate/all from 3a119779cf to d0495da0eb 2024-04-04 20:29:44 +02:00 Compare
kjuulh force-pushed renovate/all from d0495da0eb to 5717e5fe0e 2024-04-06 00:25:58 +02:00 Compare
kjuulh force-pushed renovate/all from 5717e5fe0e to a6094b5be2 2024-04-09 06:38:17 +02:00 Compare
kjuulh force-pushed renovate/all from a6094b5be2 to cb9253ccbb 2024-04-09 23:20:14 +02:00 Compare
kjuulh force-pushed renovate/all from cb9253ccbb to 3bd1d53bc6 2024-04-10 17:19:44 +02:00 Compare
kjuulh force-pushed renovate/all from 3bd1d53bc6 to a15320c038 2024-04-28 14:44:49 +02:00 Compare
kjuulh force-pushed renovate/all from a15320c038 to 2c7e2e2b4c 2024-05-01 20:58:23 +02:00 Compare
kjuulh force-pushed renovate/all from 2c7e2e2b4c to 70e0776196 2024-05-06 16:42:12 +02:00 Compare
kjuulh force-pushed renovate/all from 70e0776196 to a711b599c2 2024-05-06 19:18:54 +02:00 Compare
kjuulh force-pushed renovate/all from a711b599c2 to 73d3b0c38d 2024-05-08 02:45:14 +02:00 Compare
kjuulh force-pushed renovate/all from 73d3b0c38d to 6fda536bc0 2024-05-08 14:28:26 +02:00 Compare
kjuulh force-pushed renovate/all from 6fda536bc0 to 70652ef053 2024-05-14 08:53:05 +02:00 Compare
kjuulh force-pushed renovate/all from 70652ef053 to 029f2e197d 2024-05-23 21:57:12 +02:00 Compare
Author
Owner

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
 WARN  The "store" setting has been renamed to "store-dir". Please use the new name.
 WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.10.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.
 WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.10.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
 WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.
undefined
 ERR_INVALID_THIS  Value of "this" must be of type URLSearchParams

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: pnpm-lock.yaml ```  WARN  The "store" setting has been renamed to "store-dir". Please use the new name.  WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.10.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.  WARN  GET https://registry.npmjs.org/next error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/@types/node/-/node-17.0.4.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/@types/react/-/react-17.0.38.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.10.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/sass/-/sass-1.50.1.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/react/-/react-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left.  WARN  GET https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz error (ERR_INVALID_THIS). Will retry in 1 minute. 1 retries left. undefined  ERR_INVALID_THIS  Value of "this" must be of type URLSearchParams ```
kjuulh force-pushed renovate/all from 029f2e197d to e50f2900f3 2024-07-06 15:25:03 +02:00 Compare
kjuulh force-pushed renovate/all from e50f2900f3 to 08e28ac2b7 2024-08-21 22:41:45 +02:00 Compare
kjuulh force-pushed renovate/all from 08e28ac2b7 to 4808c97560 2024-08-28 02:56:12 +02:00 Compare
kjuulh force-pushed renovate/all from 4808c97560 to 28e1096eb3 2024-09-02 02:14:24 +02:00 Compare
kjuulh force-pushed renovate/all from 28e1096eb3 to ad678f9bb1 2024-09-04 06:14:33 +02:00 Compare
kjuulh force-pushed renovate/all from ad678f9bb1 to 6fbd315c60 2024-09-05 02:15:07 +02:00 Compare
kjuulh force-pushed renovate/all from 6fbd315c60 to 28eb516c47 2024-09-10 02:17:41 +02:00 Compare
kjuulh force-pushed renovate/all from 28eb516c47 to 9d29f30dff 2024-09-24 02:12:10 +02:00 Compare
kjuulh force-pushed renovate/all from 9d29f30dff to e72bfaa09c 2024-09-25 06:12:33 +02:00 Compare
kjuulh force-pushed renovate/all from e72bfaa09c to c4f5b6101e 2024-09-26 02:12:00 +02:00 Compare
kjuulh force-pushed renovate/all from c4f5b6101e to a82211e4ec 2024-09-28 02:20:27 +02:00 Compare
kjuulh force-pushed renovate/all from a82211e4ec to 5ba74f9051 2024-09-29 02:19:12 +02:00 Compare
kjuulh force-pushed renovate/all from 5ba74f9051 to c41353b88c 2024-10-08 02:17:32 +02:00 Compare
kjuulh force-pushed renovate/all from c41353b88c to 10b01d3376 2024-10-09 02:17:29 +02:00 Compare
kjuulh force-pushed renovate/all from 10b01d3376 to 71aeb3b83c 2024-10-17 02:14:54 +02:00 Compare
kjuulh force-pushed renovate/all from 71aeb3b83c to 5da4d28e90 2024-10-19 06:14:46 +02:00 Compare
kjuulh force-pushed renovate/all from 5da4d28e90 to 2cf44ec933 2024-10-22 06:13:07 +02:00 Compare
kjuulh force-pushed renovate/all from 2cf44ec933 to 65d04a8a19 2024-10-23 06:15:15 +02:00 Compare
kjuulh force-pushed renovate/all from 65d04a8a19 to aed9d6bc82 2024-10-24 02:14:07 +02:00 Compare
kjuulh force-pushed renovate/all from aed9d6bc82 to 0ce430bc8f 2024-10-26 02:13:50 +02:00 Compare
kjuulh force-pushed renovate/all from 0ce430bc8f to 8d8f2537a7 2024-10-29 02:15:38 +01:00 Compare
kjuulh force-pushed renovate/all from 8d8f2537a7 to 56f698949a 2024-10-30 02:14:52 +01:00 Compare
kjuulh force-pushed renovate/all from 56f698949a to 1146aff83a 2024-11-01 02:15:53 +01:00 Compare
kjuulh force-pushed renovate/all from 1146aff83a to ae2d497142 2024-11-04 02:12:02 +01:00 Compare
kjuulh force-pushed renovate/all from ae2d497142 to a04be7f82d 2024-11-05 06:12:26 +01:00 Compare
kjuulh force-pushed renovate/all from a04be7f82d to ea8cb726cc 2024-11-20 02:14:03 +01:00 Compare
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is failing
This pull request can be merged automatically.
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/all:renovate/all
git checkout renovate/all
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: wishlist/client#10
No description provided.