e5eda117be
Bumped via `bun update --latest` then resolved breakage from two major-version jumps: 1. Next.js 15.5 → 16.2 + @next/eslint-plugin-next 16: dropped the `flatConfig` namespace. Updated web/eslint.config.mjs to use `nextPlugin.configs["core-web-vitals"]` per the new export shape. 2. lucide-react 0.553 → 1.x: lucide upstream removed all brand icons (Github, etc.) — they are now expected to come from a separate brand icon library. Pinned lucide-react at the last 0.x (0.577.0) for now; migrating to a brand-icon library is tracked as a follow-up. All other deps to latest: - react/react-dom 19.2.4 → 19.2.6 - next-intl 4.8 → 4.11 - motion 12.35 → 12.38 - tailwind-merge 3.4 → 3.5 - geist 1.5 → 1.7 - @radix-ui/* unchanged (already latest within their ranges) - @opennextjs/cloudflare 1.17 → 1.19.8 - @playwright/test 1.56 → 1.59 - @tailwindcss/postcss + tailwindcss 4.1 → 4.2.4 - @types/node 22 → 25.6 - @types/react 19 → 19.2.14 - eslint 9 → 10.3 (works because we now reference @next/eslint-plugin-next configs directly, not eslint-config-next) - eslint-plugin-prettier 5.5.4 → 5.5.5 - globals 16 → 17.6 - postcss 8.5.6 → 8.5.14 - prettier 3.6.2 → 3.8.3 (no formatting changes detected by --check) - prettier-plugin-tailwindcss 0.6 → 0.8 - typescript 5.9.3 → 6.0.3 - typescript-eslint 8.56 → 8.59 - wrangler 4.71 → 4.90 Verified locally: - bun install --frozen-lockfile: 685 packages, no errors - bun run format:check: pass (no diffs after `bun run format`) - bun run lint: pass - bun run type-check: pass (TypeScript 6 + @types/node 25) - bun run build: pass (Next 16 build, 21 static pages, all 4 locales) - bunx opennextjs-cloudflare build: pass (.open-next/worker.js produced) Note: Next 16 `build` log relabels the Middleware row to "Proxy (Middleware)" — purely cosmetic, no behavior change.
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
import globals from "globals"
|
|
import nextPlugin from "@next/eslint-plugin-next"
|
|
import prettier from "eslint-config-prettier/flat"
|
|
import tseslint from "typescript-eslint"
|
|
|
|
export default [
|
|
{
|
|
ignores: [".next/**", "out/**", "build/**", "next-env.d.ts"],
|
|
},
|
|
{
|
|
files: ["**/*.{js,mjs,cjs,ts,tsx,jsx}"],
|
|
languageOptions: {
|
|
ecmaVersion: "latest",
|
|
sourceType: "module",
|
|
globals: {
|
|
...globals.browser,
|
|
...globals.nodeBuiltin,
|
|
},
|
|
},
|
|
},
|
|
nextPlugin.configs["core-web-vitals"],
|
|
...tseslint.configs.recommended,
|
|
prettier,
|
|
{
|
|
rules: {
|
|
"@typescript-eslint/no-explicit-any": "error",
|
|
"@typescript-eslint/no-unused-vars": [
|
|
"error",
|
|
{
|
|
argsIgnorePattern: "^_",
|
|
varsIgnorePattern: "^_",
|
|
},
|
|
],
|
|
"@typescript-eslint/consistent-type-imports": [
|
|
"error",
|
|
{
|
|
prefer: "type-imports",
|
|
},
|
|
],
|
|
"no-console": ["warn", { allow: ["warn", "error"] }],
|
|
"prefer-const": "error",
|
|
"no-var": "error",
|
|
},
|
|
},
|
|
]
|