refactor: Bump postcss from 8.5.19 to 8.5.28 and css-loader from 7.1.4 to 7.1.5 - #3463
Conversation
|
🚀 Thanks for opening this pull request! We appreciate your effort in improving the project. Please let us know once your pull request is ready for review. Tip
Note Please respond to review comments from AI agents just like you would to comments from a human reviewer. Let the reviewer resolve their own comments, unless they have reviewed and accepted your commit, or agreed with your explanation for why the feedback was incorrect. Caution Pull requests must be written using an AI agent with human supervision. Pull requests written entirely by a human will likely be rejected, because of lower code quality, higher review effort and the higher risk of introducing bugs. Please note that AI review comments on this pull request alone do not satisfy this requirement. Our CI and AI review are safeguards, not development tools. If many issues are flagged, rethink your development approach. Invest more effort in planning and design rather than using review cycles to fix low-quality code. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe dependency manifest and lockfile update ChangesDependency updates
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~4 minutes Merge Risk: ⚪ Minimal · up to The updated dependencies address the reported CSS BOM behavior, and no concrete merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 7✅ Passed checks (7 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
🎉 This change has been released in version 9.3.0-alpha.9 |
Pull Request
Issue
Closes #3435
Bumps the transitive dev dependency
postcssfrom 8.5.19 to 8.5.28 to fix the Dependabot security alert GHSA-fxqj-rqcc-2cmp (medium, vulnerable<= 8.5.22, patched in 8.5.23). It also bumps the direct dev dependencycss-loaderfrom 7.1.4 to 7.1.5, which is needed to keep the production CSS output unchanged with the newpostcss(see below).Approach
This supersedes the bot target (8.5.26) with 8.5.28, the latest version in range, which
npm update postcssresolves.Lock file changes:
postcss8.5.19 → 8.5.28, its dependencynanoid3.3.16 → 3.3.19, andcss-loader7.1.4 → 7.1.5. Inpackage.json, only thecss-loaderdevDependency changes, pinned to7.1.5.Changes
postcss
AtRule#paramsis set after; fixed mixing AST error on warnings.opts.fromfor security reasons (fixes GHSA-fxqj-rqcc-2cmp).list.split()for non-string values.list.split()regression; track symlinks in path protection in source map loading./*#; fixed*hack before a comment in custom properties; fixed empty values inlist.comma()and whitespace-only values inlist.space(); fixed rule end position on space before semicolon; fixed types.css-loader
Why
css-loader7.1.5 is includedBefore 8.5.24,
postcssremoved a leading byte order mark (U+FEFF) from its output. Since 8.5.24 it keeps the BOM if the input had one. In production builds (production.config.js,publish.config.js),sass-loadercompiles in compressed style. Dart Sass then adds a BOM to any stylesheet whose output contains non-ASCII characters. Two stylesheets here have such characters:ScrollHint.scss(content: '╲╱') andBrowserMenu.scss(content: '›').With
css-loader7.1.4, their CSS strings in the bundle start with.style-loaderinjects each module as a<style>element, and the browser reads the BOM as part of the first selector. That first rule then never matches: the scroll hint arrow andBrowserMenu's.wrap { display: inline-block }. The same issue was reported to postcss in postcss/postcss#2133, andcss-loader7.1.5 fixes it by stripping the BOM before calling postcss.Local production build check. CI does not cover this: the webpack build succeeds either way, and the problem only appears in the browser at runtime. I ran
npm ciandnpm run buildlocally and searched the emitted bundles:css-loader7.1.5 +postcss8.5.28 (this PR): no BOM in any CSS string. TheScrollHintandBrowserMenuCSS strings start directly with their selectors.css-loader7.1.4 +postcss8.5.28: both CSS strings start with.The 8.5.23 source map change does not affect the build, because
css-loaderalways passesfromand provides the previous map explicitly.Breaking Changes
None
Code Changes Required
None. Only
package.jsonandpackage-lock.jsonchange.Tasks
No tasks apply; this PR only changes the manifest and lock file.
Summary by CodeRabbit