Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 10 additions & 15 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"test": "node scripts/check-core.mjs && node scripts/check-contract.mjs && node scripts/check-fixtures.mjs && node scripts/check-repo.mjs"
},
"dependencies": {
"react": "18.3.1",
"react": "19.2.6",
"react-dom": "18.3.1"
Comment on lines +27 to 28

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: react-dom must be upgraded to match React 19.

React and react-dom must be kept at the same major version. The upgrade guide explicitly requires installing both together. Having React at 19.2.6 while react-dom remains at 18.3.1 will cause runtime incompatibilities and unpredictable behavior.

🔧 Required fix
   "react": "19.2.6",
-  "react-dom": "18.3.1"
+  "react-dom": "19.2.6"

As per coding guidelines: "Install: npm install --save-exact react@^19 react-dom@^19"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"react": "19.2.6",
"react-dom": "18.3.1"
"react": "19.2.6",
"react-dom": "19.2.6"
🤖 Prompt for 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.

In `@package.json` around lines 27 - 28, Package.json lists "react": "19.2.6" but
"react-dom": "18.3.1", causing a major-version mismatch; update the react-dom
dependency to a React 19 release that matches (e.g., "react-dom": "19.2.6" or a
caret range ^19) and reinstall with exact versions (follow the guideline: npm
install --save-exact react@^19 react-dom@^19) so both "react" and "react-dom"
entries are the same major version.

}
}
4 changes: 2 additions & 2 deletions web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
"dependencies": {
"@vercel/analytics": "^2.0.1",
"next": "16.2.6",
"react": "18.3.1",
"react": "19.2.6",
"react-dom": "18.3.1"
Comment on lines +13 to 14

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Critical: react-dom must be upgraded to match React 19.

React and react-dom must be kept at the same major version. Having React at 19.2.6 while react-dom remains at 18.3.1 will cause runtime incompatibilities.

🔧 Required fix
   "react": "19.2.6",
-  "react-dom": "18.3.1"
+  "react-dom": "19.2.6"

As per coding guidelines: "Install: npm install --save-exact react@^19 react-dom@^19"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"react": "19.2.6",
"react-dom": "18.3.1"
"react": "19.2.6",
"react-dom": "19.2.6"
🤖 Prompt for 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.

In `@web/package.json` around lines 13 - 14, The package.json has mismatched major
versions for React ("react": "19.2.6") and react-dom ("react-dom": "18.3.1");
update react-dom to a 19.x exact version to match React (e.g., set "react-dom"
to "19.2.6" or run the command from guidelines: npm install --save-exact
react@^19 react-dom@^19) so both "react" and "react-dom" share the same major
version.

},
"devDependencies": {
"@types/node": "20.11.17",
"@types/react": "18.3.3",
"@types/react": "19.2.15",
"@types/react-dom": "18.3.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Major: @types/react-dom should be upgraded to match React 19.

The TypeScript type definitions for react-dom should be upgraded to version ^19 to match the upgraded @types/react at 19.2.15 and the target React version 19.2.6.

🔧 Recommended fix
   "`@types/react`": "19.2.15",
-  "`@types/react-dom`": "18.3.0",
+  "`@types/react-dom`": "19.3.0",

As per coding guidelines: "Update TypeScript types: npm install --save-exact @types/react@^19 @types/react-dom@^19"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"@types/react-dom": "18.3.0",
"`@types/react-dom`": "19.3.0",
🤖 Prompt for 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.

In `@web/package.json` at line 19, Update the `@types/react-dom` dependency in
package.json from "18.3.0" to a v19 range to match `@types/react`@19 and React 19
(e.g., change "`@types/react-dom`" to "^19"); then run the exact install command
from the guideline (npm install --save-exact `@types/react`@^19
`@types/react-dom`@^19) and commit the updated package.json and lockfile so type
definitions and CI type checks align with React 19.

"typescript": "5.4.5"
}
Comment on lines 10 to 21

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for removed/deprecated React APIs in the web directory

echo "=== Checking for propTypes usage ==="
rg -n --type=ts --type=tsx --type=js --type=jsx -C2 '\bpropTypes\s*=' web/

echo "=== Checking for string refs ==="
rg -n --type=ts --type=tsx --type=js --type=jsx -C2 'ref\s*=\s*["\']' web/

echo "=== Checking for legacy Context APIs ==="
rg -n --type=ts --type=tsx --type=js --type=jsx -C2 '\b(contextTypes|getChildContext)\b' web/

echo "=== Checking for ReactDOM.render usage ==="
rg -n --type=ts --type=tsx --type=js --type=jsx -C2 'ReactDOM\.(render|hydrate|unmountComponentAtNode)' web/

echo "=== Checking for findDOMNode usage ==="
rg -n --type=ts --type=tsx --type=js --type=jsx -C2 '\bfindDOMNode\b' web/

echo "=== Checking for createFactory usage ==="
rg -n --type=ts --type=tsx --type=js --type=jsx -C2 '\bcreateFactory\b' web/

Repository: p-to-q/aleph

Length of output: 355


🌐 Web query:

What codemods are recommended for upgrading to React 19?

💡 Result:

Recommended React 19 upgrade codemods (run via the official codemod CLI): 1) Run the full React 19 “migration recipe” (recommended for most projects) - Command: npx codemod@latest react/19/migration-recipe [1] - This runs the React 19 codemods included in the recipe: replace-reactdom-render, replace-string-ref, replace-act-import, replace-use-form-state, and prop-types-typescript [1]. 2) TypeScript-focused types migration (separate preset) - The React team also provides types-react-codemod to migrate “most type related breaking changes” for React 19 [1]. - Command shown in the upgrade guide: npx types-react-codemod@latest preset-19./path-... [1]. 3) Individual codemods (if you prefer running one-by-one) They are available in the react-codemod repository and can be run with npx codemod react/19/ --target [2]. The recipe codemods include: - react/19/replace-reactdom-render [2] - react/19/replace-string-ref [2] - react/19/replace-act-import [2] - react/19/replace-use-form-state [2] (Other codemods exist in the repo as well, but the upgrade guide’s recipe above is the “recommended” starting point.) [1][2]

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== File types in web/ (quick check) ==="
ls -1 web | head -n 50 || true

GLOBS=( -g '*.ts' -g '*.tsx' -g '*.js' -g '*.jsx' )

run_search () {
  local label="$1"; shift
  echo "=== $label ==="
  # shellcheck disable=SC2068
  rg -n -C2 "$@" web "${GLOBS[@]}" --max-count 50 || echo "(no matches)"
  echo
}

run_search "propTypes usage (function components)" '\bpropTypes\s*='
run_search "defaultProps usage" '\bdefaultProps\s*='
run_search "string refs (ref=\"...\" / ref='...')" 'ref\s*=\s*["'\'']'
run_search "legacy Context APIs (contextTypes/getChildContext)" '\b(contextTypes|getChildContext)\b'
run_search "ReactDOM.(render|hydrate|unmountComponentAtNode)" 'ReactDOM\.(render|hydrate|unmountComponentAtNode)'
run_search "findDOMNode usage" '\bfindDOMNode\b'
run_search "createFactory usage" '\bcreateFactory\b'

echo "=== createRoot usage (for ReactDOM.render replacement) ==="
rg -n -C2 'createRoot\s*\(' web "${GLOBS[@]}" --max-count 50 || echo "(no matches)"
echo

echo "=== Error handling / deprecated ref callback returns (heuristic) ==="
# Look for common bad pattern: ref={(...) => { return ... }} (heuristic only)
rg -n -C2 'ref\s*=\s*\{\s*\(?[A-Za-z0-9_,\s]*\)?\s*=>\s*\{\s*return\b' web "${GLOBS[@]}" --max-count 50 || echo "(no heuristic matches)"
echo

echo "=== Look for codemod/migration-recipe evidence in repo ==="
rg -n --max-count 50 'codemod@latest|react/19/migration-recipe|types-react-codemod|preset-19|replace-reactdom-render|replace-string-ref' . || echo "(no matches)"

Repository: p-to-q/aleph

Length of output: 806


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== web/package.json (lines 1-80) ==="
cat -n web/package.json | sed -n '1,80p'

echo
echo "=== Grep for codemod/migration references in web/ ==="
rg -n --max-count 50 'codemod@latest|react/19/migration-recipe|types-react-codemod|migration-recipe|preset-19|replace-reactdom-render|replace-string-ref' web/ || echo "(no matches)"

Repository: p-to-q/aleph

Length of output: 760


React 19 upgrade: deprecated API usage looks absent, but react-dom is still on v18

  • In web/, no occurrences of propTypes/defaultProps for function components, string refs (ref="..."), legacy context (contextTypes/getChildContext), ReactDOM.render(...), findDOMNode, or createFactory.
  • web/package.json uses react@19.2.6 with react-dom@18.3.1; upgrade react-dom to React 19 and re-check React 19 ref/type changes (e.g., ref callback return values and useRef() call signatures).
🤖 Prompt for 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.

In `@web/package.json` around lines 10 - 21, The package.json dependency versions
are mismatched: "react" is at 19.2.6 while "react-dom" remains at 18.3.1; update
the "react-dom" entry to the corresponding React 19 version (e.g., "react-dom":
"19.2.6") in the dependencies block, then run install and re-run checks for
React 19 changes (ref callback return values and useRef() call signatures)
across the codebase to ensure compatibility with the upgraded "react" and
"react-dom" versions.

Expand Down