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
45 changes: 25 additions & 20 deletions apps/airdrop/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
baseDirectory: __dirname,
});

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
globalIgnores([
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
{
ignores: [
"node_modules/**",
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
],
rules: {
// TODO: re-enable once the React 19 / react-compiler refactor lands.
// The eslint-plugin-react-hooks v6 (pulled in via eslint-config-next 16)
// ships new compiler-aware rules that flag ~30 violations across the
// monorepo — every one is a real refactor, not a quick fix.
"react-hooks/preserve-manual-memoization": "off",
"react-hooks/purity": "off",
"react-hooks/refs": "off",
"react-hooks/set-state-in-effect": "off",
"react-hooks/static-components": "off",
"react-hooks/use-memo": "off",
},
},
];
]);

export default eslintConfig;
9 changes: 9 additions & 0 deletions apps/airdrop/globals.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// CSS side-effect imports (e.g. `import "./globals.css"`)
// Typically declared by the auto-generated next-env.d.ts, but that
// file is gitignored + only emitted after `next build`. CI runs
// `pnpm typecheck` before `next build`, so we mirror those refs
// here to keep TS 6 happy.
declare module "*.css";
6 changes: 3 additions & 3 deletions apps/airdrop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/node": "^25",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.5.15",
"eslint-config-next": "16.2.6",
"tailwindcss": "^4",
"tsx": "^4.19.2",
"typescript": "^5"
"typescript": "^6"
}
}
28 changes: 23 additions & 5 deletions apps/airdrop/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,30 @@
"noEmit": true,
"verbatimModuleSyntax": false,
"noUncheckedIndexedAccess": false,
"lib": ["dom", "dom.iterable", "esnext"],
"plugins": [{ "name": "next" }],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
"@/*": [
"./src/*"
]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"globals.d.ts"
],
"exclude": [
"node_modules"
]
}
13 changes: 11 additions & 2 deletions apps/chain-landing/eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,23 @@ import nextTs from "eslint-config-next/typescript";
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
{
rules: {
// TODO: re-enable once the React 19 / react-compiler refactor lands.
"react-hooks/preserve-manual-memoization": "off",
"react-hooks/purity": "off",
"react-hooks/refs": "off",
"react-hooks/set-state-in-effect": "off",
"react-hooks/static-components": "off",
"react-hooks/use-memo": "off",
},
},
]);

export default eslintConfig;
6 changes: 3 additions & 3 deletions apps/chain-landing/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/node": "^25",
"@types/react": "^19",
"@types/react-dom": "^19",
"@types/three": "^0.183.1",
"eslint": "^9",
"eslint-config-next": "16.2.3",
"eslint-config-next": "16.2.6",
"playwright": "^1.59.1",
"puppeteer": "^24.43.0",
"tailwindcss": "^4",
"typescript": "^5"
"typescript": "^6"
}
}
42 changes: 20 additions & 22 deletions apps/coinblast/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
baseDirectory: __dirname,
});

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
ignores: [
"node_modules/**",
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
],
},
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
globalIgnores([
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
{
rules: {
// External token images are dynamic URLs — skip next/image optimization
"@next/next/no-img-element": "off",
// TODO: re-enable once the React 19 / react-compiler refactor lands.
"react-hooks/preserve-manual-memoization": "off",
"react-hooks/purity": "off",
"react-hooks/refs": "off",
"react-hooks/set-state-in-effect": "off",
"react-hooks/static-components": "off",
"react-hooks/use-memo": "off",
},
},
];
]);

export default eslintConfig;
9 changes: 9 additions & 0 deletions apps/coinblast/globals.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// CSS side-effect imports (e.g. `import "./globals.css"`)
// Typically declared by the auto-generated next-env.d.ts, but that
// file is gitignored + only emitted after `next build`. CI runs
// `pnpm typecheck` before `next build`, so we mirror those refs
// here to keep TS 6 happy.
declare module "*.css";
6 changes: 3 additions & 3 deletions apps/coinblast/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/node": "^25",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.5.15",
"eslint-config-next": "16.2.6",
"tailwindcss": "^4",
"typescript": "^5"
"typescript": "^6"
Comment on lines +35 to +41
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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== coinblast package versions =="
jq -r '{
  name,
  next: .dependencies.next,
  eslint: .devDependencies.eslint,
  eslintConfigNext: .devDependencies["eslint-config-next"],
  typescript: .devDependencies.typescript,
  typesNode: .devDependencies["@types/node"]
}' apps/coinblast/package.json

echo
echo "== Node runtime declarations in repo (.nvmrc/.node-version/package.json engines.node) =="
fd -HI '(^\.nvmrc$|^\.node-version$|^package\.json$)' | while read -r f; do
  case "$f" in
    *.nvmrc|*.node-version)
      printf '%s: %s\n' "$f" "$(tr -d '\n' < "$f")"
      ;;
    *package.json)
      jq -r 'select(.engines.node? != null) | "\(input_filename): engines.node=\(.engines.node)"' "$f" || true
      ;;
  esac
done

echo
echo "== CI Node setup references =="
rg -n --iglob '*.yml' --iglob '*.yaml' 'setup-node|node-version|node-version-file' .github || true

Repository: Sentriscloud/frontend

Length of output: 539


🌐 Web query:

