chore(deps): consolidate JS dependency upgrades (security + maintenance)#12559
Merged
Conversation
Used via named method imports (debounce, chunk, orderBy, groupBy, uniq, uniqBy, fromPairs) — all stable 4.x APIs unchanged in this release.
…1641) Transitive dep via @ericblade/quagga2 override — not imported directly.
Fixes CVE-2026-29074 (DoS via entity expansion in DOCTYPE, billion laughs). API migration: extendDefaultPlugins() removed in v3. Replaced with preset-default plugin + overrides map in conf/svgo.config.js. Re-ran npm run svg-min with the new version; SVG output included. Verified: `make js` builds cleanly, svg-min processes all static SVGs.
…[SECURITY] Lockfile update covering all four security dep upgrades in this batch. Vite resolved to 8.0.5 (was 8.0.3) — lock-only bump, closes #12305.
This was referenced May 3, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR consolidates multiple JS security dependency upgrades (lodash, qs override, svgo, vite lock) and re-optimizes the repo’s SVG assets using the updated SVGO configuration.
Changes:
- Bump
lodashto 4.18.1,svgoto v4, andqs(override) to 6.14.1 inpackage.json. - Migrate SVGO config to SVGO v4’s
preset-default+overridesstructure. - Re-run SVG optimization across
static/images/**(many SVG diffs).
Reviewed changes
Copilot reviewed 2 out of 56 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| static/images/twitter.svg | Re-optimized SVG output via SVGO v4 |
| static/images/tweet.svg | Re-optimized SVG output via SVGO v4 |
| static/images/search-icon.svg | Re-optimized SVG output via SVGO v4 |
| static/images/pinterest.svg | Re-optimized SVG output via SVGO v4 |
| static/images/openlibrary-icon.svg | Re-optimized SVG output via SVGO v4 |
| static/images/onboarding/reading_goal.svg | Re-optimized SVG output via SVGO v4 (also removed attribution comment) |
| static/images/nav-arrow.svg | Re-optimized SVG output via SVGO v4 |
| static/images/language-icon.svg | Re-optimized SVG output via SVGO v4 |
| static/images/identifier_icons/wikidata.svg | Re-optimized SVG output via SVGO v4 |
| static/images/identifier_icons/google_scholar.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/share.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/right-chevron.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/reviews.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/read aloud.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/open-book.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/octicon-link-external-24.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/notes.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/icon_slick-arrow-right.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/icon_search-inside.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/icon_eye-open.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/icon_eye-closed.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/icon_check-circle.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/down-chevron.svg | Re-optimized SVG output via SVGO v4 |
| static/images/icons/barcode_scanner.svg | Re-optimized SVG output via SVGO v4 |
| static/images/hamburger-icon.svg | Re-optimized SVG output via SVGO v4 |
| static/images/github.svg | Re-optimized SVG output via SVGO v4 |
| static/images/facebook.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/science_fiction.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/science.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/romance.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/religion.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/recipes.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/plays.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/painting-palette.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/mystery_and_detective_stories.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/mysteries.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/music.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/medicine.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/interview.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/history.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/fantasy.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/church.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/biographies.svg | Re-optimized SVG output via SVGO v4 |
| static/images/categories/art.svg | Re-optimized SVG output via SVGO v4 |
| static/images/bubble-loader.svg | Re-optimized SVG output via SVGO v4 (currently stripped to empty SVG) |
| static/images/bsky.svg | Re-optimized SVG output via SVGO v4 |
| package.json | Dependency upgrades for lodash/svgo and qs override |
| conf/svgo.config.js | SVGO v4 config migration (preset-default + overrides) |
| convertPathData: false, | ||
| removeDesc: false, | ||
| removeTitle: false, | ||
| removeViewBox: false, |
Patch bump. Used in BarcodeScanner via createWorker/createScheduler — stable 4.x APIs unchanged.
…n-vue 6.0.6, @babel/eslint-parser 7.28.6, mini-css-extract 2.10.2)
This was referenced May 3, 2026
…loader 7.1.4, diff 4.0.4)
This was referenced May 3, 2026
Member
Author
1 task
Member
Author
|
Assigning myself as the reviewer for this PR (as it is a collection of PRs originally opened by renovatebot) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consolidates 11 open Renovate PRs into a single tested and verified upgrade. All packages were installed and tested in Docker (full OL stack on port 8080 with
OL_MOUNT_DIRmount) before opening this PR.🔴 Security upgrades
lodash — Named method imports only; all stable 4.x APIs. Risk: low.
qs — Transitive dep via
overrides["@ericblade/quagga2"], not imported directly. Risk: low.svgo 2.3.1 → 4 — Fixes CVE-2026-29074. Required config migration:
extendDefaultPlugins()removed in v3, replaced withpreset-default+overridesinconf/svgo.config.js. Re-rannpm run svg-min; re-optimized SVG output included. Build-time only. Risk: medium.vite — Lock-only patch, build-time only. Risk: very low.
🔧 Maintenance upgrades
All maintenance packages are dev/build tools not shipped to browsers. Risk: very low.
Testing
All packages installed in Docker and verified:
Jest results: 20 test suites, 388 tests passed, 0 failures.
HTTP check: App serves 200 on
/and/search?q=testafter JS rebuild.Checklist
make js)npm run svg-min)References
Closes #11795, #11641, #12010, #12305, #10975, #12447, #12200, #11126, #12560, #12561, #12563