Update all dependencies #10
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/all"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
17.0.4->24.10.18.4.12->8.5.6^2.6.2->^3.0.0^0.1.1->^0.7.01.50.1->1.94.24.5.4->5.9.3Release Notes
postcss/postcss (postcss)
v8.5.6Compare Source
ContainerWithChildrentype discriminating (by @Goodwine).v8.5.5Compare Source
package.json→exportscompatibility with some tools (by @JounQin).v8.5.4Compare Source
v8.5.3Compare Source
Unknown worderror (by @hiepxanh).v8.5.2Compare Source
v8.5.1Compare Source
v8.5.0: 8.5 “Duke Alloces”Compare Source
PostCSS 8.5 brought API to work better with non-CSS sources like HTML, Vue.js/Svelte sources or CSS-in-JS.
@romainmenke during his work on Stylelint added
Input#documentin additional toInput#css.Thanks to Sponsors
This release was possible thanks to our community.
If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:
v8.4.49Compare Source
source.offset(by @romainmenke).v8.4.48Compare Source
v8.4.47Compare Source
v8.4.46Compare Source
Cannot read properties of undefined (reading 'before').v8.4.45Compare Source
v8.4.44Compare Source
markClean is not a functionerror.v8.4.43Compare Source
markClean is not a functionerror.v8.4.42Compare Source
v8.4.41Compare Source
v8.4.40Compare Source
v8.4.39Compare Source
CssSyntaxErrortypes (by @romainmenke).v8.4.38Compare Source
endIndex: 0in errors and warnings (by @romainmenke).v8.4.37Compare Source
original.column are not numberserror in another case.v8.4.36Compare Source
original.column are not numberserror on broken previous source map.v8.4.35Compare Source
!innode.parent.nodestype.undefinedto node adding method to simplify types.v8.4.34Compare Source
AtRule#nodestype (by Tim Weißenfels).v8.4.33Compare Source
NoWorkResultbehavior difference with normal mode (by Romain Menke).NoWorkResultusage conditions (by @ahmdammarr).v8.4.32Compare Source
postcss().process()types (by Andrew Ferreira).v8.4.31Compare Source
\rparsing to fix CVE-2023-44270.v8.4.30Compare Source
v8.4.29Compare Source
Node#source.offset(by Ido Rosenthal).v8.4.28Compare Source
Root.source.endfor better source map (by Romain Menke).Result.roottypes whenprocess()has no parser.v8.4.27Compare Source
Containerclone methods types.v8.4.26Compare Source
v8.4.25Compare Source
v8.4.24Compare Source
Plugintypes.v8.4.23Compare Source
v8.4.22Compare Source
node16(by Remco Haszing).v8.4.21Compare Source
Input#errortypes (by Aleks Hudochenkov).v8.4.20Compare Source
@layer.v8.4.19Compare Source
v8.4.18Compare Source
absolute: truewith emptysourceContent(by Rene Haas).v8.4.17Compare Source
Node.before()unexpected behavior (by Romain Menke).v8.4.16Compare Source
RootAST migration.v8.4.15Compare Source
v8.4.14Compare Source
v8.4.13Compare Source
append()error after using.parent(by Jordan Pittman).prettier/prettier (prettier)
v3.7.4Compare Source
diff
LWC: Avoid quote around interpolations (#18383 by @kovsu)
TypeScript: Fix comment inside union type gets duplicated (#18393 by @fisker)
TypeScript: Fix unstable comment print in union type comments (#18395 by @fisker)
v3.7.3Compare Source
diff
API: Fix
prettier.getFileInfo()change that breaks VSCode extension (#18375 by @fisker)An internal refactor accidentally broke the VSCode extension plugin loading.
v3.7.2Compare Source
diff
JavaScript: Fix string print when switching quotes (#18351 by @fisker)
JavaScript: Preserve quote for embedded HTML attribute values (#18352 by @kovsu)
TypeScript: Fix comment in empty type literal (#18364 by @fisker)
v3.7.1Compare Source
diff
API: Fix performance regression in doc printer (#18342 by @fisker)
Prettier 3.7.0 can be very slow when formatting big files, the regression has been fixed.
v3.7.0Compare Source
diff
🔗 Release Notes
v3.6.2Compare Source
diff
Markdown: Add missing blank line around code block (#17675 by @fisker)
v3.6.1Compare Source
diff
TypeScript: Allow const without initializer (#17650, #17654 by @fisker)
Miscellaneous: Avoid closing files multiple times (#17665 by @43081j)
When reading a file to infer the interpreter from a shebang, we use the
n-readlineslibrary to read the first line in order to get the shebang.This library closes files when it reaches EOF, and we later try close the same
files again. We now close files only if
n-readlinesdid not already closethem.
v3.6.0Compare Source
diff
🔗 Release Notes
v3.5.3Compare Source
diff
Flow: Fix missing parentheses in
ConditionalTypeAnnotation(#17196 by @fisker)v3.5.2Compare Source
diff
Remove
module-synccondition (#17156 by @fisker)In Prettier 3.5.0, we added
module-synccondition topackage.json, so thatrequire("prettier")can use ESM version, but turns out it doesn't work if CommonJS and ESM plugins both imports builtin plugins. To solve this problem, we decide simply remove themodule-synccondition, sorequire("prettier")will still use the CommonJS version, we'll revisit untilrequire(ESM)feature is more stable.v3.5.1Compare Source
diff
Fix CLI crash when cache for old version exists (#17100 by @sosukesuzuki)
Prettier 3.5 uses a different cache format than previous versions, Prettier 3.5.0 crashes when reading existing cache file, Prettier 3.5.1 fixed the problem.
Support dockercompose and github-actions-workflow in VSCode (#17101 by @remcohaszing)
Prettier now supports the
dockercomposeandgithub-actions-workflowlanguages in Visual Studio Code.v3.5.0Compare Source
diff
🔗 Release Notes
v3.4.2Compare Source
diff
Treat U+30A0 & U+30FB in Katakana Block as CJK (#16796 by @tats-u)
Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.
U+30A0 can be used as the replacement of the
-in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).Fix comments print on class methods with decorators (#16891 by @fisker)
Fix non-idempotent formatting (#16899 by @seiyab)
This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.
v3.4.1Compare Source
diff
Remove unnecessary parentheses around assignment in
v-on(#16887 by @fisker)v3.4.0Compare Source
diff
🔗 Release Notes
v3.3.3Compare Source
diff
Add parentheses for nullish coalescing in ternary (#16391 by @cdignam-segment)
This change adds clarity to operator precedence.
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.
Support
@letdeclaration syntax (#16474 by @sosukesuzuki)Adds support for Angular v18
@letdeclaration syntax.Please see the following code example. The
@letdeclaration allows you to define local variables within the template: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.2Compare Source
diff
Fix handlebars path expressions starts with
@(#16358 by @Princeyadav05)v3.3.1Compare Source
diff
Preserve empty lines in front matter (#16347 by @fisker)
Preserve explicit language in front matter (#16348 by @fisker)
Avoid line breaks in import attributes (#16349 by @fisker)
v3.3.0Compare Source
diff
🔗 Release Notes
v3.2.5Compare Source
diff
Support Angular inline styles as single template literal (#15968 by @sosukesuzuki)
Angular v17 supports single string inline styles.
Unexpected embedded formatting for Angular template (#15969 by @JounQin)
Computed template should not be considered as Angular component template
Use
"json"parser fortsconfig.jsonby 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-languagesdata.tsconfig.jsonis a special file used by TypeScript, it uses.jsonfile 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.jsonfile 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 yourtsconfig.jsonfiles, add the following to your.prettierrcfilev3.2.4Compare Source
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "jsonc" }
v3.2.3Compare Source
diff
Throw errors for invalid code (#15881 by @fisker, @Josh-Cena, @auvred)
Fix parser inference (#15927 by @fisker)
v3.2.2Compare 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:
Fix formatting error on optional call expression and member chain (#15920 by @sosukesuzuki)
v3.2.1Compare Source
diff
Fix formatting error on member chain (#15915 by @sosukesuzuki)
v3.2.0Compare Source
diff
🔗 Release Notes
v3.1.1Compare 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.
Skip explicitly passed symbolic links with
--no-error-on-unmatched-pattern(#15533 by @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-patternto simply skip symbolic links.Consistently use tabs in ternaries when
useTabsistrue(#15662 by @auvred)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)
Support "Import Attributes" (#15718 by @fisker)
TypeScript 5.3 supports the latest updates to the import attributes proposal.
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
--helptext) continued to claim otherwise, falsely. The documentation is now fixed.Keep curly braces and
fromkeyword in emptyimportstatements (#15756 by @fisker)Keep empty import attributes and assertions (#15757 by @fisker)
v3.1.0Compare Source
diff
🔗 Release Notes
v3.0.3Compare Source
diff
Add
preferUnplugged: truetopackage.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: truetopackage.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
exportsdon't haverequireordefaultexport.In Prettier 3.0.2 Prettier fails when attempt to
require()the package, and throws an error.Allow argument of
require()to break (#15256 by @fisker)Do not print trailing commas in arrow function type parameter lists in
tscode blocks (#15286 by @sosukesuzuki)Support TypeScript 5.2
using/await usingdeclaration (#15321 by @sosukesuzuki)Support for the upcoming Explicit Resource Management feature in ECMAScript.
using/await usingdeclarationv3.0.2Compare Source
diff
Break after
=of assignment if RHS is poorly breakable AwaitExpression or YieldExpression (#15204 by @seiyab)Do not add trailing comma for grouped scss comments (#15217 by @auvred)
Print
declareandexportkeywords for nested namespace (#15249 by @sosukesuzuki)v3.0.1Compare Source
diff
Fix cursor positioning for a special case (#14812 by @fisker)
Fix plugins/estree.d.ts to make it a module (#15018 by @kingyue737)
Add
export {}inplugins/estree.d.tsto fix the "File is not a module" errorAdd parenthesis around leading multiline comment in return statement (#15037 by @auvred)
Add support for Vue "Generic Components" (#15066 by @auvred)
https://blog.vuejs.org/posts/vue-3-3#generic-components
Fix comments print in
IfStatement(#15076 by @fisker)Add missing type definition for
printer.preprocess(#15123 by @so1ve)Add missing
getVisitorKeysmethod type definition forPrinter(#15125 by @auvred)Add typing to support
readonlyarray properties of AST Node (#15127 by @auvred)Add space before unary minus followed by a function call (#15129 by @pamelalozano)
v3.0.0Compare Source
diff
🔗 Release Notes
v2.8.8Compare 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.7Compare Source
diff
Allow multiple decorators on same getter/setter (#14584 by @fisker)
v2.8.6Compare Source
diff
Allow decorators on private members and class expressions (#14548 by @fisker)
v2.8.5Compare Source
diff
Support TypeScript 5.0 (#14391 by @fisker, #13819 by @fisker, @sosukesuzuki)
TypeScript 5.0 introduces two new syntactic features:
constmodifiers for type parametersexport type *declarationsAdd missing parentheses for decorator (#14393 by @fisker)
Add parentheses for
TypeofTypeAnnotationto improve readability (#14458 by @fisker)Support
max_line_length=offwhen parsing.editorconfig(#14516 by @josephfrazier)If an .editorconfig file is in your project and it sets
max_line_length=offfor the file you're formatting,it will be interpreted as a
printWidthofInfinityrather than being ignored(which previously resulted in the default
printWidthof 80 being applied, if not overridden by Prettier-specific configuration).v2.8.4Compare Source
diff
Fix leading comments in mapped types with
readonly(#13427 by @thorn0, @sosukesuzuki)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.
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
@satisfiesin Closure-style type casts (#14262 by @fisker)Fix parens in inferred function return types with
extends(#14279 by @fisker)v2.8.3Compare Source
diff
Allow self-closing tags on custom elements (#14170 by @fisker)
See Angular v15.1.0 release note for details.
v2.8.2Compare Source
diff
Don't lowercase link references (#13155 by @DerekNonGeneric & @fisker)
Preserve self-closing tags (#13691 by @dcyriller)
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.Preserve empty lines between nested SCSS maps (#13931 by @jneander)
Fix missing parentheses when an expression statement starts with
let[(#14000, #14044 by @fisker, @thorn0)Fix semicolon duplicated at the end of LESS file (#14007 by @mvorisek)
Fix no space after unary minus when followed by opening parenthesis in LESS (#14008 by @mvorisek)
Do not change case of property name if inside a variable declaration in LESS (#14034 by @mvorisek)
Fix formatting for auto-accessors with comments (#14038 by @fisker)
Add parentheses for TSTypeQuery to improve readability (#14042 by @onishi-kohei)
Fix displacing of comments in default switch case (#14047 by @thorn0)
It was a regression in Prettier 2.6.0.
Support type annotations on auto accessors via
babel-ts(#14049 by @sosukesuzuki)The bug that
@babel/parsercannot parse auto accessors with type annotations has been fixed. So we now support it viababel-tsparser.Fix formatting of empty type parameters (#14073 by @fisker)
Add parentheses to head of
ExpressionStatementinstead of the whole statement (#14077 by @fisker)Fix comments after directive (#14081 by @fisker)
Fix formatting for comments inside JSX attribute (#14082 by @fisker)
Quote numeric keys for json-stringify parser (#14083 by @fisker)
Fix removing commas from function arguments in maps (#14089 by @sosukesuzuki)
Do not insert space in LESS property access (#14103 by @fisker)
v2.8.1Compare Source
diff
Fix SCSS map in arguments (#9184 by @agamkrbit)
Support auto accessors syntax (#13919 by @sosukesuzuki)
Support for Auto Accessors Syntax landed in TypeScript 4.9.
(Doesn't work well with
babel-tsparser)v2.8.0Compare Source
diff
🔗 Release Notes
v2.7.1Compare Source
diff
Keep useful empty lines in description (#13013 by @chimurai)
v2.7.0Compare Source
"""
First line
Second Line
"""
type Person {
name: String
}
tailwindlabs/prettier-plugin-tailwindcss (prettier-plugin-tailwindcss)
v0.7.2Compare Source
Fixed
prettier-plugin-sveltewhen using Prettier v3.7+ (#418)v0.7.1Compare Source
Fixed
v0.7.0Compare Source
Added
@source,@plugin, and@config(#387)Changed
ParserOptionsandRequiredOptionstypes (#354)prettier-plugin-import-sort(#385)Fixed
@apply(#392)v0.6.14Compare Source
v0.6.13Compare Source
prettier-plugin-multiline-arraysandprettier-plugin-jsdocwork when used together with this plugin (#372)v0.6.12Compare Source
v0.6.11Compare Source
v0.6.10Compare Source
@zackad/prettier-plugin-twig(#327)@zackad/prettier-plugin-twig-melody(#327)v0.6.9Compare Source
tailwindStylesheetoption to replacetailwindEntryPoint(#330)v0.6.8Compare Source
v0.6.7Compare Source
@pluginand@configin v4 (#316)v0.6.6Compare Source
prettier-plugin-multiline-arrays(#299)v4.0.0-alpha.19(#310)v0.6.5Compare Source
v0.6.4Compare Source
PluginOptionstype (#292)v0.6.3Compare Source
v0.6.2Compare Source
Changed
v0.6.1Compare Source
v0.6.0Compare Source
Changed
v0.5.14Compare Source
Fixed
v0.5.13Compare Source
Added
@zackad/prettier-plugin-twig-melody(#255)v0.5.12Compare Source
Added
prettier-plugin-sort-imports(#241)v0.5.11Compare Source
Changed
v0.5.10Compare Source
Changed
v0.5.9Compare Source
Fixed
v0.5.8Compare Source
Added
prettier-plugin-marko(#229)v0.5.7Compare Source
Fixed
v0.5.6Compare Source
Fixed
{{ … }}expressions when using@shopify/prettier-plugin-liquidv1.3+ (#222)v0.5.5Compare Source
Fixed
classNamein Astro (#215)v0.5.4Compare Source
Fixed
tailwindFunctionsandtailwindAttributesas optional (#206)@apply … #{'!important'}sorting in SCSS (#212)v0.5.3Compare Source
Fixed
__dirnameinterop on Windows (#204)v0.5.2Compare Source
Fixed
v0.5.1Compare Source
Fixed
v0.5.0Compare Source
Added
class:listattribute (#192)v0.4.1Compare Source
Fixed
v0.4.0Compare Source
Added
Fixed
v0.3.0Compare Source
Added
prettier-plugin-marko(#151)Fixed
v0.2.8Compare Source
Changed
@prettier/plugin-php(#152)v0.2.7Compare Source
Fixed
v0.2.6Compare Source
Added
Fixed
tailwindcssmodules from nearest instance only (#139)v0.2.5Compare Source
Fixed
captureliquid tag (#131)v0.2.4Compare Source
Fixed
classattribute on components and custom elements in Astro (#129)v0.2.3Compare Source
Fixed
concathelper (#119)@ianvs/prettier-plugin-sort-imports(#122)v0.2.2Compare Source
Fixed
v0.2.1Compare Source
Fixed
v0.2.0Compare Source
Changed
prettier-plugin-svelte(#101)Added
sass/dart-sass (sass)
v1.94.2Compare Source
Command-Line Interface
--fatal-deprecation <version>no longer emits warnings aboutdeprecations that are obsolete.
Dart API
Deprecation.forVersionnow excludes obsolete deprecations from the set itreturns.
JS API
fatalDeprecationswhen aVersionispassed.
Node.js Embedded Host
async compilation.
v1.94.1Compare Source
v1.94.0Compare Source
Potentially breaking compatibility fix:
@functionrules whose namesbegin with
--are now parsed as unknown at-rules to support the plain CSS@functionrule. Within this rule, theresultproperty is parsed as rawCSS just like custom properties.
Potentially breaking compatibility fix:
@mixinrules whose names beginwith
--are now errors. These are not yet parsed as unknown at-rules becauseno browser currently supports CSS mixins.
v1.93.3Compare Source
v1.93.2Compare Source
JavaScript API
@sass/types.v1.93.1Compare Source
JavaScript API
@sass/types.v1.93.0Compare Source
@import, and the loaded file@uses a user-defined module as well as@includes a top-level mixin whichemits top-level declarations.
JavaScript API
@sass/typespackage which contains the type annotations used byboth the
sassandsass-embeddedpackage without any additional code ordependencies.
v1.92.1Compare Source
would not be passed as implicit configuration to a later imported, forwarded
module.
v1.92.0Compare Source
Breaking change: Emit declarations, childless at-rules, and comments in
the order they appear in the source even when they're interleaved with nested
rules. This obsoletes the
mixed-declsdeprecation.Breaking change: The function name
type()is now fully reserved for theplain CSS function. This means that
@functiondefinitions with the nametypewill produce errors, while function calls will be parsed as specialfunction strings.
Configuring private variables using
@use ... with,@forward ... with, andmeta.load-css(..., $with: ...)is now deprecated. Private variables werealways intended to be fully encapsulated within the module that defines them,
and this helps enforce that encapsulation.
Fix a bug where
@extendrules loaded through a mixture of@importand@userules could fail to apply correctly.Command-Line Interface
--watchmode, delete the source map when the associated source file isdeleted.
v1.91.0Compare Source
Potentially breaking change:
meta.inspect()(as well as other systemsthat use it such as
@debugand certain error messages) now emits numberswith as high precision as is available instead of rounding to the nearest
1e⁻¹⁰ as we do when serializing to CSS. This better fits the purpose of
meta.inspect(), which is to provide full information about the structure ofa Sass value.
Passing a rest argument (
$arg...) before a positional or named argument whencalling a function or mixin is now deprecated. This was always outside the
specified syntax, but it was historically treated the same as passing the rest
argument at the end of the argument list whether or not that matched the
visual order of the arguments.
v1.90.0Compare Source
@forwarded module to be loaded with a configuration when that modulehas already been loaded with a different configuration and the module
doesn't define any variables that would have been configured anyway.
v1.89.2Compare Source
Embedded Host
bufdependency.v1.89.1Compare Source
v1.89.0Compare Source
potential resolutions, as long as those resolutions all point to the same
file.
v1.88.0Compare Source
Allow custom properties with empty values (such as
--var:;).Fix a bug when calculating source spans for interpolations.
Dart and JS APIs
mixin object from one compilation to another.
Dart API
compileString()and related functions.v1.87.0Compare Source
nesting selector
&is loaded into a nested Sass context viameta.load-css()or@import, Sass now emits plain CSS nesting rather thanincorrectly combining it with the parent selector using a descendant
combinator.
v1.86.3Compare Source
a
..segment.v1.86.2Compare Source
v1.86.1Compare Source
file:URL case canonicalization on Windows andMac OS.
v1.86.0Compare Source
Add support for
%as an expression in its own right. It will still be parsedas the modulo operator when between two other expressions, but in any other
context it will be an expression whose value is the unquoted string
%.Consider
attr()to be a special number function that can be used as achannel in color functions.
Deprecate user-defined functions named
type()so that we can eventuallysupport the new CSS
type()function.Dart API
v1.85.1Compare Source
functions could incorrectly be treated as CSS math functions even though they
used Sass-only features, causing compilation failures. For example,
round(-$var / 2)previously threw an error but now works as intended.v1.85.0Compare Source
@extend. This causedunacceptable performance issues for certain heavy users of
@extend. We'lltry to find a more performant way to accomplish it in the future.
v1.84.0Compare Source
Allow newlines in whitespace in the indented syntax.
Potentially breaking bug fix: Selectors with unmatched brackets now always
produce a parser error. Previously, some edge cases like
[foo#{"]:is(bar"}) {a: b}would compile without error, but this was an unintentional bug.Fix a bug in which various Color Level 4 functions weren't allowed in plain
CSS.
Fix the error message for
@extendwithout a selector and possibly otherparsing edge-cases in contexts that allow interpolation.
Embedded Host
SassBooleantype to adhere to the spec,now using a class instead of an interface.
v1.83.4Compare Source
v1.83.3Compare Source
v1.83.2Compare Source
Properly display deprecation IDs for the JS Sass API.
Don't display deprecation IDs for user-defined deprecations.
v1.83.1Compare Source
Fix a bug where
--quiet-depswould get deactivated for@contentblocks,even when those blocks were entirely contained within dependencies.
Include deprecation IDs in deprecation warnings to make it easier to determine
what to pass to
--silence-deprecationor--fatal-deprecation.v1.83.0Compare Source
v1.82.0Compare Source
Command-Line Interface
Improve
--watchmode reliability when making multiple changes at once, suchas checking out a different Git branch.
Parse the
calc-size()function as a calculation now that it's supported insome browsers.
Dart API
SassCalculation.calcSize()function.v1.81.1Compare Source
v1.81.0Compare 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 longas that argument might be a unitless number.
v1.80.7Compare Source
Embedded Host
0asundefinedfor thegreenandbluechannels in theLegacyColorconstructor.v1.80.6Compare Source
Command-Line Interface
@parcel/watcheran optional dependency so this can still be installedon operating systems where it's unavailable.
v1.80.5Compare Source
Embedded Host
@importdeprecations when using an importer with thelegacy API.
v1.80.4Compare Source
v1.80.3Compare 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.2Compare Source
plain-CSS
invert()function.v1.80.1Compare Source
v1.80.0Compare Source
@importis now officially deprecated, as are global built-in functions thatare available within built-in modules. See the Sass blog post for more
details on the deprecation process.
Embedded Host
emitted when using a custom importer with the legacy API.
v1.79.6Compare Source
Fix a bug where Sass would add an extra
*/after loud comments withwhitespace after an explicit
*/in the indented syntax.Potentially breaking bug fix: Adding text after an explicit
*/in theindented syntax is now an error, rather than silently generating invalid CSS.
Embedded Host
SassBooleantype.v1.79.5Compare Source
Changes to how
selector.unify()and@extendcombine selectors:The relative order of pseudo-classes (like
:hover) and pseudo-elements(like
::before) within each original selector is now preserved whenthey'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-linearanddisplay-p3.Potentially breaking bug fix:
math.unit()now wraps multiple denominatorunits in parentheses. For example,
px/(em*em)instead ofpx/em*em.Command-Line Interface
@parcel/watcherto watch the filesystem when running from JavaScript andnot using
--poll. This should mitigate more frequent failures users havebeen seeing since version 4.0.0 of Chokidar, our previous watching tool, was
released.
JS API
SassColor.interpolate()to allow an undefinedoptionsparameter, asthe types indicate.
Embedded Sass
v1.79.4Compare Source
JS API
greenorbluetocolor.change()for legacycolors would fail.
v1.79.3Compare Source
$channelparameter in the suggested replacement forcolor.red(),color.green(),color.blue(),color.hue(),color.saturation(),color.lightness(),color.whiteness(), andcolor.blackness()to use a quoted string.v1.79.2Compare Source
Add a
$spaceparameter to the suggested replacement forcolor.red(),color.green(),color.blue(),color.hue(),color.saturation(),color.lightness(),color.whiteness(), andcolor.blackness().Update deprecation warnings for the legacy JS API to include a link to
relevant documentation.
v1.79.1Compare Source
v1.79.0Compare Source
Breaking change: Passing a number with unit
%to the$alphaparameterof
color.change(),color.adjust(),change-color(), andadjust-color()is now interpreted as a percentage, instead of ignoring the unit. For example,
color.change(red, $alpha: 50%)now returnsrgb(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 thatcolor'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:
With the exception of legacy color spaces (
rgb,hsl, andhwb), colorswill always be emitted in the color space they were defined in unless
they're explicitly converted.
The
color.to-space()function is the only way to convert a color toanother 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.
rgbcolors can now have non-integer channels and channels outside the normalgamut of 0-255. These colors are always emitted using the
rgb()syntax sothat 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(), andlch()functions;hwb()function that matches the space-separated CSS syntax;color()function that supports thesrgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyz,xyz-d50, andxyz-d65color spaces.Add new functions for working with color spaces:
color.to-space($color, $space)converts$colorto the given$space. Inmost 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
hslandhwbspaces can't representout-of-gamut colors and so will be clamped.
color.channel($color, $channel, $space: null)returns the value of thegiven
$channelin$color, after converting it to$spaceif necessary.It should be used instead of the old channel-specific functions such as
color.red()andcolor.hue().color.same($color1, $color2)returns whether two colors represent the samecolor even across color spaces. It differs from
$color1 == $color2because==never consider colors in different (non-legacy) spaces as equal.color.is-in-gamut($color, $space: null)returns whether$colorisin-gamut for its color space (or
$spaceif it's passed).color.to-gamut($color, $space: null)returns$colorconstrained to itsspace's gamut (or to
$space's gamut, if passed). This is generally notrecommended 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$coloris in a legacy colorspace (
rgb,hsl, orhwb).color.is-powerless($color, $channel, $space: null): Returns whether thegiven
$channelof$coloris powerless in$space(or its own colorspace). 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 ismissing in
$color. Missing channels can be explicitly specified using thespecial value
noneand can appear automatically whencolor.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()andcolor.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(), andcolor.scale()now support allchannels 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 thespace with the
$spaceparameter. (For backwards-compatibility, thisdoesn't apply to legacy channels of legacy colors—for example, you can still
adjust an
rgbcolor's saturation without passing$space: hsl).color.mix()andcolor.invert()now support the standard CSS algorithmfor 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
$methodparameter. For polar color spaces likehslandoklch,this parameter also allows you to specify how hue interpolation is handled.
color.complement()now supports a$spaceparameter that indicates whichcolor space should be used to take the complement.
color.grayscale()now operates in theoklchspace for non-legacy colors.color.ie-hex-str()now automatically converts its color to thergbspaceand 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(), andcolor.blackness()functions, as well as their global counterparts, shouldbe replaced with calls to
color.channel().The global
adjust-hue(),saturate(),desaturate(),lighten(),darken(),transaprentize(),fade-out(),opacify(), andfade-in()functions should be replaced by
color.adjust()orcolor.scale().Add a
global-builtinfuture deprecation, which can be opted-into with the--future-deprecationflag or thefutureDeprecationsoption in the JS orDart API. This emits warnings when any global built-in functions that are
now available in
sass:modules are called. It will become active by defaultin an upcoming release alongside the
@importdeprecation.Dart API
Added a
ColorSpaceclass which represents the various color spaces definedin the CSS spec.
Added
SassColor.spacewhich returns a color's color space.Added
SassColor.channelsand.channelsOrNullwhich returns a listof 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 thecorresponding 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.blacknessin favor ofSassColor.channel().Deprecated
SassColor.changeRgb(),.changeHsl(), and.changeHwb()infavor of
SassColor.changeChannels().Added
SassNumber.convertValueToUnit()as a shorthand forSassNumber.convertValue()with a single numerator.Added
InterpolationMethodandHueInterpolationMethodwhich collectivelyrepresent 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-apiinsilenceDeprecationswhen usingthe legacy API.
Modify
SassColorto accept a newspaceoption, with support for all thenew color spaces defined in Color Level 4.
Add
SassColor.spacewhich returns a color's color space.Add
SassColor.channelsand.channelsOrNullwhich returns a list of channelvalues, 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 thecorresponding names.
Deprecate
SassColor.red,.green,.blue,.hue,.saturation,.lightness,.whiteness, and.blacknessin favor ofSassColor.channel().Embedded Sass
Add
ColorSassScript value, with support for all the new color spacesdefined in Color Level 4.
Remove
RgbColor,HslColorandHwbColorSassScript values.v1.78.0Compare Source
The
meta.feature-existsfunction is now deprecated. This deprecation isnamed
feature-exists.Fix a crash when using
@at-rootwithout any queries or children in theindented syntax.
JS API
Backport the deprecation options (
fatalDeprecations,futureDeprecations,and
silenceDeprecations) to the legacy JS API. The legacy JS API is itselfdeprecated, 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.urlwould crash when a relative URL waspassed to the Sass API.
Embedded Sass
Explicitly expose a
sassexecutable from thesass-embeddednpm 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 sassfor local installs or justsasswhensass-embeddedis installed globally.Add linux-riscv64, linux-musl-riscv64, and android-riscv64 support for the
sass-embeddednpm 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.8Compare Source
v1.77.7Compare 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 unknownat-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.6Compare Source
between the end of Sass statements and the following semicolon.
v1.77.5Compare Source
@extend.v1.77.4Compare Source
Embedded Sass
Support passing
Versioninput forfatalDeprecationsas string overembedded protocol.
Fix a bug in the JS Embedded Host where
Versioncould be incorrectly acceptedas input for
silenceDeprecationsandfutureDeprecationsin pure JS.v1.77.3Compare Source
Dart API
Deprecation.duplicateVariableFlagshas been deprecated and replaced withDeprecation.duplicateVarFlagsto make it consistent with theduplicate-var-flagsname used on the command line and in the JS API.v1.77.2Compare Source
Don't emit deprecation warnings for functions and mixins beginning with
__.Allow user-defined functions whose names begin with
_and otherwise looklike vendor-prefixed functions with special CSS syntax.
Command-Line Interface
Properly handle the
--silence-deprecationflag.Handle the
--fatal-deprecationand--future-deprecationflags for--interactivemode.v1.77.1Compare Source
v1.77.0Compare Source
v1.76.0Compare Source
Throw errors for misplaced statements in keyframe blocks.
Mixins and functions whose names begin with
--are now deprecated forforwards-compatibility with the in-progress CSS functions and mixins spec.
This deprecation is named
css-function-mixin.v1.75.0Compare Source
when custom importers or the Node.js package importer made decisions based on
the URL of the containing stylesheet.
JS API
importerto be passed withouturlinStringOptionsWithImporter.v1.74.1Compare Source
v1.72.0Compare Source
Support adjacent
/s without whitespace in between when parsing plain CSSexpressions.
Allow the Node.js
pkg:importer to load Sass stylesheets forpackage.jsonexportsfield entries without extensions.When printing suggestions for variables, use underscores in variable names
when the original usage used underscores.
JavaScript API
pkg:imports with the Node.js package importer whenarguments are passed to the JavaScript process.
v1.71.1Compare Source
Command-Line Interface
JavaScript API
Export the
NodePackageImporterclass in ESM mode.Allow
NodePackageImporterto locate a default directory even when theentrypoint is an ESM module.
Dart API
NodePackageImporter()a static error ratherthan just a runtime error.
Embedded Sass
when running on musl Linux.
v1.71.0Compare Source
For more information about
pkg:importers, see theannouncement on the Sass blog.
Command-Line Interface
--pkg-importerflag to enable built-inpkg:importers. Currentlythis only supports the Node.js package resolution algorithm, via
--pkg-importer=node. For example,@use "pkg:bootstrap"will loadnode_modules/bootstrap/scss/bootstrap.scss.JavaScript API
NodePackageImporterimporter that can be passed to theimportersoption. This loads files using the
pkg:URL scheme according to the Node.jspackage resolution algorithm. For example,
@use "pkg:bootstrap"will loadnode_modules/bootstrap/scss/bootstrap.scss. The constructor takes a singleoptional argument, which indicates the base directory to use when locating
node_modulesdirectories. It defaults topath.dirname(require.main.filename).Dart API
NodePackageImporterimporter that can be passed to theimportersoption. This loads files using the
pkg:URL scheme according to the Node.jspackage resolution algorithm. For example,
@use "pkg:bootstrap"will loadnode_modules/bootstrap/scss/bootstrap.scss. The constructor takes a singleargument, which indicates the base directory to use when locating
node_modulesdirectories.v1.70.0Compare Source
JavaScript API
Add a
sass.initCompiler()function that returns asass.Compilerobjectwhich supports
compile()andcompileString()methods with the same API asthe global Sass object. On the Node.js embedded host, each
sass.Compilerobject uses a single long-lived subprocess, making compiling multiple
stylesheets much more efficient.
Add a
sass.initAsyncCompiler()function that returns asass.AsyncCompilerobject which supports
compileAsync()andcompileStringAsync()methods withthe same API as the global Sass object. On the Node.js embedded host, each
sass.AsynCompilerobject uses a single long-lived subprocess, makingcompiling multiple stylesheets much more efficient.
Embedded Sass
Support the
CompileRequest.silentfield. This allows compilations with nologging 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
infofield.v1.69.7Compare Source
Embedded Sass
ARM64 Windows.
v1.69.6Compare Source
Produce better output for numbers with complex units in
meta.inspect()anddebugging 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
SourceSpans that didn'tfollow the documented
SourceSpanAPI.v1.69.5Compare Source
JS API
v1.69.4Compare Source
v1.69.3Compare Source
Embedded Sass
package.json.v1.69.2Compare Source
JS API
variable named
process.v1.69.1Compare Source
v1.69.0Compare Source
Add a
meta.get-mixin()function that returns a mixin as a first-class Sassvalue.
Add a
meta.apply()mixin that includes a mixin value.Add a
meta.module-mixins()function which returns a map from mixin names ina module to the first-class mixins that belong to those names.
Add a
meta.accepts-content()function which returns whether or not a mixinvalue 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
Deprecation.calcInterpsince it was never actually emitted as adeprecation.
Embedded Sass
protocol error was immediately followed by another request.
v1.68.0Compare Source
abs-percentdeprecation.JS API
Non-filesystem importers can now set the
nonCanonicalSchemefield, whichdeclares that one or more URL schemes (without
:) will never be used forURLs returned by the
canonicalize()method.Add a
containingUrlfield to thecanonicalize()andfindFileUrl()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) canuse 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 thecanonicalize()method to the canonical URL of the stylesheet that containsthe 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.interpolationfield is deprecated and will be removedin 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.stringexceptthat
"("and")"will be added to the beginning and end of the stringvalues.
Properly include TypeScript types in the
sass-embeddedpackage.v1.67.0Compare 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(), andsign().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()andclamp()are still forbidden,users may continue to freely define functions whose names overlap with other
CSS calculations (including
abs(),min(),max(), andround()whosenames 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 incalculations. Instead of this, either use
$variabledirectly and ensure italready 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
files or files that require many importer or function call round-trips with
the embedded host.
v1.66.1Compare Source
JS API
callback that threw a string, boolean, number, symbol, or bignum.
v1.66.0Compare 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.1Compare Source
1.65.0.v1.65.0Compare 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(), andsign().Deprecate explicitly passing the
%unit to the globalabs()function. Infuture releases, this will emit a CSS abs() function to be resolved by the
browser. This deprecation is named
abs-percent.v1.64.2Compare Source
v1.64.1Compare Source
Embedded Sass
SassCalculation.clamp()with less than 3 argumentswould throw an error.
v1.64.0Compare Source
Comments that appear before or between
@useand@forwardrules are nowemitted 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
@usenested in an@import.JavaScript API
Add a new
SassCalculationtype that represents the calculation objects addedin Dart Sass 1.40.0.
Add
Value.assertCalculation(), which returns the value if it's aSassCalculationand 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
@importsfailed to load when using thedeprecated functions
renderorrenderSyncand those relative imports wereloaded multiple times across different files.
v1.63.6Compare Source
JavaScript API
import sass from 'sass'again after it was broken in the last release.Embedded Sass
exportsdeclaration inpackage.json.v1.63.5Compare Source
JavaScript API
require()and ESMimportcould 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.4Compare Source
JavaScript API
Re-enable support for
import sass from 'sass'when loading the package froman 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, andtypesfromthe 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.3Compare Source
JavaScript API
v1.63.2Compare Source
v1.63.1Compare Source
v1.63.0Compare Source
JavaScript API
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 --embeddedfrom any Sass executable (other than thepure JS executable).
The Node.js embedded host will still be distributed as the
sass-embeddedpackage on npm. The only change is that it will now provide direct access to a
sassexecutable with the same CLI as thesasspackage.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.1Compare Source
:has(+ &)and related constructs would drop the leadingcombinator.
v1.62.0Compare Source
Deprecate the use of multiple
!globalor!defaultflags on the samevariable. This deprecation is named
duplicate-var-flags.Allow special numbers like
var()orcalc()in the global functions:grayscale(),invert(),saturate(), andopacity(). These are alsonative CSS
filterfunctions. This is in addition to number values which werealready 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.0Compare 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
legacy API.
v1.60.0Compare Source
Add support for the
pi,e,infinity,-infinity, andNaNconstants incalculations. 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, andNaNtocalc()expressions rather than CSS-invalid identifiers. Numbers with complex units
still can't be serialized.
v1.59.3Compare 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.2Compare Source
v1.59.1Compare Source
v1.59.0Compare Source
Command Line Interface
Added a new
--fatal-deprecationflag that lets you treat a deprecationwarning as an error. You can pass an individual deprecation ID
(e.g.
slash-div) or you can pass a Dart Sass version to treat alldeprecations initially emitted in that version or earlier as errors.
New
--future-deprecationflag that lets you opt into warning for use ofcertain features that will be deprecated in the future. At the moment, the
only option is
--future-deprecation=import, which will emit warnings forSass
@importrules, which are not yet deprecated, but will be in the future.Dart API
New
Deprecationenum, which contains the different current and futuredeprecations used by the new CLI flags.
The
compilemethods now take infatalDeprecationsandfutureDeprecationsparameters, which work similarly to the CLI flags.
v1.58.3Compare Source
v1.58.2Compare Source
Command Line Interface
Add a timestamp to messages printed in
--watchmode.Print better
calc()-based suggestions for/-as-division expression thatcontain calculation-incompatible constructs like unary minus.
v1.58.1Compare Source
hsl()colors. Thedegunit isincompatible with IE, and while that officially falls outside our
compatibility policy, it's better to lean towards greater compatibility.
v1.58.0Compare Source
Remove sourcemap comments from Sass sources. The generated sourcemap comment
for the compiled CSS output remains unaffected.
Fix a bug in
@extendlogic where certain selectors with three or morecombinators 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-, adecimal 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
--watchflag will now track loads through calls tometa.load-css()aslong as their URLs are literal strings without any interpolation.
v1.57.1Compare Source
v1.57.0Compare Source
split($string, $separator, $limit: null)function tosass:stringthat 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
Callable.fromSignature()andAsyncCallable.fromSignature()now reject signatures with whitespace betweenthe function name and parentheses.
v1.56.2Compare Source
Embedded Sass
protocol.
v1.56.1Compare Source
Embedded Sass
contentsis actually a string and whethersourceMapUrlis an absolute URL.v1.56.0Compare Source
Potentially breaking change: To match the CSS spec, SassScript expressions
beginning with
notor(are no longer supported at the beginning ofparenthesized sections of media queries. For example,
will now be emitted unchanged, instead of producing
See the Sass website for details.
Potentially breaking bug fix: Angle units like
radorturnare nowproperly converted to equivalent
degvalues forhsl(),hsla(),adjust-hue(),color.adjust(), andcolor.change().See the Sass website for
details.
Fix indentation for selectors that span multiple lines in a
@mediaquery.Emit a deprecation warning when passing
$alphavalues with units tocolor.adjust()orcolor.change(). This will be an error in Dart Sass2.0.0.
See the Sass website for
details.
Emit a deprecation warning when passing a
$weightvalue with no units orwith units other than
%tocolor.mix(). This will be an error in Dart Sass2.0.0.
See the Sass website for
details.
Emit a deprecation warning when passing
$nvalues with units tolist.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 incalc()expressions.Properly mark the warning for passing numbers with units to
random()as adeprecation warning.
Fix a bug where
@extendcould behave unpredicatably when used along withmeta.load-css()and shared modules that contained no CSS themselves butloaded CSS from other modules.
Dart API
sassIndexwith units toValue.sassIndexToListIndex(). This will be an error in Dart Sass 2.0.0.JS API
Importer results now validate whether
contentsis actually a string type.Importer result argument errors are now rendered correctly.
v1.55.0Compare 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 theywere within
1e-11of one another, which led to some circumstances where$a == $band$b == $cbut$a != $b.Potentially breaking bug fix: Various functions in
sass:mathno longertreat 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 returns1000000000000instead ofInfinity.Emit a deprecation warning for
$a -$band$a +$b, since these look likethey could be unary operations but they're actually parsed as binary
operations. Either explicitly write
$a - $bor$a (-$b). Seehttps://sass-lang.com/d/strict-unary for more details.
Dart API
Add an optional
argumentNameparameter toSassScriptException()to make iteasier to throw exceptions associated with particular argument names.
Most APIs that previously returned
numnow returndouble. All APIscontinue to accept
num, although in Dart 2.0.0 these APIs will be changedto accept only
double.JS API
accessible by the JS API.
v1.54.9Compare Source
@mediaquery deprecation warnings.v1.54.8Compare Source
v1.54.7Compare Source
v1.54.6Compare Source
@mediaquery could be incorrectly omitted from astylesheet if it had multiple levels of nested
@mediaqueries within itand the inner queries were mergeable but the outer query was not.
v1.54.5Compare Source
Properly consider
a ~ cto be a superselector ofa ~ b ~ canda + b + c.Properly consider
b > cto be a superselector ofa > b > c, and similarlyfor other combinators.
Properly calculate specificity for selector pseudoclasses.
Deprecate use of
random()when$limithas units to make it explicit thatrandom()currently ignores units. A future version will no longer ignoreunits.
Don't throw an error when the same module is
@forwarded multiple timesthrough a configured module.
Embedded Sass
install, the
sass-embeddednpm package now declares optional dependencies onplatform-specific embedded compiler packages.
v1.54.4Compare Source
out-of-bounds to various color functions.
v1.54.3Compare Source
v1.54.2Compare Source
v1.54.1Compare Source
@extendandselector.unify(), ensure that:root,:scope,:host, and:host-contextonly appear at the beginningof complex selectors.
v1.54.0Compare 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
notor an openingparenthesis now produces a deprecation warning. In a future release, these
will be interpreted as plain CSS instead.
Deprecate passing non-
degunits tocolor.hwb()'s$hueargument.Fix a number of bugs when determining whether selectors with pseudo-elements
are superselectors.
Treat
*as a superselector of all selectors.Dart API
fakeFromImport()function for testing custom importersthat use
AsyncImporter.fromImport.JS API
Add a
charsetoption 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.0Compare Source
var()with an empty second argument, such asvar(--side, ).JS API
meta.load-css()would sometimes resolve relative URLsincorrectly when called from a mixin using the legacy JS API.
Embedded Sass
v1.52.3Compare Source
/* ... */) appear twice in a rowacross two different imports which themselves imported the same file each.
v1.52.2Compare Source
/* ... */) instead of pushingthe comment to the next line.
v1.52.1Compare Source
Command Line Interface
--watchmode would close immediately in TTY mode. This wascaused by our change to close
--watchwhen stdin was closed outside of TTYmode, which has been reverted for now while we work on a fix.
v1.52.0Compare 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 anysequence 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()andSassNumber.assertNoUnits()now correctlyreturn the number called on when it passes the assertion.
v1.51.0Compare Source
Potentially breaking change: Change the order of maps returned by
map.deep-merge()to match those returned bymap.merge(). All keys thatappeared 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.
microsoft/TypeScript (typescript)
v5.9.3: TypeScript 5.9.3Compare Source
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the release announcement
Downloads are available on:
v5.9.2: TypeScript 5.9Compare Source
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the release announcement
Downloads are available on:
v5.8.3: TypeScript 5.8.3Compare Source
Note: this tag was recreated to point at the correct commit. The npm package contained the correct content.
For release notes, check out the release announcement.
Downloads are available on:
v5.8.2: TypeScript 5.8Compare Source
For release notes, check out the release announcement.
Downloads are available on:
v5.7.3: TypeScript 5.7.3Compare Source
For release notes, check out the release announcement.
Downloads are available on npm
v5.7.2: TypeScript 5.7Compare Source
For release notes, check out the release announcement.
Downloads are available on:
v5.6.3: TypeScript 5.6.3Compare 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.6Compare 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.4Compare 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.3Compare 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.5Compare 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.5Compare 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.4Compare 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.3Compare 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.4Compare 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.3Compare 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.3Compare 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.2Compare 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.6Compare 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.5Compare 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.3Compare 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.4Compare 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.3Compare 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.0Compare 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.5Compare Source
For release notes, check out the release announcement.
Downloads are available on:
Changes:
69e88efPort ignore deprecations to 4.9 (#52419)daf4e81Port timestamp fix to 4.9 (#52426)v4.9.4: TypeScript 4.9.4Compare Source
For release notes, check out the release announcement.
For the complete list of fixed issues, check out the
Downloads are available on:
Changes:
e286821Bump version to 4.9.4 and LKG.eb5419fCherry-pick #51704 to release 4.9 (#51712)b4d382bCherry-pick changes for narrowing to tagged literal types.e7a02f4Port of #51626 and #51689 to release-4.9 (#51627)1727912Cherry-pick fix aroundvisitEachChildto release-4.9. (#51544)This list of changes was auto generated.
v4.9.3: TypeScript 4.9Compare Source
For release notes, check out the release announcement.
Downloads are available on:
Changes:
93bd577Bump version to 4.9.3 and LKG.107f832Update LKG.31bee56Cherry-pick PR #50977 into release-4.9 (#51363) [ #50872 ]1e2fa7aUpdate version to 4.9.2-rc and LKG.7ab89e5Merge remote-tracking branch 'origin/main' into release-4.9e5cd686Update package-lock.json8d40dc1Update package-lock.json5cfb3a2Only call return() for an abrupt completion in user code (#51297)a7a9d15Fix for broken baseline in yieldInForInInDownlevelGenerator (#51345)7f8426ffix for-in enumeration containing yield in generator (#51295)See More
3d2b401Fix assertion functions accessed via wildcard imports (#51324)64d0d5afix(51301): Fixing an unused import at the end of a line removes the newline (#51320)754eeb2Update CodeQL workflow and configuration, fix found bugs (#51263)d8aad26Update package-lock.jsond4f26c8fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure (#51256)16faf45Update package-lock.json8b1ecdbfix(50654): "Move to a new file" breaks the declaration of referenced variable (#50681)170a17fDom update 2022-10-25 (#51300)9c4e14dRemove "No type information for this code" from baseline (#51311)88d25b4fix(50068): Refactors trigger debug failure when JSX text has a ' and a tag on the same line. (#51299)8bee69aUpdate package-lock.json702de1eFix early call to return/throw on generator (#51294)2c12b14Add a GH Action to file a new issue if we go a week without seeing a typescript-error-deltas issue (#51271)6af270dUpdate package-lock.json2cc4c16Update package-lock.json6093491Fix apparent typo in getStringMappingType (#51248)61c2609Update package-lock.jsonef69116Generate shortestrootDirsmodule specifier instead of first possible (#51244)bbb42f4Fix typo in canWatchDirectoryOrFile found by CodeQL (#51262)a56b254Include 'this' type parameter in isRelatedTo fast path (#51230)3abd351Fix super property transform in async arrow in method (#51240)eed0511Update package-lock.json2625c1fMake the init config category order predictable (#51247)1ca99b3fix(50551): Destructuring assignment with var bypasses "variable is used before being assigned" check (2454) (#50560)3f28fa1Update package-lock.json906ebe4Revert structuredTypeRelatedTo change and fix isUnitLikeType (#51076)8ac4652change type (#51231)245a02cfix(51222): Go-to-definition on return statements should jump to the containing function declaration (#51227)2dff34emarkAliasReferenced should include ExportValue as well (#51219)5ef2634Update package-lock.jsond0f0e35Remove old tslint comments (#51220)85d405aFixed a false positive "await has no effect on the type" diagnostic with mixed generic union (#50833)1f8959ffix: avoid downleveled dynamic import closing over specifier expression (#49663)11066b2Rename internal functions tonarrowTypeBySwitchOnTypeOfandnarrowTypeByInKeyword(#51215)4c9afe8Update package-lock.jsonf25bcb7fix(49196): add jsdoc snippet for interface member functions (#51135)7406ee9fix(51170): Completing an unimplemented property overwrites rest of line (#51175)a1d82fcRemove some unnecessary code discovered by rollup (#51204)0481773LEGO: Merge pull request 5120098c19cbLEGO: Merge pull request 5119013c9b05Update package-lock.json673475eUpdate package-lock.jsonf6cf510Add more tracing to node16/nodenext resolution (#51168)83c5581Update package-lock.jsonbe5f0feAdd an extra regression test for awaited unresolvable recursive union (#51167)2cb7e77fix(50416): correctly names disabled export refactors (#50663) [ #50416 ]2bcfed0feat(37440): Provide a quick-fix for non-exported types (#51038)a24201cRemove VSDevMode.ps1 and createPlaygroundBuild (#51166)2da62a7fix(51112): omit parameter names that precede the type (#51142)cf1b6b7feat(51163): show QF to fill in the missing properties for the mapped type. (#51165)bdcc240Remove bug-causing carve-out in conditional type instantiation that hopefully is no longer required (#51151)37317a2Check nested weak types in intersections on target side of relation (#51140)9f49f9cUpdate package-lock.json4f54e7eFix isExhaustiveSwitchStatement to better handle circularities (#51095)503604cOverloads shouldn't gain @deprecated tags of other overloads in quick info (#50904)e14a229Update package-lock.json67256e5Remove unused declarations array in extractSymbol's TargetRange (#51091)9c87dedfix(51100): ensure tsserver shuts down when parent process is killed (#51107)c01ae01Fix nightly publish oops in Gulpfile (#51131)a7d10f1Update package-lock.jsond0bfd8cfix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings (#51082)ad56b5cConvert scripts/Gulpfile to checked mjs/cjs so they can run without compilation (#50988)dbeae5dfix(51017): Make lineText in the references response opt-out (#51081)d06a592Properly defer resolution of mapped types with genericasclauses (#51050)42b1049Update package-lock.json5f3e6ccPlugin probe location is higher priority than peer node_modules (#51079) [ #34616 ]2648f6aPlugins in project were adding up after every config file reload (#51087)c18791cFix incorrect options type to WatchOptions (#51064)b0795e9Update package-lock.json43c6fd4Covert some of the config testing to baselines for easy validation (#51063)fc5e72bRemove unused defaultWatchFileKind method since useFsEvents is default for tsserver and tsc (#51044)8af9a93Use typescript.d.ts in APISample tests (#51061)4953316Remove configureLanguageServiceBuild, instrumenter (#51048)9dfffd0Update GitHub Actions (#51045)4635a5cUpdate package-lock.json33a34e5Adding a JSDoc comment to the es5 type declarations to describe the functionality of Date.now() (#50630)299745cFix crash in goto-def on@override(#51016)7dcf11ffix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references (#50757)5cd49f6Update package-lock.json8a1b858Update package-lock.json96894dbInclude type parameter defaults in contextual typing (#50994) [ #51002 ]0d0a793Allow Unicode extended escapes in ES5 and earlier (#50918)58bae8dUpdate package-lock.json0ce72efAdd option to OrganizeImports for removal only (#50931)42f9143feat: codefix forfor await of(#50623)ecf50e8Properly computeSymbolFlags.Optionalfor intersected properties (#50958)d1586deFully resolve aliases when checking symbol flags (#50853)45148ddUpdate LKG to 4.8.4 (#50987)9a83f25Update package-lock.json865848fFix<=and>comparisons when compared against prerelease versions (#50915)fbfe934Fix comparability between type parameters related by a union constraint (#50978)b09e93dMerge pull request #50041 from microsoft/fix/479690ac12bbUpdate package-lock.json8192d55Pick correct compilerOptions when checking if we can share emitSignatures (#50910) [ #50902 ]16faef1During uptodate ness check with buildInfo, check if there are errors explicitly with noEmit (#50974) [ #50959 ]63791f5Update package-lock.json09368bcHandle if project for open file will get recollected because of pending cleanup from closed script info (#50908) [ #50868 ]c81bf4dfix(49594): Typescript 4.7.3 bracketed class property compilation error strictPropertyInitialization:true (#49619)bc9cbbeMerge pull request #49912 from microsoft/fix/475085a10f46Update package-lock.json8e71f42Fixing pr commentsc100c64Update package-lock.json2a91107Update package-lock.json4ab9e76Use paths in package.json 'files' array that work with npm 6 and later. (#50930)549b542Use paths in package.json 'files' array that work with npm 6 and later.7f37d25Update version to 4.9.1-beta and LKG.f16ca7dRemove 'async' dependency, used only in errorCheck.ts, modernize file (#50667)c6bef3fLEGO: Merge pull request 509216753027Update package-lock.json9740bccPluralizedhasInvalidatedResolution->hasInvalidatedResolutions(#50912)84c29cd🤖 Pick PR #50912 (Pluralized `hasInvalidatedResolutio...) into release-4.9 (#50913)a26f634Merge remote-tracking branch 'origin/main' into release-4.9a455955Make hasInvalidatedResolution non internal for program and add it watchApi (#50776) [ #48057 ]645d1cdFix assert in addIndirectUser in FAR (#50905)bbec17dLEGO: Merge pull request 50900a9ecc67Update package-lock.json221cf55package.jsonexportsshould have priority overtypesVersions(#50890)acb8977Remove .github/tsc.json (#50664)7a3de81fix(49993): skip the quick fix for an expression with an enum type (#50625)2644f28fix(49200): skip duplicated method declarations (#50609)98652a3Bump version to 4.9.0-beta and LKG.4d91204fix(37030): Expand Selection in function and arrow function skips body block (#50711)e2dd508DOM update 2022/09/21 (#50884)1d9ab83fix(50866): emit modifiers from export declarations (#50874)92a1b12LEGO: Merge pull request 50877e383db6Fix debug.ts __debugKind check (#50871)01054e0Consistently add undefined/missing to optional tuple element types (#50831)d90795eImprove escape sequence handling in private names (#50856)938a69aFix import statement completions followed by interface declaration (#50350)e002159feat(49962): Disallow comparison against NaN (#50626)80ae43dFixing spacesabc58bdFixing baseline errors305f4bdMerge branch 'main' into fix/4796923746affix(50591): RangeError: Maximum call stack size exceeded (#50594)168186fAllow a union property of a private/protected member and an intersection property including that same member (#50328)812ebcfUpdate package-lock.json16156b1Add rules from eslint's recommended set that triggered good lints (#50422)a11c416Improve checking ofinoperator (#50666)67f2b62Gabritto/jsemitfixsilly (#50849)3014decDon't elide imports when transforming JS files (#50404)57c7aa7LEGO: Merge pull request 5084248a8e89Improve check of whether type query node possibly contains reference to type parameter (#50070)af9ced1LEGO: Merge pull request 50825a8e13f7Fixed an issue with destructured bindings from a generic union constraint not being narrowed correctly (#50221)08af0b6Update package-lock.json0df46e8Fix test around RegExp match vs. exec results (#50813)906510eFixes for pr2970c5dmakeRegExpExecArrayalways include index 0 (#50713)0507192Accepting baselines29e50b3Rewording documentation01cae69fix(50796): omit questionToken in object literal method completions (#50802)3b84f76Fix crash caused by incorrect bounds check (regression in 4.8) (#50797)7e51306Update package-lock.json8b35c13The error "Object is possibly null or undefined" is ambiguous. (#49797)a3f51b3Update user baselines +cc @sandersn (#43554)ba10a0dRemoving duplicated codeec6ae1cPartially revert #41044, restoring parameter destructurings in d.ts files (#50779)28232caLEGO: Merge pull request 5078349cfa1dUpdate package-lock.json4110b80Fix equality narrowing and comparable relation for intersections with {} (#50735)b23f1d6LEGO: Merge pull request 50771618fb2dUpdate package-lock.json08b91f6fix(50717): tsc crashes when it sees a JSDoc tag inside an @override annotation (#50724)60963d7Discriminant of typenevershould never be matched (#50755)e37ea53Update package-lock.jsona88c366Fix test baselining for tsserver host timeouts (#50748)6d38487Fix workflow typo (#50746)6b890f9Handle more places where package direcroy is converted to canonical file path (#50740)f5f2923Revert removal of nonInferrableAnyType (#50691)7120b52Update twoslash workflow (#50738)68d526cDon't run linter after tests runs (#50597)8e5e2e0Fix backticks in our JSDoc comments (#50737)a4cabe7Support for auto-accessor fields from the Stage 3 Decorators proposal (#49705)7737473Update package-lock.json12ab0feUpdate package-lock.jsoneb40134Don't leave space for property access on non-integer literals (#50703)a70bb9dPreserve special intersections in mapped types (#50704)1a1c271Don't remove space before dot if in property access on numeric literal (#50695)7c918fbBaseline host state when baselining tsserver tests (#50678)2f1ba45Update LKG and devDep of typescript to v4.8.3 (#50689)be4e9baUpdate package-lock.jsonf46a680Remove error message in node16 (#50673)ab831d0Ignore--helpand-?intsc initgeneratedcompilerOptions(#50628)bb6f36fForward intersection state flag to conditional type target check (#50620)b58721fUpdate package-lock.json3c3820bSimplify CI detection (#50661)9ac1fceFix eslint not looking at certain scripts, fix lints (#50660)fd05c0cMake useFsEvents as default strategy for the watching (#50366)5c2f770Remove unused cancellation from build (#50658)66fbf05Update package-lock.json7910c50Update package-lock.jsonfd3a84cReport every instance of TS1208 (#50101)62f980aCheck if its same buildinfo only for directly referenced projects and not recursively (#50617) [ #50545 ]856c7c5Allow{}to narrow in same special cases asunknown(#50601)854d448inoperator shouldn't narrow{}originating inunknown(#50610)549e61dUpdate package-lock.jsonbcf9949fix(50079): show deprecated on JSX attributes (#50084)5df09a5Use bidirectional comparability in narrowing (#50592)891cdc5Remove unused baselines (#50593)6db2c88{} & null and {} & undefined should always be never (#50553)238c341Defer distributing index over generic object types (#50540)2983092Do not canonicalize the file names when getting absolute paths during nodenext resolution (#50557) [ #50544 ]dcade77Update package-lock.jsona9797d2fix(50340): typeof ... === "undefined" check on discriminated union of undefined and object type doesn't narrow correctly (#50344)43f8ae6Only normalize intersections that include {} (#50535)d293e72Rename API to importPlugin (#50554)cd312d3Managing control flow19defbfUpdate package-lock.jsonf071d30Move contributing related info out of README to CONTRIBUTING (#50543)488d0eeRetain name and propertyName in declaration emit copies of binding patterns if property name is a keyword (#50537)8b482b5Update package-lock.jsonc89f355Remove redundant pretest script (#50518)6d170b4Handle intersections in isGenericTypeWithoutNullableConstraint (#50497)ed6889cLEGO: Merge pull request 5050629cbfe9LEGO: Merge pull request 504936faa291LEGO: Merge pull request 5048471b2ba6Reuse computed type of condition expressions (#49881)8778c1dUpdate package-lock.json4579245fix(50427): allow convert function expressions (#50430)cbc0b17Push package-lock.json updates via typescript-bot token (#50476)bb3a7aefix(50415): Language server debug failure - Did not expect GetAccessor to have an Identifier in its trivia (#50470)3557092Rephrase error message to be 100% technically correct (#50471)71d1911add unknown to DateTimeFormatTypes (#50402)8f89599Don't include .gitattributes in package (#50475)6e8337eOptimize substitution types (#50397)226dd0bFix typechecking related lints that changed post 4.8, update LKG to 4.8.2 (#50472)164dddcfeat(7481): Operator to ensure an expression is contextually typed by, and satisfies, some type (#46827)0715791Update package-lock.jsone675ea8Remove AUTHORS.md, .mailmap, authors.ts script (#50410)38076dfFix auto import crash due to difference inpathshandling (#50419)12eb519fix(50435): Duplicate seeming Code Actions for convert const to let (#50442)a08b045Jsdoc property description (#50269) [ #47933 ]5ba22e0Remove top level loc folder (#50421)c4eb37cUpdate package-lock.json8d7ad8cfix(50375): Errors for missing enum-named properties should attempt to preserve names (#50382)fb717dfDiscard union types before considering weak type checks on unit-like types (#50423)b9a5bbcSyntax 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 (#50418) [ #50131 ]1d4fbbbUpdate package-lock.json44ce3cffix(50224): Intellisense for strings within a type's Union doesn't work properly for JSX (#50231)6ee5db9Use package.json files array instead of .npmignore (#50408)This list of changes was auto generated.
v4.8.4: TypeScript 4.8.4Compare 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.3Compare 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.8Compare 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.4Compare 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.3Compare 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.2Compare 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.4Compare 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.3Compare Source
This release includes fixes for
preProcessFilefunctionFor the complete list of fixed issues, check out the
Downloads are available on:
v4.6.2: TypeScript 4.6.2Compare 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.5Compare 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 is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
4aeb3e1254tob5edadf8c1b5edadf8c1to079e655c29079e655c29to1dfc1e82a31dfc1e82a3toaa569988abaa569988abto7559e783127559e78312to1ae55235ec1ae55235ecto2123cd76612123cd7661to387b6886c7387b6886c7toda410e9afada410e9afatof59c995c03f59c995c03to508fc0bbdc508fc0bbdctod19098eacdd19098eacdto5a93659e9c5a93659e9cto3684f22e293684f22e29to0e2efeda260e2efeda26to4b25b446774b25b44677toc9e1aa7534c9e1aa7534to106a9eb69b106a9eb69bto15675486d515675486d5tob8ad605919b8ad605919to303141bf86303141bf86to2174de3a292174de3a29to80e0f2911580e0f29115toa1dd294762a1dd294762tod4d246585fd4d246585ftoece8a75462ece8a75462to40696ffe8e40696ffe8etodbc9c3f204dbc9c3f204to48abafa0f848abafa0f8to650998adc4650998adc4to0537579f8c0537579f8cto0313f9b55a0313f9b55atoe44325e818e44325e818to4daae7e2184daae7e218to9ea03c71ea9ea03c71eato53776b669353776b6693toe7529d9a75e7529d9a75to6e7e7aa7df6e7e7aa7dfto221be1e382221be1e382tof7e8287088f7e8287088to446a0c5372446a0c5372toa739736bf1a739736bf1to92a28c3b3092a28c3b30to012c0e0920012c0e0920toa2d7e3cb78a2d7e3cb78toa7aacb1364a7aacb1364to59e411ecf959e411ecf9to497c6eaed5497c6eaed5to9b648134d79b648134d7to67390aed4867390aed48to334d8f4845334d8f4845to58010ddb6858010ddb68todc0893629edc0893629etob017ec636cb017ec636cto71385ff3a771385ff3a7to638218c19a638218c19ato83a60a521383a60a5213toe60009a3bfe60009a3bfto5306ca85b65306ca85b6to0228772a4b0228772a4btob815eafe3ab815eafe3atoae607af3d3ae607af3d3to042790a70c042790a70ctodbeb9a8bf1dbeb9a8bf1to8778e875d78778e875d7toa6b7357b58a6b7357b58toa5f92ebca9a5f92ebca9to708c9da19e708c9da19eto48ac92242148ac922421to0e5a1dd0410e5a1dd041tod7b23514edd7b23514edto23abb1753623abb17536to9d40e5cc3e9d40e5cc3eto255d28afc2255d28afc2to02c1d6ad5002c1d6ad50to3cb0c5805a3cb0c5805ato5a9fcdf25e5a9fcdf25etoc4e81ec743c4e81ec743to4d503526bc4d503526bcto43989ee93943989ee939to4a2f49d98c4a2f49d98cto583712288b583712288bto3cad270bad3cad270badto1203f30e501203f30e50tofd304e984bfd304e984btoc5f4b9fe02c5f4b9fe02to61d4e0d85761d4e0d857toe1d7bda924e1d7bda924toda64516d4ada64516d4atod0dc23b0e1d0dc23b0e1to8bf02d10b08bf02d10b0to5b362cdb0b5b362cdb0btob1ba73a86bb1ba73a86bto5273117c4e5273117c4etoe5e9f3f37ae5e9f3f37ato9cae6da0c69cae6da0c6tod3fb1082d1d3fb1082d1to9e7aeffe4b9e7aeffe4bto7f9501db267f9501db26to10043b79e210043b79e2to82f06d8e2282f06d8e22to22299652742229965274to1f802c81e01f802c81e0to6cf0f351e56cf0f351e5to10d27be79f10d27be79fto452343cf9b452343cf9bto97445bd94497445bd944to2bab372ed32bab372ed3to818822ba60818822ba60tof254c37541f254c37541to3e14a9d0d83e14a9d0d8to538692f7fd⚠ 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:
The artifact failure details are included below:
File name: pnpm-lock.yaml
538692f7fdto4831a97c704831a97c70toa4ea3f39a1a4ea3f39a1to14255c378614255c3786to8ecd47d8408ecd47d840to53a205676d53a205676dtoe442a4e447e442a4e447to8be4c15e778be4c15e77to6426c62f716426c62f71to64abc4bf2d64abc4bf2dto7bcd25639e7bcd25639eto6496f95d0f6496f95d0fto1153cc1ba61153cc1ba6to15e5fbfc2515e5fbfc25tob57d628727b57d628727to92afc3ef2992afc3ef29to346a8aff66346a8aff66tof4ed4c318af4ed4c318atoff5d77c471ff5d77c471to78cff2483178cff24831to3e8d5a12d53e8d5a12d5tob0be9e8e49b0be9e8e49to926c73501d926c73501dto300ddbef93300ddbef93to5c41b6f1fe5c41b6f1feto323876765f323876765ftob8339f5433b8339f5433to23e95b8eaf23e95b8eaftoa688cb4274a688cb4274toa55c1093d5a55c1093d5to2e9df4c2082e9df4c208to2f3c12fde02f3c12fde0to7f6a3eee5e7f6a3eee5eto24c2b9fca224c2b9fca2to620f92dfda620f92dfdatob1c8dd488cb1c8dd488ctof89d621de6f89d621de6to9b850a2e839b850a2e83toc4b5cfc4afc4b5cfc4afto2edd62e3952edd62e395tof98d2ab73ff98d2ab73fto5060d636605060d63660tofaf13de85ffaf13de85fto53086e909653086e9096to7601ed8e1a7601ed8e1atoeb883265c2eb883265c2to67d212564567d2125645to12142867a712142867a7tob8f0e90524b8f0e90524to6a83457ef06a83457ef0to62432f68c262432f68c2to9e4940a1149e4940a114to72438da32d72438da32dtob0144d2e21b0144d2e21to3d8a9c61993d8a9c6199to8634f98c498634f98c49to45e6c20fba45e6c20fbato41e3fad0dc41e3fad0dcto46e823e35046e823e350toa667e886fea667e886fetoc57afe4ee5c57afe4ee5to246721a9d8246721a9d8to3a119779cf3a119779cftod0495da0ebd0495da0ebto5717e5fe0e5717e5fe0etoa6094b5be2a6094b5be2tocb9253ccbbcb9253ccbbto3bd1d53bc63bd1d53bc6toa15320c038a15320c038to2c7e2e2b4c2c7e2e2b4cto70e077619670e0776196toa711b599c2a711b599c2to73d3b0c38d73d3b0c38dto6fda536bc06fda536bc0to70652ef05370652ef053to029f2e197d⚠️ 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:
The artifact failure details are included below:
File name: pnpm-lock.yaml
029f2e197dtoe50f2900f3e50f2900f3to08e28ac2b708e28ac2b7to4808c975604808c97560to28e1096eb328e1096eb3toad678f9bb1ad678f9bb1to6fbd315c606fbd315c60to28eb516c4728eb516c47to9d29f30dff9d29f30dfftoe72bfaa09ce72bfaa09ctoc4f5b6101ec4f5b6101etoa82211e4eca82211e4ecto5ba74f90515ba74f9051toc41353b88cc41353b88cto10b01d337610b01d3376to71aeb3b83c71aeb3b83cto5da4d28e905da4d28e90to2cf44ec9332cf44ec933to65d04a8a1965d04a8a19toaed9d6bc82aed9d6bc82to0ce430bc8f0ce430bc8fto8d8f2537a78d8f2537a7to56f698949a56f698949ato1146aff83a1146aff83atoae2d497142ae2d497142toa04be7f82da04be7f82dtoea8cb726ccea8cb726cctoc39ea21e11c39ea21e11toe902ac6f6fe902ac6f6fto5c53304b035c53304b03to0f98aa30e30f98aa30e3to6a57a981ed6a57a981edto12d15f145b12d15f145bto7dbe31086d7dbe31086dto1566ceb6ef1566ceb6efto3d8ed583543d8ed58354to79bb7d970b79bb7d970bto6f2250fca26f2250fca2to45cebf389a45cebf389atod337eae97bd337eae97btoac15cecbd9ac15cecbd9tofa967dbd5efa967dbd5eto3c7712f70f3c7712f70ftoee8794b822ee8794b822toaf967a4c0eaf967a4c0etoa401e53d41a401e53d41to7073201e2b7073201e2btoc432ae932fc432ae932fto44e65529bf44e65529bfto7b1de8bf967b1de8bf96to1e1dce80cd1e1dce80cdtoba989c82f5ba989c82f5to522893fe2c522893fe2cto2da6f17e062da6f17e06toc4f53b08adc4f53b08adto315ef75792315ef75792to45203e693545203e6935to69d66b453e69d66b453eto63c5c7fea663c5c7fea6to4111d781864111d78186toce50ebe19ace50ebe19ato99a88ca69799a88ca697to73995037607399503760to28d8be4f5f28d8be4f5ftod9537232a6d9537232a6to61e3ba3f0861e3ba3f08tod3809b3e20d3809b3e20to0889658f5d0889658f5dto2bdeba71762bdeba7176tobcfe0a0d1fbcfe0a0d1ftoe8aa077349e8aa077349tof29720e156f29720e156tod3885d4f3bd3885d4f3bto72462c91c172462c91c1to362461414e362461414eto22c097a98f22c097a98fto6ea3ed92276ea3ed9227toa47c3a8389a47c3a8389to87031918b787031918b7to964ef34216964ef34216to08146bc7bc08146bc7bcto050c770874050c770874to8da01348ae8da01348aeto6021bb81296021bb8129to126221411d126221411dto11f50f7a96View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.