Skip to content

Upgrade FE dependencies#1330

Merged
annavik merged 11 commits into
mainfrom
chore/update-deps
Jun 2, 2026
Merged

Upgrade FE dependencies#1330
annavik merged 11 commits into
mainfrom
chore/update-deps

Conversation

@annavik

@annavik annavik commented May 29, 2026

Copy link
Copy Markdown
Member

Upgrades dependencies to address security vulnerabilities and modernize the build toolchain.

  • Upgraded Node.js 18 → 22
  • Upgraded Vite 4 → 5 → 6, including ESM config migration and Sass modern API path fix
  • Upgraded axios 1.14.0 → 1.16.0, fixing 19 security vulnerabilities (SSRF, prototype pollution, header injection, and more)
  • Upgraded PostCSS to 8.5.10, fixing an XSS vulnerability
  • Moved build/type dependencies from dependencies to devDependencies

Summary by CodeRabbit

  • Chores

    • Updated Node.js version to v22.12.0.
    • Reorganized dependencies: moved test/type packages to devDependencies and updated several versions (including axios, lodash).
    • Added package manager specification.
  • Style

    • Standardized SCSS mixin syntax across the UI by removing trailing parentheses from mixin invocations.
  • Documentation

    • Adjusted README configuration wording and SCSS examples.
  • Refactor

    • Updated build configuration for SCSS preprocessor path handling.

@netlify

netlify Bot commented May 29, 2026

Copy link
Copy Markdown

Deploy Preview for antenna-preview canceled.

Name Link
🔨 Latest commit 286a1d5
🔍 Latest deploy log https://app.netlify.com/projects/antenna-preview/deploys/6a1f0df62d6b4a000809f50b

@netlify

netlify Bot commented May 29, 2026

Copy link
Copy Markdown

Deploy Preview for antenna-ssec canceled.

Name Link
🔨 Latest commit 286a1d5
🔍 Latest deploy log https://app.netlify.com/projects/antenna-ssec/deploys/6a1f0df6f0279300098fb983

@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR standardizes SCSS @include syntax across the UI, reorganizes ui/package.json (ESM + devDependencies), updates Node/Vite/docs, and adjusts one SessionDetailsPage layout class.

Changes

UI Maintenance and Dependencies

Layer / File(s) Summary
SCSS mixin invocation refactoring
ui/src/components/**/*.module.scss, ui/src/nova-ui-kit/components/**/*.module.scss, ui/src/pages/**/*.module.scss, ui/README.md
Removes trailing () from @include directives across ~60 SCSS ranges and updates the README SCSS example to match the new syntax (e.g., @include body-small();@include body-small;).
Package manifest and dependency restructuring
ui/package.json
Adds "type": "module", moves testing/type packages into devDependencies, updates dependency versions (e.g., axios, lodash), removes tooling from dependencies, and adds packageManager.
Build configuration and documentation updates
ui/.nvmrc, ui/vite.config.ts, ui/README.md
Updates Node version in .nvmrc to v22.12.0, changes Vite SCSS @use path to absolute /src/..., and adjusts README "Configuration" paragraph placement/formatting.
Component layout refinement
ui/src/pages/session-details/session-details.tsx
Switches the Charts tab inner wrapper from space-y-4 to grid gap-6 (presentation-only change).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • mihow

Poem

