postcss/postcss
### [`v8.4.21`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8421)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.20...8.4.21)
- Fixed `Input#error` types (by Aleks Hudochenkov).
### [`v8.4.20`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8420)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.19...8.4.20)
- Fixed source map generation for childless at-rules like `@layer`.
### [`v8.4.19`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8419)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.18...8.4.19)
- Fixed whitespace preserving after AST transformations (by Romain Menke).
### [`v8.4.18`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8418)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.17...8.4.18)
- Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas).
### [`v8.4.17`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8417)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.16...8.4.17)
- Fixed `Node.before()` unexpected behavior (by Romain Menke).
- Added TOC to docs (by Mikhail Dedov).
### [`v8.4.16`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8416)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.15...8.4.16)
- Fixed `Root` AST migration.
### [`v8.4.15`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8415)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.14...8.4.15)
- Fixed AST normalization after using custom parser with old PostCSS AST.
### [`v8.4.14`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8414)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.13...8.4.14)
- Print “old plugin API” warning only if plugin was used (by [@zardoy](https://togithub.com/zardoy)).
### [`v8.4.13`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8413)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.12...8.4.13)
- Fixed `append()` error after using `.parent` (by Jordan Pittman).
### [`v8.4.12`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8412)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.11...8.4.12)
- Fixed `package.funding` to have same value between all PostCSS packages.
### [`v8.4.11`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8411)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.10...8.4.11)
- Fixed `Declaration#raws.value` type.
### [`v8.4.10`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8410)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.9...8.4.10)
- Fixed `package.funding` URL format.
### [`v8.4.9`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#849)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.8...8.4.9)
- Fixed `package.funding` (by Álvaro Mondéjar).
### [`v8.4.8`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#848)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.7...8.4.8)
- Fixed end position in empty Custom Properties.
### [`v8.4.7`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#847)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.6...8.4.7)
- Fixed `Node#warn()` type (by Masafumi Koba).
- Fixed comment removal in values after `,`.
### [`v8.4.6`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#846)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.5...8.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 `.root` access for plugin-less case.
### [`v8.4.5`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#845)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.4...8.4.5)
- Fixed `raws` types to make object extendable (by James Garbutt).
- Moved from Yarn 1 to pnpm.
### [`v8.4.4`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#844)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.3...8.4.4)
- Fixed absolute path in source map on zero plugins mode.
### [`v8.4.3`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#843)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.2...8.4.3)
- Fixed `this.css.replace is not a function` error.
### [`v8.4.2`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8421)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.1...8.4.2)
- Fixed `Input#error` types (by Aleks Hudochenkov).
### [`v8.4.1`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8419)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.4.0...8.4.1)
- Fixed whitespace preserving after AST transformations (by Romain Menke).
### [`v8.4.0`](https://togithub.com/postcss/postcss/releases/tag/8.4.0): 8.4 “President Camio”
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.11...8.4.0)
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**](https://tidelift.com/) with a Spotify-like subscription model supporting all projects from your lock file.
- Direct donations in [**PostCSS & Autoprefixer Open Collective**](https://opencollective.com/postcss#section-contributors).
#### Rages for Errors and Warnings
[@adalinesimonian](https://togithub.com/adalinesimonian), the author of amazing [Stylelint extension](https://togithub.com/stylelint/vscode-stylelint) for VS Code, added ranges to errors and warnings.
```js
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](https://togithub.com/bogdan0083) (with the help of [@WilhelmYakunin](https://togithub.com/WilhelmYakunin)) tries to solve the problem in another way. It allows us to save resources and remove the `PostCSS does nothing` warning.
```js
// 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](https://npm-stat.com/charts.html?package=postcss) downloads, PostCSS has responsibility for the world’s resource spending.
Together with [@7rulnik](https://togithub.com/7rulnik) we [reduced](https://togithub.com/7rulnik/source-map-js/pull/7) [`source-map-js`](https://togithub.com/7rulnik/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](https://packagephobia.com/result?p=postcss). With the huge popularity of PostCSS, it will free a lot of resources on our CIs.
#### Migration from Jest to `uvu`
[@kimoofey](https://togithub.com/kimoofey) refactored all tests from the popular Jest framework to small and fast [`uvu`](https://togithub.com/lukeed/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 `Processor` types.
- Added `Stringifier` types (by [@43081j](https://togithub.com/43081j)).
- Fixed types `Root` and `Document` in result values (by [@43081j](https://togithub.com/43081j)).
- Fixed `Node#walkRules()` types (by [@hudochenkov](https://togithub.com/hudochenkov)).
#### Other Changes
- Fixed docs (by [@paulshryock](https://togithub.com/paulshryock)).
### [`v8.3.11`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8311)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.10...8.3.11)
- Remove debugging code.
### [`v8.3.10`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8310)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.9...8.3.10)
- Fixed `Maximum call stack` issue of some source maps (by Yeting Li).
### [`v8.3.9`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#839)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.8...8.3.9)
- Replaced `nanocolors` to `picocolors`.
- Reduced package size.
### [`v8.3.8`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#838)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.7...8.3.8)
- Update `nanocolors`.
### [`v8.3.7`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#837)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.6...8.3.7)
- Replaced `colorette` to `nanocolors`.
- Added bug field to `package.json` (by Christian Oliff).
- Improved docs (by Andrew Bruce and Paul Shryock).
### [`v8.3.6`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#836)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.5...8.3.6)
- Fixed column in `missed semicolon` error (by [@Gusted](https://togithub.com/Gusted)).
### [`v8.3.5`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#835)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.4...8.3.5)
- Fixed broken AST detection.
### [`v8.3.4`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#834)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.3...8.3.4)
- Fixed broken AST detection.
### [`v8.3.3`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#833)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.2...8.3.3)
- Fixed broken AST on `postcss` dependency duplication in custom parsers.
### [`v8.3.2`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#832)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.1...8.3.2)
- Update changelog.
### [`v8.3.1`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8311)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.3.0...8.3.1)
- Remove debugging code.
### [`v8.3.0`](https://togithub.com/postcss/postcss/releases/tag/8.3.0): 8.3 “Duke Murmur”
[Compare Source](https://togithub.com/postcss/postcss/compare/8.2.15...8.3.0)
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**](https://tidelift.com/) with a Spotify-like subscription model supporting all projects from your lock file.
- Direct donations in [**PostCSS & Autoprefixer Open Collective**](https://opencollective.com/postcss#section-contributors).
#### 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](https://togithub.com/7rulnik) forked `source-map` 0.6 to [`source-map-js`](https://www.npmjs.com/package/source-map-js) and back-ported performance improvements from 0.7. In 8.3 we [switched](https://togithub.com/postcss/postcss/pull/1515) 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](https://togithub.com/gucong3000), PostCSS already parse CSS from HTML and JS files (CSS-in-JS templates and objects).
But his plugin need big updates. [@hudochenkov](https://togithub.com/hudochenkov) from [stylelint](https://stylelint.io/) team decided to create new parsers for styles inside [CSS-in-JS](https://togithub.com/stylelint/postcss-css-in-js), [HTML](https://togithub.com/stylelint/postcss-html), and [Markdown](https://togithub.com/stylelint/postcss-markdown).
He [suggested](https://togithub.com/postcss/postcss/issues/1498) adding new [`Document`](https://postcss.org/api/#document) node type to PostCSS AST to keep multiple `Root` nodes inside and JS/HTML/Markdown code blocks between these style blocks.
```js
const document = htmlParser(
''
)
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](https://togithub.com/jonathantneal) [suggested](https://togithub.com/postcss/postcss/pull/1572) a nice shortcut to change multiple properties in the node:
```js
decl.assign({ prop: 'word-wrap', value: 'break-word' })
```
### [`v8.2.15`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8215)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.2.14...8.2.15)
- Fixed `list` type definitions (by [@n19htz](https://togithub.com/n19htz)).
### [`v8.2.14`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8214)
[Compare Source](https://togithub.com/postcss/postcss/compare/8.2.13...8.2.14)
- Removed `source-map` from client-side bundle (by Barak Igal).
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.
This PR contains the following updates:
8.2.13
->8.4.21
Release Notes
postcss/postcss
### [`v8.4.21`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8421) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.20...8.4.21) - Fixed `Input#error` types (by Aleks Hudochenkov). ### [`v8.4.20`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8420) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.19...8.4.20) - Fixed source map generation for childless at-rules like `@layer`. ### [`v8.4.19`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8419) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.18...8.4.19) - Fixed whitespace preserving after AST transformations (by Romain Menke). ### [`v8.4.18`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8418) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.17...8.4.18) - Fixed an error on `absolute: true` with empty `sourceContent` (by Rene Haas). ### [`v8.4.17`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8417) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.16...8.4.17) - Fixed `Node.before()` unexpected behavior (by Romain Menke). - Added TOC to docs (by Mikhail Dedov). ### [`v8.4.16`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8416) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.15...8.4.16) - Fixed `Root` AST migration. ### [`v8.4.15`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8415) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.14...8.4.15) - Fixed AST normalization after using custom parser with old PostCSS AST. ### [`v8.4.14`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8414) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.13...8.4.14) - Print “old plugin API” warning only if plugin was used (by [@zardoy](https://togithub.com/zardoy)). ### [`v8.4.13`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8413) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.12...8.4.13) - Fixed `append()` error after using `.parent` (by Jordan Pittman). ### [`v8.4.12`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8412) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.11...8.4.12) - Fixed `package.funding` to have same value between all PostCSS packages. ### [`v8.4.11`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8411) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.10...8.4.11) - Fixed `Declaration#raws.value` type. ### [`v8.4.10`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8410) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.9...8.4.10) - Fixed `package.funding` URL format. ### [`v8.4.9`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#849) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.8...8.4.9) - Fixed `package.funding` (by Álvaro Mondéjar). ### [`v8.4.8`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#848) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.7...8.4.8) - Fixed end position in empty Custom Properties. ### [`v8.4.7`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#847) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.6...8.4.7) - Fixed `Node#warn()` type (by Masafumi Koba). - Fixed comment removal in values after `,`. ### [`v8.4.6`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#846) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.5...8.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 `.root` access for plugin-less case. ### [`v8.4.5`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#845) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.4...8.4.5) - Fixed `raws` types to make object extendable (by James Garbutt). - Moved from Yarn 1 to pnpm. ### [`v8.4.4`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#844) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.3...8.4.4) - Fixed absolute path in source map on zero plugins mode. ### [`v8.4.3`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#843) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.2...8.4.3) - Fixed `this.css.replace is not a function` error. ### [`v8.4.2`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8421) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.1...8.4.2) - Fixed `Input#error` types (by Aleks Hudochenkov). ### [`v8.4.1`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8419) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.0...8.4.1) - Fixed whitespace preserving after AST transformations (by Romain Menke). ### [`v8.4.0`](https://togithub.com/postcss/postcss/releases/tag/8.4.0): 8.4 “President Camio” [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.11...8.4.0) 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**](https://tidelift.com/) with a Spotify-like subscription model supporting all projects from your lock file. - Direct donations in [**PostCSS & Autoprefixer Open Collective**](https://opencollective.com/postcss#section-contributors). #### Rages for Errors and Warnings [@adalinesimonian](https://togithub.com/adalinesimonian), the author of amazing [Stylelint extension](https://togithub.com/stylelint/vscode-stylelint) for VS Code, added ranges to errors and warnings. ```js 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](https://togithub.com/bogdan0083) (with the help of [@WilhelmYakunin](https://togithub.com/WilhelmYakunin)) tries to solve the problem in another way. It allows us to save resources and remove the `PostCSS does nothing` warning. ```js // 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](https://npm-stat.com/charts.html?package=postcss) downloads, PostCSS has responsibility for the world’s resource spending. Together with [@7rulnik](https://togithub.com/7rulnik) we [reduced](https://togithub.com/7rulnik/source-map-js/pull/7) [`source-map-js`](https://togithub.com/7rulnik/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](https://packagephobia.com/result?p=postcss). With the huge popularity of PostCSS, it will free a lot of resources on our CIs. #### Migration from Jest to `uvu` [@kimoofey](https://togithub.com/kimoofey) refactored all tests from the popular Jest framework to small and fast [`uvu`](https://togithub.com/lukeed/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 `Processor` types. - Added `Stringifier` types (by [@43081j](https://togithub.com/43081j)). - Fixed types `Root` and `Document` in result values (by [@43081j](https://togithub.com/43081j)). - Fixed `Node#walkRules()` types (by [@hudochenkov](https://togithub.com/hudochenkov)). #### Other Changes - Fixed docs (by [@paulshryock](https://togithub.com/paulshryock)). ### [`v8.3.11`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8311) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.10...8.3.11) - Remove debugging code. ### [`v8.3.10`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8310) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.9...8.3.10) - Fixed `Maximum call stack` issue of some source maps (by Yeting Li). ### [`v8.3.9`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#839) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.8...8.3.9) - Replaced `nanocolors` to `picocolors`. - Reduced package size. ### [`v8.3.8`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#838) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.7...8.3.8) - Update `nanocolors`. ### [`v8.3.7`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#837) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.6...8.3.7) - Replaced `colorette` to `nanocolors`. - Added bug field to `package.json` (by Christian Oliff). - Improved docs (by Andrew Bruce and Paul Shryock). ### [`v8.3.6`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#836) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.5...8.3.6) - Fixed column in `missed semicolon` error (by [@Gusted](https://togithub.com/Gusted)). ### [`v8.3.5`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#835) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.4...8.3.5) - Fixed broken AST detection. ### [`v8.3.4`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#834) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.3...8.3.4) - Fixed broken AST detection. ### [`v8.3.3`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#833) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.2...8.3.3) - Fixed broken AST on `postcss` dependency duplication in custom parsers. ### [`v8.3.2`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#832) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.1...8.3.2) - Update changelog. ### [`v8.3.1`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8311) [Compare Source](https://togithub.com/postcss/postcss/compare/8.3.0...8.3.1) - Remove debugging code. ### [`v8.3.0`](https://togithub.com/postcss/postcss/releases/tag/8.3.0): 8.3 “Duke Murmur” [Compare Source](https://togithub.com/postcss/postcss/compare/8.2.15...8.3.0) 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**](https://tidelift.com/) with a Spotify-like subscription model supporting all projects from your lock file. - Direct donations in [**PostCSS & Autoprefixer Open Collective**](https://opencollective.com/postcss#section-contributors). #### 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](https://togithub.com/7rulnik) forked `source-map` 0.6 to [`source-map-js`](https://www.npmjs.com/package/source-map-js) and back-ported performance improvements from 0.7. In 8.3 we [switched](https://togithub.com/postcss/postcss/pull/1515) 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](https://togithub.com/gucong3000), PostCSS already parse CSS from HTML and JS files (CSS-in-JS templates and objects). But his plugin need big updates. [@hudochenkov](https://togithub.com/hudochenkov) from [stylelint](https://stylelint.io/) team decided to create new parsers for styles inside [CSS-in-JS](https://togithub.com/stylelint/postcss-css-in-js), [HTML](https://togithub.com/stylelint/postcss-html), and [Markdown](https://togithub.com/stylelint/postcss-markdown). He [suggested](https://togithub.com/postcss/postcss/issues/1498) adding new [`Document`](https://postcss.org/api/#document) node type to PostCSS AST to keep multiple `Root` nodes inside and JS/HTML/Markdown code blocks between these style blocks. ```js const document = htmlParser( '' ) 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](https://togithub.com/jonathantneal) [suggested](https://togithub.com/postcss/postcss/pull/1572) a nice shortcut to change multiple properties in the node: ```js decl.assign({ prop: 'word-wrap', value: 'break-word' }) ``` ### [`v8.2.15`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8215) [Compare Source](https://togithub.com/postcss/postcss/compare/8.2.14...8.2.15) - Fixed `list` type definitions (by [@n19htz](https://togithub.com/n19htz)). ### [`v8.2.14`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8214) [Compare Source](https://togithub.com/postcss/postcss/compare/8.2.13...8.2.14) - Removed `source-map` from client-side bundle (by Barak Igal).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.
This PR has been generated by Mend Renovate. View repository job log here.