Is eslint-config-next@16.2.6officially compatible withnext@15.5.xandeslint@9.x?

💡 Result:

No, eslint-config-next@16.2.6 is not officially compatible with next@15.5.x. The package versioning aligns with Next.js major versions: eslint-config-next 15.x is for Next.js 15.x [1][2][3], while 16.x (including 16.2.6, published May 7, 2026 [4][5]) is for Next.js 16 [6][7][8]. Next.js 16 introduces breaking changes to ESLint support, defaulting to flat config and removing next lint [6][7]. Using 16.x with Next.js 15 may cause peer dependency conflicts, as seen when third-party configs expect @next/eslint-plugin-next ^15.0.0 but find v16 [8]. For ESLint 9.x, Next.js 15 supports it with specific flat config setups [9][10][11], but eslint-config-next@16.2.6's flat config changes [6] are optimized for Next.js 16. Official docs recommend matching eslint-config-next version to Next.js version [7][1].

Citations:


🌐 Web query:

Is TypeScript 6.x officially supported by Next.js 15.5.x?

💡 Result:

Yes—Next.js 15.5.x is compatible with (and effectively supported for) TypeScript 6.x. Next.js’s official docs specify a minimum TypeScript version of 5.1.0 for TypeScript support, not a maximum version [1]. That means TypeScript 6.x is within the supported range as far as Next.js’s published minimum requirement goes. Additionally, Next.js’s own development history includes a merged PR titled “Bump TypeScript to 6.0”, indicating the Next.js codebase (and associated tooling like type checking) was updated to work with TypeScript 6.0 on their side [2]. Conclusion: there is no Next.js 15.5.x “not supported” restriction against TypeScript 6.x in the official minimum-version guidance [1], and Next.js maintainers have explicitly bumped/validated TypeScript 6.0 in their project [2].

Citations:


Downgrade eslint-config-next to version 15.x for compatibility with Next.js 15.5.18.

Line 39 declares eslint-config-next@16.2.6, but this is incompatible with next@15.5.18. The eslint-config-next package versions align with Next.js major versions: 15.x for Next.js 15, and 16.x for Next.js 16. Using 16.2.6 with Next.js 15.5.18 introduces peer dependency conflicts due to Next.js 16's breaking changes to ESLint configuration. Change to eslint-config-next@15.x to match the deployed Next.js version.

TypeScript 6.x (line 41) and @types/node@^25 (line 35) are compatible with Next.js 15.5.18 and Node 20.

🤖 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 `@apps/coinblast/package.json` around lines 35 - 41, The package.json currently
pins eslint-config-next to 16.2.6 which is incompatible with next@15.5.18;
update the dependency entry for eslint-config-next to a 15.x release (e.g.,
"eslint-config-next": "15.x") to align with Next.js 15, then reinstall
dependencies (npm/yarn/pnpm) and verify there are no peerDependency warnings;
keep other entries like typescript and `@types/node` as-is.

}
}
28 changes: 23 additions & 5 deletions apps/coinblast/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,30 @@
"noEmit": true,
"verbatimModuleSyntax": false,
"noUncheckedIndexedAccess": false,
"lib": ["dom", "dom.iterable", "esnext"],
"plugins": [{ "name": "next" }],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
"@/*": [
"./src/*"
]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"globals.d.ts"
],
"exclude": [
"node_modules"
]
}
45 changes: 25 additions & 20 deletions apps/dex/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,25 +1,30 @@
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
baseDirectory: __dirname,
});

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
globalIgnores([
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
{
ignores: [
"node_modules/**",
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
],
rules: {
// TODO: re-enable once the React 19 / react-compiler refactor lands.
// The eslint-plugin-react-hooks v6 (pulled in via eslint-config-next 16)
// ships new compiler-aware rules that flag ~30 violations across the
// monorepo — every one is a real refactor, not a quick fix.
"react-hooks/preserve-manual-memoization": "off",
"react-hooks/purity": "off",
"react-hooks/refs": "off",
"react-hooks/set-state-in-effect": "off",
"react-hooks/static-components": "off",
"react-hooks/use-memo": "off",
},
},
];
]);

export default eslintConfig;
9 changes: 9 additions & 0 deletions apps/dex/globals.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />

// CSS side-effect imports (e.g. `import "./globals.css"`)
// Typically declared by the auto-generated next-env.d.ts, but that
// file is gitignored + only emitted after `next build`. CI runs
// `pnpm typecheck` before `next build`, so we mirror those refs
// here to keep TS 6 happy.
declare module "*.css";
6 changes: 3 additions & 3 deletions apps/dex/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
"devDependencies": {
"@eslint/eslintrc": "^3",
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/node": "^25",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.5.15",
"eslint-config-next": "16.2.6",
"tailwindcss": "^4",
"typescript": "^5"
"typescript": "^6"
}
}
28 changes: 23 additions & 5 deletions apps/dex/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,30 @@
"noEmit": true,
"verbatimModuleSyntax": false,
"noUncheckedIndexedAccess": false,
"lib": ["dom", "dom.iterable", "esnext"],
"plugins": [{ "name": "next" }],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
"@/*": [
"./src/*"
]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
"globals.d.ts"
],
"exclude": [
"node_modules"
]
}
Loading
Loading