From c092309f882eebd998918481648d62ecc617d4cc Mon Sep 17 00:00:00 2001 From: Harminder Virk Date: Fri, 29 May 2026 13:00:01 +0530 Subject: [PATCH] chore: update dependencies and adopt React/Vue eslint presets Bumps all kits to the latest @adonisjs/core, @adonisjs/eslint-config (3.1), eslint (10.4), typescript (6.0.3) and related deps. Vite stays on 7 because @adonisjs/vite hasn't shipped a stable release for vite 8 yet, and @inertiajs/{react,vue3} stay on the 2.3 line. Wires the new @adonisjs/eslint-config/react and /vue presets in the inertia kits and pulls in their required eslint plugins. Inertia-vue turns off vue/component-api-style for inertia/**/*.ts (it false-positives on the render function inside createApp()). Inertia-react adds npm + pnpm overrides to relax eslint-plugin-react's outdated eslint peer range. Also drops the deprecated baseUrl from inertia/tsconfig.json in both kits and applies the lint --fix cleanups (type-only imports, rel=noreferrer, v-slot longhand, attribute ordering) that the new presets surfaced. --- api-monorepo/apps/backend/package.json | 18 ++++----- api-monorepo/package.json | 6 +-- api/package.json | 18 ++++----- hypermedia/package.json | 26 ++++++------- inertia-react/eslint.config.js | 4 +- inertia-react/inertia/app.tsx | 4 +- inertia-react/inertia/layouts/default.tsx | 7 ++-- inertia-react/inertia/pages/home.tsx | 6 +-- inertia-react/inertia/ssr.tsx | 6 +-- inertia-react/inertia/tsconfig.json | 1 - inertia-react/package.json | 46 ++++++++++++++--------- inertia-vue/eslint.config.js | 10 ++++- inertia-vue/inertia/pages/auth/login.vue | 6 +-- inertia-vue/inertia/pages/auth/signup.vue | 10 ++--- inertia-vue/inertia/tsconfig.json | 1 - inertia-vue/package.json | 33 ++++++++-------- 16 files changed, 112 insertions(+), 90 deletions(-) diff --git a/api-monorepo/apps/backend/package.json b/api-monorepo/apps/backend/package.json index b506de4..fbae901 100644 --- a/api-monorepo/apps/backend/package.json +++ b/api-monorepo/apps/backend/package.json @@ -39,33 +39,33 @@ }, "devDependencies": { "@adonisjs/assembler": "^8.4.0", - "@adonisjs/eslint-config": "^3.0.0", - "@adonisjs/prettier-config": "^1.4.5", + "@adonisjs/eslint-config": "^3.1.0", + "@adonisjs/prettier-config": "^1.5.0", "@adonisjs/tsconfig": "^2.0.0", "@japa/assert": "^4.2.0", "@japa/plugin-adonisjs": "^5.2.0", "@japa/runner": "^5.3.0", "@poppinss/ts-exec": "^1.4.4", "@types/luxon": "^3.7.1", - "@types/node": "~25.6.0", - "eslint": "^10.2.0", + "@types/node": "~25.9.1", + "eslint": "^10.4.0", "hot-hook": "^1.0.0", "pino-pretty": "^13.1.3", - "prettier": "^3.8.2", - "typescript": "~6.0.2", + "prettier": "^3.8.3", + "typescript": "~6.0.3", "youch": "^4.1.1" }, "dependencies": { "@adonisjs/auth": "^10.1.0", - "@adonisjs/core": "^7.3.1", + "@adonisjs/core": "^7.3.3", "@adonisjs/cors": "^3.0.0", "@adonisjs/lucid": "^22.4.2", "@adonisjs/session": "^8.1.0", "@adonisjs/shield": "^9.0.0", "@japa/api-client": "^3.2.1", "@tuyau/core": "^1.2.2", - "@vinejs/vine": "^4.3.1", - "better-sqlite3": "^12.9.0", + "@vinejs/vine": "^4.4.0", + "better-sqlite3": "^12.10.0", "luxon": "^3.7.2", "reflect-metadata": "^0.2.2" }, diff --git a/api-monorepo/package.json b/api-monorepo/package.json index a610b9a..c07098a 100644 --- a/api-monorepo/package.json +++ b/api-monorepo/package.json @@ -20,9 +20,9 @@ "typecheck": "turbo typecheck" }, "devDependencies": { - "@adonisjs/prettier-config": "^1.4.5", - "prettier": "^3.8.2", - "turbo": "^2.9.6" + "@adonisjs/prettier-config": "^1.5.0", + "prettier": "^3.8.3", + "turbo": "^2.9.16" }, "packageManager": "npm@11.12.1", "prettier": "@adonisjs/prettier-config" diff --git a/api/package.json b/api/package.json index b506de4..fbae901 100644 --- a/api/package.json +++ b/api/package.json @@ -39,33 +39,33 @@ }, "devDependencies": { "@adonisjs/assembler": "^8.4.0", - "@adonisjs/eslint-config": "^3.0.0", - "@adonisjs/prettier-config": "^1.4.5", + "@adonisjs/eslint-config": "^3.1.0", + "@adonisjs/prettier-config": "^1.5.0", "@adonisjs/tsconfig": "^2.0.0", "@japa/assert": "^4.2.0", "@japa/plugin-adonisjs": "^5.2.0", "@japa/runner": "^5.3.0", "@poppinss/ts-exec": "^1.4.4", "@types/luxon": "^3.7.1", - "@types/node": "~25.6.0", - "eslint": "^10.2.0", + "@types/node": "~25.9.1", + "eslint": "^10.4.0", "hot-hook": "^1.0.0", "pino-pretty": "^13.1.3", - "prettier": "^3.8.2", - "typescript": "~6.0.2", + "prettier": "^3.8.3", + "typescript": "~6.0.3", "youch": "^4.1.1" }, "dependencies": { "@adonisjs/auth": "^10.1.0", - "@adonisjs/core": "^7.3.1", + "@adonisjs/core": "^7.3.3", "@adonisjs/cors": "^3.0.0", "@adonisjs/lucid": "^22.4.2", "@adonisjs/session": "^8.1.0", "@adonisjs/shield": "^9.0.0", "@japa/api-client": "^3.2.1", "@tuyau/core": "^1.2.2", - "@vinejs/vine": "^4.3.1", - "better-sqlite3": "^12.9.0", + "@vinejs/vine": "^4.4.0", + "better-sqlite3": "^12.10.0", "luxon": "^3.7.2", "reflect-metadata": "^0.2.2" }, diff --git a/hypermedia/package.json b/hypermedia/package.json index 095c782..c2f7912 100644 --- a/hypermedia/package.json +++ b/hypermedia/package.json @@ -37,8 +37,8 @@ }, "devDependencies": { "@adonisjs/assembler": "^8.4.0", - "@adonisjs/eslint-config": "^3.0.0", - "@adonisjs/prettier-config": "^1.4.5", + "@adonisjs/eslint-config": "^3.1.0", + "@adonisjs/prettier-config": "^1.5.0", "@adonisjs/tsconfig": "^2.0.0", "@japa/assert": "^4.2.0", "@japa/browser-client": "^2.3.0", @@ -47,27 +47,27 @@ "@poppinss/ts-exec": "^1.4.4", "@types/alpinejs": "^3.13.11", "@types/luxon": "^3.7.1", - "@types/node": "~25.6.0", - "alpinejs": "^3.15.11", - "eslint": "^10.2.0", + "@types/node": "~25.9.1", + "alpinejs": "^3.15.12", + "eslint": "^10.4.0", "hot-hook": "^1.0.0", "pino-pretty": "^13.1.3", - "prettier": "^3.8.2", - "typescript": "~6.0.2", - "vite": "^7.3.1", + "prettier": "^3.8.3", + "typescript": "~6.0.3", + "vite": "^7.3.3", "youch": "^4.1.1" }, "dependencies": { "@adonisjs/auth": "^10.1.0", - "@adonisjs/core": "^7.3.1", + "@adonisjs/core": "^7.3.3", "@adonisjs/lucid": "^22.4.2", "@adonisjs/session": "^8.1.0", "@adonisjs/shield": "^9.0.0", "@adonisjs/static": "^2.0.1", - "@adonisjs/vite": "^5.1.0", - "@vinejs/vine": "^4.3.1", - "better-sqlite3": "^12.9.0", - "edge.js": "^6.5.0", + "@adonisjs/vite": "^5.1.1", + "@vinejs/vine": "^4.4.0", + "better-sqlite3": "^12.10.0", + "edge.js": "^6.5.1", "luxon": "^3.7.2", "reflect-metadata": "^0.2.2" }, diff --git a/inertia-react/eslint.config.js b/inertia-react/eslint.config.js index 9be1be3..b7fd9c9 100644 --- a/inertia-react/eslint.config.js +++ b/inertia-react/eslint.config.js @@ -1,2 +1,4 @@ import { configApp } from '@adonisjs/eslint-config' -export default configApp() +import { react } from '@adonisjs/eslint-config/react' + +export default configApp(...react) diff --git a/inertia-react/inertia/app.tsx b/inertia-react/inertia/app.tsx index 4245e16..15593dd 100644 --- a/inertia-react/inertia/app.tsx +++ b/inertia-react/inertia/app.tsx @@ -1,8 +1,8 @@ import './css/app.css' -import { ReactElement } from 'react' +import { type ReactElement } from 'react' import { client } from './client' import Layout from '~/layouts/default' -import { Data } from '@generated/data' +import { type Data } from '@generated/data' import { createRoot } from 'react-dom/client' import { createInertiaApp } from '@inertiajs/react' import { TuyauProvider } from '@adonisjs/inertia/react' diff --git a/inertia-react/inertia/layouts/default.tsx b/inertia-react/inertia/layouts/default.tsx index 01bbdc6..4de27e5 100644 --- a/inertia-react/inertia/layouts/default.tsx +++ b/inertia-react/inertia/layouts/default.tsx @@ -1,13 +1,14 @@ -import { Data } from '@generated/data' +import { type Data } from '@generated/data' import { toast, Toaster } from 'sonner' import { usePage } from '@inertiajs/react' -import { ReactElement, useEffect } from 'react' +import { type ReactElement, useEffect } from 'react' import { Form, Link } from '@adonisjs/inertia/react' export default function Layout({ children }: { children: ReactElement }) { + const { url } = usePage() useEffect(() => { toast.dismiss() - }, [usePage().url]) + }, [url]) useEffect(() => { if (children.props.flash.error) { diff --git a/inertia-react/inertia/pages/home.tsx b/inertia-react/inertia/pages/home.tsx index a68104a..c16f03f 100644 --- a/inertia-react/inertia/pages/home.tsx +++ b/inertia-react/inertia/pages/home.tsx @@ -10,17 +10,17 @@ export default function Home() {
- +

Official Docs  ›

Comprehensive reference for building with AdonisJS

- +

Adocasts  ›

Guided video tutorials for everyday development

- +

Discord  ›

Connect with developers building with AdonisJS every day

diff --git a/inertia-react/inertia/ssr.tsx b/inertia-react/inertia/ssr.tsx index 80b4974..3e97872 100644 --- a/inertia-react/inertia/ssr.tsx +++ b/inertia-react/inertia/ssr.tsx @@ -1,7 +1,7 @@ import { client } from '~/client' -import { ReactElement } from 'react' +import { type ReactElement } from 'react' import Layout from '~/layouts/default' -import { Data } from '@generated/data' +import { type Data } from '@generated/data' import ReactDOMServer from 'react-dom/server' import { createInertiaApp } from '@inertiajs/react' import { TuyauProvider } from '@adonisjs/inertia/react' @@ -15,7 +15,7 @@ export default function render(page: any) { return resolvePageComponent( `./pages/${name}.tsx`, import.meta.glob('./pages/**/*.tsx', { eager: true }), - (page: ReactElement) => + (resolvedPage: ReactElement) => ) }, setup: ({ App, props }) => { diff --git a/inertia-react/inertia/tsconfig.json b/inertia-react/inertia/tsconfig.json index 21b43b5..a7752ad 100644 --- a/inertia-react/inertia/tsconfig.json +++ b/inertia-react/inertia/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@adonisjs/tsconfig/tsconfig.client.json", "compilerOptions": { - "baseUrl": ".", "module": "ESNext", "jsx": "react-jsx", "paths": { diff --git a/inertia-react/package.json b/inertia-react/package.json index 4607a23..465b4db 100644 --- a/inertia-react/package.json +++ b/inertia-react/package.json @@ -38,8 +38,8 @@ }, "devDependencies": { "@adonisjs/assembler": "^8.4.0", - "@adonisjs/eslint-config": "^3.0.0", - "@adonisjs/prettier-config": "^1.4.5", + "@adonisjs/eslint-config": "^3.1.0", + "@adonisjs/prettier-config": "^1.5.0", "@adonisjs/tsconfig": "^2.0.0", "@japa/assert": "^4.2.0", "@japa/browser-client": "^2.3.0", @@ -47,36 +47,38 @@ "@japa/runner": "^5.3.0", "@poppinss/ts-exec": "^1.4.4", "@types/luxon": "^3.7.1", - "@types/node": "~25.6.0", - "@types/react": "^19.2.14", + "@types/node": "~25.9.1", + "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^5.1.4", - "eslint": "^10.2.0", + "@vitejs/plugin-react": "^5.2.0", + "eslint": "^10.4.0", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.1.1", "hot-hook": "^1.0.0", "pino-pretty": "^13.1.3", - "prettier": "^3.8.2", - "typescript": "~6.0.2", - "vite": "^7.3.1", + "prettier": "^3.8.3", + "typescript": "~6.0.3", + "vite": "^7.3.3", "youch": "^4.1.1" }, "dependencies": { "@adonisjs/auth": "^10.1.0", - "@adonisjs/core": "^7.3.1", + "@adonisjs/core": "^7.3.3", "@adonisjs/cors": "^3.0.0", "@adonisjs/inertia": "^4.2.0", "@adonisjs/lucid": "^22.4.2", "@adonisjs/session": "^8.1.0", "@adonisjs/shield": "^9.0.0", "@adonisjs/static": "^2.0.1", - "@adonisjs/vite": "^5.1.0", - "@inertiajs/react": "^2.3.18", + "@adonisjs/vite": "^5.1.1", + "@inertiajs/react": "^2.3.24", "@tuyau/core": "^1.2.2", - "@vinejs/vine": "^4.3.1", - "better-sqlite3": "^12.9.0", - "edge.js": "^6.5.0", + "@vinejs/vine": "^4.4.0", + "better-sqlite3": "^12.10.0", + "edge.js": "^6.5.1", "luxon": "^3.7.2", - "react": "^19.2.5", - "react-dom": "^19.2.5", + "react": "^19.2.6", + "react-dom": "^19.2.6", "reflect-metadata": "^0.2.2", "sonner": "^2.0.7" }, @@ -86,5 +88,15 @@ "./app/middleware/*.ts" ] }, + "overrides": { + "eslint-plugin-react": { + "eslint": "$eslint" + } + }, + "pnpm": { + "overrides": { + "eslint-plugin-react>eslint": "$eslint" + } + }, "prettier": "@adonisjs/prettier-config" } diff --git a/inertia-vue/eslint.config.js b/inertia-vue/eslint.config.js index 9be1be3..b3b6857 100644 --- a/inertia-vue/eslint.config.js +++ b/inertia-vue/eslint.config.js @@ -1,2 +1,10 @@ import { configApp } from '@adonisjs/eslint-config' -export default configApp() +import { vue } from '@adonisjs/eslint-config/vue' + +export default configApp(...vue, { + name: 'inertia-vue ts overrides', + files: ['inertia/**/*.ts'], + rules: { + 'vue/component-api-style': 'off', + }, +}) diff --git a/inertia-vue/inertia/pages/auth/login.vue b/inertia-vue/inertia/pages/auth/login.vue index df56fa3..468fe73 100644 --- a/inertia-vue/inertia/pages/auth/login.vue +++ b/inertia-vue/inertia/pages/auth/login.vue @@ -10,13 +10,13 @@ import { Form } from '@adonisjs/inertia/vue'
-
+
@@ -26,9 +26,9 @@ import { Form } from '@adonisjs/inertia/vue'
diff --git a/inertia-vue/inertia/pages/auth/signup.vue b/inertia-vue/inertia/pages/auth/signup.vue index 4658b39..7665efa 100644 --- a/inertia-vue/inertia/pages/auth/signup.vue +++ b/inertia-vue/inertia/pages/auth/signup.vue @@ -10,13 +10,13 @@ import { Form } from '@adonisjs/inertia/vue'
- +
{{ errors.fullName }}
@@ -25,9 +25,9 @@ import { Form } from '@adonisjs/inertia/vue'
@@ -37,9 +37,9 @@ import { Form } from '@adonisjs/inertia/vue'
@@ -49,9 +49,9 @@ import { Form } from '@adonisjs/inertia/vue'
diff --git a/inertia-vue/inertia/tsconfig.json b/inertia-vue/inertia/tsconfig.json index 2dfa7fa..ed934b0 100644 --- a/inertia-vue/inertia/tsconfig.json +++ b/inertia-vue/inertia/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "@adonisjs/tsconfig/tsconfig.client.json", "compilerOptions": { - "baseUrl": ".", "jsx": "preserve", "module": "ESNext", "jsxImportSource": "vue", diff --git a/inertia-vue/package.json b/inertia-vue/package.json index ada7a75..cd652e1 100644 --- a/inertia-vue/package.json +++ b/inertia-vue/package.json @@ -38,8 +38,8 @@ }, "devDependencies": { "@adonisjs/assembler": "^8.4.0", - "@adonisjs/eslint-config": "^3.0.0", - "@adonisjs/prettier-config": "^1.4.5", + "@adonisjs/eslint-config": "^3.1.0", + "@adonisjs/prettier-config": "^1.5.0", "@adonisjs/tsconfig": "^2.0.0", "@japa/assert": "^4.2.0", "@japa/browser-client": "^2.3.0", @@ -47,35 +47,36 @@ "@japa/runner": "^5.3.0", "@poppinss/ts-exec": "^1.4.4", "@types/luxon": "^3.7.1", - "@types/node": "~25.6.0", - "@vitejs/plugin-vue": "^6.0.4", - "eslint": "^10.2.0", + "@types/node": "~25.9.1", + "@vitejs/plugin-vue": "^6.0.7", + "eslint": "^10.4.0", + "eslint-plugin-vue": "^10.9.1", "hot-hook": "^1.0.0", "pino-pretty": "^13.1.3", - "prettier": "^3.8.2", - "typescript": "~6.0.2", - "vite": "^7.3.1", - "vue-tsc": "^3.2.6", + "prettier": "^3.8.3", + "typescript": "~6.0.3", + "vite": "^7.3.3", + "vue-tsc": "^3.3.2", "youch": "^4.1.1" }, "dependencies": { "@adonisjs/auth": "^10.1.0", - "@adonisjs/core": "^7.3.1", + "@adonisjs/core": "^7.3.3", "@adonisjs/cors": "^3.0.0", "@adonisjs/inertia": "^4.2.0", "@adonisjs/lucid": "^22.4.2", "@adonisjs/session": "^8.1.0", "@adonisjs/shield": "^9.0.0", "@adonisjs/static": "^2.0.1", - "@adonisjs/vite": "^5.1.0", - "@inertiajs/vue3": "^2.3.18", + "@adonisjs/vite": "^5.1.1", + "@inertiajs/vue3": "^2.3.24", "@tuyau/core": "^1.2.2", - "@vinejs/vine": "^4.3.1", - "better-sqlite3": "^12.9.0", - "edge.js": "^6.5.0", + "@vinejs/vine": "^4.4.0", + "better-sqlite3": "^12.10.0", + "edge.js": "^6.5.1", "luxon": "^3.7.2", "reflect-metadata": "^0.2.2", - "vue": "^3.5.32", + "vue": "^3.5.35", "vue-sonner": "^2.0.9" }, "hotHook": {