From f2255d28f24fe9b5b76d879c488075d1e7d1ca3f Mon Sep 17 00:00:00 2001 From: Uri Goldshtein Date: Tue, 26 Nov 2024 11:02:56 +0200 Subject: [PATCH] Update nextjs 15 (#3509) * Update nextjs 15 * Ignore connection string in NextJS example * Fix leaks in legacy example --------- Co-authored-by: Arda TANRIKULU --- .../file-upload-nextjs-pothos/package.json | 4 +- .../__integration-tests__/nextjs-app.spec.ts | 85 ++- examples/nextjs-app/app/api/graphql/route.ts | 6 +- examples/nextjs-app/next-env.d.ts | 2 +- examples/nextjs-app/package.json | 4 +- examples/nextjs-auth/next-env.d.ts | 2 +- examples/nextjs-auth/package.json | 6 +- examples/nextjs-auth/tsconfig.json | 3 +- .../nextjs-legacy.spec.ts | 43 +- examples/nextjs-legacy-pages/next-env.d.ts | 2 +- examples/nextjs-legacy-pages/package.json | 4 +- examples/nextjs-ws/package.json | 4 +- pnpm-lock.yaml | 722 +++++++++--------- website/package.json | 2 +- .../integrations/integration-with-nextjs.mdx | 6 +- 15 files changed, 493 insertions(+), 402 deletions(-) diff --git a/examples/file-upload-nextjs-pothos/package.json b/examples/file-upload-nextjs-pothos/package.json index b708014c87..cfcd268cb4 100644 --- a/examples/file-upload-nextjs-pothos/package.json +++ b/examples/file-upload-nextjs-pothos/package.json @@ -13,7 +13,7 @@ "@pothos/core": "4.0.2", "graphql": "16.6.0", "graphql-yoga": "workspace:*", - "next": "13.4.12", + "next": "15.0.3", "react": "18.2.0", "react-dom": "18.2.0" }, @@ -21,7 +21,7 @@ "@types/react": "^18.0.17", "@whatwg-node/fetch": "^0.10.1", "eslint": "8.42.0", - "eslint-config-next": "13.4.12", + "eslint-config-next": "15.0.3", "typescript": "5.7.2" } } diff --git a/examples/nextjs-app/__integration-tests__/nextjs-app.spec.ts b/examples/nextjs-app/__integration-tests__/nextjs-app.spec.ts index 5eaaa86f33..52da0b2930 100644 --- a/examples/nextjs-app/__integration-tests__/nextjs-app.spec.ts +++ b/examples/nextjs-app/__integration-tests__/nextjs-app.spec.ts @@ -1,33 +1,51 @@ import cp from 'node:child_process'; +import { createServer } from 'node:http'; +import { AddressInfo } from 'node:net'; import { join } from 'node:path'; -import { setTimeout as setTimeout$ } from 'node:timers/promises'; import { fetch } from '@whatwg-node/fetch'; -const PORT = 3333; - jest.setTimeout(63_000); -let serverProcess: Proc; -beforeAll(async () => { - const signal = AbortSignal.timeout(60_000); - serverProcess = await spawn('pnpm', ['dev'], { - signal, - env: { PORT: String(PORT) }, +function getAvailablePort() { + return new Promise((resolve, reject) => { + const server = createServer(); + server.once('error', reject); + server.listen(0, () => { + const { port } = server.address() as AddressInfo; + server.close(err => { + if (err) reject(err); + else resolve(port); + }); + }); }); - for (;;) { - signal.throwIfAborted(); - try { - await fetch(`http://127.0.0.1:${PORT}`, { signal }); - break; - } catch {} - await setTimeout$(1_000); - } -}); -afterAll(() => serverProcess.kill()); +} describe('nextjs 13 App Router', () => { + let port: number; + let serverProcess: Proc; + beforeAll(async () => { + port = await getAvailablePort(); + const signal = AbortSignal.timeout(60_000); + const buildProcess = await spawn('pnpm', ['build'], { + signal, + env: {}, + }); + await buildProcess.waitForExit; + serverProcess = await spawn('pnpm', ['start'], { + signal, + env: { PORT: String(port) }, + }); + for (;;) { + signal.throwIfAborted(); + try { + await fetch(`http://127.0.0.1:${port}`, { signal }).then(res => res.text()); + break; + } catch {} + } + }); + afterAll(() => serverProcess.kill()); it('should show GraphiQL', async () => { - const response = await fetch(`http://127.0.0.1:${PORT}/api/graphql`, { + const response = await fetch(`http://127.0.0.1:${port}/api/graphql`, { headers: { accept: 'text/html', }, @@ -38,11 +56,12 @@ describe('nextjs 13 App Router', () => { }); it('should run basic query', async () => { - const response = await fetch(`http://127.0.0.1:${PORT}/api/graphql`, { + const response = await fetch(`http://127.0.0.1:${port}/api/graphql`, { method: 'POST', headers: { accept: 'application/json', 'content-type': 'application/json', + connection: 'close', }, body: JSON.stringify({ query: 'query { greetings }', @@ -55,17 +74,17 @@ describe('nextjs 13 App Router', () => { ...Object.fromEntries(response.headers.entries()), date: null, 'keep-alive': null, + connection: null, }).toMatchInlineSnapshot(` - { - "connection": "close", - "content-encoding": "gzip", - "content-type": "application/json; charset=utf-8", - "date": null, - "keep-alive": null, - "transfer-encoding": "chunked", - "vary": "RSC, Next-Router-State-Tree, Next-Router-Prefetch, Accept-Encoding", - } - `); +{ + "connection": null, + "content-type": "application/json; charset=utf-8", + "date": null, + "keep-alive": null, + "transfer-encoding": "chunked", + "vary": "RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch", +} +`); const json = await response.json(); @@ -123,9 +142,9 @@ function spawn( proc.once('spawn', () => resolve({ waitForExit, - async kill() { + kill() { proc.kill(); - await waitForExit; + return waitForExit; }, }), ); diff --git a/examples/nextjs-app/app/api/graphql/route.ts b/examples/nextjs-app/app/api/graphql/route.ts index 1550915045..77f4f3fdd3 100644 --- a/examples/nextjs-app/app/api/graphql/route.ts +++ b/examples/nextjs-app/app/api/graphql/route.ts @@ -1,7 +1,11 @@ // Next.js Custom Route Handler: https://nextjs.org/docs/app/building-your-application/routing/router-handlers import { createSchema, createYoga } from 'graphql-yoga'; -const { handleRequest } = createYoga({ +interface NextContext { + params: Promise>; +} + +const { handleRequest } = createYoga({ schema: createSchema({ typeDefs: /* GraphQL */ ` type Query { diff --git a/examples/nextjs-app/next-env.d.ts b/examples/nextjs-app/next-env.d.ts index 4f11a03dc6..40c3d68096 100644 --- a/examples/nextjs-app/next-env.d.ts +++ b/examples/nextjs-app/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information. diff --git a/examples/nextjs-app/package.json b/examples/nextjs-app/package.json index 0f98ab1ccc..0ffd953780 100644 --- a/examples/nextjs-app/package.json +++ b/examples/nextjs-app/package.json @@ -14,10 +14,10 @@ "@types/react-dom": "18.2.4", "autoprefixer": "10.4.19", "eslint": "8.42.0", - "eslint-config-next": "13.4.12", + "eslint-config-next": "15.0.3", "graphql": "^16.1.0", "graphql-yoga": "workspace:*", - "next": "13.4.12", + "next": "15.0.3", "postcss": "8.4.38", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/examples/nextjs-auth/next-env.d.ts b/examples/nextjs-auth/next-env.d.ts index 4f11a03dc6..a4a7b3f5cf 100644 --- a/examples/nextjs-auth/next-env.d.ts +++ b/examples/nextjs-auth/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. diff --git a/examples/nextjs-auth/package.json b/examples/nextjs-auth/package.json index b556154419..9870295afe 100644 --- a/examples/nextjs-auth/package.json +++ b/examples/nextjs-auth/package.json @@ -10,9 +10,9 @@ "start": "next start" }, "dependencies": { - "graphql": "^16.1.0", + "graphql": "^16.9.0", "graphql-yoga": "workspace:*", - "next": "13.4.12", + "next": "15.0.3", "next-auth": "4.24.10", "react": "18.2.0", "react-dom": "18.2.0", @@ -21,7 +21,7 @@ "devDependencies": { "@types/react": "18.2.8", "eslint": "8.42.0", - "eslint-config-next": "13.4.12", + "eslint-config-next": "15.0.3", "typescript": "5.7.2" } } diff --git a/examples/nextjs-auth/tsconfig.json b/examples/nextjs-auth/tsconfig.json index f1e462ce22..943abdff81 100644 --- a/examples/nextjs-auth/tsconfig.json +++ b/examples/nextjs-auth/tsconfig.json @@ -13,7 +13,8 @@ "moduleResolution": "node", "resolveJsonModule": true, "jsx": "preserve", - "importHelpers": true + "importHelpers": true, + "isolatedModules": true }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], "exclude": ["node_modules", "dist", "test"] diff --git a/examples/nextjs-legacy-pages/__integration-tests__/nextjs-legacy.spec.ts b/examples/nextjs-legacy-pages/__integration-tests__/nextjs-legacy.spec.ts index 24925b8516..4e2a699599 100644 --- a/examples/nextjs-legacy-pages/__integration-tests__/nextjs-legacy.spec.ts +++ b/examples/nextjs-legacy-pages/__integration-tests__/nextjs-legacy.spec.ts @@ -1,12 +1,13 @@ import { exec } from 'node:child_process'; +import { createServer } from 'node:http'; +import { AddressInfo } from 'node:net'; import { join } from 'node:path'; import { Readable } from 'node:stream'; import { setTimeout as setTimeout$ } from 'node:timers/promises'; import { fetch } from '@whatwg-node/fetch'; -const PORT = 3334; - describe('NextJS Legacy Pages', () => { + let PORT: number; it('should show GraphiQL', async () => { const response = await fetch(`http://127.0.0.1:${PORT}/api/graphql`, { headers: { @@ -24,6 +25,7 @@ describe('NextJS Legacy Pages', () => { headers: { accept: 'application/json', 'content-type': 'application/json', + connection: 'close', }, body: JSON.stringify({ query: 'query { greetings }', @@ -49,16 +51,32 @@ describe('NextJS Legacy Pages', () => { jest.setTimeout(1000 * 60 * 5); let serverProcess: ReturnType; + function getAvailablePort() { + return new Promise((resolve, reject) => { + const server = createServer(); + server.once('error', reject); + server.listen(0, () => { + const port = (server.address() as AddressInfo).port; + server.close(err => { + if (err) reject(err); + else resolve(port); + }); + }); + }); + } + beforeAll(async () => { + PORT = await getAvailablePort(); serverProcess = cmd(`PORT=${PORT} pnpm dev`); - await waitForEndpoint(`http://127.0.0.1:${PORT}`, 5, 1000); + return waitForEndpoint(`http://127.0.0.1:${PORT}`, 5, 1000); }); - afterAll(async () => { - await serverProcess?.stop().catch(err => { - console.error('Failed to stop server process', err); - }); - }); + afterAll( + () => + serverProcess?.stop().catch(err => { + console.error('Failed to stop server process', err); + }), + ); }); function cmd(cmd: string) { @@ -71,15 +89,15 @@ function cmd(cmd: string) { const getStderr = saveOut(cp.stderr!); const exited = new Promise((resolve, reject) => { - cp.on('close', async (code: number) => { + cp.once('close', async (code: number) => { const out = getStdout(); const err = getStderr(); if (out) console.log(out); if (err) console.error(err); - return code === 0 ? resolve(out) : reject(new Error(err)); + return code ? resolve(out) : reject(new Error(`Process exited with code ${code}; \n ${err}`)); }); - cp.on('error', error => { + cp.once('error', error => { console.error(error); reject(error); }); @@ -114,6 +132,9 @@ export async function waitForEndpoint( throw new Error(`Endpoint not ready yet, status code is ${r.status}`); } + await r.text(); + + console.info(`Connected to endpoint: ${endpoint}`); return true; } catch (e) { console.warn( diff --git a/examples/nextjs-legacy-pages/next-env.d.ts b/examples/nextjs-legacy-pages/next-env.d.ts index 4f11a03dc6..a4a7b3f5cf 100644 --- a/examples/nextjs-legacy-pages/next-env.d.ts +++ b/examples/nextjs-legacy-pages/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. diff --git a/examples/nextjs-legacy-pages/package.json b/examples/nextjs-legacy-pages/package.json index 99dfee6f7b..aafc59429b 100644 --- a/examples/nextjs-legacy-pages/package.json +++ b/examples/nextjs-legacy-pages/package.json @@ -14,7 +14,7 @@ "@types/react": "18.2.8", "graphql": "^16.1.0", "graphql-yoga": "workspace:*", - "next": "13.4.12", + "next": "15.0.3", "react": "18.2.0", "react-dom": "18.2.0", "tslib": "2.6.3" @@ -24,7 +24,7 @@ "@types/react": "18.2.8", "esbuild": "0.17.19", "eslint": "8.42.0", - "eslint-config-next": "13.4.12", + "eslint-config-next": "15.0.3", "typescript": "5.7.2" } } diff --git a/examples/nextjs-ws/package.json b/examples/nextjs-ws/package.json index 17a256500a..db046b7dcc 100644 --- a/examples/nextjs-ws/package.json +++ b/examples/nextjs-ws/package.json @@ -12,7 +12,7 @@ "graphql": "^16.1.0", "graphql-ws": "^5.11.3", "graphql-yoga": "workspace:*", - "next": "13.4.12", + "next": "15.0.3", "react": "18.2.0", "react-dom": "18.2.0", "ws": "8.13.0" @@ -22,7 +22,7 @@ "@types/react": "18.2.8", "@types/ws": "8.5.4", "eslint": "8.42.0", - "eslint-config-next": "13.4.12", + "eslint-config-next": "15.0.3", "typescript": "5.7.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7a733347a..2448cae06a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -579,8 +579,8 @@ importers: specifier: workspace:* version: link:../../packages/graphql-yoga/dist next: - specifier: 13.4.12 - version: 13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -598,8 +598,8 @@ importers: specifier: 8.42.0 version: 8.42.0 eslint-config-next: - specifier: 13.4.12 - version: 13.4.12(eslint@8.42.0)(typescript@5.7.2) + specifier: 15.0.3 + version: 15.0.3(eslint@8.42.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -990,8 +990,8 @@ importers: specifier: 8.42.0 version: 8.42.0 eslint-config-next: - specifier: 13.4.12 - version: 13.4.12(eslint@8.42.0)(typescript@5.7.2) + specifier: 15.0.3 + version: 15.0.3(eslint@8.42.0)(typescript@5.7.2) graphql: specifier: 16.8.1 version: 16.8.1 @@ -999,8 +999,8 @@ importers: specifier: workspace:* version: link:../../packages/graphql-yoga/dist next: - specifier: 13.4.12 - version: 13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) postcss: specifier: 8.4.38 version: 8.4.38 @@ -1030,11 +1030,11 @@ importers: specifier: workspace:* version: link:../../packages/graphql-yoga/dist next: - specifier: 13.4.12 - version: 13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-auth: specifier: 4.24.10 - version: 4.24.10(next@13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 4.24.10(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1052,8 +1052,8 @@ importers: specifier: 8.42.0 version: 8.42.0 eslint-config-next: - specifier: 13.4.12 - version: 13.4.12(eslint@8.42.0)(typescript@5.7.2) + specifier: 15.0.3 + version: 15.0.3(eslint@8.42.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -1070,8 +1070,8 @@ importers: specifier: workspace:* version: link:../../packages/graphql-yoga/dist next: - specifier: 13.4.12 - version: 13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1092,8 +1092,8 @@ importers: specifier: 8.42.0 version: 8.42.0 eslint-config-next: - specifier: 13.4.12 - version: 13.4.12(eslint@8.42.0)(typescript@5.7.2) + specifier: 15.0.3 + version: 15.0.3(eslint@8.42.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -1113,8 +1113,8 @@ importers: specifier: workspace:* version: link:../../packages/graphql-yoga/dist next: - specifier: 13.4.12 - version: 13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -1135,8 +1135,8 @@ importers: specifier: 8.42.0 version: 8.42.0 eslint-config-next: - specifier: 13.4.12 - version: 13.4.12(eslint@8.42.0)(typescript@5.7.2) + specifier: 15.0.3 + version: 15.0.3(eslint@8.42.0)(typescript@5.7.2) typescript: specifier: 5.7.2 version: 5.7.2 @@ -1690,7 +1690,7 @@ importers: version: 10.4.7(@nestjs/common@10.4.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.7(@nestjs/common@10.4.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/microservices@10.4.7)(@nestjs/platform-express@10.4.7)(@nestjs/websockets@10.4.7)(encoding@0.1.13)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/microservices@10.4.7(@nestjs/common@10.4.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.7)(@nestjs/websockets@10.4.7)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/platform-express@10.4.7(@nestjs/common@10.4.7(class-transformer@0.5.1)(class-validator@0.14.1)(reflect-metadata@0.1.13)(rxjs@7.8.1))(@nestjs/core@10.4.7)) '@swc/core': specifier: ^1.3.35 - version: 1.9.2(@swc/helpers@0.5.2) + version: 1.9.2(@swc/helpers@0.5.13) '@types/express': specifier: ^5.0.0 version: 5.0.0 @@ -2096,7 +2096,7 @@ importers: dependencies: '@theguild/components': specifier: 6.6.6 - version: 6.6.6(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2)(webpack@5.96.1(esbuild@0.17.19)) + version: 6.6.6(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2)(webpack@5.96.1(esbuild@0.17.19)) clsx: specifier: 2.1.0 version: 2.1.0 @@ -2104,11 +2104,11 @@ importers: specifier: 16.8.1 version: 16.8.1 next: - specifier: 14.1.4 - version: 14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + specifier: 15.0.3 + version: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-sitemap: specifier: 4.2.3 - version: 4.2.3(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + version: 4.2.3(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) react: specifier: 18.2.0 version: 18.2.0 @@ -3702,6 +3702,9 @@ packages: peerDependencies: graphql: 16.8.1 + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emotion/is-prop-valid@0.8.8': resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} @@ -5441,6 +5444,111 @@ packages: '@vue/compiler-sfc': optional: true + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@import-maps/resolve@1.0.1': resolution: {integrity: sha512-tWZNBIS1CoekcwlMuyG2mr0a1Wo5lb5lEHwwWvZo+5GLgr3e9LLDTtmgtCWEwBpXMkxn9D+2W9j2FY6eZQq0tA==} @@ -6065,122 +6173,59 @@ packages: '@next/bundle-analyzer@14.2.8': resolution: {integrity: sha512-1AVsLkZhCsLwY9u7WLw6TOdYbSiAqz2avpJXPJBfIU7zvYpGiHzZkAJLSdbf9o3DwyFVoxTuDrErj6NmgDSWVg==} - '@next/env@13.4.12': - resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} - '@next/env@13.5.7': resolution: {integrity: sha512-uVuRqoj28Ys/AI/5gVEgRAISd0KWI0HRjOO1CTpNgmX3ZsHb5mdn14Y59yk0IxizXdo7ZjsI2S7qbWnO+GNBcA==} - '@next/env@14.1.4': - resolution: {integrity: sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==} - - '@next/eslint-plugin-next@13.4.12': - resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==} + '@next/env@15.0.3': + resolution: {integrity: sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==} - '@next/swc-darwin-arm64@13.4.12': - resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] + '@next/eslint-plugin-next@15.0.3': + resolution: {integrity: sha512-3Ln/nHq2V+v8uIaxCR6YfYo7ceRgZNXfTd3yW1ukTaFbO+/I8jNakrjYWODvG9BuR2v5kgVtH/C8r0i11quOgw==} - '@next/swc-darwin-arm64@14.1.4': - resolution: {integrity: sha512-ubmUkbmW65nIAOmoxT1IROZdmmJMmdYvXIe8211send9ZYJu+SqxSnJM4TrPj9wmL6g9Atvj0S/2cFmMSS99jg==} + '@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@13.4.12': - resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-darwin-x64@14.1.4': - resolution: {integrity: sha512-b0Xo1ELj3u7IkZWAKcJPJEhBop117U78l70nfoQGo4xUSvv0PJSTaV4U9xQBLvZlnjsYkc8RwQN1HoH/oQmLlQ==} + '@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@13.4.12': - resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} + '@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-gnu@14.1.4': - resolution: {integrity: sha512-457G0hcLrdYA/u1O2XkRMsDKId5VKe3uKPvrKVOyuARa6nXrdhJOOYU9hkKKyQTMru1B8qEP78IAhf/1XnVqKA==} + '@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-arm64-musl@13.4.12': - resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.1.4': - resolution: {integrity: sha512-l/kMG+z6MB+fKA9KdtyprkTQ1ihlJcBh66cf0HvqGP+rXBbOXX0dpJatjZbHeunvEHoBBS69GYQG5ry78JMy3g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@13.4.12': - resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-gnu@14.1.4': - resolution: {integrity: sha512-BapIFZ3ZRnvQ1uWbmqEGJuPT9cgLwvKtxhK/L2t4QYO7l+/DxXuIGjvp1x8rvfa/x1FFSsipERZK70pewbtJtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@13.4.12': - resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} + '@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.1.4': - resolution: {integrity: sha512-mqVxTwk4XuBl49qn2A5UmzFImoL1iLm0KQQwtdRJRKl21ylQwwGCxJtIYo2rbfkZHoSKlh/YgztY0qH3wG1xIg==} + '@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@13.4.12': - resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} + '@next/swc-win32-arm64-msvc@15.0.3': + resolution: {integrity: sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@14.1.4': - resolution: {integrity: sha512-xzxF4ErcumXjO2Pvg/wVGrtr9QQJLk3IyQX1ddAC/fi6/5jZCZ9xpuL9Tzc4KPWMFq8GGWFVDMshZOdHGdkvag==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-ia32-msvc@13.4.12': - resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-ia32-msvc@14.1.4': - resolution: {integrity: sha512-WZiz8OdbkpRw6/IU/lredZWKKZopUMhcI2F+XiMAcPja0uZYdMTZQRoQ0WZcvinn9xZAidimE7tN9W5v9Yyfyw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@13.4.12': - resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@next/swc-win32-x64-msvc@14.1.4': - resolution: {integrity: sha512-4Rto21sPfw555sZ/XNLqfxDUNeLhNYGO2dlPqsnuCg8N8a2a9u1ltqBOPQ4vj1Gf7eJC0W2hHG2eYUHuiXgY2w==} + '@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] @@ -7552,11 +7597,8 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.1': - resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} - - '@swc/helpers@0.5.2': - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/helpers@0.5.13': + resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} '@swc/types@0.1.15': resolution: {integrity: sha512-XKaZ+dzDIQ9Ot9o89oJQ/aluI17+VvUnIpYJTcZtvv1iYX6MzHh3Ik2CSR7MdPKpPwfZXHBeCingb2b4PoDVdw==} @@ -9410,6 +9452,10 @@ packages: color@3.2.1: resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -10472,10 +10518,10 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-next@13.4.12: - resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==} + 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: @@ -10605,11 +10651,11 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: - resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} + 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==} @@ -10881,6 +10927,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'} @@ -11384,10 +11434,6 @@ packages: engines: {node: 20 || >=22} hasBin: true - glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - deprecated: Glob versions prior to v9 are no longer supported - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -13810,35 +13856,23 @@ packages: next-videos@1.5.0: resolution: {integrity: sha512-U6HY68UDxsDMMRgjABYq1S2EIStqZNp8FFtL8LKXJrhGFIO1nM2a3Afy0jw3JI2nK1HSXq4s4anQ96Yn4ukceA==} - next@13.4.12: - resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} - engines: {node: '>=16.8.0'} + 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 - fibers: '>= 3.1.0' - react: ^18.2.0 - react-dom: ^18.2.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 - fibers: + '@playwright/test': optional: true - sass: - optional: true - - next@14.1.4: - resolution: {integrity: sha512-1WTaXeSrUwlz/XcnhGTY7+8eiaFvdet5z9u3V2jb+Ek1vFo0VhHKSAIJvDWfQpttWjnyw14kBeq28TPq7bTeEQ==} - engines: {node: '>=18.17.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': + babel-plugin-react-compiler: optional: true sass: optional: true @@ -14777,10 +14811,6 @@ packages: peerDependencies: postcss: ^8.2.9 - postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -15735,6 +15765,10 @@ packages: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -16179,13 +16213,13 @@ packages: style-value-types@5.0.0: resolution: {integrity: sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==} - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + 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' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' peerDependenciesMeta: '@babel/core': optional: true @@ -17250,10 +17284,6 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} - watchpack@2.4.2: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} @@ -17616,9 +17646,6 @@ packages: peerDependencies: zod: ^3.18.0 - zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -19864,6 +19891,11 @@ snapshots: - encoding - supports-color + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.6.3 + optional: true + '@emotion/is-prop-valid@0.8.8': dependencies: '@emotion/memoize': 0.7.4 @@ -21688,6 +21720,81 @@ snapshots: transitivePeerDependencies: - supports-color + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + '@import-maps/resolve@1.0.1': {} '@ioredis/as-callback@3.0.0': {} @@ -22149,7 +22256,7 @@ snapshots: webpack: 5.96.1(@swc/core@1.9.2)(esbuild@0.17.19) webpack-node-externals: 3.0.0 optionalDependencies: - '@swc/core': 1.9.2(@swc/helpers@0.5.2) + '@swc/core': 1.9.2(@swc/helpers@0.5.13) transitivePeerDependencies: - esbuild - uglify-js @@ -22668,68 +22775,36 @@ snapshots: - bufferutil - utf-8-validate - '@next/env@13.4.12': {} - '@next/env@13.5.7': {} - '@next/env@14.1.4': {} + '@next/env@15.0.3': {} - '@next/eslint-plugin-next@13.4.12': + '@next/eslint-plugin-next@15.0.3': dependencies: - glob: 7.1.7 - - '@next/swc-darwin-arm64@13.4.12': - optional: true - - '@next/swc-darwin-arm64@14.1.4': - optional: true - - '@next/swc-darwin-x64@13.4.12': - optional: true - - '@next/swc-darwin-x64@14.1.4': - optional: true - - '@next/swc-linux-arm64-gnu@13.4.12': - optional: true + fast-glob: 3.3.1 - '@next/swc-linux-arm64-gnu@14.1.4': + '@next/swc-darwin-arm64@15.0.3': optional: true - '@next/swc-linux-arm64-musl@13.4.12': + '@next/swc-darwin-x64@15.0.3': optional: true - '@next/swc-linux-arm64-musl@14.1.4': + '@next/swc-linux-arm64-gnu@15.0.3': optional: true - '@next/swc-linux-x64-gnu@13.4.12': + '@next/swc-linux-arm64-musl@15.0.3': optional: true - '@next/swc-linux-x64-gnu@14.1.4': + '@next/swc-linux-x64-gnu@15.0.3': optional: true - '@next/swc-linux-x64-musl@13.4.12': + '@next/swc-linux-x64-musl@15.0.3': optional: true - '@next/swc-linux-x64-musl@14.1.4': + '@next/swc-win32-arm64-msvc@15.0.3': optional: true - '@next/swc-win32-arm64-msvc@13.4.12': - optional: true - - '@next/swc-win32-arm64-msvc@14.1.4': - optional: true - - '@next/swc-win32-ia32-msvc@13.4.12': - optional: true - - '@next/swc-win32-ia32-msvc@14.1.4': - optional: true - - '@next/swc-win32-x64-msvc@13.4.12': - optional: true - - '@next/swc-win32-x64-msvc@14.1.4': + '@next/swc-win32-x64-msvc@15.0.3': optional: true '@nodelib/fs.scandir@2.1.5': @@ -24392,7 +24467,7 @@ snapshots: '@swc/core-win32-x64-msvc@1.9.2': optional: true - '@swc/core@1.9.2(@swc/helpers@0.5.2)': + '@swc/core@1.9.2(@swc/helpers@0.5.13)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.15 @@ -24407,15 +24482,11 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.9.2 '@swc/core-win32-ia32-msvc': 1.9.2 '@swc/core-win32-x64-msvc': 1.9.2 - '@swc/helpers': 0.5.2 + '@swc/helpers': 0.5.13 '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.1': - dependencies: - tslib: 2.6.3 - - '@swc/helpers@0.5.2': + '@swc/helpers@0.5.13': dependencies: tslib: 2.6.3 @@ -24439,16 +24510,16 @@ snapshots: '@tanstack/virtual-core@3.10.9': {} - '@theguild/components@6.6.6(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2)(webpack@5.96.1(esbuild@0.17.19))': + '@theguild/components@6.6.6(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2)(webpack@5.96.1(esbuild@0.17.19))': dependencies: '@giscus/react': 3.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@next/bundle-analyzer': 14.2.8 clsx: 2.1.1 fuzzy: 0.1.3 - next: 14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-videos: 1.5.0(webpack@5.96.1(esbuild@0.17.19)) - nextra: 3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2) - nextra-theme-docs: 3.0.0-alpha.32(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + nextra: 3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2) + nextra-theme-docs: 3.0.0-alpha.32(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-paginate: 8.2.0(react@18.2.0) @@ -24993,18 +25064,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(supports-color@9.4.0)(typescript@5.7.2) - debug: 4.3.7(supports-color@9.4.0) - eslint: 8.42.0 - optionalDependencies: - typescript: 5.7.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 @@ -26773,6 +26832,12 @@ snapshots: color-convert: 1.9.3 color-string: 1.9.1 + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + colord@2.9.3: {} colorette@2.0.20: {} @@ -28100,18 +28165,19 @@ snapshots: eslint: 8.57.1 semver: 7.6.3 - eslint-config-next@13.4.12(eslint@8.42.0)(typescript@5.7.2): + eslint-config-next@15.0.3(eslint@8.42.0)(typescript@5.7.2): dependencies: - '@next/eslint-plugin-next': 13.4.12 + '@next/eslint-plugin-next': 15.0.3 '@rushstack/eslint-patch': 1.10.4 - '@typescript-eslint/parser': 5.62.0(eslint@8.42.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.16.0(eslint@8.42.0)(typescript@5.7.2) eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.42.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.42.0) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.42.0) eslint-plugin-react: 7.37.2(eslint@8.42.0) - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.42.0) + eslint-plugin-react-hooks: 5.0.0(eslint@8.42.0) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -28135,38 +28201,38 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.42.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7(supports-color@9.4.0) enhanced-resolve: 5.17.1 - eslint: 8.42.0 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.42.0))(eslint@8.42.0) + eslint: 8.57.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.42.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0)(eslint@8.57.1): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7(supports-color@9.4.0) enhanced-resolve: 5.17.1 - eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint: 8.42.0 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -28199,17 +28265,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.42.0))(eslint@8.42.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.42.0)(typescript@5.7.2) - eslint: 8.42.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.42.0) - transitivePeerDependencies: - - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.7.2))(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 @@ -28221,23 +28276,24 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.42.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.14.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.42.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.14.0(eslint@8.57.1)(typescript@5.7.2) - eslint: 8.57.1 + '@typescript-eslint/parser': 8.16.0(eslint@8.42.0)(typescript@5.7.2) + eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0) transitivePeerDependencies: - supports-color @@ -28248,7 +28304,7 @@ snapshots: eslint: 8.57.1 eslint-compat-utils: 0.5.1(eslint@8.57.1) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.42.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -28257,9 +28313,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.42.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.42.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -28277,7 +28333,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -28286,9 +28342,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.1 + eslint: 8.42.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.14.0(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.16.0(eslint@8.42.0)(typescript@5.7.2))(eslint@8.42.0))(eslint@8.42.0))(eslint@8.42.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -28300,7 +28356,7 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.14.0(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/parser': 8.16.0(eslint@8.42.0)(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -28402,7 +28458,7 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.42.0): + eslint-plugin-react-hooks@5.0.0(eslint@8.42.0): dependencies: eslint: 8.42.0 @@ -28918,6 +28974,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 @@ -29557,15 +29621,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 2.0.0 - glob@7.1.7: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -33013,13 +33068,13 @@ snapshots: p-wait-for: 4.1.0 qs: 6.13.0 - next-auth@4.24.10(next@13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next-auth@4.24.10(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.26.0 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) oauth: 0.9.15 openid-client: 5.7.0 preact: 10.24.3 @@ -33028,13 +33083,13 @@ snapshots: react-dom: 18.2.0(react@18.2.0) uuid: 8.3.2 - next-sitemap@4.2.3(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)): + next-sitemap@4.2.3(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.7 fast-glob: 3.3.2 minimist: 1.2.8 - next: 14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-themes@0.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: @@ -33047,60 +33102,33 @@ snapshots: transitivePeerDependencies: - webpack - next@13.4.12(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@next/env': 13.4.12 - '@swc/helpers': 0.5.1 - busboy: 1.6.0 - caniuse-lite: 1.0.30001680 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.22.1)(react@18.2.0) - watchpack: 2.4.0 - zod: 3.21.4 - optionalDependencies: - '@next/swc-darwin-arm64': 13.4.12 - '@next/swc-darwin-x64': 13.4.12 - '@next/swc-linux-arm64-gnu': 13.4.12 - '@next/swc-linux-arm64-musl': 13.4.12 - '@next/swc-linux-x64-gnu': 13.4.12 - '@next/swc-linux-x64-musl': 13.4.12 - '@next/swc-win32-arm64-msvc': 13.4.12 - '@next/swc-win32-ia32-msvc': 13.4.12 - '@next/swc-win32-x64-msvc': 13.4.12 - '@opentelemetry/api': 1.9.0 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@next/env': 14.1.4 - '@swc/helpers': 0.5.2 + '@next/env': 15.0.3 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.13 busboy: 1.6.0 caniuse-lite: 1.0.30001680 - graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.22.1)(react@18.2.0) + styled-jsx: 5.1.6(@babel/core@7.22.1)(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.4 - '@next/swc-darwin-x64': 14.1.4 - '@next/swc-linux-arm64-gnu': 14.1.4 - '@next/swc-linux-arm64-musl': 14.1.4 - '@next/swc-linux-x64-gnu': 14.1.4 - '@next/swc-linux-x64-musl': 14.1.4 - '@next/swc-win32-arm64-msvc': 14.1.4 - '@next/swc-win32-ia32-msvc': 14.1.4 - '@next/swc-win32-x64-msvc': 14.1.4 + '@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 '@opentelemetry/api': 1.9.0 + sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@3.0.0-alpha.32(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + nextra-theme-docs@3.0.0-alpha.32(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(nextra@3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@headlessui/react': 1.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@popperjs/core': 2.11.8 @@ -33109,15 +33137,15 @@ snapshots: flexsearch: 0.7.43 focus-visible: 5.2.1 intersection-observer: 0.12.2 - next: 14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-themes: 0.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - nextra: 3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2) + nextra: 3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) scroll-into-view-if-needed: 3.1.0 zod: 3.23.8 - nextra@3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2): + nextra@3.0.0-alpha.32(@types/react@18.2.55)(acorn@8.14.0)(next@15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.7.2): dependencies: '@headlessui/react': 1.7.19(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@mdx-js/mdx': 3.1.0(acorn@8.14.0) @@ -33135,7 +33163,7 @@ snapshots: gray-matter: 4.0.3 hast-util-to-estree: 3.1.0 katex: 0.16.11 - next: 14.1.4(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 15.0.3(@babel/core@7.22.1)(@opentelemetry/api@1.9.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) p-limit: 6.1.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -34126,12 +34154,6 @@ snapshots: postcss: 8.4.38 quote-unquote: 1.0.0 - postcss@8.4.14: - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.4.31: dependencies: nanoid: 3.3.7 @@ -35293,6 +35315,33 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 @@ -35820,7 +35869,7 @@ snapshots: hey-listen: 1.0.8 tslib: 2.6.3 - styled-jsx@5.1.1(@babel/core@7.22.1)(react@18.2.0): + styled-jsx@5.1.6(@babel/core@7.22.1)(react@18.2.0): dependencies: client-only: 0.0.1 react: 18.2.0 @@ -36106,7 +36155,7 @@ snapshots: terser: 5.36.0 webpack: 5.96.1(@swc/core@1.9.2)(esbuild@0.17.19) optionalDependencies: - '@swc/core': 1.9.2(@swc/helpers@0.5.2) + '@swc/core': 1.9.2(@swc/helpers@0.5.13) esbuild: 0.17.19 terser-webpack-plugin@5.3.10(esbuild@0.17.19)(webpack@5.86.0(esbuild@0.17.19)): @@ -36401,7 +36450,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.9.2(@swc/helpers@0.5.2) + '@swc/core': 1.9.2(@swc/helpers@0.5.13) ts-node@10.9.1(@swc/core@1.9.2)(@types/node@22.9.0)(typescript@5.7.2): dependencies: @@ -36421,7 +36470,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.9.2(@swc/helpers@0.5.2) + '@swc/core': 1.9.2(@swc/helpers@0.5.13) ts-toolbelt@9.6.0: {} @@ -37041,11 +37090,6 @@ snapshots: dependencies: makeerror: 1.0.12 - watchpack@2.4.0: - dependencies: - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 @@ -37508,8 +37552,6 @@ snapshots: dependencies: zod: 3.23.8 - zod@3.21.4: {} - zod@3.23.8: {} zwitch@2.0.4: {} diff --git a/website/package.json b/website/package.json index e417370b88..c0879c35fe 100644 --- a/website/package.json +++ b/website/package.json @@ -18,7 +18,7 @@ "@theguild/components": "6.6.6", "clsx": "2.1.0", "graphql": "16.6.0", - "next": "14.1.4", + "next": "15.0.3", "next-sitemap": "4.2.3", "react": "18.2.0", "react-dom": "18.2.0", diff --git a/website/src/pages/docs/integrations/integration-with-nextjs.mdx b/website/src/pages/docs/integrations/integration-with-nextjs.mdx index 6543752372..78742e2d85 100644 --- a/website/src/pages/docs/integrations/integration-with-nextjs.mdx +++ b/website/src/pages/docs/integrations/integration-with-nextjs.mdx @@ -22,7 +22,11 @@ npm i graphql-yoga graphql // Next.js Custom Route Handler: https://nextjs.org/docs/app/building-your-application/routing/router-handlers import { createSchema, createYoga } from 'graphql-yoga' -const { handleRequest } = createYoga({ +interface NextContext { + params: Promise> +} + +const { handleRequest } = createYoga({ schema: createSchema({ typeDefs: /* GraphQL */ ` type Query {