chore(deps): update dependency sass to v1.71.1 #1320
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.51.0
->1.71.1
Release Notes
sass/dart-sass (sass)
v1.71.1
Compare Source
Command-Line Interface
JavaScript API
Export the
NodePackageImporter
class in ESM mode.Allow
NodePackageImporter
to 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.0
Compare Source
For more information about
pkg:
importers, see theannouncement on the Sass blog.
Command-Line Interface
--pkg-importer
flag 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
NodePackageImporter
importer that can be passed to theimporters
option. 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_modules
directories. It defaults topath.dirname(require.main.filename)
.Dart API
NodePackageImporter
importer that can be passed to theimporters
option. 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_modules
directories.v1.70.0
Compare Source
JavaScript API
Add a
sass.initCompiler()
function that returns asass.Compiler
objectwhich supports
compile()
andcompileString()
methods with the same API asthe global Sass object. On the Node.js embedded host, each
sass.Compiler
object uses a single long-lived subprocess, making compiling multiple
stylesheets much more efficient.
Add a
sass.initAsyncCompiler()
function that returns asass.AsyncCompiler
object which supports
compileAsync()
andcompileStringAsync()
methods withthe same API as the global Sass object. On the Node.js embedded host, each
sass.AsynCompiler
object uses a single long-lived subprocess, makingcompiling multiple stylesheets much more efficient.
Embedded Sass
Support the
CompileRequest.silent
field. 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
info
field.v1.69.7
Compare Source
Embedded Sass
ARM64 Windows.
v1.69.6
Compare 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
SourceSpan
s that didn'tfollow the documented
SourceSpan
API.v1.69.5
Compare Source
JS API
v1.69.4
Compare Source
v1.69.3
Compare Source
Embedded Sass
package.json
.v1.69.2
Compare Source
JS API
variable named
process
.v1.69.1
Compare Source
v1.69.0
Compare 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.calcInterp
since it was never actually emitted as adeprecation.
Embedded Sass
protocol error was immediately followed by another request.
v1.68.0
Compare Source
abs-percent
deprecation.JS API
Non-filesystem importers can now set the
nonCanonicalScheme
field, whichdeclares that one or more URL schemes (without
:
) will never be used forURLs returned by the
canonicalize()
method.Add a
containingUrl
field 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.interpolation
field 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.string
exceptthat
"("
and")"
will be added to the beginning and end of the stringvalues.
Properly include TypeScript types in the
sass-embedded
package.v1.67.0
Compare Source
All functions defined in CSS Values and Units 4 are now once again parsed as
calculation objects:
round()
,mod()
,rem()
,sin()
,cos()
,tan()
,asin()
,acos()
,atan()
,atan2()
,pow()
,sqrt()
,hypot()
,log()
,exp()
,abs()
, 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
$variable
directly 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.1
Compare Source
JS API
callback that threw a string, boolean, number, symbol, or bignum.
v1.66.0
Compare Source
Breaking change: Drop support for the additional CSS calculations defined
in CSS Values and Units 4. Custom Sass functions whose names overlapped with
these new CSS functions were being parsed as CSS calculations instead, causing
an unintentional breaking change outside our normal [compatibility policy] for
CSS compatibility changes.
Support will be added again in a future version, but only after Sass has
emitted a deprecation warning for all functions that will break for at least
three months prior to the breakage.
v1.65.1
Compare Source
1.65.0
.v1.65.0
Compare Source
All functions defined in CSS Values and Units 4 are now parsed as calculation
objects:
round()
,mod()
,rem()
,sin()
,cos()
,tan()
,asin()
,acos()
,atan()
,atan2()
,pow()
,sqrt()
,hypot()
,log()
,exp()
,abs()
, 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.2
Compare Source
v1.64.1
Compare Source
Embedded Sass
SassCalculation.clamp()
with less than 3 argumentswould throw an error.
v1.64.0
Compare Source
Comments that appear before or between
@use
and@forward
rules 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
@use
nested in an@import
.JavaScript API
Add a new
SassCalculation
type that represents the calculation objects addedin Dart Sass 1.40.0.
Add
Value.assertCalculation()
, which returns the value if it's aSassCalculation
and throws an error otherwise.Produce a better error message when an environment that supports some Node.js
APIs loads the browser entrypoint but attempts to access the filesystem.
Embedded Sass
@imports
failed to load when using thedeprecated functions
render
orrenderSync
and those relative imports wereloaded multiple times across different files.
v1.63.6
Compare Source
JavaScript API
import sass from 'sass'
again after it was broken in the last release.Embedded Sass
exports
declaration inpackage.json
.v1.63.5
Compare Source
JavaScript API
require()
and ESMimport
could crash on Node.js.Embedded Sass
Fix a deadlock when running at high concurrency on 32-bit systems.
Fix a race condition where the embedded compiler could deadlock or crash if a
compilation ID was reused immediately after the compilation completed.
v1.63.4
Compare Source
JavaScript API
Re-enable support for
import sass from 'sass'
when loading the package 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
, andtypes
fromthe ECMAScript module API.
Embedded Sass
Fix a race condition where closing standard input while requests are in-flight
could sometimes cause the process to hang rather than shutting down
gracefully.
Properly include the root stylesheet's URL in the set of loaded URLs when it
fails to parse.
v1.63.3
Compare Source
JavaScript API
v1.63.2
Compare Source
v1.63.1
Compare Source
v1.63.0
Compare 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 --embedded
from any Sass executable (other than thepure JS executable).
The Node.js embedded host will still be distributed as the
sass-embedded
package on npm. The only change is that it will now provide direct access to a
sass
executable with the same CLI as thesass
package.The Dart Sass embedded compiler now uses version 2.0.0 of the Sass embedded
protocol. See the spec for a full description of the
protocol, and the changelog for a summary of
changes since version 1.2.0.
The Dart Sass embedded compiler now runs multiple simultaneous compilations in
parallel, rather than serially.
v1.62.1
Compare Source
:has(+ &)
and related constructs would drop the leadingcombinator.
v1.62.0
Compare Source
Deprecate the use of multiple
!global
or!default
flags 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
filter
functions. 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.0
Compare Source
Potentially breaking change: Drop support for End-of-Life Node.js 12.
Fix remaining cases for the performance regression introduced in 1.59.0.
Embedded Sass
legacy API.
v1.60.0
Compare Source
Add support for the
pi
,e
,infinity
,-infinity
, andNaN
constants 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
, andNaN
tocalc()
expressions rather than CSS-invalid identifiers. Numbers with complex units
still can't be serialized.
v1.59.3
Compare Source
Fix a performance regression introduced in 1.59.0.
The NPM release of 1.59.0 dropped support for Node 12 without actually
indicating so in its pubspec. This release temporarily adds back support so
that the latest Sass version that declares it supports Node 12 actually does
so. However, Node 12 is now end-of-life, so we will drop support for it
properly in an upcoming release.
v1.59.2
Compare Source
v1.59.1
Compare Source
v1.59.0
Compare Source
Command Line Interface
Added a new
--fatal-deprecation
flag 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-deprecation
flag 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
@import
rules, which are not yet deprecated, but will be in the future.Dart API
New
Deprecation
enum, which contains the different current and futuredeprecations used by the new CLI flags.
The
compile
methods now take infatalDeprecations
andfutureDeprecations
parameters, which work similarly to the CLI flags.
v1.58.3
Compare Source
v1.58.2
Compare Source
Command Line Interface
Add a timestamp to messages printed in
--watch
mode.Print better
calc()
-based suggestions for/
-as-division expression thatcontain calculation-incompatible constructs like unary minus.
v1.58.1
Compare Source
hsl()
colors. Thedeg
unit isincompatible with IE, and while that officially falls outside our
compatibility policy, it's better to lean towards greater compatibility.
v1.58.0
Compare Source
Remove sourcemap comments from Sass sources. The generated sourcemap comment
for the compiled CSS output remains unaffected.
Fix a bug in
@extend
logic where certain selectors with three or 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
--watch
flag will now track loads through calls tometa.load-css()
aslong as their URLs are literal strings without any interpolation.
v1.57.1
Compare Source
v1.57.0
Compare Source
split($string, $separator, $limit: null)
function tosass:string
that splits a string into separate substrings based on a separator string.
JavaScript API
Potentially breaking bug fix: Custom functions in both the modern and
legacy API now properly reject signatures with whitespace between the function
name and parentheses.
Custom functions in the legacy API now allow signatures with whitespace before
the function name, to match a bug in Node Sass.
Dart API
Callable.fromSignature()
andAsyncCallable.fromSignature()
now reject signatures with whitespace betweenthe function name and parentheses.
v1.56.2
Compare Source
Embedded Sass
protocol.
v1.56.1
Compare Source
Embedded Sass
contents
is actually a string and whethersourceMapUrl
is an absolute URL.v1.56.0
Compare Source
Potentially breaking change: To match the CSS spec, SassScript expressions
beginning with
not
or(
are no longer supported at the beginning ofparenthesized sections of media queries. For example,
@​media (width >= 500px) and (not (grid))
will now be emitted unchanged, instead of producing
@​media (width >= 500px) and (false)
See the Sass website for details.
Potentially breaking bug fix: Angle units like
rad
orturn
are nowproperly converted to equivalent
deg
values forhsl()
,hsla()
,adjust-hue()
,color.adjust()
, andcolor.change()
.See the Sass website for
details.
Fix indentation for selectors that span multiple lines in a
@media
query.Emit a deprecation warning when passing
$alpha
values with units 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
$weight
value 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
$n
values 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
@extend
could behave unpredicatably when used along withmeta.load-css()
and shared modules that contained no CSS themselves butloaded CSS from other modules.
Dart API
sassIndex
with units toValue.sassIndexToListIndex()
. This will be an error in Dart Sass 2.0.0.JS API
Importer results now validate whether
contents
is actually a string type.Importer result argument errors are now rendered correctly.
v1.55.0
Compare Source
Potentially breaking bug fix: Sass numbers are now universally stored as
64-bit floating-point numbers, rather than sometimes being stored as integers.
This will generally make arithmetic with very large numbers more reliable and
more consistent across platforms, but it does mean that numbers between nine
quadrillion and nine quintillion will no longer be represented with full
accuracy when compiling Sass on the Dart VM.
Potentially breaking bug fix: Sass equality is now properly transitive.
Two numbers are now considered equal (after doing unit conversions) if they
round to the same
1e-11
th. Previously, numbers were considered equal if theywere within
1e-11
of one another, which led to some circumstances where$a == $b
and$b == $c
but$a != $b
.Potentially breaking bug fix: Various functions in
sass:math
no 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 returns1000000000000
instead ofInfinity
.Emit a deprecation warning for
$a -$b
and$a +$b
, since these look likethey could be unary operations but they're actually parsed as binary
operations. Either explicitly write
$a - $b
or$a (-$b)
. Seehttps://sass-lang.com/d/strict-unary for more details.
Dart API
Add an optional
argumentName
parameter toSassScriptException()
to make iteasier to throw exceptions associated with particular argument names.
Most APIs that previously returned
num
now 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.9
Compare Source
@media
query deprecation warnings.v1.54.8
Compare Source
v1.54.7
Compare Source
v1.54.6
Compare Source
@media
query could be incorrectly omitted from astylesheet if it had multiple levels of nested
@media
queries within itand the inner queries were mergeable but the outer query was not.
v1.54.5
Compare Source
Properly consider
a ~ c
to be a superselector ofa ~ b ~ c
anda + b + c
.Properly consider
b > c
to be a superselector ofa > b > c
, and similarlyfor other combinators.
Properly calculate specificity for selector pseudoclasses.
Deprecate use of
random()
when$limit
has 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
@forward
ed multiple timesthrough a configured module.
Embedded Sass
install, the
sass-embedded
npm package now declares optional dependencies onplatform-specific embedded compiler packages.
v1.54.4
Compare Source
out-of-bounds to various color functions.
v1.54.3
Compare Source
v1.54.2
Compare Source
v1.54.1
Compare Source
@extend
andselector.unify()
, ensure that:root
,:scope
,:host
, and:host-context
only appear at the beginningof complex selectors.
v1.54.0
Compare Source
Deprecate selectors with leading or trailing combinators, or with multiple
combinators in a row. If they're included in style rules after nesting is
resolved, Sass will now produce a deprecation warning and, in most cases, omit
the selector. Leading and trailing combinators can still be freely used for
nesting purposes.
See https://sass-lang.com/d/bogus-combinators for more details.
Add partial support for new media query syntax from Media Queries Level 4. The
only exception are logical operations nested within parentheses, as these were
previously interpreted differently as SassScript expressions.
A parenthesized media condition that begins with
not
or an openingparenthesis now produces a deprecation warning. In a future release, these
will be interpreted as plain CSS instead.
Deprecate passing non-
deg
units tocolor.hwb()
's$hue
argument.Fix a number of bugs when determining whether selectors with pseudo-elements
are superselectors.
Treat
*
as a superselector of all selectors.Dart API
fakeFromImport()
function for testing custom importersthat use
AsyncImporter.fromImport
.JS API
Add a
charset
option that controls whether or not Sass emits a@charset
/BOM for non-ASCII stylesheets.Fix Sass npm package types for TS 4.7+ Node16 and NodeNext module resolution.
v1.53.0
Compare Source
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.3
Compare Source
/* ... */
) appear twice in a rowacross two different imports which themselves imported the same file each.
v1.52.2
Compare Source
/* ... */
) instead of pushingthe comment to the next line.
v1.52.1
Compare Source
Command Line Interface
--watch
mode would close immediately in TTY mode. This wascaused by our change to close
--watch
when stdin was closed outside of TTYmode, which has been reverted for now while we work on a fix.
v1.52.0
Compare Source
Add support for arbitrary modifiers at the end of plain CSS imports, in
addition to the existing
supports()
and media queries. Sass now allows 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.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.