Skip to content

chore: centralize react/react-dom/@types/react in pnpm catalog#624

Merged
ankit-thesys merged 1 commit into
thesysdev:mainfrom
Shinyaigeek:chore/catalog-react
Jun 10, 2026
Merged

chore: centralize react/react-dom/@types/react in pnpm catalog#624
ankit-thesys merged 1 commit into
thesysdev:mainfrom
Shinyaigeek:chore/catalog-react

Conversation

@Shinyaigeek

Copy link
Copy Markdown
Contributor

Summary

Follow-up to the pnpm catalog work (#612). Centralizes the React-related dependencies through the catalog: protocol so their versions live in one place.

The react / react-dom peer ranges were already aligned across the library packages but declared inline in each package.json, and @types/react was split across three equivalent-but-different ranges.

Changes

Added to the catalog in pnpm-workspace.yaml:

dep catalog version
react ^18.3.1 || ^19.0.0
react-dom ^18.0.0 || ^19.0.0
@types/react >=19.0.0

Replaced the inline versions with catalog: in:

  • react-langreact (peer), @types/react (^19.0.0 → catalog)
  • react-uireact, react-dom (peer), @types/react (>=19.0.0 → catalog)
  • react-headlessreact (peer), @types/react (>=19.0.0 → catalog)
  • react-emailreact, react-dom (peer), @types/react (^19 → catalog)

@types/react is unified to >=19.0.0 (matching react-ui / react-headless).

Intentionally left as-is

  • browser-bundle react / react-dom are runtime dependencies pinned to ^19.0.0 (the bundled version), not the wider peer range — they shouldn't share the peer catalog entry.
  • @types/react-dom is used in a single package, so there's no version to centralize.
  • openui-cli chat template is outside the workspace (!**/src/templates/**), so catalog: would not resolve there.

Verification

  • pnpm install resolves cleanly (remaining peer warnings are pre-existing and unrelated)
  • @openuidev/react-headless tests: 70 passed / 70
  • react-lang / react-ui have no test files (--passWithNoTests)

🤖 Generated with Claude Code

The react peer ranges were already aligned across the library packages
(react `^18.3.1 || ^19.0.0`, react-dom `^18.0.0 || ^19.0.0`) but declared
inline in each package, and @types/react was split across three ranges
(`^19.0.0`, `^19`, `>=19.0.0`).

Add react, react-dom and @types/react to the catalog and reference them
via the catalog: protocol from react-lang, react-ui, react-headless and
react-email. @types/react is unified to `>=19.0.0`.

browser-bundle's react/react-dom stay explicit: they are runtime
dependencies pinned to `^19.0.0` (the bundled version), not the wider
peer range, so they intentionally don't share the catalog entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Shinyaigeek Shinyaigeek force-pushed the chore/catalog-react branch from f1cb652 to 8160b8b Compare June 9, 2026 10:43
@Shinyaigeek Shinyaigeek marked this pull request as ready for review June 9, 2026 11:12
@ankit-thesys ankit-thesys self-requested a review June 10, 2026 09:09
@ankit-thesys ankit-thesys self-assigned this Jun 10, 2026

@ankit-thesys ankit-thesys 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.

Looks Good.

Thank you for your contribution :)

@ankit-thesys ankit-thesys merged commit 777a9f2 into thesysdev:main Jun 10, 2026
1 check passed
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.

2 participants