diff --git a/examples/core/auth-nextjs-email/README.md b/examples/core/auth-nextjs-email/README.md index 1e5da9d8c8d..b31c41650a4 100644 --- a/examples/core/auth-nextjs-email/README.md +++ b/examples/core/auth-nextjs-email/README.md @@ -4,7 +4,33 @@ This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next ## Getting Started -First, run the development server: +1. You need to have a Postgres database running. You can use the following docker command to start a Postgres database: + +```bash +docker run --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres +``` + +2. For the database created above, the connection string is `postgresql://postgres:postgres@localhost:5432/postgres`. + +3. Update the `DATABASE_URL` environment variable in the `.env` file with the connection string for the database you created above. + +4. Then, generate the Prisma Client: + +```bash +npx prisma migrate dev --schema=./src/prisma/schema.prisma +``` + +5. You also need to supply the following enviroment variables for the email server to work: + +```bash +EMAIL_SERVER_HOST= +EMAIL_SERVER_PORT= +EMAIL_SERVER_USER= +EMAIL_SERVER_PASSWORD= +EMAIL_FROM= +``` + +6. Finally, run the development server: ```bash npm run dev @@ -16,7 +42,17 @@ pnpm dev bun dev ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +7. Open [http://localhost:3000](http://localhost:3000) with your browser to see the app running. + +## Clone using `create-toolpad-app` + +To copy this example and customize it for your needs, run + +```bash +npx create-toolpad-app@latest --example auth-nextjs-email +``` + +and follow the instructions in the terminal. ## Learn More diff --git a/examples/core/auth-nextjs-email/package.json b/examples/core/auth-nextjs-email/package.json index b784cd62ae9..740ff8b0b76 100644 --- a/examples/core/auth-nextjs-email/package.json +++ b/examples/core/auth-nextjs-email/package.json @@ -1,6 +1,6 @@ { "name": "playground-nextjs-email", - "version": "0.5.2", + "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", @@ -14,10 +14,9 @@ "@mui/material-nextjs": "^6", "@toolpad/core": "latest", "@prisma/client": "^5", - "prisma": "^5", "@auth/prisma-adapter": "^2", - "next": "^14", - "next-auth": "5.0.0-beta.20", + "next": "^15", + "next-auth": "5.0.0-beta.25", "nodemailer": "^6", "react": "^18", "react-dom": "^18" @@ -28,6 +27,7 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "^14" + "prisma": "^5", + "eslint-config-next": "^15" } } diff --git a/examples/core/auth-nextjs-email/src/app/(dashboard)/orders/page.tsx b/examples/core/auth-nextjs-email/src/app/(dashboard)/orders/page.tsx index 467e27cc6b3..53104a52d33 100644 --- a/examples/core/auth-nextjs-email/src/app/(dashboard)/orders/page.tsx +++ b/examples/core/auth-nextjs-email/src/app/(dashboard)/orders/page.tsx @@ -6,7 +6,8 @@ import { auth } from '../../../auth'; export default async function OrdersPage() { const session = await auth(); - const currentUrl = headers().get('referer') || 'http://localhost:3000'; + const currentUrl = + (await headers()).get('referer') || process.env.AUTH_URL || 'http://localhost:3000'; if (!session) { // Get the current URL to redirect to signIn with `callbackUrl` diff --git a/examples/core/auth-nextjs-email/src/app/(dashboard)/page.tsx b/examples/core/auth-nextjs-email/src/app/(dashboard)/page.tsx index 5e100e4e4f6..d5ff3334cd2 100644 --- a/examples/core/auth-nextjs-email/src/app/(dashboard)/page.tsx +++ b/examples/core/auth-nextjs-email/src/app/(dashboard)/page.tsx @@ -6,7 +6,8 @@ import { auth } from '../../auth'; export default async function HomePage() { const session = await auth(); - const currentUrl = headers().get('referer') || 'http://localhost:3000'; + const currentUrl = + (await headers()).get('referer') || process.env.AUTH_URL || 'http://localhost:3000'; if (!session) { // Get the current URL to redirect to signIn with `callbackUrl` diff --git a/examples/core/auth-nextjs-pages-nextauth-4/README.md b/examples/core/auth-nextjs-pages-nextauth-4/README.md index d33f0dc405c..80d024ea5dd 100644 --- a/examples/core/auth-nextjs-pages-nextauth-4/README.md +++ b/examples/core/auth-nextjs-pages-nextauth-4/README.md @@ -18,6 +18,16 @@ bun dev Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +## Clone using `create-toolpad-app` + +To copy this example and customize it for your needs, run + +```bash +npx create-toolpad-app@latest --example auth-nextjs-pages-nextauth-4 +``` + +and follow the instructions in the terminal. + ## Learn More To learn more about Next.js, take a look at the following resources: diff --git a/examples/core/auth-nextjs-pages-nextauth-4/package.json b/examples/core/auth-nextjs-pages-nextauth-4/package.json index 1da317f07cf..eac4562e1fe 100644 --- a/examples/core/auth-nextjs-pages-nextauth-4/package.json +++ b/examples/core/auth-nextjs-pages-nextauth-4/package.json @@ -14,8 +14,8 @@ "@mui/material": "^6", "@mui/material-nextjs": "^6", "@toolpad/core": "latest", - "next": "^14", - "next-auth": "^4.24.7", + "next": "^15", + "next-auth": "^4.24.10", "react": "^18", "react-dom": "^18" }, @@ -25,6 +25,6 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "^14" + "eslint-config-next": "^15" } } diff --git a/examples/core/auth-nextjs-pages/README.md b/examples/core/auth-nextjs-pages/README.md index e92d004f1c3..002b2e45075 100644 --- a/examples/core/auth-nextjs-pages/README.md +++ b/examples/core/auth-nextjs-pages/README.md @@ -40,6 +40,16 @@ bun dev Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +## Clone using `create-toolpad-app` + +To copy this example and customize it for your needs, run + +```bash +npx create-toolpad-app@latest --example auth-nextjs-pages +``` + +and follow the instructions in the terminal. + ## Learn More To learn more about Next.js, take a look at the following resources: diff --git a/examples/core/auth-nextjs-pages/next.config.mjs b/examples/core/auth-nextjs-pages/next.config.mjs index d5456a15d4a..53c01cd0d0c 100644 --- a/examples/core/auth-nextjs-pages/next.config.mjs +++ b/examples/core/auth-nextjs-pages/next.config.mjs @@ -1,6 +1,7 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, + transpilePackages: ['next-auth'], }; export default nextConfig; diff --git a/examples/core/auth-nextjs-pages/package.json b/examples/core/auth-nextjs-pages/package.json index eecc1758773..fad712b9bed 100644 --- a/examples/core/auth-nextjs-pages/package.json +++ b/examples/core/auth-nextjs-pages/package.json @@ -14,8 +14,8 @@ "@mui/material": "^6", "@mui/material-nextjs": "^6", "@toolpad/core": "latest", - "next": "^14", - "next-auth": "5.0.0-beta.20", + "next": "^15", + "next-auth": "5.0.0-beta.25", "react": "^18", "react-dom": "^18" }, @@ -25,6 +25,6 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "^14" + "eslint-config-next": "^15" } } diff --git a/examples/core/auth-nextjs-passkey/README.md b/examples/core/auth-nextjs-passkey/README.md index 79740d8469d..d55433ada12 100644 --- a/examples/core/auth-nextjs-passkey/README.md +++ b/examples/core/auth-nextjs-passkey/README.md @@ -17,7 +17,7 @@ docker run --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgre 4. Then, generate the Prisma Client: ```bash -npx prisma generate --schema=./src/prisma/schema.prisma +npx prisma migrate dev --schema=./src/prisma/schema.prisma ``` 5. Finally, run the development server: @@ -34,6 +34,16 @@ bun dev 6. Open [http://localhost:3000](http://localhost:3000) with your browser to see the app running. +## Clone using `create-toolpad-app` + +To copy this example and customize it for your needs, run + +```bash +npx create-toolpad-app@latest --example auth-nextjs-passkey +``` + +and follow the instructions in the terminal. + ## Learn More To learn more about Next.js, take a look at the following resources: diff --git a/examples/core/auth-nextjs-passkey/package.json b/examples/core/auth-nextjs-passkey/package.json index fb41f8e3334..05f13008c29 100644 --- a/examples/core/auth-nextjs-passkey/package.json +++ b/examples/core/auth-nextjs-passkey/package.json @@ -6,27 +6,26 @@ "lint": "next lint" }, "dependencies": { - "@auth/prisma-adapter": "2.4.2", - "@emotion/react": "11.13.3", - "@emotion/styled": "11.13.0", - "@mui/icons-material": "6.0.2", - "@mui/lab": "6.0.0-beta.9", - "@mui/material": "6.0.2", - "@mui/material-nextjs": "6.0.2", - "@prisma/client": "5.19.1", - "@simplewebauthn/browser": "9.0.1", - "@simplewebauthn/server": "9.0.3", + "@auth/prisma-adapter": "^2", + "@emotion/react": "^11", + "@emotion/styled": "^11", + "@mui/icons-material": "^6", + "@mui/material": "^6", + "@mui/material-nextjs": "^6", + "@prisma/client": "^5", + "@simplewebauthn/browser": "^9", + "@simplewebauthn/server": "^9", "@toolpad/core": "latest", - "next": "^14", - "next-auth": "5.0.0-beta.20", - "react": "18.3.1", - "react-dom": "18.3.1" + "next": "^15", + "next-auth": "5.0.0-beta.25", + "react": "^18", + "react-dom": "^18" }, "devDependencies": { - "@types/node": "22.5.1", - "@types/react": "18.3.5", - "@types/react-dom": "18.3.0", - "eslint-config-next": "^14", - "prisma": "5.19.1" + "@types/node": "^22", + "@types/react": "^18", + "prisma": "^5", + "@types/react-dom": "^18", + "eslint-config-next": "^15" } } diff --git a/examples/core/auth-nextjs-passkey/src/app/(dashboard)/orders/page.tsx b/examples/core/auth-nextjs-passkey/src/app/(dashboard)/orders/page.tsx index 0e704a11918..1f55fb65641 100644 --- a/examples/core/auth-nextjs-passkey/src/app/(dashboard)/orders/page.tsx +++ b/examples/core/auth-nextjs-passkey/src/app/(dashboard)/orders/page.tsx @@ -7,7 +7,8 @@ import { auth } from '../../../auth'; export default async function OrdersPage() { const session = await auth(); - const currentUrl = headers().get('referer') || 'http://localhost:3000'; + const currentUrl = + (await headers()).get('referer') || process.env.AUTH_URL || 'http://localhost:3000'; if (!session) { // Get the current URL to redirect to signIn with `callbackUrl` diff --git a/examples/core/auth-nextjs-passkey/src/app/(dashboard)/page.tsx b/examples/core/auth-nextjs-passkey/src/app/(dashboard)/page.tsx index 9d6a1314e49..a1de3bab206 100644 --- a/examples/core/auth-nextjs-passkey/src/app/(dashboard)/page.tsx +++ b/examples/core/auth-nextjs-passkey/src/app/(dashboard)/page.tsx @@ -7,7 +7,8 @@ import { auth } from '../../auth'; export default async function HomePage() { const session = await auth(); - const currentUrl = headers().get('referer') || 'http://localhost:3000'; + const currentUrl = + (await headers()).get('referer') || process.env.AUTH_URL || 'http://localhost:3000'; if (!session) { // Get the current URL to redirect to signIn with `callbackUrl` @@ -27,7 +28,7 @@ export default async function HomePage() { textAlign: 'center', }} > - Welcome to Toolpad, {session?.user?.name || 'User'}! + Welcome to Toolpad, {session?.user?.email || 'User'}! ); } diff --git a/examples/core/auth-nextjs-passkey/src/auth.ts b/examples/core/auth-nextjs-passkey/src/auth.ts index 8e73e968dae..6444dc86c13 100644 --- a/examples/core/auth-nextjs-passkey/src/auth.ts +++ b/examples/core/auth-nextjs-passkey/src/auth.ts @@ -26,7 +26,6 @@ export const { handlers, auth, signIn, signOut } = NextAuth({ pages: { signIn: '/auth/signin', }, - debug: true, callbacks: { authorized({ auth: session, request: { nextUrl } }) { const isLoggedIn = !!session?.user; diff --git a/examples/core/auth-nextjs-themed/package.json b/examples/core/auth-nextjs-themed/package.json index d599a3bc45e..5705e10c531 100644 --- a/examples/core/auth-nextjs-themed/package.json +++ b/examples/core/auth-nextjs-themed/package.json @@ -21,8 +21,8 @@ "clsx": "^2", "@react-spring/web": "^9", "@toolpad/core": "latest", - "next": "^14", - "next-auth": "^5.0.0-beta.20", + "next": "^15", + "next-auth": "^5.0.0-beta.25", "react": "^18", "react-dom": "^18" }, @@ -31,7 +31,7 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "^14", + "eslint-config-next": "^15", "typescript": "^5" } } diff --git a/examples/core/auth-nextjs/README.md b/examples/core/auth-nextjs/README.md index be121f349a6..dc87ac7fecd 100644 --- a/examples/core/auth-nextjs/README.md +++ b/examples/core/auth-nextjs/README.md @@ -40,6 +40,16 @@ npx auth secret To get the required credentials from GitHub, we need to create an application in their developer settings. Read this [detailed guide on Auth.js](https://authjs.dev/guides/configuring-github) on how to obtain those. +## Clone using `create-toolpad-app` + +To copy this example and customize it for your needs, run + +```bash +npx create-toolpad-app@latest --example auth-nextjs +``` + +and follow the instructions in the terminal. + ## Learn More To learn more about Next.js, take a look at the following resources: diff --git a/examples/core/auth-nextjs/package.json b/examples/core/auth-nextjs/package.json index 2f6b029ace7..21f27d46ef0 100644 --- a/examples/core/auth-nextjs/package.json +++ b/examples/core/auth-nextjs/package.json @@ -12,8 +12,8 @@ "@mui/material": "^6", "@mui/material-nextjs": "^6", "@toolpad/core": "latest", - "next": "^14", - "next-auth": "5.0.0-beta.20", + "next": "^15", + "next-auth": "5.0.0-beta.25", "react": "^18", "react-dom": "^18" }, @@ -23,6 +23,6 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "^14" + "eslint-config-next": "^15" } } diff --git a/examples/core/tutorial/package.json b/examples/core/tutorial/package.json index 72557b9f82c..e475b6edfef 100644 --- a/examples/core/tutorial/package.json +++ b/examples/core/tutorial/package.json @@ -10,7 +10,7 @@ "dependencies": { "react": "^18", "react-dom": "^18", - "next": "^14", + "next": "^15", "@toolpad/core": "latest", "@mui/material": "^6", "@mui/material-nextjs": "^6", @@ -24,6 +24,6 @@ "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", - "eslint-config-next": "^14" + "eslint-config-next": "^15" } } diff --git a/package.json b/package.json index 3abf56de7e5..65e4b1ed632 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "eslint-plugin-mocha": "10.5.0", "eslint-plugin-react": "7.37.2", "eslint-plugin-react-compiler": "latest", - "eslint-plugin-react-hooks": "4.6.2", + "eslint-plugin-react-hooks": "5.0.0", "eslint-plugin-testing-library": "^6.4.0", "eslint-plugin-typescript-enum": "2.1.0", "execa": "9.5.1", diff --git a/packages/create-toolpad-app/src/generateProject.ts b/packages/create-toolpad-app/src/generateProject.ts index 7a996579f83..0a71d8c19fd 100644 --- a/packages/create-toolpad-app/src/generateProject.ts +++ b/packages/create-toolpad-app/src/generateProject.ts @@ -41,7 +41,7 @@ export default function generateProject( const files = new Map([ ['theme.ts', { content: theme }], ['next-env.d.ts', { content: nextTypes }], - ['next.config.mjs', { content: nextConfig }], + ['next.config.mjs', { content: nextConfig(options) }], ['.eslintrc.json', { content: eslintConfig }], ['tsconfig.json', { content: tsConfig }], ['README.md', { content: readme }], diff --git a/packages/create-toolpad-app/src/templates/nextConfig.ts b/packages/create-toolpad-app/src/templates/nextConfig.ts index 919a2e044d8..1d4f7d7fdb3 100644 --- a/packages/create-toolpad-app/src/templates/nextConfig.ts +++ b/packages/create-toolpad-app/src/templates/nextConfig.ts @@ -1,7 +1,11 @@ -const nextConfig = ` +import { Template } from '../types'; + +const nextConfig: Template = (options) => ` /** @type {import('next').NextConfig} */ - const nextConfig = {}; + const nextConfig = { + ${options.router === 'nextjs-pages' ? 'transpilePackages: ["next-auth"],' : ''} + }; export default nextConfig; - `; +`; export default nextConfig; diff --git a/packages/create-toolpad-app/src/templates/packageJson.ts b/packages/create-toolpad-app/src/templates/packageJson.ts index 8f831b12222..ddfb0cce52c 100644 --- a/packages/create-toolpad-app/src/templates/packageJson.ts +++ b/packages/create-toolpad-app/src/templates/packageJson.ts @@ -21,7 +21,7 @@ const packageJson: PackageJsonTemplate = (options) => { const dependencies: Record = { react: '^18', 'react-dom': '^18', - next: '^14', + next: '^15', '@toolpad/core': coreVersion ?? 'latest', '@mui/material': '^6', '@mui/material-nextjs': '^6', @@ -36,7 +36,7 @@ const packageJson: PackageJsonTemplate = (options) => { } if (authOption) { - dependencies['next-auth'] = '5.0.0-beta.20'; + dependencies['next-auth'] = '5.0.0-beta.25'; } const devDependencies: Record = { @@ -45,7 +45,7 @@ const packageJson: PackageJsonTemplate = (options) => { '@types/react': '^18', '@types/react-dom': '^18', eslint: '^8', - 'eslint-config-next': '^14', + 'eslint-config-next': '^15', }; const scripts = { diff --git a/packages/toolpad-core/src/SignInPage/SignInPage.tsx b/packages/toolpad-core/src/SignInPage/SignInPage.tsx index 6d56180c281..641732a858b 100644 --- a/packages/toolpad-core/src/SignInPage/SignInPage.tsx +++ b/packages/toolpad-core/src/SignInPage/SignInPage.tsx @@ -331,6 +331,7 @@ function SignInPage(props: SignInPageProps) { color="textPrimary" sx={{ my: theme.spacing(1), + textAlign: 'center', fontWeight: 600, }} > diff --git a/playground/nextjs-pages/next.config.mjs b/playground/nextjs-pages/next.config.mjs index d5456a15d4a..38a959cb3e2 100644 --- a/playground/nextjs-pages/next.config.mjs +++ b/playground/nextjs-pages/next.config.mjs @@ -1,6 +1,8 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, + // https://github.com/nextauthjs/next-auth/discussions/9385#discussioncomment-8875108 + transpilePackages: ['next-auth'], }; export default nextConfig; diff --git a/playground/nextjs-pages/package.json b/playground/nextjs-pages/package.json index 0c1136fd795..976538227bb 100644 --- a/playground/nextjs-pages/package.json +++ b/playground/nextjs-pages/package.json @@ -15,8 +15,8 @@ "@toolpad/core": "workspace:*", "@types/react": "18.3.12", "@types/react-dom": "18.3.1", - "eslint-config-next": "14.2.18", - "next": "14.2.18", + "eslint-config-next": "15.0.3", + "next": "15.0.3", "next-auth": "5.0.0-beta.25", "react": "18.3.1", "react-dom": "18.3.1" diff --git a/playground/nextjs-pages/tsconfig.json b/playground/nextjs-pages/tsconfig.json index bb5584ed1a4..2cb18e2f53b 100644 --- a/playground/nextjs-pages/tsconfig.json +++ b/playground/nextjs-pages/tsconfig.json @@ -16,7 +16,8 @@ { "name": "next" } - ] + ], + "target": "ES2017" }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] diff --git a/playground/nextjs/package.json b/playground/nextjs/package.json index c1cecbcee49..ec598184323 100644 --- a/playground/nextjs/package.json +++ b/playground/nextjs/package.json @@ -10,15 +10,14 @@ "@emotion/react": "11.13.3", "@emotion/styled": "11.13.0", "@mui/icons-material": "6.1.8", - "@mui/lab": "6.0.0-beta.16", "@mui/material": "6.1.8", "@mui/material-nextjs": "6.1.8", "@toolpad/core": "workspace:*", "@types/node": "^20.17.6", "@types/react": "18.3.12", "@types/react-dom": "18.3.1", - "eslint-config-next": "14.2.18", - "next": "14.2.18", + "eslint-config-next": "15.0.3", + "next": "15.0.3", "next-auth": "5.0.0-beta.25", "react": "18.3.1", "react-dom": "18.3.1" diff --git a/playground/nextjs/tsconfig.json b/playground/nextjs/tsconfig.json index bb5584ed1a4..2cb18e2f53b 100644 --- a/playground/nextjs/tsconfig.json +++ b/playground/nextjs/tsconfig.json @@ -16,7 +16,8 @@ { "name": "next" } - ] + ], + "target": "ES2017" }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6f6c12834ea..c4530ebb851 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -165,7 +165,7 @@ importers: version: 8.57.1 eslint-config-airbnb: specifier: 19.0.4 - version: 19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.2(eslint@8.57.1))(eslint@8.57.1) + version: 19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@5.0.0(eslint@8.57.1))(eslint-plugin-react@7.37.2(eslint@8.57.1))(eslint@8.57.1) eslint-config-airbnb-typescript: specifier: 18.0.0 version: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-plugin-import@2.31.0)(eslint@8.57.1) @@ -197,8 +197,8 @@ importers: specifier: latest version: 19.0.0-beta-0dec889-20241115(eslint@8.57.1) eslint-plugin-react-hooks: - specifier: 4.6.2 - version: 4.6.2(eslint@8.57.1) + specifier: 5.0.0 + version: 5.0.0(eslint@8.57.1) eslint-plugin-testing-library: specifier: ^6.4.0 version: 6.4.0(eslint@8.57.1)(typescript@5.6.3) @@ -1210,15 +1210,12 @@ importers: '@mui/icons-material': specifier: 6.1.8 version: 6.1.8(@mui/material@6.1.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react@18.3.1) - '@mui/lab': - specifier: 6.0.0-beta.16 - version: 6.0.0-beta.16(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@mui/material@6.1.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material': specifier: 6.1.8 version: 6.1.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: 6.1.8 - version: 6.1.8(@emotion/cache@11.13.1)(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 6.1.8(@emotion/cache@11.13.1)(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.12)(next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@toolpad/core': specifier: workspace:* version: link:../../packages/toolpad-core/build @@ -1232,14 +1229,14 @@ importers: specifier: 18.3.1 version: 18.3.1 eslint-config-next: - specifier: 14.2.18 - version: 14.2.18(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1)(typescript@5.6.3) + specifier: 15.0.3 + version: 15.0.3(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1)(typescript@5.6.3) next: - specifier: 14.2.18 - version: 14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.25(next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) react: specifier: 18.3.1 version: 18.3.1 @@ -1263,7 +1260,7 @@ importers: version: 6.1.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/material-nextjs': specifier: 6.1.8 - version: 6.1.8(@emotion/cache@11.13.1)(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.12)(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 6.1.8(@emotion/cache@11.13.1)(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.12)(next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@toolpad/core': specifier: workspace:* version: link:../../packages/toolpad-core/build @@ -1274,14 +1271,14 @@ importers: specifier: 18.3.1 version: 18.3.1 eslint-config-next: - specifier: 14.2.18 - version: 14.2.18(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1)(typescript@5.6.3) + specifier: 15.0.3 + version: 15.0.3(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1)(typescript@5.6.3) next: - specifier: 14.2.18 - version: 14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-auth: specifier: 5.0.0-beta.25 - version: 5.0.0-beta.25(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 5.0.0-beta.25(next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) react: specifier: 18.3.1 version: 18.3.1 @@ -3494,51 +3491,99 @@ packages: '@next/env@14.2.18': resolution: {integrity: sha512-2vWLOUwIPgoqMJKG6dt35fVXVhgM09tw4tK3/Q34GFXDrfiHlG7iS33VA4ggnjWxjiz9KV5xzfsQzJX6vGAekA==} + '@next/env@15.0.3': + resolution: {integrity: sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==} + '@next/eslint-plugin-next@14.2.18': resolution: {integrity: sha512-KyYTbZ3GQwWOjX3Vi1YcQbekyGP0gdammb7pbmmi25HBUCINzDReyrzCMOJIeZisK1Q3U6DT5Rlc4nm2/pQeXA==} + '@next/eslint-plugin-next@15.0.3': + resolution: {integrity: sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==} + '@next/swc-darwin-arm64@14.2.18': resolution: {integrity: sha512-tOBlDHCjGdyLf0ube/rDUs6VtwNOajaWV+5FV/ajPgrvHeisllEdymY/oDgv2cx561+gJksfMUtqf8crug7sbA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.0.3': + resolution: {integrity: sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@14.2.18': resolution: {integrity: sha512-uJCEjutt5VeJ30jjrHV1VIHCsbMYnEqytQgvREx+DjURd/fmKy15NaVK4aR/u98S1LGTnjq35lRTnRyygglxoA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.0.3': + resolution: {integrity: sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@14.2.18': resolution: {integrity: sha512-IL6rU8vnBB+BAm6YSWZewc+qvdL1EaA+VhLQ6tlUc0xp+kkdxQrVqAnh8Zek1ccKHlTDFRyAft0e60gteYmQ4A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.0.3': + resolution: {integrity: sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@14.2.18': resolution: {integrity: sha512-RCaENbIZqKKqTlL8KNd+AZV/yAdCsovblOpYFp0OJ7ZxgLNbV5w23CUU1G5On+0fgafrsGcW+GdMKdFjaRwyYA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.0.3': + resolution: {integrity: sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@14.2.18': resolution: {integrity: sha512-3kmv8DlyhPRCEBM1Vavn8NjyXtMeQ49ID0Olr/Sut7pgzaQTo4h01S7Z8YNE0VtbowyuAL26ibcz0ka6xCTH5g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.0.3': + resolution: {integrity: sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@14.2.18': resolution: {integrity: sha512-mliTfa8seVSpTbVEcKEXGjC18+TDII8ykW4a36au97spm9XMPqQTpdGPNBJ9RySSFw9/hLuaCMByluQIAnkzlw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.0.3': + resolution: {integrity: sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@14.2.18': resolution: {integrity: sha512-J5g0UFPbAjKYmqS3Cy7l2fetFmWMY9Oao32eUsBPYohts26BdrMUyfCJnZFQkX9npYaHNDOWqZ6uV9hSDPw9NA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.0.3': + resolution: {integrity: sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-ia32-msvc@14.2.18': resolution: {integrity: sha512-Ynxuk4ZgIpdcN7d16ivJdjsDG1+3hTvK24Pp8DiDmIa2+A4CfhJSEHHVndCHok6rnLUzAZD+/UOKESQgTsAZGg==} engines: {node: '>= 10'} @@ -3551,6 +3596,12 @@ packages: cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.0.3': + resolution: {integrity: sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} @@ -4003,6 +4054,9 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.5.13': + resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} @@ -5947,10 +6001,10 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 - eslint-config-next@14.2.18: - resolution: {integrity: sha512-SuDRcpJY5VHBkhz5DijJ4iA4bVnBA0n48Rb+YSJSCDr+h7kKAcb1mZHusLbW+WA8LDB6edSolomXA55eG3eOVA==} + eslint-config-next@15.0.3: + resolution: {integrity: sha512-IGP2DdQQrgjcr4mwFPve4DrCqo7CVVez1WoYY47XwKSrYO4hC0Dlb+iJA60i0YfICOzgNADIb8r28BpQ5Zs0wg==} peerDependencies: - eslint: ^7.23.0 || ^8.0.0 + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' peerDependenciesMeta: typescript: @@ -6045,11 +6099,11 @@ packages: peerDependencies: eslint: '>=7' - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} + eslint-plugin-react-hooks@5.0.0: + resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 eslint-plugin-react@7.37.2: resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} @@ -6207,6 +6261,10 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -8003,6 +8061,27 @@ packages: sass: optional: true + next@15.0.3: + resolution: {integrity: sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-66855b96-20241106 + react-dom: ^18.2.0 || 19.0.0-rc-66855b96-20241106 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + nise@6.1.1: resolution: {integrity: sha512-aMSAzLVY7LyeM60gvBS423nBmIPP+Wy7St7hsb+8/fc1HmeoHJfLO8CKse4u3BtOZvQLJghYPI2i/1WZrEj5/g==} @@ -9610,6 +9689,19 @@ packages: babel-plugin-macros: optional: true + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + stylis-plugin-rtl@2.1.1: resolution: {integrity: sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==} peerDependencies: @@ -12371,6 +12463,17 @@ snapshots: '@emotion/server': 11.11.0 '@types/react': 18.3.12 + '@mui/material-nextjs@6.1.8(@emotion/cache@11.13.1)(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/server@11.11.0)(@types/react@18.3.12)(next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@emotion/react': 11.13.3(@types/react@18.3.12)(react@18.3.1) + next: 15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@emotion/cache': 11.13.1 + '@emotion/server': 11.11.0 + '@types/react': 18.3.12 + '@mui/material@6.1.8(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@emotion/styled@11.13.0(@emotion/react@11.13.3(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.0 @@ -12796,37 +12899,67 @@ snapshots: '@next/env@14.2.18': {} + '@next/env@15.0.3': {} + '@next/eslint-plugin-next@14.2.18': dependencies: glob: 10.3.10 + '@next/eslint-plugin-next@15.0.3': + dependencies: + fast-glob: 3.3.1 + '@next/swc-darwin-arm64@14.2.18': optional: true + '@next/swc-darwin-arm64@15.0.3': + optional: true + '@next/swc-darwin-x64@14.2.18': optional: true + '@next/swc-darwin-x64@15.0.3': + optional: true + '@next/swc-linux-arm64-gnu@14.2.18': optional: true + '@next/swc-linux-arm64-gnu@15.0.3': + optional: true + '@next/swc-linux-arm64-musl@14.2.18': optional: true + '@next/swc-linux-arm64-musl@15.0.3': + optional: true + '@next/swc-linux-x64-gnu@14.2.18': optional: true + '@next/swc-linux-x64-gnu@15.0.3': + optional: true + '@next/swc-linux-x64-musl@14.2.18': optional: true + '@next/swc-linux-x64-musl@15.0.3': + optional: true + '@next/swc-win32-arm64-msvc@14.2.18': optional: true + '@next/swc-win32-arm64-msvc@15.0.3': + optional: true + '@next/swc-win32-ia32-msvc@14.2.18': optional: true '@next/swc-win32-x64-msvc@14.2.18': optional: true + '@next/swc-win32-x64-msvc@15.0.3': + optional: true + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': optional: true @@ -13365,6 +13498,10 @@ snapshots: '@swc/counter@0.1.3': {} + '@swc/helpers@0.5.13': + dependencies: + tslib: 2.8.1 + '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 @@ -15679,20 +15816,20 @@ snapshots: transitivePeerDependencies: - eslint-plugin-import - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.2(eslint@8.57.1))(eslint@8.57.1): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0)(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@5.0.0(eslint@8.57.1))(eslint-plugin-react@7.37.2(eslint@8.57.1))(eslint@8.57.1): dependencies: eslint: 8.57.1 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.2(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + eslint-plugin-react-hooks: 5.0.0(eslint@8.57.1) object.assign: 4.1.5 object.entries: 1.1.8 - eslint-config-next@14.2.18(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1)(typescript@5.6.3): + eslint-config-next@15.0.3(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1)(typescript@5.6.3): dependencies: - '@next/eslint-plugin-next': 14.2.18 + '@next/eslint-plugin-next': 15.0.3 '@rushstack/eslint-patch': 1.10.4 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.6.3) @@ -15702,7 +15839,7 @@ snapshots: eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint-import-resolver-webpack@0.13.9(eslint-plugin-import@2.31.0)(webpack@5.96.1(esbuild@0.24.0)))(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.2(eslint@8.57.1) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + eslint-plugin-react-hooks: 5.0.0(eslint@8.57.1) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -15851,7 +15988,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): + eslint-plugin-react-hooks@5.0.0(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -16166,6 +16303,14 @@ snapshots: fast-fifo@1.3.2: {} + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -18174,10 +18319,10 @@ snapshots: nested-error-stacks@2.1.1: {} - next-auth@5.0.0-beta.25(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-auth@5.0.0-beta.25(next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@auth/core': 0.37.2 - next: 14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 next-router-mock@0.9.13(next@14.2.18(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): @@ -18211,6 +18356,32 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.0.3(@babel/core@7.26.0)(@playwright/test@1.47.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 15.0.3 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.13 + busboy: 1.6.0 + caniuse-lite: 1.0.30001676 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.0.3 + '@next/swc-darwin-x64': 15.0.3 + '@next/swc-linux-arm64-gnu': 15.0.3 + '@next/swc-linux-arm64-musl': 15.0.3 + '@next/swc-linux-x64-gnu': 15.0.3 + '@next/swc-linux-x64-musl': 15.0.3 + '@next/swc-win32-arm64-msvc': 15.0.3 + '@next/swc-win32-x64-msvc': 15.0.3 + '@playwright/test': 1.47.2 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nise@6.1.1: dependencies: '@sinonjs/commons': 3.0.1 @@ -20041,6 +20212,14 @@ snapshots: '@babel/core': 7.26.0 babel-plugin-macros: 3.1.0 + styled-jsx@5.1.6(@babel/core@7.26.0)(babel-plugin-macros@3.1.0)(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + optionalDependencies: + '@babel/core': 7.26.0 + babel-plugin-macros: 3.1.0 + stylis-plugin-rtl@2.1.1(stylis@4.3.4): dependencies: cssjanus: 2.3.0 diff --git a/test/playwright/localTest.ts b/test/playwright/localTest.ts index 43f67e3880e..443efeb2080 100644 --- a/test/playwright/localTest.ts +++ b/test/playwright/localTest.ts @@ -357,8 +357,8 @@ const test = baseTest.extend< }, { scope: 'worker', timeout: 60000 }, ], - baseURL: async ({ localApp }, use) => { - await use(localApp?.url); + baseURL: async ({ localApp }, run) => { + await run(localApp?.url); }, browserCloser: [ async ({ browser }, use) => { diff --git a/test/playwright/test.ts b/test/playwright/test.ts index 6ff538f06b5..34db944df13 100644 --- a/test/playwright/test.ts +++ b/test/playwright/test.ts @@ -27,7 +27,7 @@ export type Options = { ignoreConsoleErrors: RegExp[] }; export const test = base.extend({ ignoreConsoleErrors: [[], { option: true }], - page: async ({ page, ignoreConsoleErrors }, use) => { + page: async ({ page, ignoreConsoleErrors }, run) => { const entryPromises: Promise[] = []; const consoleHandler = (msg: ConsoleMessage) => { @@ -47,7 +47,7 @@ export const test = base.extend({ page.on('console', consoleHandler); - await use(page); + await run(page); page.off('console', consoleHandler);