chore(deps): update dependency postcss to v8.4.31
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| postcss (source) | 8.2.4 -> 8.4.31 |
Release Notes
postcss/postcss (postcss)
v8.4.31
- Fixed
\rparsing to fix CVE-2023-44270.
v8.4.30
- Improved source map performance (by Romain Menke).
v8.4.29
- Fixed
Node#source.offset(by Ido Rosenthal). - Fixed docs (by Christian Oliff).
v8.4.28
- Fixed
Root.source.endfor better source map (by Romain Menke). - Fixed
Result.roottypes whenprocess()has no parser.
v8.4.27
- Fixed
Containerclone methods types.
v8.4.26
- Fixed clone methods types.
v8.4.25
- Improve stringify performance (by Romain Menke).
- Fixed docs (by @vikaskaliramna07).
v8.4.24
- Fixed
Plugintypes.
v8.4.23
- Fixed warnings in TypeDoc.
v8.4.22
- Fixed TypeScript support with
node16(by Remco Haszing).
v8.4.21
- Fixed
Input#errortypes (by Aleks Hudochenkov).
v8.4.20
- Fixed source map generation for childless at-rules like
@layer.
v8.4.19
- Fixed whitespace preserving after AST transformations (by Romain Menke).
v8.4.18
- Fixed an error on
absolute: truewith emptysourceContent(by Rene Haas).
v8.4.17
- Fixed
Node.before()unexpected behavior (by Romain Menke). - Added TOC to docs (by Mikhail Dedov).
v8.4.16
- Fixed
RootAST migration.
v8.4.15
- Fixed AST normalization after using custom parser with old PostCSS AST.
v8.4.14
- Print “old plugin API” warning only if plugin was used (by @zardoy).
v8.4.13
- Fixed
append()error after using.parent(by Jordan Pittman).
v8.4.12
- Fixed
package.fundingto have same value between all PostCSS packages.
v8.4.11
- Fixed
Declaration#raws.valuetype.
v8.4.10
- Fixed
package.fundingURL format.
v8.4.9
- Fixed
package.funding(by Álvaro Mondéjar).
v8.4.8
- Fixed end position in empty Custom Properties.
v8.4.7
- Fixed
Node#warn()type (by Masafumi Koba). - Fixed comment removal in values after
,.
v8.4.6
- Prevented comment removing when it change meaning of CSS.
- Fixed parsing space in last semicolon-less CSS Custom Properties.
- Fixed comment cleaning in CSS Custom Properties with space.
- Fixed throwing an error on
.rootaccess for plugin-less case.
v8.4.5
- Fixed
rawstypes to make object extendable (by James Garbutt). - Moved from Yarn 1 to pnpm.
v8.4.4
- Fixed absolute path in source map on zero plugins mode.
v8.4.3
- Fixed
this.css.replace is not a functionerror.
v8.4.2
- Fixed
Node#source.offset(by Ido Rosenthal). - Fixed docs (by Christian Oliff).
v8.4.1
- Fixed whitespace preserving after AST transformations (by Romain Menke).
v8.4.0: 8.4 “President Camio”
PostCSS 8.4 brought ranges for warnings and errors, smaller node_modules size, lazy parsing to avoid PostCSS does nothing warning, and TypeScript fixes.
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:
- Tidelift with a Spotify-like subscription model supporting all projects from your lock file.
- Direct donations in PostCSS & Autoprefixer Open Collective.
Rages for Errors and Warnings
@adalinesimonian, the author of amazing Stylelint extension for VS Code, added ranges to errors and warnings.
result.warn(msg, { index }) // One character warning at index
result.warn(msg, { endIndex }) // Starts at node start, ends at endIndex
result.warn(msg, { index, endIndex }) // Starts at index, ends at endIndex
result.warn(msg, { start }) // Starts at start, ends at node end
result.warn(msg, { end }) // Starts at node start, ends at end
result.warn(msg, { start, end }) // Starts at start, ends at end
result.warn(msg, { word }) // Starts at word location, ends at word index + length
It will improve DX in the IDE extension.
Lazy Parsing
Previously, we found that many tools run PostCSS even if the developer didn’t pass any PostCSS plugins. Parsing is the most expensive step in CSS processing. It led to a waste of resources without any reason.
We tried to resolve the problem by adding a PostCSS does nothing warning. But it didn’t force tool authors to be more careful with user’s resources.
If PostCSS sees that tool call it without passing plugins (or changing parser/stringifier), PostCSS will not parse CSS (until toll will call Result#root). In 8.4, @bogdan0083 (with the help of @WilhelmYakunin) tries to solve the problem in another way. It allows us to save resources and remove the PostCSS does nothing warning.
// No plugins, we do not parse CSS
let result = await postcss().process(css, { from })
result.css // Is the same string passed to process()
result.map // Special 1-to-1 source map
result.root // CSS will parsed only here
Install Size Reduction
With ≈60M weekly downloads, PostCSS has responsibility for the world’s resource spending.
Together with @7rulnik we reduced source-map-js size. It is transitive dependency of PostCSS.
In 8.4, we moved to a fixed version of source-map-js, which reduced the postcss size in your node_modules from ≈1 MB to 0.3 MB. With the huge popularity of PostCSS, it will free a lot of resources on our CIs.
Migration from Jest to uvu
@kimoofey refactored all tests from the popular Jest framework to small and fast uvu.
It will not affect end-users. However, it reduced our node_modules size by 33 MB and made tests twice faster (yarn install & yarn unit: 24 → 13 seconds).
TypeScript Fixes
- Added
Processortypes. - Added
Stringifiertypes (by @43081j). - Fixed types
RootandDocumentin result values (by @43081j). - Fixed
Node#walkRules()types (by @hudochenkov).
Other Changes
- Fixed docs (by @paulshryock).
v8.3.11
- Remove debugging code.
v8.3.10
- Fixed
Maximum call stackissue of some source maps (by Yeting Li).
v8.3.9
- Replaced
nanocolorstopicocolors. - Reduced package size.
v8.3.8
- Update
nanocolors.
v8.3.7
- Replaced
colorettetonanocolors. - Added bug field to
package.json(by Christian Oliff). - Improved docs (by Andrew Bruce and Paul Shryock).
v8.3.6
- Fixed column in
missed semicolonerror (by @Gusted).
v8.3.5
- Fixed broken AST detection.
v8.3.4
- Fixed broken AST detection.
v8.3.3
- Fixed broken AST on
postcssdependency duplication in custom parsers.
v8.3.2
- Update changelog.
v8.3.1
- Remove debugging code.
v8.3.0: 8.3 “Duke Murmur”
PostCSS 8.3 improved source map parsing performance, added Node#assign() shortcut, and experimental Document node to AST.
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:
- Tidelift with a Spotify-like subscription model supporting all projects from your lock file.
- Direct donations in PostCSS & Autoprefixer Open Collective.
Source Map Performance
Because PostCSS needs synchronous API, we can’t move from the old `source-map 0.6 to 0.7 (many other open-source projects too).
@7rulnik forked source-map 0.6 to source-map-js and back-ported performance improvements from 0.7. In 8.3 we switched from source-map to this source-map-js fork.
You map see 4x performance improvements in parsing map from processing step before PostCSS (for instance, Sass).
Document Nodes
Thanks to @gucong3000, PostCSS already parse CSS from HTML and JS files (CSS-in-JS templates and objects).
But his plugin need big updates. @hudochenkov from stylelint team decided to create new parsers for styles inside CSS-in-JS, HTML, and Markdown.
He suggested adding new Document node type to PostCSS AST to keep multiple Root nodes inside and JS/HTML/Markdown code blocks between these style blocks.
const document = htmlParser(
'<html><style>a{color:black}</style><style>b{z-index:2}</style>'
)
document.type //=> 'document'
document.nodes.length //=> 2
document.nodes[0].type //=> 'root'
This is an experimental feature. Some aspects of this node could change within minor or patch version releases.
Node#assign() Shortcut
The creator of famous postcss-preset-env and many other PostCSS tools, @jonathantneal suggested a nice shortcut to change multiple properties in the node:
decl.assign({ prop: 'word-wrap', value: 'break-word' })
v8.2.15
- Fixed
listtype definitions (by @n19htz).
v8.2.14
- Removed
source-mapfrom client-side bundle (by Barak Igal).
v8.2.13
- Fixed ReDoS vulnerabilities in source map parsing (by Yeting Li).
v8.2.12
- Fixed
package.jsonexports.
v8.2.11
- Fixed
DEP0148warning in Node.js 16. - Fixed docs (by @semiromid).
v8.2.10
- Fixed ReDoS vulnerabilities in source map parsing.
- Fixed webpack 5 support (by Barak Igal).
- Fixed docs (by Roeland Moors).
v8.2.9
- Exported
NodeErrorOptionstype (by Rouven Weßling).
v8.2.8
- Fixed browser builds in webpack 4 (by Matt Jones).
v8.2.7
- Fixed browser builds in webpack 5 (by Matt Jones).
v8.2.6
- Fixed
Maximum call stack size exceededinNode#toJSON. - Fixed docs (by inokawa).
v8.2.5
- Fixed escaped characters handling in
list.split(by Natalie Weizenbaum).
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.