🐰 I hopped through mixins, trimmed their curls,
Moved packages to tidy little whirls,
Node leapt up to twenty-two today,
Vite paths straightened, charts in gentle sway,
A tidy UI trail in my wake — hooray!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title 'Upgrade FE dependencies' clearly and directly describes the primary change—upgrading frontend dependencies—which is reflected across all modified files including package.json, .nvmrc, and vite.config.ts.
Description check ✅ Passed The PR description is concise and well-structured, covering the main objectives with specific version upgrades, security fixes, and dependency reorganization clearly stated.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/update-deps

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ui/package.json`:
- Around line 85-97: The dependency `@vitejs/plugin-react` currently at ^4.1.1
declares a peerDependency on vite ^4.2.0 which conflicts with our vite: 6;
update the `@vitejs/plugin-react` entry in package.json to a release that supports
Vite 6 (e.g., bump to a v5+ compatible semver such as ^5.0.0 or the latest
v5.x/v6-compatible tag) so the plugin's peerDependency aligns with vite: 6 and
prevents peer-dependency warnings; update package.json's "`@vitejs/plugin-react`"
value accordingly and run install to verify no peer conflicts.

In `@ui/src/components/form/layout/layout.module.scss`:
- Around line 19-20: The Stylelint rule violation is caused by missing blank
line before the declaration `color: var(--color-foreground);`; open the
`@include body-large;` and subsequent `color` declaration in the SCSS module and
insert a single empty line between `@include body-large;` and `color:
var(--color-foreground);` so the declaration-empty-line-before rule is
satisfied.

In `@ui/src/components/navigation/navigation-bar.module.scss`:
- Around line 60-64: The .itemCount rule triggers Stylelint's
declaration-empty-line-before; open the .itemCount selector and insert a blank
line after the `@include` body-xlarge; line and before the font-weight declaration
so there is an empty line between the mixin include and font-weight, keeping the
rest of the block unchanged to satisfy declaration-empty-line-before for the
.itemCount rule.

In `@ui/src/components/terms-of-service-info/terms-of-service-info.module.scss`:
- Around line 5-6: Stylelint complains about missing empty line before
declarations in the .wrapper rule; open terms-of-service-info.module.scss,
locate the .wrapper block and the `@include` body-small; mixin invocation, and
insert a single blank line immediately after the "`@include` body-small;" line so
there is an empty line before the following "padding: 8px 16px;" declaration to
satisfy the declaration-empty-line-before rule.

In `@ui/src/nova-ui-kit/components/page-header/page-header.module.scss`:
- Around line 20-21: The .title block in page-header.module.scss violates the
stylelint declaration-empty-line-before rule because the mixin call `@include`
body-large; is immediately followed by font-weight: 600; — insert a single blank
line between `@include` body-large; and font-weight: 600; (in the .title selector)
so there's an empty line before the subsequent declaration and the linter
passes.

In
`@ui/src/nova-ui-kit/components/table/basic-table-cell/basic-table-cell.module.scss`:
- Around line 6-8: In the .label rule replace the deprecated "word-break:
break-word" with the modern equivalent "overflow-wrap: anywhere" and add a
missing blank line after the "`@include` body-base;" statement; update the
selector that contains these styles (the `.label` rule in
basic-table-cell.module.scss) to use overflow-wrap: anywhere and ensure there is
an empty line after the `@include` body-base declaration so the file follows the
requested formatting.

In `@ui/src/pages/auth/auth.module.scss`:
- Around line 44-45: Add a blank line before the property declarations to
satisfy the Stylelint rule: locate the rule blocks containing the mixin call
"`@include` heading-small" followed by "color: var(--color-primary);" and the
similar block further down (the second occurrence around the 69-70 area) and
insert an empty line before each "color: ..." declaration so there is a blank
line between the preceding declaration/mixin and the color declaration.

In
`@ui/src/pages/occurrence-details/id-quick-actions/id-quick-actions.module.scss`:
- Around line 13-14: Add a blank line after each `@include` to satisfy stylelint's
declaration-empty-line-before rule: locate the SCSS blocks containing the
`@include` body-small; (and the other `@include` around lines 21-22) and insert an
empty line between the `@include` statement and the following declarations (e.g.,
before font-weight: 600) so each mixin include is followed by a blank line.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: dcad608d-cee1-4ae9-a408-2c1d8e778572

📥 Commits

Reviewing files that changed from the base of the PR and between 4aafddf and 73bf9ab.

⛔ Files ignored due to path filters (1)
  • ui/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (45)
  • ui/.nvmrc
  • ui/README.md
  • ui/package.json
  • ui/postcss.config.cjs
  • ui/src/components/blueprint-collection/blueprint-collection.module.scss
  • ui/src/components/breadcrumbs/breadcrumbs.module.scss
  • ui/src/components/cookie-dialog/cookie-dialog.module.scss
  • ui/src/components/fetch-info/fetch-info.module.scss
  • ui/src/components/form/layout/layout.module.scss
  • ui/src/components/header/user-info-dialog/user-info-dialog.module.scss
  • ui/src/components/header/version-info/version-info.module.scss
  • ui/src/components/info-page/info-page.module.scss
  • ui/src/components/navigation/navigation-bar.module.scss
  • ui/src/components/terms-of-service-info/terms-of-service-info.module.scss
  • ui/src/nova-ui-kit/components/badge/badge.module.scss
  • ui/src/nova-ui-kit/components/card/card.module.scss
  • ui/src/nova-ui-kit/components/checkbox/checkbox.module.scss
  • ui/src/nova-ui-kit/components/combo-box/styles.module.scss
  • ui/src/nova-ui-kit/components/dialog/dialog.module.scss
  • ui/src/nova-ui-kit/components/form-stepper/form-stepper.module.scss
  • ui/src/nova-ui-kit/components/image-carousel/image-carousel.module.scss
  • ui/src/nova-ui-kit/components/info-block/info-block.module.scss
  • ui/src/nova-ui-kit/components/input/input.module.scss
  • ui/src/nova-ui-kit/components/page-header/page-header.module.scss
  • ui/src/nova-ui-kit/components/pagination-bar/info-label/info-label.module.scss
  • ui/src/nova-ui-kit/components/pagination-bar/page-button/page-button.module.scss
  • ui/src/nova-ui-kit/components/pagination-bar/pagination-bar.module.scss
  • ui/src/nova-ui-kit/components/table/basic-table-cell/basic-table-cell.module.scss
  • ui/src/nova-ui-kit/components/table/status-table-cell/status-table-cell.module.scss
  • ui/src/nova-ui-kit/components/table/table-header/table-header.module.scss
  • ui/src/nova-ui-kit/components/tabs/tabs.module.scss
  • ui/src/nova-ui-kit/components/wizard/status-bullet/status-bullet.module.scss
  • ui/src/nova-ui-kit/components/wizard/wizard.module.scss
  • ui/src/pages/algorithm-details/styles.module.scss
  • ui/src/pages/auth/auth.module.scss
  • ui/src/pages/job-details/job-stage-label/job-stage-label.module.scss
  • ui/src/pages/occurrence-details/id-quick-actions/id-quick-actions.module.scss
  • ui/src/pages/occurrence-details/status-label/status-label.module.scss
  • ui/src/pages/occurrence-details/taxonomy-info/taxonomy-info.module.scss
  • ui/src/pages/pipeline-details/styles.module.scss
  • ui/src/pages/project/entities/styles.module.scss
  • ui/src/pages/project/processing-services/processing-services.module.scss
  • ui/src/pages/project/storage/storage.module.scss
  • ui/src/pages/session-details/session-details.tsx
  • ui/vite.config.ts

Comment thread ui/package.json Outdated
Comment thread ui/src/components/form/layout/layout.module.scss
Comment thread ui/src/components/navigation/navigation-bar.module.scss
Comment thread ui/src/nova-ui-kit/components/page-header/page-header.module.scss
Comment thread ui/src/pages/auth/auth.module.scss
@annavik annavik changed the title Upgrade dependencies Upgrade FE dependencies Jun 2, 2026
@annavik annavik merged commit ee0f1fe into main Jun 2, 2026
9 of 11 checks passed
@annavik annavik deleted the chore/update-deps branch June 2, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant