Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- &node-setup
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "pnpm"
- &install-dependencies
name: Install dependencies
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ jobs:
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
- uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "pnpm"
- name: Install pnpm
run: npm install -g pnpm
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:
- uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
- uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "pnpm"
- name: Install dependencies
run: pnpm install
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
FROM node:20 AS builder
FROM node:22-bookworm AS builder

ARG ENV_NAME
ENV ENV_NAME=$ENV_NAME
ARG NEXT_PUBLIC_LATEST_COMMIT_SHA
ENV NEXT_PUBLIC_LATEST_COMMIT_SHA=$NEXT_PUBLIC_LATEST_COMMIT_SHA
ENV NEXT_TELEMETRY_DISABLED=1
ENV PNPM_VERSION=10.28.2
ENV PNPM_VERSION=10.33.4
RUN corepack enable && corepack install -g pnpm@$PNPM_VERSION

WORKDIR /app
Expand All @@ -27,8 +27,8 @@ COPY ./$ENV_FILE ./.env
RUN pnpm build

# Production image, copy all the files and run next
FROM node:20-alpine AS runner
ENV PNPM_VERSION=10.28.2
FROM node:22-alpine AS runner
ENV PNPM_VERSION=10.33.4

WORKDIR /app

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ For agents and contributors picking up work in this repo, start with [AGENTS.md]

## Getting Started

Requires `node >=20` (see `.nvmrc` — run `nvm use`).
Requires Node 22+ (see `.nvmrc` — run `nvm use`).

```sh
pnpm install
Expand Down
2 changes: 2 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const eslintConfig = defineConfig([
// Global ignores
globalIgnores([
'**/node_modules/**',
'**/.cache-synpress/**',
'**/storybook-static/**',
'**/.next/**',
'**/dist/**',
'**/build/**',
Expand Down
181 changes: 90 additions & 91 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,153 +5,147 @@
"private": true,
"repository": "https://github.com/jumperexchange/jumper-exchange",
"engines": {
"node": ">=20.0.0"
"node": ">=22.0.0"
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"dependencies": {
"@abstract-foundation/agw-client": "^1.11.0",
"@abstract-foundation/agw-react": "^1.11.0",
"@base-org/account": "^2.5.3",
"@abstract-foundation/agw-client": "^1.12.3",
"@abstract-foundation/agw-react": "^1.13.0",
"@base-org/account": "^2.5.5",
"@bigmi/client": "^0.8.0",
"@bigmi/core": "^0.8.0",
"@bigmi/react": "^0.8.0",
"@coinbase/wallet-sdk": "^4.3.7",
"@emotion/cache": "^11.14.0",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@farcaster/miniapp-sdk": "^0.2.2",
"@farcaster/miniapp-wagmi-connector": "^1.1.0",
"@fingerprintjs/fingerprintjs": "^5.0.1",
"@formatjs/intl-localematcher": "^0.8.2",
"@intercom/messenger-js-sdk": "^0.0.18",
"@emotion/styled": "^11.14.1",
"@farcaster/miniapp-sdk": "^0.3.0",
"@farcaster/miniapp-wagmi-connector": "^1.1.1",
"@fingerprintjs/fingerprintjs": "^5.2.0",
"@formatjs/intl-localematcher": "^0.8.6",
"@intercom/messenger-js-sdk": "^0.0.19",
"@lifi/explorer": "0.6.3",
"@lifi/sdk": "^4.0.0-beta.7",
"@lifi/sdk-provider-bitcoin": "^4.0.0-beta.7",
"@lifi/sdk-provider-ethereum": "^4.0.0-beta.7",
"@lifi/sdk-provider-solana": "^4.0.0-beta.7",
"@lifi/sdk-provider-sui": "^4.0.0-beta.7",
"@lifi/sdk-provider-tron": "^4.0.0-beta.7",
"@lifi/wallet-management": "4.0.0-beta.17",
"@lifi/widget": "4.0.0-beta.17",
"@lifi/widget-provider": "4.0.0-beta.17",
"@lifi/widget-provider-bitcoin": "^4.0.0-beta.17",
"@lifi/widget-provider-ethereum": "^4.0.0-beta.17",
"@lifi/widget-provider-solana": "^4.0.0-beta.17",
"@lifi/widget-provider-sui": "^4.0.0-beta.17",
"@lifi/widget-provider-tron": "^4.0.0-beta.17",
"@merkl/api": "1.9.23",
"@metamask/connect-evm": "^0.9.1",
"@mswjs/interceptors": "^0.41.3",
"@mui/icons-material": "^9.0.0",
"@mui/material": "^9.0.0",
"@mui/material-nextjs": "^9.0.0",
"@mui/system": "^9.0.0",
"@mui/utils": "^9.0.0",
"@mysten/dapp-kit-react": "^2.0.0",
"@mysten/sui": "^2.15.0",
"@lifi/sdk": "^4.0.1-alpha.0",
"@lifi/sdk-provider-bitcoin": "^4.0.1-alpha.0",
"@lifi/sdk-provider-ethereum": "^4.0.1-alpha.0",
"@lifi/sdk-provider-solana": "^4.0.1-alpha.0",
"@lifi/sdk-provider-sui": "^4.0.1-alpha.0",
"@lifi/sdk-provider-tron": "^4.0.0-beta.8",
"@lifi/wallet-management": "4.0.0-beta.18",
"@lifi/widget": "4.0.0-beta.18",
"@lifi/widget-provider": "4.0.0-beta.18",
"@lifi/widget-provider-bitcoin": "^4.0.0-beta.18",
"@lifi/widget-provider-ethereum": "^4.0.0-beta.18",
"@lifi/widget-provider-solana": "^4.0.0-beta.18",
"@lifi/widget-provider-sui": "^4.0.0-beta.18",
"@lifi/widget-provider-tron": "^4.0.0-beta.18",
"@merkl/api": "1.20.0",
"@metamask/connect-evm": "^1.1.0",
"@mswjs/interceptors": "^0.41.8",
"@mui/icons-material": "^9.0.1",
"@mui/material": "^9.0.1",
"@mui/material-nextjs": "^9.0.1",
"@mui/system": "^9.0.1",
"@mui/utils": "^9.0.1",
"@mysten/dapp-kit-react": "^2.0.2",
"@mysten/sui": "^2.16.1",
"@safe-global/safe-apps-sdk": "^9.1.0",
"@sentry/browser": "^10.38.0",
"@sentry/nextjs": "^10.38.0",
"@sentry/react": "^10.38.0",
"@sentry/browser": "^10.52.0",
"@sentry/nextjs": "^10.52.0",
"@sentry/react": "^10.52.0",
"@solana/client": "1.7.0",
"@solana/kit": "^6.5.0",
"@solana/kit": "^6.9.0",
"@solana/react-hooks": "1.4.1",
"@strapi/blocks-react-renderer": "^1.0.2",
"@tanstack/react-form": "^1.28.6",
"@tanstack/react-query": "^5.97.0",
"@tronweb3/tronwallet-adapter-react-hooks": "^1.1.11",
"@tanstack/react-form": "^1.29.1",
"@tanstack/react-query": "^5.100.9",
"@tronweb3/tronwallet-adapter-react-hooks": "^1.1.12",
"@turtledev/api": "1.4.5",
"@wagmi/core": "^3.4.1",
"@wagmi/core": "^3.4.8",
"@walletconnect/ethereum-provider": "^2.23.9",
"accept-language": "^3.0.20",
"blo": "^2.0.0",
"date-fns": "^4.1.0",
"ethers": "^6.16.0",
"extract-colors": "^4.2.1",
"graphql": "^16.13.2",
"html-react-parser": "^5.2.17",
"i18next": "^26.0.4",
"graphql": "^16.14.0",
"html-react-parser": "^6.1.0",
"i18next": "^26.0.10",
"i18next-resources-to-backend": "^1.2.1",
"jsonwebtoken": "^9.0.3",
"lodash": "^4.17.23",
"motion": "^12.32.0",
"lodash": "^4.18.1",
"motion": "^12.38.0",
"negotiator": "^1.0.0",
"next": "16.2.3",
"next-i18n-router": "^5.5.7",
"next": "16.2.6",
"next-i18n-router": "^5.5.8",
"nuqs": "^2.8.9",
"p-limit": "^7.3.0",
"polished": "^4.3.1",
"react": "19.2.5",
"react": "19.2.6",
"react-animated-counter": "^1.9.0",
"react-confetti": "^6.4.0",
"react-cookie": "^8.1.0",
"react-cookie": "^8.1.2",
"react-day-picker": "^9.14.0",
"react-dom": "19.2.5",
"react-i18next": "^17.0.2",
"react-dom": "19.2.6",
"react-i18next": "^17.0.7",
"recharts": "^3.8.1",
"sharp": "^0.34.5",
"superjson": "^2.2.6",
"swiper": "12.1.3",
"universal-cookie": "^8.1.0",
"uuid": "^13.0.0",
"viem": "^2.47.11",
"wagmi": "^3.6.0",
"zod": "^4.3.6",
"zustand": "^5.0.12"
"swiper": "12.1.4",
"universal-cookie": "^8.1.2",
"uuid": "^14.0.0",
"viem": "^2.48.11",
"wagmi": "^3.6.9",
"zod": "^4.4.3",
"zustand": "^5.0.13"
},
"devDependencies": {
"@chromatic-com/storybook": "^5.1.2",
"@eslint/js": "^9.39.2",
"@next/bundle-analyzer": "16.2.3",
"@next/eslint-plugin-next": "16.2.3",
"@playwright/test": "1.58.2",
"@rainbow-me/rainbowkit": "^2.2.10",
"@eslint/js": "^10.0.1",
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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Check peer dependency ranges of lint stack against eslint@10.
packages=(
  "@eslint/js@10.0.1"
  "@next/eslint-plugin-next@16.2.5"
  "eslint-plugin-jsx-a11y@6.10.2"
  "eslint-plugin-react-hooks@7.1.1"
  "eslint-config-prettier@10.1.8"
  "typescript-eslint@8.59.2"
)

for pkg in "${packages[@]}"; do
  echo "=== $pkg ==="
  npm view "$pkg" peerDependencies --json || true
  echo
done

Repository: jumperexchange/jumper-exchange

Length of output: 1585


🏁 Script executed:

cat -n package.json | head -220 | tail -40

Repository: jumperexchange/jumper-exchange

Length of output: 1320


🏁 Script executed:

rg "allowedVersions|eslint-plugin-jsx-a11y" package.json -A 2 -B 2

Repository: jumperexchange/jumper-exchange

Length of output: 348


allowedVersions.eslint: "10" hides incompatibility with eslint-plugin-jsx-a11y@6.10.2.

This package does not support ESLint 10 (peer range excludes it: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9). The pnpm configuration at lines 198–201 suppresses peer-dependency warnings during installation, deferring the incompatibility to runtime when ESLint executes, potentially causing linting failures.

Upgrade eslint-plugin-jsx-a11y to a version that supports ESLint 10, or remove the allowedVersions.eslint: "10" rule if this incompatibility cannot be resolved.

🤖 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` at line 103, The package.json forces ESLint 10 via
allowedVersions.eslint which conflicts with eslint-plugin-jsx-a11y (peer range
excludes ESLint 10); update package.json to either (A) bump
eslint-plugin-jsx-a11y in dependencies/devDependencies to a release that lists
ESLint 10 in its peerDependencies (locate the eslint-plugin-jsx-a11y entry and
increase its version), or (B) remove/adjust the allowedVersions.eslint: "10"
rule in the pnpm config (the allowedVersions block) so the package manager
surfaces the peer-dependency conflict; ensure you do one of these and run
install to verify no peer warnings remain.

"@next/bundle-analyzer": "16.2.6",
"@next/eslint-plugin-next": "16.2.6",
"@playwright/test": "1.59.1",
"@rainbow-me/rainbowkit": "^2.2.11",
"@storybook/addon-a11y": "^10.3.6",
"@storybook/addon-docs": "^10.3.6",
"@storybook/addon-onboarding": "^10.3.6",
"@storybook/addon-vitest": "^10.3.6",
"@storybook/nextjs-vite": "^10.3.6",
"@testing-library/jest-dom": "^6.8.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/gtag.js": "^0.0.20",
"@types/jsonwebtoken": "^9.0.10",
"@types/lodash": "^4.17.24",
"@types/negotiator": "^0.6.4",
"@types/node": "^25.5.2",
"@types/node": "^22.19.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"@vitest/browser": "^4.1.4",
"@vitest/browser-playwright": "^4.1.4",
"@vitest/coverage-v8": "^4.1.4",
"@vitest/browser": "^4.1.5",
"@vitest/browser-playwright": "^4.1.5",
"@vitest/coverage-v8": "^4.1.5",
"babel-plugin-react-compiler": "^1.0.0",
"dotenv": "^17.3.1",
"eslint": "9.39.2",
"eslint-config-next": "16.2.3",
"dotenv": "^17.4.2",
"eslint": "10.3.0",
"eslint-config-prettier": "^10.1.8",
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-storybook": "^10.3.6",
"eslint-plugin-react-hooks": "^7.1.1",
"husky": "^9.1.7",
"i18next-resources-for-ts": "^2.0.2",
"import-in-the-middle": "^2.0.6",
"jsdom": "^29.0.2",
"lint-staged": "^16.4.0",
"i18next-resources-for-ts": "^2.1.0",
"import-in-the-middle": "^3.0.1",
"jsdom": "^29.1.1",
"lint-staged": "^17.0.2",
"pino": "^10.3.1",
"pino-pretty": "^13.1.3",
"playwright": "1.58.2",
"playwright-qase-reporter": "^2.2.3",
"prettier": "^3.8.1",
"playwright": "1.59.1",
"playwright-qase-reporter": "^2.5.0",
"prettier": "^3.8.3",
"storybook": "^10.3.6",
"storybook-addon-pseudo-states": "^10.3.6",
"typescript": "^5.9.2",
"typescript-eslint": "^8.58.1",
"vite": "^8.0.8",
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.2",
"vite": "^8.0.11",
"vite-plugin-node-polyfills": "^0.26.0",
"vitest": "^4.1.4",
"vitest": "^4.1.5",
"web-vitals": "^5.2.0"
},
"scripts": {
Expand Down Expand Up @@ -201,6 +195,11 @@
]
},
"pnpm": {
"peerDependencyRules": {
"allowedVersions": {
"eslint": "10"
}
},
"overrides": {
"@safe-global/safe-apps-provider": ">=0.18.6",
"hono": "^4.12.7"
Expand All @@ -221,5 +220,5 @@
"utf-8-validate"
]
},
"packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319"
"packageManager": "pnpm@10.33.4"
}
Loading
Loading