Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Aug 6, 2024

This PR contains the following updates:

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

GitHub Vulnerability Alerts

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

Compare Source

v8.4.30

Compare Source

  • Improved source map performance (by Romain Menke).

v8.4.29

Compare Source

  • Fixed Node#source.offset (by Ido Rosenthal).
  • Fixed docs (by Christian Oliff).

v8.4.28

Compare Source

  • Fixed Root.source.end for better source map (by Romain Menke).
  • Fixed Result.root types when process() has no parser.

v8.4.27

Compare Source

  • Fixed Container clone methods types.

v8.4.26

Compare Source

  • Fixed clone methods types.

v8.4.25

Compare Source

v8.4.24

Compare Source

  • Fixed Plugin types.

v8.4.23

Compare Source

  • Fixed warnings in TypeDoc.

v8.4.22

Compare Source

  • Fixed TypeScript support with node16 (by Remco Haszing).

v8.4.21

Compare Source

  • Fixed Input#error types (by Aleks Hudochenkov).

v8.4.20

Compare Source

  • Fixed source map generation for childless at-rules like @layer.

v8.4.19

Compare Source

  • Fixed whitespace preserving after AST transformations (by Romain Menke).

v8.4.18

Compare Source

  • Fixed an error on absolute: true with empty sourceContent (by Rene Haas).

v8.4.17

Compare Source

  • Fixed Node.before() unexpected behavior (by Romain Menke).
  • Added TOC to docs (by Mikhail Dedov).

v8.4.16

Compare Source

  • Fixed Root AST migration.

v8.4.15

Compare Source

  • Fixed AST normalization after using custom parser with old PostCSS AST.

v8.4.14

Compare Source

  • Print “old plugin API” warning only if plugin was used (by @​zardoy).

v8.4.13

Compare Source

  • Fixed append() error after using .parent (by Jordan Pittman).

v8.4.12

Compare Source

  • Fixed package.funding to have same value between all PostCSS packages.

v8.4.11

Compare Source

  • Fixed Declaration#raws.value type.

v8.4.10

Compare Source

  • Fixed package.funding URL format.

v8.4.9

Compare Source

  • Fixed package.funding (by Álvaro Mondéjar).

v8.4.8

Compare Source

  • Fixed end position in empty Custom Properties.

v8.4.7

Compare Source

  • Fixed Node#warn() type (by Masafumi Koba).
  • Fixed comment removal in values after ,.

v8.4.6

Compare Source

  • 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

Compare Source

  • Fixed raws types to make object extendable (by James Garbutt).
  • Moved from Yarn 1 to pnpm.

v8.4.4

Compare Source

v8.4.3

Compare Source

v8.4.2

Compare Source

  • Fixed Node#source.offset (by Ido Rosenthal).
  • Fixed docs (by Christian Oliff).

v8.4.1

Compare Source

  • Fixed whitespace preserving after AST transformations (by Romain Menke).

v8.4.0: 8.4 “President Camio”

Compare Source

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:

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.

PostCSS install size reduction

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 Processor types.
  • Added Stringifier types (by @​43081j).
  • Fixed types Root and Document in result values (by @​43081j).
  • Fixed Node#walkRules() types (by @​hudochenkov).

Other Changes

v8.3.11

Compare Source

  • Remove debugging code.

v8.3.10

Compare Source

  • Fixed Maximum call stack issue of some source maps (by Yeting Li).

v8.3.9

Compare Source

  • Replaced nanocolors to picocolors.
  • Reduced package size.

v8.3.8

Compare Source

  • Update nanocolors.

v8.3.7

Compare Source

  • Replaced colorette to nanocolors.
  • Added bug field to package.json (by Christian Oliff).
  • Improved docs (by Andrew Bruce and Paul Shryock).

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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the automerge label Aug 6, 2024
@renovate
Copy link
Contributor Author

renovate bot commented Aug 6, 2024

⚠️ 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: yarn.lock
➤ YN0000: ┌ Resolution step
➤ YN0002: │ @morrisoncole/jisho-anki@workspace:. doesn't provide @babel/plugin-syntax-flow (p60839), requested by eslint-plugin-flowtype
➤ YN0002: │ @morrisoncole/jisho-anki@workspace:. doesn't provide @babel/plugin-transform-react-jsx (p4f816), requested by eslint-plugin-flowtype
➤ YN0002: │ @morrisoncole/jisho-anki@workspace:. doesn't provide @popperjs/core (p4e8ab), requested by bootstrap
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides @typescript-eslint/eslint-plugin (p887dc) with version 5.41.0, which doesn't satisfy what eslint-config-react-app requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides @typescript-eslint/parser (p0fa80) with version 5.0.0, which doesn't satisfy what eslint-config-react-app requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides eslint (p2cf27) with version 8.26.0, which doesn't satisfy what eslint-config-react-app requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides eslint (p295dd) with version 8.26.0, which doesn't satisfy what eslint-loader requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides eslint (p13ec7) with version 8.26.0, which doesn't satisfy what eslint-plugin-react requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides eslint-plugin-flowtype (pedd1f) with version 8.0.3, which doesn't satisfy what eslint-config-react-app requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides react (pc21a0) with version 18.2.0, which doesn't satisfy what react-dom requests
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides react (p611b5) with version 18.2.0, which doesn't satisfy what reactstrap and some of its descendants request
➤ YN0060: │ @morrisoncole/jisho-anki@workspace:. provides webpack (pae072) with version 5.74.0, which doesn't satisfy what optimize-css-assets-webpack-plugin requests
➤ YN0002: │ react-dev-utils@npm:11.0.4 doesn't provide typescript (p79ddf), requested by fork-ts-checker-webpack-plugin
➤ YN0002: │ react-dev-utils@npm:11.0.4 doesn't provide webpack (p2af19), requested by fork-ts-checker-webpack-plugin
➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
➤ YN0000: └ Completed in 0s 618ms
➤ YN0000: ┌ Fetch step
➤ YN0001: │ Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
    at PassThrough.onclose (node:internal/streams/end-of-stream:166:30)
    at PassThrough.emit (node:events:519:28)
    at emitCloseNT (node:internal/streams/destroy:148:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
➤ YN0001: │ Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
    at PassThrough.onclose (node:internal/streams/end-of-stream:166:30)
    at PassThrough.emit (node:events:519:28)
    at emitCloseNT (node:internal/streams/destroy:148:10)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
➤ YN0013: │ 1608 packages were already cached, 2 had to be fetched
➤ YN0000: └ Completed in 1s 186ms
➤ YN0000: Failed with errors in 1s 808ms

@renovate renovate bot changed the title chore(deps): update dependency postcss to v8.4.31 [security] chore(deps): update dependency postcss to v8.4.31 [security] - autoclosed Dec 8, 2024
@renovate renovate bot closed this Dec 8, 2024
@renovate renovate bot deleted the renovate/npm-postcss-vulnerability branch December 8, 2024 18:42
@renovate renovate bot changed the title chore(deps): update dependency postcss to v8.4.31 [security] - autoclosed chore(deps): update dependency postcss to v8.4.31 [security] Dec 8, 2024
@renovate renovate bot reopened this Dec 8, 2024
@renovate renovate bot force-pushed the renovate/npm-postcss-vulnerability branch from 71e2123 to 5ca7b28 Compare December 8, 2024 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant